1、基本功能要求:1输入记录:从键盘录入学生的基本信息;2显示输入记录:输出学生的基本信息包括总成绩;3按学号查找记录:输入一个学号,查找该学生的个人相关信息;4排序显示:按总成绩进行降序排列;5按学号显示;按学号升序排列;6退出。扩展功能要求:7删除记录;8修改记录;9写文件;10读文件。int NUM; /*全局变量,记录学生数*/#define M 100struct studentlong id; /*学号*/char name10; /*姓名*/ char sex4; int math; int english; int c_program; int total;STUM;1主函数进入主
2、菜单页面函数首部 void page_title( )函数首部:void student_new( )void show( )void score_search( )用冒泡法或选择法,以及其他排序方法来实现。void score_sort( )void id_sort( )void student_del( ) 函数首部:void student_edit( )void save( )void load( )void left( )六、 课程设计心得及体会七、源程序 清单#include /*VC+6.0 SP6*/string.hprocess.hconio.h/*全局变量*/int num
3、=-1; /*学生数,从STU0开始记录学生信息*/long id; /*学号*/ char name8; /*姓名*/ char sex2; /*性别*/ int math; /*数学*/ int english; /*英语*/ /*C语言*/ /*总分*/STUM;/*函数声明*/void page_title();void student_new();void student_del();void student_edit();void score_search();void score_sort();void id_sort();void show();void save();void
4、 display();void left();void page_head1(); /*打印表头1*/void page_head2(); /*打印表头2*/int find(long); /*按学号查找学生*/void show_one(int); /*显示一条记录*/void input_one(int); /*输入一个新学生的信息*/void count(int); /*计算一个新学生的总分*/void in_menu(); /*进入主菜单*/*主函数*/void main()display(); while(1) page_title();/*主菜单*/void page_title(
5、) char c; system(cls); /*清屏*/ printf(nn 学 生 成 绩 管 理 系 统 nnt1 录入学生成绩记录nnt2 显示学生成绩记录nnt3 修改学生成绩记录nnt4 删除学生成绩记录nnt5 按学号查询学生记录nnt6 按学号显示学生记录nnt7 按总成绩递减输出nnt8 保存nnt0 退出nn*n 请用数字键0-8选择操作: c=getchar(); switch(c) case 1 : student_new();break; /*录入学生基本信息*/ case 2 show(); /*显示所有记录*/ case 3 student_edit(); /*修
6、改记录*/4 student_del(); /*删除记录*/5 score_search(); /*查询记录*/6 id_sort(); /*按学号排序显示*/7 score_sort(); /*按成绩递减排序显示*/8 save(); /*保存*/0 left(); /*退出*/ /*录入学生基本信息*/void student_new()int n=0;n请输入学生的个数(1-%d):,M); scanf(%d,&n); while(nM) printf(n请重新输入学生个数: page_head1(); while(n-) num+; input_one(num); count(num)
7、;/*删除学生基本信息*/void student_del() int n; char c;请输入要删除学生的学号:%ldid);n n=find(id); if(n!=-1) break; else system( page_head2(); show_one(n);n请确认删除吗?(Y/N)? c=getch(); if(c=Y|c=y) STUn.id=STUnum.id; STUn.math=STUnum.math; STUn.english=STUnum.english; STUn.c_program=STUnum.c_program; STUn.total=STUnum.total
8、; strcpy(STUn.name,STUnum.name); strcpy(STUn.sex,STUnum.sex); num-;/*按学号查找学生*/int find(long id)int n; for(n=0;n=num;n+) if(STUn.id=id) return n; return -1;/*输入一个新学生的信息*/void input_one(int n)scanf(%ld%s%s%d%d%dSTUn.id,STUn.name,STUn.sex,&STUn.math,&STUn.english,&STUn.c_program);-n/*显示所有记录*/void show(
9、)int i; for(i=0;ii+) show_one(i); in_menu();/*显示一条记录*/void show_one(int n)printf(%ldt%stt%st%3dt%3dt%3dt%3d,STUn.id,STUn.name,STUn.sex,STUn.math,STUn.english,STUn.c_program,STUn.total);n-n/*计算一个新学生的总分*/void count(int n)STUn.total=STUn.math+STUn.english+STUn.c_program;/*退出*/void left()save(); exit(0)
10、;/*修改信息*/void student_edit()请输入你要修改学生的学号:=-1)n请输入修改的记录信息: count(n);/*进入主菜单*/void in_menu() printf(n请按任意键进入主菜单 getch();/*按学号查询成绩*/void score_search()请输入要查询学生的学号: page_head2();没找到!/*按学号排序显示*/void id_sort()int i=0; long min=STU0.id; for(i=1; if(STUi.id min) min=STUi.id; ) n=find(min+); /*学号加1*/ show_on
11、e(n); i+; /*记录数加1*/ /*按总成绩冒泡降序显示*/void score_sort()struct student stu1; int i,j;num;i+) /*趟数*/ for(j=0;jnum-i;j+) /*次数/趟*/ if(STUj.totalSTUj+1.total) /*降序*/ stu1.id=STUj.id; STUj.id=STUj+1.id; STUj+1.id=stu1.id; stu1.math=STUj.math; STUj.math=STUj+1.math; STUj+1.math=stu1.math; stu1.english=STUj.eng
12、lish; STUj.english=STUj+1.english; STUj+1.english=stu1.english; stu1.c_program=STUj.c_program; STUj.c_program=STUj+1.c_program; STUj+1.c_program=stu1.c_program; stu1.total=STUj.total; STUj.total=STUj+1.total; STUj+1.total=stu1.total; strcpy(stu1.name,STUj.name); strcpy(STUj.name,STUj+1.name); strcpy
13、(STUj+1.name,stu1.name); strcpy(stu1.sex,STUj.sex); strcpy(STUj.sex,STUj+1.sex); strcpy(STUj+1.sex,stu1.sex); /*打印表头2*/void page_head2()*n学号tt姓名tt性别t数学t英语tC语言t总成绩n/*打印表头1*/void page_head1()*n学号tt姓名tt性别t数学t英语tC语言n/*读文件*/void display()FILE *fp; int i; if(fp=fopen(d:cstu.txt,rb)=NULL)cannot open filen return;M; if(fread(&STUi,sizeof(struct student),1,fp)=1) i+; else break; num=i-1; fclose(fp);/*写文件*/void save()wb if(fwrite(&STUi,sizeof(struct student),1,fp)!=1)file write errorn
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1