C语言实现学生选修课程系统设计

本文实例为大家分享了C语言学生选修课程系统的具体代码,供大家参考,具体内容如下

我编程的时间不长,所以这里面肯定有一些错误,或者存在更好的解决方案,欢迎大神上课!谢谢!

ps:寻找一起学习的小伙伴!

代码:

/*********************************
*主题:学生选修课程系统设计
*
*设计要求:
*1.添加功能:程序能够任意添加课程和学生记录,可提供选择界面供用户选择所需要添加的类别,要求编号要唯一,如果添加了重复编号的记录是,则提示数据添加重复并取消添加。
*2.查询功能:可根据编号、姓名等信息对已添加的同学和课程记录进行查询,如果未找到,给出相应的提示信息,如果找到,则显示相应的记录信息。
*3.显示功能:可显示当前系统中所有学生和课程的记录,每条记录占据一行。
*4.编辑功能:可根据查询结果对相应的记录进行修改,修改时注意编号的唯一性。
*5.删除功能:主要实现对已添加的学生和课程记录进行删除。如果当前系统中没有对应的记录,则提示“记录为空!”并返回操作。
*6.统计功能:能根据多种参数进行统计。能统计学生人数、课程门数、选修某门课程的学生的相关信息。
*
*********************************/
/*
* Verson:2.0(basic)
*
* History: 完成课程信息的录入,查询等操作;完成选课功能(2017-05-05 20:30:00-01:20:00)
*
* Author:universes
*
*
*********************************/
/*
* Verson:1.9
*
* History:完成了学生信息的查询操作 (2017-05-04 22:00:32-01:11:00)
*
* Author:universes
*
*
********************************/
/*
* Verson:1.5
*
* HIstory2:添加查重功能 (2017-05-02 23:39:19-01:06:05)
* History1:完成了用户对课程和学生信息的添加操作(没有查重功能)(2017-05-02 22:06:13-23:39:19)
*
* Author:universes
*
*
********************************/
/*
* Verson:1.0
*
* History:完成了用户的选择功能框架(2017-04-19 22:06:13-22:40:47)
*
* Author:universes
*
*
********************************/
#include <stdio.h>
#include <malloc.h>
#include <stdlib.h>
#include <string.h>

#define SIZE_STU 10
#define SIZE_COU 10
#define SIZE_SEL 10
//////////////函数声明部分
void home(void);
void stu_operate(void);
void cou_operate(void);
void statistic(void);
void choose(void);
void delete_sel(int);
//--学生信息部分:
void input_stu(void);
void search_stu(void);
void search_stu_id(void);
void search_stu_name(void);
void show_stu(void);
void edit_stu(void);
void renew_stu(void);
void delete_stu(void);
//--课程信息部分:
void input_cou(void);
void search_cou(void);
void search_cou_id(void);
void search_cou_name(void);
void show_cou(void);
void edit_cou(void);
void renew_cou(void);
void delete_cou(void);

/*学生信息结构体*/
struct student_info {
 char stu_ID[9];
 char stu_name[5];
 char sex[9];
 char age[9];
 char collage[9];
 char grade[9];
 char contact[9];
}stu[SIZE_STU];

/*课程信息结构体*/
struct course_info {
 char course_ID[9];
 char course_name[9];
 char property[9];
 char period[9];
 char credit[9];
 char time[9];
 int people;
}cou[SIZE_COU];

/*选课记录结构体*/
struct select {
 int s;//存放学生信息的数组下标
 int c;//存放课程信息的数组下标
}sel[SIZE_SEL]; 

//全局变量i,j,x分别是学生,课程,选课信息数组下标
int i = -1;
int j = -1;
int x = -1;

int main(void){
 //进入欢迎界面
 home();
 return 0;
}

