ImageVerifierCode 换一换
格式:DOCX , 页数:21 ,大小:111.94KB ,
资源ID:19429477      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/19429477.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(学生成绩管理系统Word文件下载.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

学生成绩管理系统Word文件下载.docx

1、 88张辉灿 03 68 82 56王露 04 56 45 77陈东明 05 38 47. . 学生成绩信息文件2(2.txt),内容如下:陈果 31 57李华明 32 88 90 68张明东 33 48 42李明国 34 50 87陈道亮 35 47 58试编写一管理系统,要求如下:1)实现对两个文件数据进行合并,生成新文件3.txt2)抽取出三科成绩中有补考的学生并保存在一个新文件4.txt3)对合并后的文件3.txt中的数据按总分降序排序4)输入一个学生姓名后,能查找到此学生的信息并输出结果5)要求使用结构体,链或数组等实现上述要求.3本设计所采用的数据结构数据结构折半插入排序,直接排序

2、,通过调用函数查找,从结构体数组中查找。.4功能模块详细设计4.1 详细设计思想为了实现“学生成绩管理系统”,结合其设计要求及内容,有如下的详细设计思想。为了达到要求所说的界面美观,大方,故决定将文件1.txt和文件2.txt中的内容清晰的显示在界面上,便于使用者跟直观可见的看到程序的执行流程。首先,利用malloc函数在成绩文件的顶部申请空间,用于存放文件的标题。之后并将标题保存到hxy中。再次申请空间,有fscanf将文件的数据输入到文件中去。运用printf将成绩文件1.txt和2.txt打印到屏幕上。其次,新建一个文件3.txt。利用while循环和fprintf将文件1.txt和文件

3、2.txt存入文件3.txt中。并将文件3.txt打印到屏幕上。进行两种排序,即“直接插入排序”和“折半插入排序”。再次,利用while循环和if语句,查找出需要补考的学生,将需要补考的学生(即成绩中有不及格成绩的学生)存入文件4.txt中,并打印到屏幕上。最后,通过输入学生姓名,查找到所需要查找的学生。各模块实现:第一项:合并文件1.txt和文件2.txt#includestdlib.hstring.hchar hxy50; /成绩文件顶部的标题用hxy保存typedef struct student /单个学生成绩的记录 char name10; /姓名 int number; /学号 i

4、nt chinese; /语文 int math; /数学 int english; /英语 struct student *next;student,*gradelist;gradelist fileread(char *adress) /读取成绩文件 FILE * fp; if(fp=fopen(adress,r)=NULL) /打开文件 printf(文件打开出错); exit(0); gradelist file=(student *)malloc(sizeof(student); /申请空间 file-next=NULL; student * p=file; /操作指针 int n=

5、0; /循环标记,具体作用是在第一次循环时方便处理标题 while(!feof(fp) if(n=0) fgets(hxy,50,fp); /处理标题,并且文件指针移到第二行 if(n=1) /申请空间 (p-next)=(student *)malloc(sizeof(student); p=p-next; p- fscanf(fp,%s%d%d%d%d,p-name,&p-number,&chinese,&math,&english); /将文件的数据输入到链表中 n=1; if(fclose(fp) /关闭文件文件关闭失败 return file;void FilePrint(grade

6、list file) /将成绩文件打印到屏幕上 student *p=file;%sn,hxy); /打印标题 while(p-next!=NULL)%6s %2d %d %d %dnname,p-number,p-chinese,p-math,p- /循环打印第二项:生成新文件3.txt void merger() /合并文件 char * address1=1.txt,*address2=2.txt,*address3=3.txt; gradelist file1=fileread(address1),file2=fileread(address2); FILE *fp; if(fp=fo

7、pen(,w+)=NULL) /先新建一个3.txt,然后将1.txt和2.txt的内容输入到里面合并成绩文档失败,原因:建立文档出错 student *p1=file1,*p2=file2; fprintf(fp,%s /先输入标题 while(p1-,p1-name,p1-number,p1-chinese,p1-math,p1-/将文件1.txt 内容输入到文件3.txt中 p1=p1- while(p2-,p2-name,p2-number,p2-chinese,p2-math,p2- /输入2.txt内容输入到文件3.txt中 p2=p2- if(fclose(fp)第三项:直接插入

8、排序和折半插入排序if(i=1) /直接插入排序 for(int k=2;k=n;+k) if(L.rk.totalgradeL.rk-1.totalgrade) L.r0=L.rk; L.rk=L.rk-1; for(int j=k-2;L.r0.totalgradeL.rj.totalgrade;-j) L.rj+1=L.rj; L.rj+1=L.r0; if(i=2) /折半插入排序 int m; int low=1,high=k-1; while(low=high) m=(low+high)/2; if(L.r0.totalgrade=high+1; L.rhigh+1=L.r0; f

9、or(int q=n;q=1;q-) /将排序好的内容输入到3.txt,L.rq.name,L.rq.number,L.rq.chinese,L.rq.math,L.rq.english);第四项:查找学生void search(char *name) /按姓名查找 gradelist file=fileread( if(strcmp(name,p-name)=0)chinese,p- return;查无此人,请确定名字输入正确n流程图:. 4.2 核心代码/(以下为建立结构体struct student) /将1.txt 输入到文件3.txt中 /将2.txt输入到文件3.txt中void

10、extract() /抽取补考的成绩记录 char * address4=4.txt)=NULL) /新建文件4.txt抽取补考学生成绩记录建立新文件失败 gradelist file3=fileread(address3); student *p=file3; if(p-chinese)math)english)60) /补考条件void sort(int i) char * address3= /先将3.txt读入链表 if(remove() /删除3.txt删除文件出错 /学生个数)=NULL) /新建一个空的3.txt新建文件出错 /标题输入 n+; typedef struct /新

11、建一个结构数组 int totalgrade; gradenote; /成绩记录 typedef struct gradenote r100; /初始化了100了空间 grade_list; /待排序成绩表 grade_list L; p=file3; for(int t=1;tnext) /将链表的内容复制到结构数组里 strcpy(L.rt.name,p-name); L.rt.number=p-number; L.rt.chinese=p-chinese; L.rt.math=p-math; L.rt.english=p-english; L.rt.totalgrade=p-chines

12、e+p-math+p- if(i=1) /直接插入排序void search(char *name) /按姓名查找学生void main(void) int chioce; gradelist file1=fileread(),file2=fileread(现有成绩记录文件1n*n FilePrint(file1);现有成绩记录文件2n FilePrint(file2);第一步,合并成绩记录文件n merger();合并成功n system(PAUSE现有合并后的成绩记录文件3n gradelist file3=fileread( FilePrint(file3);第二步,抽取补考成绩记录n extract();现有补考成绩记录文件4n*

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1