《UCDOS操作系统下C语言课程设计学籍成绩管理系统》由会员分享,可在线阅读,更多相关《UCDOS操作系统下C语言课程设计学籍成绩管理系统(30页珍藏版)》请在金锄头文库上搜索。
1、选题五 学籍成绩管理系统一、学籍成绩管理系统功能设计要求 1. 输入记录:将每一个学生的姓名、学号以及数学、物理、化学、英语、网络课程的成绩作为一个记录。该软件能建立一个新的数据文件或给已建立好的数据文件增加记录。 2. 显示记录:根据用户提供的记录或根据学生姓名显示一个或几个学生的各门功课的成绩和平均成绩。 3. 修改记录:可以对数据文件的任意记录的数据进行修改并在修改前后对记录内容进行显示。4查找记录:可以对数据文件的任意记录的数据进行查找并在查找前后对记录内容进行显示。5. 删除记录:可删除数据文件中的任一记录。6恢复记录:能恢复被删除的任一记录。7添加记录:可以在数据文件中添加记录并添
2、加记录后对记录内容进行显示。8. 统计: (A)计算各门课程全班平均成绩及总成绩;(B)统计其课程全班得:100分、 9099分、8089分、7079分、6069分、59分以下学生人数及全班总人数的百分比;(C)按字符表格形式打印全部学生的平均成绩(包括各课总的平均成绩)。9保存数据文件功能。10打开数据文件功能。 经过逐层逐块、不断细化、求精过程,编写程序并进行测试、验证,可以逐个模块地分开调试,并通过文件包含或用工程文件的形式进行逐步联合调试。程序运行结果如下表所示(记录个数至少8个)。 学生学籍成绩统计表序号姓名数学物理化学英语网络平均01张望678988897581.602李小明788
3、877947482.203张涛967993849689.604林圆879378988488.005黄佳798574928683.2 单科平均成绩81.4086.8082.0091.483.00二、学籍成绩管理系统程序设计基本结构框架1头文件说明如: #include#include#include#include定义结构类型;定义全局变量;定义、编写记录(数据)输入函数; 定义、编写记录(数据)显示函数;定义、编写记录(数据)修改函数; 定义、编写记录(数据)查找函数;定义、编写记录(数据)删除函数; 定义、编写记录(数据)恢复函数;定义、编写记录(数据)添加函数; 定义、编写记录(数据)统计
4、函数;定义、编写数据文件保存函数; 定义、编写打开数据文件函数;2主函数结构如下:main()char i;int drive=DETECT,mode;initgraph(&drive,&mode, ); 初始化显示器为图形方式cleardevice(); 清屏幕setbkcolor(9); 设置屏幕背景颜色printf(16co4st8e320,170,0,360,300,70,2,4);printf(16-10|2048,24=2(14)9中南大学);printf(16-90|14055,55=11(13)9学籍成绩管理系统); printf(16-246|28020,20=8(12)9设
5、计者: 电气信息1020 XXX );printf(16-250|36020,20=8(4)9请按Enter键进入);getch(); 等待击键for( ; ;) 循环执行功能菜单cleardevice();setbkcolor(9);printf(16-5|3040,40=30(2)9* * * * * * 菜 单 * * * * * *);printf(16-130|10035,35=30(7)9a 输入);printf(16-400|10035,35=30(7)9b 显示);printf(16-130|14535,35=30(7)9c 修改);printf(16-400|14535,35
6、=30(7)9d 查找);printf(16-130|20535,35=30(7)9e 删除);printf(16-400|20535,35=30(7)9f 恢复);printf(16-130|26035,35=30(7)9g 添加);printf(16-400|26035,35=30(7)9h 统计);printf(16-130|31535,35=30(7)9i 保存);printf(16-400|31535,35=30(7)9j 打开);printf(16-130|36035,35=30(7)9k 退出);printf(16-400|38024,24=11(7)4请选择a至j);i=get
7、ch();if(i=k) break;else switch(i)casea: 调用记录输入函数;break; caseb: 调用记录显示函数;break; casec: 调用记录修改函数;break; cased: 调用记录查找函数;break; casee: 调用记录删除函数;break; casef: 调用记录恢复函数;break; caseg: 调用记录添加函数; break; caseh: 调用记录统计函数;break; casei: 调用数据保存函数;break; casej: 调用数据文件打开函数; break; 3各子程序函数程序:(程序设计较为匆忙,未曾优化,请见谅)#inc
8、lude#include#include#includestruct student char num20; /*序号*/ char name10; /*姓名*/ float score1; /*数学成绩*/ float score2; /*物理成绩*/ float score3; /*化学成绩*/ float score4; /*英语成绩*/ float score5; /*网络成绩*/ float av1; /*平均成绩*/ int vs; /*判断记录是否存在的变量*/;/*struct result int f; int p; */ struct student student1; s
9、truct student total; FILE *fp; char temper20; int index=0; int position=0;/*-*/*-*/ void fscan() float temp1=0,temp2=0,temp3=0,temp4=0,temp5=0,temp6=0; student1.vs=0; fscanf(fp,%s%s%f%f%f%f%f%f%dn,student1.num,student1.name,&temp1,&temp2,&temp3,&temp4,&temp5,&temp6,&student1.vs); student1.score1=tem
10、p1; student1.score2=temp2; student1.score3=temp3; student1.score4=temp4; student1.score5=temp5; student1.av1=temp6;void fprint() fprintf(fp,%-7s%-7s%-7.2f%-7.2f%-7.2f%-7.2f%-7.2f%-7.2f%-7dn,student1.num,student1.name,student1.score1,student1.score2,student1.score3,student1.score4,student1.score5,stu
11、dent1.av1,student1.vs);void scan(int i) /*输入*/ float temp1=0,temp2=0,temp3=0,temp4=0,temp5=0; if(i=1|i=8) printf(请输入学生序号: ); scanf(%s,student1.num); if(i=2|i=8) printf(请输入学生姓名: ); scanf(%s,student1.name); if(i=3|i=8) while(1) printf(请输入数学成绩: ); scanf(%f,&temp1); if(temp1=0) student1.score1=temp1; break; else printf(请输入正确数据!n); if(i=4|i=8) while(1) printf(请输入物理成绩: ); scanf(%f,&temp2); if(temp2=0) student1.score2=temp2;