//欢迎界面
void home(void) {
 printf("\n-------------------------欢迎进入选课系统!----------------------");
 int h;
 printf("\n\n      请选择你要进行的操作:");
 printf("\n\n        1.学生操作");
 printf("\n        2.课程操作");
 printf("\n        3.开始选课");
 printf("\n        4.选课统计");
 printf("\n        5.退出系统");
 printf("\n              ");
 printf("\n      请输入:");
 scanf("%d",&h);
 system("cls");
 switch(h){
  case 1:
   stu_operate();
   break;
  case 2:
   cou_operate();
   break;
  case 3:
   choose();
   break;
  case 4:
   statistic();
   break;
  default:
   system("cls");
   printf("BYE!");
   break;
 }
}
/*开始选课*/
void choose(void){
 char stu_id[10],cou_id[10];
 printf("\n-------------------------欢迎进入选课系统!----------------------");
 //输入选课学生信息
 printf("\n\n     请输入选课人学号:");
 fflush(stdin);
 scanf("%s",stu_id);
 int h,flag = 0;
 for(h = 0;h <= i;h++){
  if(strcmp(stu[h].stu_ID,stu_id)==0){
   flag = 0;
   break;
  } else {
   flag = 1;
  }
 }
 if(flag||i==-1){
  printf("\n     不存在此学号\n");
  system("pause");
  system("cls");
  home();
 }
 //录入姓名信息
 x++;
 sel[x].s = h;
 //输入课程信息
 printf("\n\n     请输入选修课程号:");
 fflush(stdin);
 scanf("%s",cou_id);
 flag = 0;
 for(h = 0;h <= j;h++){
  if(strcmp(cou[h].course_ID,cou_id)==0){
   flag = 0;
   break;
  } else {
   flag = 1;
  }
 }
 if(flag||j==-1){
  printf("\n     不存在此课程号\n");
  x--;
  system("pause");
  system("cls");
  home();
 }
 //录入课程信息
 sel[x].c = h;
 cou[h].people++;
 printf("\n     录入成功!\n");
 system("pause");
 system("cls");
 home();
}
/*删除选课记录*/
void delete_sel(int q){//删除第q+1条记录
/*注意!本函数没有将x减1,请在函数外手动减1(考虑外层函数循环的需要)*/
 int h;
 cou[sel[q].c].people--;
 for(h = q;q < x;h++){
  q++;
  sel[h].c = sel[q].c;
  sel[h].s = sel[q].s;
 }

}
//对学生记录进行操作
void stu_operate(void) {
 printf("\n-------------------------欢迎进入选课系统!----------------------");
 printf("\n\n     请选择你要对学生记录进行的操作:");
 printf("\n\n        1.添加");
 printf("\n        2.查询");
 printf("\n        3.显示");
 printf("\n        4.返回主页面");
 printf("\n              ");
 printf("\n      请输入:");
 int i;
 scanf("%d",&i);
 system("cls");
 switch(i){
  case 1://添加学生信息
   input_stu();
   break;
  case 2://查询学生信息
   search_stu();
   break;
  case 3://显示所有学生信息
   show_stu();
   break;
  case 4:
   home();
   break;
 }
}
//对课程记录进行操作
void cou_operate(void) {
 printf("\n-------------------------欢迎进入选课系统!----------------------");
 printf("\n\n     请选择你要对课程记录进行的操作:");
 printf("\n\n        1.添加");
 printf("\n        2.查询");
 printf("\n        3.显示");
 printf("\n        4.返回主页面");
 printf("\n              ");
 printf("\n      请输入:");
 int i;
 scanf("%d",&i);
 system("cls");
 switch(i){
  case 1:
   input_cou();
   break;
  case 2:
   search_cou();
   break;
  case 3:
   show_cou();
  case 4:
   home();
   break;
 }
}
//选课信息统计记录
void statistic(void){
 printf("\n-------------------------欢迎进入选课系统!----------------------");
 printf("\n\n      共有学生信息:%d 条",i+1);
 printf("\n      共有课程信息:%d 条",j+1);
 if(x == -1){
  printf("\n      选课记录:0 条");
  printf("\n\n      ");
  system("pause");
  system("cls");
  home();
 } else {
  printf("\n\n      选课记录 %d 条:",x+1);
  int m;
  for(m = 0;m <= x;m++){
   printf("\n      ================");
   printf("\n      第%d条",m+1);
   printf("\n      学生学号:%s",stu[sel[m].s].stu_ID);
   printf("\n      学生姓名:%s",stu[sel[m].s].stu_name);
   printf("\n      课程号:%s",cou[sel[m].c].course_ID);
   printf("\n      课程名:%s",cou[sel[m].c].course_name);
  }
  printf("\n\n   ");
  system("pause");
  system("cls");
  home();
 }

}

