学生成绩管理系统实验报告_第1页
学生成绩管理系统实验报告_第2页
学生成绩管理系统实验报告_第3页
学生成绩管理系统实验报告_第4页
学生成绩管理系统实验报告_第5页
已阅读5页,还剩13页未读, 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 学生成绩管理系统 一、 程序设计目的和要求(1) 信息维护:要求:学生信息数据要以文件的形式保存,能实现学生信息数据的维护。此模块包括子模块有:增加学生信息、删除学生信息、修改学生信息(2) 信息查询:要求:查询时可实现按姓名查询、按学号查询(3) 成绩统计:要求:A输入任意的一个课程名(如数学)和一个分数段(如60-70),统计出在此分数段的学生情况。(4) 排序:能对用户指定的任意课程名,按成绩升序或降序排列学生数据并显示排序结果(使用表格的形式显示排序后的输出结果)(使用多种方法排序者,加分)二、 详细设计说明1. 实验程序分为4个模块如上图所示:1. 信息维护2. 信息查询3. 成绩

2、统计4. 排序2. 主函数定义:int main() int choose;loop:system(cls);printf(*n);printf(* 欢迎来到成绩管理系统! *n);printf(*n);printf(请选择您所需要的服务项目:n);printf(1、信息维护n);printf(2、信息查询n); printf(3、成绩统计n); printf(4、排序n);printf(5、退出系统n); printf(您的选择:);scanf(%d,&choose);system(cls);/*跳到下一页*/switch(choose) case 1:Mngstudent();/信息维护

3、goto loop;/*返回到主菜单*/ break; case 2:Mnginquire();/信息查询 goto loop;break; case 3:Mngcount();/成绩统计 goto loop;break; case 4:Mngsort(); goto loop;break; case 5:break;return 0;当为1选择信息维护当为2选择信息查询当为3选择成绩统计当为4选择排序当为5选择退出系统3. 信息维护模块函数定义:void Addstudent()/增加学生信息int Countstudent()/统计学生总数void Deletestudent()/删除学生

4、void Modifystudent()/修改学生void Mngstudent()/主页面显示部分分为:1、增加学生2、修改学生3、删除学生4、统计学生4. 信息查询void SearchStudent() /查找学生void Mnginquire() /显示部分5. 成绩统计void infcount() /统计void Mngcount() /显示部分6. 排序void infsort() /排序void Mngsort() /显示部分7. 结构体定义struct Student /图书信息 int studentnum; char studentname30;char result3;

5、三、 软件使用说明打开主函数main并且运行,按照要求进行操作四、 实验总结1.实验要注意实验的模块化,将每一个功能分块执行2.写代码时候调理要清晰3.对排序等基本操作要掌握清楚附件:主函数:/成绩管理系统主函数#include #include #include Student.h#include infinquire.h#include infcount.h#include insort.h/using namespace std;int main() int choose;loop:system(cls);printf(*n);printf(* 欢迎来到成绩管理系统! *n);print

6、f(*n);printf(请选择您所需要的服务项目:n);printf(1、信息维护n);printf(2、信息查询n); printf(3、成绩统计n); printf(4、排序n);printf(5、退出系统n); printf(您的选择:);scanf(%d,&choose);system(cls);/*跳到下一页*/switch(choose) case 1:Mngstudent();/信息维护 goto loop;/*返回到主菜单*/ break; case 2:Mnginquire();/信息查询 goto loop;break; case 3:Mngcount();/成绩统计 g

7、oto loop;break; case 4:Mngsort(); goto loop;break; case 5:break;return 0;信息维护:#include #include #include#include#include Student.hvoid Addstudent() /增加学生信息 FILE *fp;int number,result4,i;char name30;fp=fopen(students.txt,a);if(fp=NULL)printf(File open error!n);else printf(请输入所增加学生的学号、姓名、语文、数学、英语 :(请按

