1、沈阳师范大学科信软件学院小学期课程设计报告课题名称: 学生成绩管理系统设计 姓 名: 杨先勇学 号: 12008065 专业年级: 2012级软件工程2班 指导教师: 张丽娜2014年6月26日课程设计报告:学生成绩管理系统设计 编程语言:C一、 系统需求学生成绩信息包括:学期,学号,班别,姓名,四门课程成绩(语文、数学、英语和计算机)等.主要功能:(1) 能按学期、按班级完成对学生成绩的录入、修改(2) 能按班级统计学生的成绩,求学生的总分及平均分(3) 能查询学生成绩,不及格科目及学生名单(4) 能按班级输出学生的成绩单二、 要求使用二进制文件方式存储数据,系统以菜单方式工作三、 设计目的
2、(1) 能完成对学生成绩的录入(2) 能按班级统计学生的成绩,求学生的总分及平均分,排序(3) 能按班级,学期输出学生的成绩单和不及格科目及学生名单(4) 能查询单个学生成绩(5) 能修改单个学生信息四、 结构图修改单个学生信息修 改void monify结构图班级int classes学期int term信息录入void input 成绩统计void sort查询 void search姓名char name10学号int num成绩int score4学号stui.num、班级stui.classes,姓名stui.name、四门课成绩stui.score能按学号查询单个学生成绩 按班级统
3、计学生的成绩,求学生的总分及平均分,排序成绩输出void print能按班级,学期输出学生成绩单和不及格科目及学生名单结构数组struct student五、 程序代码include stdlib。h /定义结构体/#include stdio.hinclude string。hdefine NUM 100struct student int term; int num; int classes; char name10; int score4; int sum; double average; stuNUM;void print1();void print2();void zcd();voi
4、d input() /*输入信息函数/ system(cls); int i;char a;for(i=0;iNUM;i+) printf(” n请输入学生的学期:); scanf(d,stui.term);printf(” n请输入学生的学号:); fflush(stdin); scanf(d,stui。num); printf(” n请输入学生的班级:”); scanf(”%d,&stui.classes); printf(n请输入学生的姓名:”); scanf(”%s”, stui.name) ; printf(n请输入学生的语文成绩:”); scanf(d,stui.score0);
5、printf(”n请输入学生的数学成绩:); scanf(”%d”, stui。score1); printf(”n请输入学生的英语成绩:”); scanf(%d”, &stui.score2); printf(”n请输入学生的计算机成绩:); scanf(”d”, &stui.score3); stui.sum=stui。score0+stui.score1+stui。score2+stui.score3;/算总分和平均 stui。average=(float)stui。sum/4。0; printf(”是否要继续添加(按N&n退出)”); fflush(stdin); a=getchar(
6、); if(a=n|a=N) break;void search() /*查找并显示一个记录/ system(”cls);/*清屏*/ int number=0,i; printf(ttt 请输入要查找学生的学号:”); scanf(%d”,&number); printf(”学号t姓名t班级 语文 数学 英语 计算机 总分 平均分n”); for(i=0;iNUM;i+) if(number=stui。num) break;/*查找判断/ if(iNUM)printf(”dt%std%5d5d%5d6d7d8。2fn”,stui.num,stui.name,stui。classes,stui
7、。score0,stui.score1,stui。score2, stui。score3,stui。sum,stui。average); /输出学生信息/ elseprintf(”没找到该学生的信息n”);system(pause);void print() /按学期、按班级输出成绩函数/ system(cls”);char a; printf(1、按学期输出n”);printf(”2、按班级输出n);printf(3、返回n”);fflush(stdin);a=getchar();switch(a)case 1:print1();case 2:print2();case 3:zcd();de
8、fault:print(); void print1()/按学期int i,m;printf(”请输入学期:n);scanf(”d”,m);printf(”学号t姓名t班级 语文 数学 英语 计算机 总分 平均分n”);for(i=0;iNUM;i+) if(m=stui。term) printf(dtst%d%5d%5d%5d6d7d8。2fn”,stui.num,stui。name,stui.classes, stui。score0,stui.score1,stui。score2, stui。score3,stui.sum,stui。average); /*输出学生信息*/system(”
9、pause”);system(cls”);print();void print2()/按班级int i,j,k;printf(”请输入班级:n”);scanf(”%d”,&k); printf(”学号t姓名t班级 语文 数学 英语 计算机 总分 平均分n”);for(i=0;iNUM;i+) if(k=stui。classes) stui。sum=stui。score0+stui。score1+stui。score2+stui。score3; stui。average=stui。sum/4.0; printf(dt%std5d5d5d%6d7d8。2fn,stui。num,stui。name,
10、stui.classes, stui。score0,stui。score1,stui。score2, stui。score3,stui。sum,stui。average); /输出学生信息/ printf(输出不及格学生名单及成绩:n);printf(”学号t姓名t班级 语文 数学 英语 计算机 n”);for(i=0;iNUM;i+) for(j=0;j4;j+) if(stui。scorej60k=stui.classes) /*输出不及格学生名单及成绩/ printf(”dt%st%d5d5d5d6dn”,stui。num,stui。name,stui。classes, stui.sco
11、re0,stui.score1,stui。score2, stui。score3); break; system(”pause”);system(”cls”);print();void modify() /修改成绩函数/ system(cls); int number,i; printf(”ttt请输入要修改信息的学生学号:”); scanf(”ttt%d”,number); for(i=0;iNUM;i+) if(number=stui。num) break;/查找判断/ if(iNUM)/*查找判断/ printf(”请输入修改后的学生的信息:”);printf(” n请输入学生的学期:”
12、); scanf(”d”,stui。term); printf( n请输入学生的学号:”); fflush(stdin); scanf(”d”,stui.num); printf( n请输入学生的班级:); scanf(”%d”,&stui。classes); printf(”n请输入学生的姓名:”); scanf(”%s”, stui.name) ; printf(n请输入学生的语文成绩:); scanf(”d,stui。score0); printf(n请输入学生的数学成绩:); scanf(”d”, stui。score1); printf(”n请输入学生的英语成绩:”); scanf(
13、d”, stui.score2); printf(”n请输入学生的计算机成绩:”); scanf(d”, stui。score3); elseprintf(没找到该学生的信息n”);system(”paues”);system(”cls”);zcd();void sort() /*排序并显示函数*/ int i,j=0;int temp; for(i=0;iNUM;i+) stui.sum=stui.score0+stui。score1+stui。score2+stui.score3; stui。average=(float)stui。sum/4。0; for(i=0;iNUM-1;i+)fo
14、r(j=i+1;jNUM;j+)if(stui。sumstuj。sum)temp=stui.sum; stui。sum=stuj.sum; stuj。sum=temp; printf(学号t姓名t班级 语文 数学 英语 计算机 总分 平均分n); for(i=0;iNUM;i+) printf(%dtst%d5d%5d5d%6d7d%8。2fn,stui。num,stui。name,stui。classes, stui.score0,stui.score1,stui.score2,stui。score3,stui。sum,stui。average); /输出学生信息*/system(”paus
15、e”);system(cls);print(); void zcd()int n=0;char m;system(”cls”);/*清屏/ printf(”按任一键进入主菜单n ); /*按任意键进入主菜单*/ printf(*n”); printf(”tt沈阳师范大学软件学院欢迎您n); printf(”nttt- 欢迎您使用学生管理系统nnttttt-n); printf(*MENU*n”); printf(ttt1。 输入学生成绩记录 Input the recordn”); /*输入学生成绩记录/ printf(ttt2。 排序并显示 Sort to make new a filen)
16、; /*排序*/ printf(”ttt3。 按班级显示成绩单 Print the recordn); /显示*/ printf(ttt4。 查找个人成绩 Search record on namen); /查找/ printf(ttt5。 修改 Modify a recordn”); /修改*/ printf(”ttt6. 退出 Quitn”); /退出/ printf(”*n”); printf(nttt输入你的选择Enter your choice(17):”); fflush(stdin); m=getchar(); doswitch(m) case 1:input();zcd();b
17、reak; case 2:sort();system(pause”);zcd();break; case 3:print();system(pause”);break; case 4:search();zcd();break; case 5:modify();system(”pause”);zcd();break; case 6:exit(0); /如菜单返回值为7则程序结束/ default:printf(”错误命令); getchar();zcd(); while(1); void main() zcd(); 六、 调试与运行主菜单 成绩录入统计排序 输出成绩学号 姓名 班级 语文 数学
18、英语 计算机 总分 平均分2 2 2 22 22 22 2 68 178 8 8 8 9 9 9 35 8。750 0 0 0 0 0 0 0 0.000 0 0 0 0 0 0 0 0。000 0 0 0 0 0 0 0 0。000 0 0 0 0 0 0 0 0。000 0 0 0 0 0 0 0 0.000 0 0 0 0 0 0 0 0。000 0 0 0 0 0 0 0 0.000 0 0 0 0 0 0 0 0。000 0 0 0 0 0 0 0 0.000 0 0 0 0 0 0 0 0。00查找修改请输入要修改信息的学生学号:02请输入修改后的学生的信息请输入学生的学期:2请输
19、入学生的学号:34请输入学生的班级:3请输入学生的姓名:yangyong请输入学生的语文成绩:45请输入学生的数学成绩:56请输入学生的英语成绩:78请输入学生的计算机成绩:66七、 设计总结经过几周的课程设计,我学到了很多东西:巩固和加深了对编程的理解,提高综合运用本课程所学知识的能力。培养了我选用参考书,查阅手册及文献资料的能力.培养独立思考,深入研究,分析问题、解决问题的能力。经过实际编译系统的分析设计、编程调试,掌握应用软件的分析方法和工程设计方法。能够按要求编写课程设计报告书,能正确阐述设计和实验结果,正确绘制系统和程序框图。课程设计是把我们所学的理论知识进行系统的总结并应用于实践的良好机会,有利于加强我们用知识理论来分析实际问题的能力,进而加强了我们对知识认识的实践度,巩固了我们的理论知识,深化了对知识的认识,并为走向社会打下一个良好的基础.