//--------------------------------------学生信息插入--------------------------------------
void input_stu(void){
 char flag;
 FILE * fp;
 //--判断文件是否为空
 fp = fopen("student.txt","r+");
 flag = fgetc(fp);
 if(flag==EOF){
  fprintf(fp,"学号\t姓名\t性别\t年龄\t系别\t班级\t联系方式\n");
 }
 fclose(fp);
 //--
 fp = fopen("student.txt","a+");
 if(fp == NULL){
  printf("打开文件失败!");
  system("cls");
  stu_operate();
 }
 printf("学号\t姓名\t性别\t年龄\t系别\t班级\t联系方式\n");
 while(1){
  i++;
  scanf("%s %s %s %s %s %s %s",&stu[i].stu_ID,&stu[i].stu_name,&stu[i].sex,&stu[i].age,&stu[i].collage,&stu[i].grade,&stu[i].contact);
  //--数据查重
  int h;
  for(h = 0;h < i;h++){
   if(i == 0) break;//第一条数据不需要查重
   if (strcmp(stu[h].stu_ID,stu[i].stu_ID)==0) {
    printf("该学号已存在,请重新输入!\n");
    scanf("\n%s %s %s %s %s %s %s",&stu[i].stu_ID,&stu[i].stu_name,&stu[i].sex,&stu[i].age,&stu[i].collage,&stu[i].grade,&stu[i].contact);
    h = -1;
   }
  }
  //--
  fprintf(fp,"%s\t%s\t%s\t%s\t%s\t%s\t%s\n",stu[i].stu_ID,stu[i].stu_name,stu[i].sex,stu[i].age,stu[i].collage,stu[i].grade,stu[i].contact);
  printf("\n录入成功,继续录入输入y,返回上一级请按任意键:");
  fflush(stdin);
  scanf("%c",&flag);
  fclose(fp);
  if(flag!='y'&&'Y') break;
  fp = fopen("student.txt","a");
 }
 renew_stu();
 system("cls");
 stu_operate();
}
/*查询学生信息*/
void search_stu(void){
 system("cls");
 printf("\n请选择查询方式:");
 printf("\n 1.学号查询");
 printf("\n 2.姓名查询");
 printf("\n请选择:");
 int h;
 scanf(" %d",&h);
 switch(h){
  case 1:
   search_stu_id();
   break;
  case 2:
   search_stu_name();
   break;

 }
}
/*学号查询*/
void search_stu_id(void){
 system("cls");
 char id[9];
 printf("\n输入学生的学号:");
 fflush(stdin);
 scanf("%s",id);
 int h;
 for(h = 0;h <= i;h++){
  if(strcmp(stu[h].stu_ID,id)==0){
   system("cls");
   printf("查找成功!");
   printf("\n\n\t学号\t姓名\t性别\t年龄\t系别\t班级\t联系方式");
   printf("\n\t-----------------------------------------------------------------");
   printf("\n\t%s\t%s\t%s\t%s\t%s\t%s\t%s\n",stu[h].stu_ID,stu[h].stu_name,stu[h].sex,stu[h].age,stu[h].collage,stu[h].grade,stu[h].contact);
   system("pause");
   system("cls");
   stu_operate();
  }
 }
 system("cls");
 printf("没有此学号!\n");
 system("pause");
 system("cls");
 stu_operate();
}
/*姓名查询*/
void search_stu_name(void){
 system("cls");
 char name[9];
 printf("\n输入学生的姓名:");
 fflush(stdin);
 scanf("%s",name);
 int h;
 for(h = 0;h <= i;h++){
  if(strcmp(stu[h].stu_name,name)==0){
   system("cls");
   printf("查找成功!");
   printf("\n\n\t学号\t姓名\t性别\t年龄\t系别\t班级\t联系方式");
   printf("\n\t---------------------------------------------------------");
   printf("\n\t%s\t%s\t%s\t%s\t%s\t%s\t%s\n",stu[h].stu_ID,stu[h].stu_name,stu[h].sex,stu[h].age,stu[h].collage,stu[h].grade,stu[h].contact);
   system("pause");
   system("cls");
   stu_operate();
  }
 }
 system("cls");
 printf("没有此姓名!");
 system("pause");
 system("cls");
 stu_operate();
}
/*显示所有学生信息*/
void show_stu(void){
 int h;
 if(i == -1){
  printf("\n还没有录入信息!\n");
  system("pause");
  system("cls");
  stu_operate();
 }
 system("cls");
 printf("\n\n\t学号\t姓名\t性别\t年龄\t系别\t班级\t联系方式");
 printf("\n\t---------------------------------------------------------");
 for(h = 0;h <= i;h++){
  printf("\n\t%s\t%s\t%s\t%s\t%s\t%s\t%s\n",stu[h].stu_ID,stu[h].stu_name,stu[h].sex,stu[h].age,stu[h].collage,stu[h].grade,stu[h].contact);
 }
 //
 fflush(stdin);
 printf("\n\t1.修改");
 printf("\n\t2.删除");
 printf("\n\t3.返回");
 printf("\n\n 选择要进行的操作:");
 int flag;
 fflush(stdin);
 scanf("%d",&flag);
 switch(flag){
  case 1:
   edit_stu();
   break;
  case 2:
   delete_stu();
   break;
  default:
   system("cls");
   stu_operate();
   break;

 }
}
/*编辑学生信息*/
void edit_stu(void){
 printf("\n输入需要编辑的学生的学号:");
 char id[10];
 getchar();
 scanf("%s",id);
 int h;
 for(h = 0;h <= i;h++){
  if(strcmp(stu[h].stu_ID,id)==0){//找到需要编辑的行
   system("cls");
   printf("\n\n\t学号\t姓名\t性别\t年龄\t系别\t班级\t联系方式");
   printf("\n\t---------------------------------------------------------");
   printf("\n\t%s\t%s\t%s\t%s\t%s\t%s\t%s\n",stu[h].stu_ID,stu[h].stu_name,stu[h].sex,stu[h].age,stu[h].collage,stu[h].grade,stu[h].contact);
   printf("\n这是修改前的数据,请依次输入修改值:\n\t");
   fflush(stdin);
   scanf("%s %s %s %s %s %s %s",&stu[h].stu_ID,&stu[h].stu_name,&stu[h].sex,&stu[h].age,&stu[h].collage,&stu[h].grade,&stu[h].contact);
   int k;
   for(k = 0;k <= i;k++){
    if(strcmp(stu[k].stu_ID,stu[h].stu_ID)==0){
     if(k==h){
      continue;
     } else {//学号不唯一
      printf("\n此学号已存在!重新输入学号:");
      fflush(stdin);
      scanf("%s",&stu[h].stu_ID);
      k = -1;
     }
    }
   }
   /*将修改信息写入文件*/
   //思想:将原文件重新写入一遍
   renew_stu();
   system("cls");
   printf("修改成功!\n");
   system("pause");
   system("cls");
   stu_operate();
  }
 }
 printf("\n此学号不存在!\n");
 system("pause");
 system("cls");
 stu_operate();
}
/*删除学生信息*/
void delete_stu(void){
 printf("\n输入需要编辑的学生的学号:");
 char id[10];
 getchar();
 scanf("%s",id);
 int h;
 for(h = 0;h <= i;h++){
  if(strcmp(stu[h].stu_ID,id)==0){//找到需要编辑的行
   system("cls");
   //检查他/她是否选课了
   int a;
   for(a = 0;a <= x;a++){
    if(h==sel[a].s){//选课了则将对应课程记录减1,以及选课数组减1
     delete_sel(a);
     a = -1;
     x--;
     continue;
    }
   }
   //如果只有一条记录
   if(i==0){
    i = -1;
    renew_stu();
    printf("修改成功!\n");
    system("pause");
    system("cls");
    stu_operate();
   } 

   int k;
   for(k = h+1;k <= i;k++,h++){//将数组直接向前移动
    strcpy(stu[h].stu_ID,stu[k].stu_ID);
    strcpy(stu[h].stu_name,stu[k].stu_name);
    strcpy(stu[h].sex,stu[k].sex);
    strcpy(stu[h].grade,stu[k].grade);
    strcpy(stu[h].contact,stu[k].contact);
    strcpy(stu[h].collage,stu[k].collage);
    strcpy(stu[h].age,stu[k].age);
   }
   /*将修改信息写入文件*/
   //思想:将原文件重新写入一遍
   renew_stu();
   i--;
   system("cls");
   printf("修改成功!\n");
   system("pause");
   system("cls");
   stu_operate();
  }
 }
 printf("\n此学号不存在!\n");
 system("pause");
 system("cls");
 stu_operate();
}
//--------------------------------------课程信息插入--------------------------------------
void input_cou(void){
 char flag;
 FILE * fp;
 //--判断文件是否为空
 fp = fopen("course.txt","r+");
 flag = fgetc(fp);
 if(flag==EOF){
  fprintf(fp,"代码\t名称\t性质\t总学时\t学分\t开课学期\t选修人数\n");
 }
 fclose(fp);
 //--
 fp = fopen("course.txt","a+");
 if(fp == NULL){
  printf("打开文件失败!");
  system("cls");
  cou_operate();
 }
 printf("代码\t名称\t性质\t总学时\t学分\t开课学期\n");
 while(1){
  j++;
  scanf("%s %s %s %s %s %s",&cou[j].course_ID,&cou[j].course_name,&cou[j].property,&cou[j].period,&cou[j].credit,&cou[j].time);
  //--数据查重
  int h;
  for(h = 0;h < j;h++){
   if(j == 0) break;//第一条数据不需要查重
   if (strcmp(cou[h].course_ID,cou[j].course_ID)==0) {
    printf("该课程号已存在,请重新输入!\n");
    scanf("\n%s %s %s %s %s %s",&cou[j].course_ID,&cou[j].course_name,&cou[j].property,&cou[j].period,&cou[j].credit,&cou[j].time);
    h = -1;
   }
  }
  //--
  fprintf(fp,"%s\t%s\t%s\t%s\t%s\t%s\t\t%d\n",cou[j].course_ID,cou[j].course_name,cou[j].property,cou[j].period,cou[j].credit,cou[j].time,cou[j].people);
  printf("\n录入成功,继续录入输入y,返回上一级请按任意键:");
  fflush(stdin);
  scanf("%c",&flag);
  fclose(fp);
  if(flag!='y'&&'Y') break;
  fp = fopen("course.txt","a");
 }
 renew_cou();
 system("cls");
 cou_operate();
}
/*查询课程信息*/
void search_cou(void){
 system("cls");
 printf("\n请选择查询方式:");
 printf("\n 1.课程号查询");
 printf("\n 2.课程名查询");
 printf("\n请选择:");
 int h;
 scanf(" %d",&h);
 switch(h){
  case 1:
   search_cou_id();
   break;
  case 2:
   search_cou_name();
   break;

 }
}
/*课程号查询*/
void search_cou_id(void){
 system("cls");
 char id[9];
 printf("\n输入课程号:");
 fflush(stdin);
 scanf("%s",id);
 int h;
 for(h = 0;h <= j;h++){
  if(strcmp(cou[h].course_ID,id)==0){
   system("cls");
   printf("查找成功!");
   printf("\n\n\t代码\t名称\t性质\t总学时\t学分\t开课学期\t选修人数");
   printf("\n\t-----------------------------------------------------------------");
   printf("\n\t%s\t%s\t%s\t%s\t%s\t%s\t\t%d\n",cou[h].course_ID,cou[h].course_name,cou[h].property,cou[h].period,cou[h].credit,cou[h].time,cou[h].people);
   system("pause");
   system("cls");
   cou_operate();
  }
 }
 system("cls");
 printf("没有此课程号!\n");
 system("pause");
 system("cls");
 cou_operate();
}
/*课程名查询*/
void search_cou_name(void){
 system("cls");
 char name[9];
 printf("\n输入课程名:");
 fflush(stdin);
 scanf("%s",name);
 int h;
 for(h = 0;h <= j;h++){
  if(strcmp(cou[h].course_name,name)==0){
   system("cls");
   printf("查找成功!");
   printf("\n\n\t代码\t名称\t性质\t总学时\t学分\t开课学期\t选修人数");
   printf("\n\t---------------------------------------------------------");
   printf("\n\t%s\t%s\t%s\t%s\t%s\t%s\t\t%d\n",cou[h].course_ID,cou[h].course_name,cou[h].property,cou[h].period,cou[h].credit,cou[h].time,cou[h].people);
   system("pause");
   system("cls");
   cou_operate();
  }
 }
 system("cls");
 printf("没有此课程名!");
 system("pause");
 system("cls");
 cou_operate();
}
/*显示所有课程信息*/
void show_cou(void){
 int h;
 if(j == -1){
  printf("\n还没有录入信息!\n");
  system("pause");
  system("cls");
  cou_operate();
 }
 system("cls");
 printf("\n\n\t代码\t名称\t性质\t总学时\t学分\t开课学期\t选修人数");
 printf("\n\t-------------------------------------------------------------");
 for(h = 0;h <= j;h++){
  printf("\n\t%s\t%s\t%s\t%s\t%s\t%s\t\t%d\n",cou[h].course_ID,cou[h].course_name,cou[h].property,cou[h].period,cou[h].credit,cou[h].time,cou[h].people);
 }
 //
 fflush(stdin);
 printf("\n\t1.修改");
 printf("\n\t2.删除");
 printf("\n\t3.返回");
 printf("\n\n 选择要进行的操作:");
 int flag;
 fflush(stdin);
 scanf("%d",&flag);
 switch(flag){
  case 1:
   edit_cou();
   break;
  case 2:
   delete_cou();
   break;
  default:
   system("cls");
   cou_operate();
   break;

 }
}
/*编辑课程信息*/
void edit_cou(void){
 printf("\n输入需要编辑的课程号:");
 char id[10];
 getchar();
 scanf("%s",id);
 int h;
 for(h = 0;h <= j;h++){
  if(strcmp(cou[h].course_ID,id)==0){//找到需要编辑的行
   system("cls");
   printf("\n\n\t代码\t名称\t性质\t总学时\t学分\t开课学期");
   printf("\n\t-------------------------------------------------------------");
   printf("\n\t%s\t%s\t%s\t%s\t%s\t%s\n",cou[h].course_ID,cou[h].course_name,cou[h].property,cou[h].period,cou[h].credit,cou[h].time);
   printf("\n这是修改前的数据,请依次输入修改值:\n\t");
   fflush(stdin);
   scanf("%s %s %s %s %s %s",&cou[h].course_ID,&cou[h].course_name,&cou[h].property,&cou[h].period,&cou[h].credit,&cou[h].time);
   int k;
   for(k = 0;k <= j;k++){
    if(strcmp(cou[k].course_ID,cou[h].course_ID)==0){
     if(k==h){
      continue;
     } else {//课程号不唯一
      printf("\n此课程号已存在,重新输入:");
      fflush(stdin);
      scanf("%s",&cou[h].course_ID);
      k = -1;
     }
    }
   }
   /*将修改信息写入文件*/
   //思想:将原文件重新写入一遍
   renew_cou();
   system("cls");
   printf("修改成功!\n");
   system("pause");
   system("cls");
   cou_operate();
  }
 }
 printf("\n此课程号不存在!\n");
 system("pause");
 system("cls");
 cou_operate();
}
/*删除课程信息*/
void delete_cou(void){
 printf("\n输入需要编辑的课程号:");
 char id[10];
 getchar();
 scanf("%s",id);
 int h;
 for(h = 0;h <= j;h++){
  if(strcmp(cou[h].course_ID,id)==0){//找到需要编辑的行
   system("cls");
   //如果只有一条记录
   if(j==0){
    j = -1;
    renew_cou();
    printf("修改成功!\n");
    system("pause");
    system("cls");
    cou_operate();
   }
   //查看是否有人选课
   if(cou[h].people!=0){//有人选课时
    int a;
    for(a = 0;a <= x;a++){
     if(sel[a].c == h){
      delete_sel(a);
      a = -1;
      x--;
      continue;
     }
    }
   }
   int k;
   for(k = h+1;k <= j;k++,h++){//将数组直接向前移动
    strcpy(cou[h].course_ID,cou[k].course_ID);
    strcpy(cou[h].course_name,cou[k].course_name);
    strcpy(cou[h].property,cou[k].property);
    strcpy(cou[h].period,cou[k].period);
    strcpy(cou[h].credit,cou[k].credit);
    strcpy(cou[h].time,cou[k].time);
   }
   /*将修改信息写入文件*/
   //思想:将原文件重新写入一遍
   renew_cou();
   j--;
   system("cls");
   printf("修改成功!\n");
   system("pause");
   system("cls");
   cou_operate();
  }
 }
 printf("\n此课程号不存在!\n");
 system("pause");
 system("cls");
 cou_operate();
}