8、照顺序输入!)n); scanf(%d,&number); scanf(%s,&name);for(i=1;i=3;i+) scanf(%d,&resulti); fprintf(fp,%d %s %d %d %dn,number,name,result1,result2,result3); fclose(fp);printf(写入成功!n);/end function Addstudent;int Countstudent() /统计学生总数FILE *fp;int count=0; char ch;fp=fopen(students.txt,r);if(fp=NULL)printf(Fil

9、e open error!n);else while(ch=fgetc(fp)!=EOF) if(ch=n) count+; fclose(fp); return count;/end function Countstudentvoid Deletestudent() /删除学生FILE *fp;int number;int count=0;int i=0,j,k;Student student5000;int allstudent;allstudent=Countstudent();fp=fopen(students.txt,r);if(fp=NULL) printf(Files open

10、error!n);exit(0);elseprintf(请输入要删除的学生的编号:n); scanf(%d,&number); while(!feof(fp)fscanf(fp,%d %s %d %d %d,&studenti.studentnum,&studenti.studentname,&studenti.result1,&studenti.result2,&studenti.result3);i+;for(j=0;ji;j+)if(studentj.studentnum=number) for(k=j;ki-1;k+)studentk=studentk+1;allstudent=all

11、student-1;count=1;break;fclose(fp);if(count=0)printf(没有找到匹配的学生信息:n);else fp=fopen(students.txt,w); for(j=0;jallstudent;j+) fprintf(fp,%d %s %d %d %dn,studentj.studentnum,studentj.studentname,studentj.result1,studentj.result2,studentj.result3); fclose(fp); printf(删除成功!n);/end function Deletestudent;v

12、oid Modifystudent() /修改学生FILE *fp;fp=fopen(students.txt,r);int number;int allstudent;allstudent=Countstudent();int count=0;int i=0,j,t1,t2;Student student5000; if(fp=NULL) printf(Files open error!n);exit(0);elseprintf(请输入要修改的学生的学号:n); scanf(%d,&number); while(!feof(fp)fscanf(fp,%d %s %d %d %d,&stude

13、nti.studentnum,&studenti.studentname,&studenti.result1,&studenti.result2,&studenti.result3);i+;for(j=0;jallstudent;j+)if(studentj.studentnum=number)printf(该学生的原始信息:(学号、姓名、语文、数学、英语)n);printf(%d %s %d %d %d,studentj.studentnum,studentj.studentname,studentj.result1,studentj.result2,studentj.result3);co

14、unt=1;t1=j;printf(n请重新输入学生信息:n);printf(n学号:);scanf(%d,&studentj.studentnum);printf(n姓名:);scanf(%s,&studentj.studentname);printf(n语文:);scanf(%d,&studentj.result1);printf(n数学:);scanf(%d,&studentj.result2);t2=studentt1+1.studentnum;/实验过程中发现数据莫名丢失printf(英语:);scanf(%d,&studentj.result3); while(getchar()!

15、=n);break;studentt1+1.studentnum=t2;/上面程序结束后还原 fclose(fp);if(count=0)printf(没有找到匹配的学生信息!n); else fp=fopen(students.txt,w); for(j=0;ji-1;j+) fprintf(fp,%d %s %d %d %dn,studentj.studentnum,studentj.studentname,studentj.result1,studentj.result2,studentj.result3); fclose(fp); printf(修改成功!n);/end functio

16、n Modifystudent();void Mngstudent() /学生成绩管理系统int choose;int allstudent;int back=0;char c;printf(*n);printf(* 欢迎来到学生成绩管理系统! *n);printf(*n);while(back=0)if(!back) printf(请在下列项目中选择:n); printf(1、增加学生n); printf(2、修改学生n); printf(3、删除学生n); printf(4、统计学生n); printf(您的选择:); scanf(%d,&choose); printf(n); switc

17、h(choose) case 1:Addstudent();break; case 2:Modifystudent();break; case 3:Deletestudent();break; case 4:allstudent=Countstudent(); printf(书库中的学生总数为:%dn,allstudent); break; fflush(stdin);/*清除文件缓冲区*/ printf(您是否继续维护?); scanf(%c,&c); printf(n); if(c=n) back=1; else system(cls);/*清屏*/elseprintf(您输入的信息有误,

18、无权对学生信息进行操作!n);back=1;/end function Mngstudent;信息查询:#include #include #include #include infinquire.h#include Student.hvoid SearchStudent() /查找学生FILE *fp;Student student5000;fp=fopen(students.txt,r);int number,choose,i=0,j;int found=0;char studentname10; if(fp=NULL) printf(Files open error!n);exit(0)

19、;elseprintf(请选择查询方式:n);printf(1、按学号查询n);printf(2、按姓名查询n);scanf(%d,&choose);switch(choose) case 1:printf(请输入要查找的学生编号:n); scanf(%d,&number); while(!feof(fp) fscanf(fp,%d %s %d %d %dn,&studenti.studentnum,&studenti.studentname,&studenti.result1,&studenti.result2,&studenti.result3); i+; for(j=0;ji;j+) i

20、f(studentj.studentnum=number) printf(学生的学号、姓名、语文、数学、英语:n); printf(%d %s %d %d %d,studentj.studentnum,studentj.studentname,studentj.result1,studentj.result2,studentj.result3); found=1; break; if(found=0) printf(没有找到编号为%d的学生!n,number); break; case 2:printf(请输入要查找的学生姓名:n); scanf(%s,&studentname); while

21、(!feof(fp) fscanf(fp,%d %s %d %d %d,&studenti.studentnum,&studenti.studentname,&studenti.result1,&studenti.result2,&studenti.result3); i+; for(j=0;ji;j+) if(strcmp(studentj.studentname,studentname)=0) printf(学生的学号、姓名、语文、数学、英语:n); printf(%d %s %d %d %d,studentj.studentnum,studentj.studentname,student

22、j.result1,studentj.result2,studentj.result3); found=1; break; if(found=0) printf(没有找到名称为%s的学生!n,studentname); break;fclose(fp);printf(n);/end function SearchStudent();void Mnginquire() /查询系统int choose;int back=0;char c;printf(*n);printf(* 欢迎来到查询系统! *n);printf(*n);while(back=0) printf(请在下列项目中选择:n); p

23、rintf(1、查找学生n); printf(您的选择:); scanf(%d,&choose); printf(n); switch(choose) case 1:SearchStudent();break; fflush(stdin); printf(您是否继续查询?); scanf(%c,&c); printf(n);if(c=n) back=1; else system(cls);/end function MngLendStudent();成绩统计:#include #include #include#include#include infcount.h#include Studen

24、t.hvoid infcount() /统计 FILE *fp;int cla;int count=0;int i=0,j=0,k=0,h,l;int allstudent;char clas10;allstudent=Countstudent();Student student1000;fp=fopen(students.txt,r);if(fp=NULL) printf(Files open error!n);exit(0);elseprintf(请输入要排序的课程:(1代表语文 2代表数学 3代表英语)n); scanf(%d,&cla); printf(请输入要统计的课程分数段:n);

25、 printf(:n); scanf(%d,&l); switch(cla) case 1:strcpy(clas,语文);break; case 2:strcpy(clas,数学);break; case 3:strcpy(clas,英语);break; default:printf(nn您的输入有误!请重新输入:nn);break; while(!feof(fp)fscanf(fp,%d %s %d %d %dn,&studenti.studentnum,&studenti.studentname,&studenti.result1,&studenti.result2,&studenti.

26、result3);i+; for(j=0;jl&studentj.resultclah) studentk=studentj; k+; printf(%s成绩在%d到%d之间的学生数为:,clas,l,h); printf(%dn,k); fclose(fp); fp=fopen(tongji.txt,w); for(j=0;j); scanf(%c,&c); printf(n);if(c=n) back=1; else system(cls);/end function Mngcount排序:#include #include #include#include#include insort.

27、h#include Student.hvoid infsort() /排序 FILE *fp;int cla;int count=0;int i=0,j=0,temp,k=0,x=0;Student student1000;Student student1;fp=fopen(students.txt,r);if(fp=NULL) printf(Files open error!n);exit(0);elseprintf(请输入要排序的课程:(1代表语文 2代表数学 3代表英语)n); scanf(%d,&cla); switch(cla) case 1:x=1;break; case 2:x=2;break; case 3:x=3;break; default:printf(nn您的输入有误!请重新输入:nn);break; while(!feof(fp)/判断文件到达末尾fscanf(fp,%d %s

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论