




已阅读5页,还剩25页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
选题五 学籍成绩管理系统一、学籍成绩管理系统功能设计要求 1. 输入记录:将每一个学生的姓名、学号以及数学、物理、化学、英语、网络课程的成绩作为一个记录。该软件能建立一个新的数据文件或给已建立好的数据文件增加记录。 2. 显示记录:根据用户提供的记录或根据学生姓名显示一个或几个学生的各门功课的成绩和平均成绩。 3. 修改记录:可以对数据文件的任意记录的数据进行修改并在修改前后对记录内容进行显示。4查找记录:可以对数据文件的任意记录的数据进行查找并在查找前后对记录内容进行显示。5. 删除记录:可删除数据文件中的任一记录。6恢复记录:能恢复被删除的任一记录。7添加记录:可以在数据文件中添加记录并添加记录后对记录内容进行显示。8. 统计: (A)计算各门课程全班平均成绩及总成绩;(B)统计其课程全班得:100分、 9099分、8089分、7079分、6069分、59分以下学生人数及全班总人数的百分比;(C)按字符表格形式打印全部学生的平均成绩(包括各课总的平均成绩)。9保存数据文件功能。10打开数据文件功能。 经过逐层逐块、不断细化、求精过程,编写程序并进行测试、验证,可以逐个模块地分开调试,并通过文件包含或用工程文件的形式进行逐步联合调试。程序运行结果如下表所示(记录个数至少8个)。 学生学籍成绩统计表序号姓名数学物理化学英语网络平均01张望678988897581.602李小明788877947482.203张涛967993849689.604林圆879378988488.005黄佳798574928683.2 单科平均成绩81.4086.8082.0091.483.00二、学籍成绩管理系统程序设计基本结构框架1头文件说明如: #include#include#include#include定义结构类型;定义全局变量;定义、编写记录(数据)输入函数; 定义、编写记录(数据)显示函数;定义、编写记录(数据)修改函数; 定义、编写记录(数据)查找函数;定义、编写记录(数据)删除函数; 定义、编写记录(数据)恢复函数;定义、编写记录(数据)添加函数; 定义、编写记录(数据)统计函数;定义、编写数据文件保存函数; 定义、编写打开数据文件函数;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设计者: 电气信息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=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=getch();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各子程序函数程序:(程序设计较为匆忙,未曾优化,请见谅)#include#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; struct 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,,&temp1,&temp2,&temp3,&temp4,&temp5,&temp6,&student1.vs); student1.score1=temp1; 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.score1,student1.score2,student1.score3,student1.score4,student1.score5,student1.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,); 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; break; else printf(请输入正确数据!n); if(i=5|i=8) while(1) printf(请输入化学成绩: ); scanf(%f,&temp3); if(temp3=0) student1.score3=temp3; break; else printf(请输入正确数据!n); if(i=6|i=8) while(1) printf(请输入英语成绩: ); scanf(%f,&temp4); if(temp4=0) student1.score4=temp4; break; else printf(请输入正确数据!n); if(i=7|i=8) while(1) printf(请输入网络成绩: ); scanf(%f,&temp5); if(temp5=0) student1.score5=temp5; /* student1.av1=(temp1+temp2+temp3+temp5+temp5)/5; */ break; else printf(请输入正确数据!n); student1.av1=(student1.score1+student1.score2+student1.score3+student1.score5+student1.score5)/5; student1.vs=1;void print() /*输出*/ printf(|%-7s|%-7s|%-7.2f|%-7.2f|%-7.2f|%-7.2f|%-7.2f|%-7.2f|n,student1.num,,student1.score1,student1.score2,student1.score3,student1.score4,student1.score5,student1.av1); printf(-n); /*表头*/void handline() printf(-n); printf( 序号 姓名 数学 物理 化学 英语 网络 平均n); printf(|-|-|-|-|-|-|-|-|n);void menu() /*菜单*/ cleardevice(); clrscr(); printf(-=1) index-; else printf(已经是第一页!);void input() /*输入*/ char ch=0; cleardevice();clrscr(); printf(16-400|40032,32=11(8)15 输入功能); printf(nnn 本操作将清空原数据,确定继续?(输入Y或者N)); while(1) scanf(%c,&ch); if(ch=Y|ch=y|ch=n|ch=N) break; else printf(n请输入”Y“或”N“!n); if(ch=Y|ch=y) if(fp=fopen(temper,w)=NULL) printf(无法打开这个文件n); getch(); else addto(); fclose(fp);void output() /*输出*/ int i=0; char ch; cleardevice();clrscr(); cleartotal(); printf(16-400|40032,32=11(8)15 显示全部); if(fp=fopen(temper,r)=NULL) printf(无法打开文件n); else printf(nnn); handline(); while(!feof(fp) fscan(); if(student1.vs!=0)/*判断是否被删除*/ i+;statistics(); if(i=(1+index*7)&i(8+7*index) print(); tothandline(); fclose(fp); printf(1上一页,2下一页,输入其他键退出,现在第%d页,index+1); ch=getch(); if(ch=1) indexdown(); output(); else if(ch=2) indexup(); output(); /*struct result find(int w) char temp20,temp250,ch; char i; struct result res; res.f=0; res.p=0; printf(nnn 请选择您需要搜索的关键字:n1序号,2姓名(请输入1到2):); while(1) scanf(%c,&i); if(i=1|i=2) break; else printf(请正确输入1到2:); if(fp=fopen(temper,r)=NULL) printf(无法打开这个文件n); exit(0); printf(关键字:); scanf(%s,temp2); printf(n查询到的信息n); handline(); while(!feof(fp) res.p=ftell(fp); fscan(); if(i=1) strcpy(temp,student1.num); else if(i=2) strcpy(temp,); if(!strcmp(temp,temp2)&student1.vs!=0) res.f=1; print(); statistics(); if(w!=2) break; tothandline(); if(res.f=0) printf(nn查找不到需要的信息); fclose(fp); return res; */int find(int a) int r=0; char temp20,temp250; char i; position=0; /* rewind(fp); */ /*复位函数*/ printf(nnn 请选择您需要搜索的关键字:n1序号,2姓名(请输入1到2):); while(1) scanf(%c,&i); if(i=1|i=2) break; else printf(请正确输入1到2:); if(fp=fopen(temper,r+)=NULL) printf(无法打开这个文件n); exit(0); printf(关键字:); scanf(%s,temp2); printf(n查询到的信息n); handline(); while(!feof(fp) position=ftell(fp); fscan(); if(i=1) strcpy(temp,student1.num); else if(i=2) strcpy(temp,); if(a=1&!strcmp(temp,temp2)&student1.vs=1) r=1; print(); break; else if(a=2&!strcmp(temp,temp2)&student1.vs=0) r=1; print(); break; else if(a=3&!strcmp(temp,temp2)&student1.vs=1) r=1; print(); if(r=0) printf(nn查找不到需要的信息); /* position=ftell(fp); */ fclose(fp); return(r);void change() /*修改*/ int i=0,r=0; cleardevice(); clrscr(); printf(16-400|40032,32=11(8)15 更新内容); r=find(1); if(fp=fopen(temper,r+)=NULL) printf(无法打开这个文件n); exit(0); if(r!=0) printf(n输入您希望更新的内容n1 序号,2 姓名,3 数学成绩,4 物理成绩,5 化学成绩,6 英语成绩,7 网络成绩,8 所有信息,0 退出?n输入0到8:); scanf(%d,&i); if(i=0) choose(); scan(i); rewind(fp); /*复位函数*/ fseek(fp,position,0);/*转到这一行的起始位置*/ fprint(); handline(); print(); printf(ttt按任意键继续); getch(); fclose(fp);void search() clrscr(); find(3); getch();void delete() /*删除*/ int r=0; char ch; cleardevice(); clrscr(); printf(16-400|40032,32=11(8)15 删除); r=find(1); if(fp=fopen(temper,r+)=NULL) printf(无法打开这个文件n); exit(0); if(r!=0) printf(请确定是否删除!(输入Y或者N)); while(1) scanf(%c,&ch); if(ch!=Y&ch!=y&ch!=n&ch!=N) printf(n请输入Y或N!:); else break; if(ch=Y|ch=y) student1.vs=0; rewind(fp); /*复位函数*/ fseek(fp,position,0);/*转到这一行的起始位置*/ fprint(); printf(删除成功!); else printf(删除取消。); printf(ttt按任意键继续); getch(); fclose(fp);void nodelete() /*恢复*/* int r=0; char ch; cleardevice(); clrscr(); printf(16-400|40032,32=11(8)15 恢复); if(fp=fopen(temper,r+)=NULL) printf(无法打开这个文件n); else printf(n 以下是已经删除的数据:n); handline(); while(!feof(fp) fscan(); if(student1.vs=0) print(); fclose(fp); printf(-n); printf(*数 据 回 收 站*n); printf(-n); r=find(2); if(r=1) printf(确定要恢复吗?(输入(Y/N)):); while(1) scanf(%c,&ch); if(ch!=Y&ch!=y&ch!=n&ch!=N) printf(n请输入Y或N!:); else break; if(ch=Y|ch=y) student1.vs=1; rewind(fp); fseek(fp,position,0); fprint(); printf(恢复成功!); else printf(操作取消!); printf(ttt按任意键继续); getch(); fclose(fp);*/ int r=0; char ch; cleardevice(); clrscr(); printf(16-400|40032,32=11(8)15 恢复); if(f
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 餐厅大客户协议价格合同
- 企业加盟协议书模板模板
- 彩钢板代加工合同协议书
- 装修收取定金协议书范本
- 职业学校培训服务协议书
- 房屋销售合同补充协议书
- 线路施工安全合同协议书
- 中介售楼委托协议书范本
- 轻资产运营项目合同范本
- 公司如何签订租赁协议书
- 2025-2026学年人教版(2024)初中化学九年级上册教学计划及进度表
- 科技论文写作2-科研论文的基本格式与规范
- 网约车资格证考试题库与答案
- 腹膜后肿瘤诊断及鉴别诊断
- 2022中国幽门螺杆菌感染治疗指南
- 组织学技术特殊染色
- 德勤美团-中国医美市场趋势洞察报告-2021.01正式版
- 磁共振成像原理及功能磁共振
- 小学语文人教二年级上册 我最喜爱的玩具
- 2021年成都中医药大学辅导员招聘笔试试题及答案解析
- 高中英语3500词汇表
评论
0/150
提交评论