//--功能函数
/*更新系统数据至文件*/
void renew_stu(void){
 FILE * fp;
 fp = fopen("student.txt","w+");
 if(fp == NULL){
  printf("\n打开文件失败,无法保存至文件。\n");
  fclose(fp);
  return ;
 }
 fprintf(fp,"学号\t姓名\t性别\t年龄\t系别\t班级\t联系方式\n");
 if(i == -1){
  fclose(fp);
  return;
 }
 int h;
 for(h = 0;h <= i;h++){
  fprintf(fp,"%s\t%s\t%s\t%s\t%s\t%s\t%s\n",stu[h].stu_ID,stu[h].stu_name,stu[h].sex,stu[h].age,stu[h].collage,stu[h].grade,stu[h].contact);
 }
 fclose(fp);

}
void renew_cou(void){
 FILE * fp;
 fp = fopen("course.txt","w+");
 if(fp == NULL){
  printf("\n打开文件失败,无法保存至文件。\n");
  fclose(fp);
  return ;
 }
 fprintf(fp,"代码\t名称\t性质\t总学时\t学分\t开课学期\t选修人数\n");
 if(j == -1){
  fclose(fp);
  return;
 }
 int h;
 for(h = 0;h <= j;h++){
  fprintf(fp,"%s\t%s\t%s\t%s\t%s\t%s\t\t%s\n",cou[h].course_ID,cou[h].course_name,cou[h].property,cou[h].period,cou[h].credit,cou[h].time,cou[h].people); }
 fclose(fp);

}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • C语言图书管理系统课程设计

    这是本人大一第二学期初C语言课程设计的作品,嘿嘿,本来以为已经找不到原稿了,今天无意中竟然在QQ网络硬盘中找到了当初的teta版,发布于此,以作纪念. C 源代码如下: #include<stdio.h> #include<stdlib.h> #include<string.h> struct book{ char book_name[30]; int bianhao; double price; char author[20]; char state[20]; cha

  • C语言通讯录管理系统课程设计

    本文实例为大家分享了C语言通讯录管理系统课程设计,供大家参考,具体内容如下 #include <stdio.h> #include <stdlib.h> #include <windows.h> struct Sign{ char name[8]; char sex[4]; char birthday[12]; char phone[11]; char postcode[7]; char addr[30]; struct Sign *next; }pe; char Ph

  • 基于C语言实现学生选课系统

    鉴于C语言实现的通讯录,为了巩固C语言的基础知识,试着写一个简单的学生选课系统. 思路比较简单: 1.回滚显示各种提示信息或操作信息 2.链表操作. 代码中有管理员部分功能没有实现,学生和老师的功能基本实现,但有待加固,如果初学者可是试着去完善一下. 还可以将老师,学生的信息输出到文件文本中,本代码中没有实现,但并不是很难. 代码如下: #include <stdio.h> #include <stdlib.h> #include <string.h> /* 总链表--

  • C语言银行系统课程设计

    本文为大家分享了C语言银行系统课程设计,供大家参考,具体内容如下 main.c #include <stdio.h> #include <stdlib.h> #include <string.h> #include <conio.h> #include <windows.h> #define MaxNum 200 #define N_P 6 typedef struct { int AccountNumber[3]; char name[20];

  • C语言数据结构之学生信息管理系统课程设计

    本文实例为大家分享了学生信息管理系统设计的具体代码,供大家参考,具体内容如下 建立一个动态链表,链表中每一结点包括:学号.姓名.性别.年龄.成绩.程序能实现以下功能: 建立链表      显示链表      查找链表中是否存在某个元素,并显示这个元素的所有信息,若没有这个元素则显示"无此记录!"的信息.      删除链表中指定学号的结点.      在链表中指定的位置插入一个新结点(学号不能和其他结点重复). 要求:程序运行中,先显示实现以上功能所构成的菜单,然后根据选项调用相应程序

  • C语言学生成绩管理系统课程设计

    学生成绩管理系统是比较适合初学者的.它涵盖了c语言几乎知识.对于学了c语言的人,把这个课程设计搞好(当然自己能设计出来是要有很好的基础).不管自己能不能够完成,最重要的是能弄懂.参考其他资料,试着自己编写是不错的选择.这个课程设计也是我参照资料,自己编写的.自己适当地增加了一些功能.不过,编的不够那么专业吧. #include<stdio.h> #include<string.h> #include<stdlib.h> #define size 100 char* cl

  • C语言实现学生选课系统

    本文实例为大家分享了C语言实现学生选课系统的具体代码,供大家参考,具体内容如下 代码: #include<stdio.h> #include<windows.h> #include<stdlib.h> #include<conio.h> typedef unsigned char uint8_t; typedef unsigned short uint16_t; typedef unsigned int uint32_t; #define CLASS_CLS

  • C语言学生学籍管理系统课程设计

    C语言学生学籍管理系统做了好长时间的,里面有点小问题,希望大佬找到并帮忙改改,注意输入密码三次错误会自动注销用户,密码123456 代码: #include<stdio.h> #include<stdlib.h> #include<string.h> #include<conio.h> struct student { char xuehao[100];//输入学号 char name[100];//输入姓名 char sex[100];//输入性别 int

  • C语言实现学生选修课程系统设计

    本文实例为大家分享了C语言学生选修课程系统的具体代码,供大家参考,具体内容如下 我编程的时间不长,所以这里面肯定有一些错误,或者存在更好的解决方案,欢迎大神上课!谢谢! ps:寻找一起学习的小伙伴! 代码: /********************************* *主题:学生选修课程系统设计 * *设计要求: *1.添加功能:程序能够任意添加课程和学生记录,可提供选择界面供用户选择所需要添加的类别,要求编号要唯一,如果添加了重复编号的记录是,则提示数据添加重复并取消添加. *2.查

  • C语言学生成绩管理系统设计

    本文实例为大家分享了C语言学生成绩管理系统的具体代码,供大家参考,具体内容如下 Ps:后加了个链表排序,用冒泡写的. /* Title : Student's score management system Author: nyist_xiaod Date : 2012.5.8 */ #include <stdio.h> #include <conio.h> #include <string.h> #include <stdlib.h> #define Pr

  • C语言实现学生宿舍信息管理系统课程设计

    本文实例为大家分享了C语言实现学生宿舍信息管理系统的具体代码,供大家参考,具体内容如下 一.问题陈述 宿舍对于大学生在校生活来说相当于家的存在,而宿舍管理又是学校后勤管理的重要环节,如何直观的了解宿舍的入住情况和每位同学的住宿位置是提高工作效率的重要课题,根据我们所学的C语言和数据结构课程中有关链表的内容,为宿舍管理人员编写宿舍管理查询软件,就可以轻松满足实现上述需求. 任务: 1.为宿舍管理人员编写一个宿舍管理查询软件, 程序设计要求:1).采用交互工作方式2).可按关键字(姓名.学号.房号)

  • C语言实现学生学籍管理系统课程设计

    目录 设计要求 完整代码 运行结果 本文实例为大家分享了C语言实现学生学籍管理系统的具体代码,供大家参考,具体内容如下 设计要求 设计学籍管理系统 1.添加学生信息2.浏览学生信息3.查询学生信息4.修改学生信息5.册J除学生信息6.排序学生信息7.读取文件学生8.保存到文件 完整代码 #define _CRT_SECURE_NO_WARNINGS #include<stdio.h> #include<string.h> #include<math.h> #includ

  • C语言实现学生成绩管理系统课程设计

    目录 设计要求 完整代码 运行结果 本文实例为大家分享了C语言实现学生成绩管理系统的具体代码,供大家参考,具体内容如下 设计要求 设计学生成绩管理系统 要求如下: 1.输入学生信息2.统计学生成绩3.查找并显示学生成绩4.按姓名查找,修改学生资料5.显示所有学生名单6.查找并删除学生信息7.输出个科目成绩最高的学生 完整代码 #include<stdio.h> #include<ctype.h> #include<stdlib.h> #include<string

  • C语言实现学生成绩管理系统

    设计一个学生成绩管理系统,实现对学生成绩的动态管理,实现对学生成绩的输入,显示,删除,查找,插入,最佳,保存,计算,排序等主要功能. 功能要求 1.每一条记录包括一个学生的学号.姓名.3门课成绩.平均成绩. 2.输入功能:可以一次完成若干条记录的输入. 3.显示功能:完成全部学生记录的显示. 4.查找功能:完成按姓名查找学生记录,并显示. 5.排序功能:按学生平均成绩进行排序. 6.插入功能:按平均成绩高低插入一条学生记录 7.删除功能:如果输入错误,可以删除学生记录: 8.退出. 代码: #i

  • C语言版学生成绩管理系统

    本文实例为大家分享了C语言版学生成绩管理系统的具体代码,供大家参考,具体内容如下 #include<stdio.h> #include<stdlib.h> #include<time.h> #include<conio.h> #include<string.h> #include<algorithm> char buf[255]; char c=14; char path[]="D:\\data"; char tm

  • C语言实现学生学籍管理系统

    本文实例为大家分享了C语言实现学生学籍管理系统的具体代码,供大家参考,具体内容如下 #include<stdio.h> #include<conio.h> #include<stdlib.h> #include<string.h> #include<windows.h> //**********************************结构体************************************* struct score

  • C语言实现学生信息管理系统(文件版)

    本文实例为大家分享了C语言实现学生信息管理系统的具体代码,供大家参考,具体内容如下 下面是我自己用写的学生信息管理系统,为了增加数据的利用率,分为学生端和教师端,同时实现账号密码登录,以文件的形式将其存入. 代码如下 #include <stdio.h> #include <string.h> #include <string> #include<Windows.h> #define USER "TOM" // 事先定义用户名,用于登录页

随机推荐