ImageVerifierCode 换一换
格式:DOC , 页数:36 ,大小:220.54KB ,
资源ID:2280055      下载积分:3 金币
验证码下载
登录下载
邮箱/手机:
验证码: 获取验证码
温馨提示:
支付成功后,系统会自动生成账号(用户名为邮箱或者手机号,密码是验证码),方便下次登录下载和查询订单;
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

开通VIP
 

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

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  
声明  |  会员权益     获赠5币     写作写作

1、填表:    下载求助     索取发票    退款申请
2、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
3、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
4、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
5、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【精****】。
6、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
7、本文档遇到问题,请及时私信或留言给本站上传会员【精****】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。

注意事项

本文(学生成绩管理系统课程设计报告.doc)为本站上传会员【精****】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4008-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

学生成绩管理系统课程设计报告.doc

1、学生成绩管理系统课程设计报告 作者: 日期:36 个人收集整理 勿做商业用途 目录引言-1一、系统概述-2二、需求分析-2 1、系统需求-2 2、开发环境-4三、详细设计-6四、所遇到的问题和分析解决-15五、系统特色及关键技术-16六、结论及心得体会-16七、附录(源代码)-17参考文献-35 引言通过本课程设计,使自己更加系统地理解和掌握数据结构的基本概念;能自如地根据实际要求,设计相应的数据结构,并运用C或C+语言实现所设计的算法,编写较大型的程序,分析和解决实际应用问题,进一步加深、巩固所学专业课程的基本理论知识,理论联系实际,进一步培养自己综合分析问题和解决问题的能力。掌握C语言或C

2、+语言独立的编写、调试应用程序和进行其它相关设计的技能.此项目主要是考察我们对结构体、数组、文件等具体操作,以及对C语言语法的掌握,所以做成此项目要求比较高的设计要求,对整体有很熟悉的概括,同时调试过程也是很重要的,对程序界面的要求也比较高,要设计的合理同时也要美观一点,能够人性化的描述清楚你的各个功能,一目了然,对其他用户使用本程序简单易懂,这才能成本程序或本系统是成功的。对于学生成绩管理系统,此项目每年都有学生去做,但是能够在其他项目中脱颖而出,还要有自己的设计特色,用简单的语言详细描述系统的功能,这才是关键。这个设计能够练习我们的理解和运用结构化程序设计的思想和方法,掌握开发一个小型实用

3、系统的基本方法,学会调试一个比较长的程序的基本方法,同时掌握书写程序设计开发文档的能力。 1一、 系统概述 1、课程设计应完成的工作 (1)编写算法 (2)算法测试,并有具体的测试结果和结果分析 (3)撰写课程报告,内容包括: 封面 目录 课程设计报告正文 使用说明 参考文献 2、总体设计工作(包含几大功能模块) (1)输入学生信息并保存到文件 (2)读取文件并输出学生信息 (3)按学号及学期查询 (4)按姓名及学期查询 (5)按学号及学期修改信息 (6)插入信息 (7)按学号及学期删除信息 (8)按数据结构降序(冒泡)排序 (9)按总分降序(选择)排序 (10)统计各科成绩的总分和平均分 (

4、11)退出二、 需求分析 1、系统需求(1) 问题描述: 该系统实现对若干个大学生的学习成绩进行管理。至少包括以下信息: 学号、姓名、科目、成绩,学期。学期取值范围可为18。 2(2)功能要求:1使用中文菜单,界面设计和用户输入输出要人性化些;2. 将学生信息保存在文本文档中,具体对学生信息进行插入删除查询操作时,将保存在文本文档中的学生信息提取出来,保存在自己定义的数据结构中,然后再对该数据结构进行操作,所有操作完成,或者在相应的命令后,再将学生信息保存到文本文档中。3具有数据输入功能,输入的数据能最终保存在文件中;4具有数据删除功能,能最终从文件中删除;5排序功能,根据自己设计的数据结构,

5、设计排序算法6具有多种查询(如按学号查询、按姓名查询、按成绩查询等)及输出功能;7其它功能(如各种统计,统计每个学生所有课程的平均分,统计某门课程所有学生的平均分等等)8学生信息的修改(比如修改学生姓名,修改学生某门课程的成绩) (3)说明: 功能各方面越完善越好 自定义的数据结构可以使用数组,链表,树等,然后根据不 同的数据结构,设计不同的排序,查找算法。其中,排序算法至少有两种,可以使用多种数据结构来存放数据,然后在其上使用不同的排序算法。 若用数组,必须动态分配空间(文本文件中最好有一行表示学生人数) (4)、输入输出的形式本系统是一个学生成绩管理系统,采用VC+6.0 编译器作为开 发

6、环境,这个环境是我们在学习C+的平台。输入数据类型主要是char、int、float等数据类型,输入内容包括:学期、学号、姓名、高等数学成绩,数据机构成绩,组成原理成绩,总分,平均分等数据.用户在输入学生数据时要保证输入数据格式的正确性,系统不会自动检测输入的数据是否正确,输出形式与输入形式类似,根据需要可以选择显示输入的各项内容,还可以选择显示计算好平均分后并排序后的记录,显示内容包括:学期、学号、姓名、高等数学成绩,数据机构成绩,组成原理成绩,总分,平均分等数据. 32、 开发环境Visual C+不仅仅是是一个C+编译器,而是一个基于Windows操作系统的可视化集成开发环境,这种环境开

7、发出来的软件稳定性好、可移植性强,可以编制各种各样的Windows应用程序。三、详细设计 开始1、系统流程图 主界面输出学生成绩输入学生成绩插入学生成绩按单科排序按总分排序删除学生信息退出本系统查询学生信息修改学生信息 结束2、界面设计主界面:在此界面用户可以选择要操作的选项,回车之后即可进入相关的页面进行操作(例如:选择1 ,即可进入输入学生数据页面)在本界面里用户可以输入学生相关的信息数据,按照提示进行操作即可,例如:所有操作均有提示语,比较人性化的管理,易懂,简单.3、大概设计模块(1)先编入系统所需的库函数,从而使程序可运行.#include#includeinclude (2) Ma

8、in()函数的设计 在main()函数中主要运用dowhile循环语句和switch()case选择判断语句来调用相关功能模块。系统的运行是在一个永真的循环里进行的,只有在主界面并选择“退出时,才会跳出永真循环,并退出程序.(3) 主界面的设计 在主界面中包括“输入学生信息并保存到文件 读取文件并输出学生信息 按学号及学期查询 按姓名及学期查询 按学号及学期修改信息 插入信息 按学号及学期删除信息 按数据结构降序(冒泡)排序 按总分降序(选择)排序 统计各科成绩的总分和平均分 11退出”等全部的功能,之所以设计这麽一个主界面,一是因为能使用户对程序操作的流程更加清晰简明,二是保证了用户同时只能

9、对一个文件进行操作系统的要求,保证了系统不会打开文件紊乱或者出现致命的错误。每个函数体如下:个人收集整理,勿做商业用途文档为个人收集整理,来源于网络Void main(); /主函数void input(Student *r); /输入学生信息及数据void output(Student r); /输出学生信息及数据void searchnum(Student *r); /按学号及学期查找学生信息void searchname(Student r); /按姓名及学期查找学生信息void change(Student *r); /按学号及学期修改学生信息Student *insert(Stude

10、nt *r); /插入学生信息void shanchu(Student r); /按学号及学期删除循声信息void maopao(Student r); /按数据结构降序(冒泡)排序void xuanze(Student *r); /按总分降序(选择)排序void tongji(Student r); /统计各科总分和平均分信息4、详细设计思想(1)确定语言算法 由于之前都没有做过类似的设计,所以一时间不能够确定到底使用何种语言来设计本系统,所以在网上看了一些其他人设计的程序,链表的、数组的,C+的,各种各样的,也不知如何选择,但是仔细地看了其中的设计思想,最终还是用C+和指针数组的来做,一是

11、觉得本人对链表掌握的不是很熟练,那么在设计过程中容易产生不能理解的错误,耽误时间,二是想运用C+,可以巩固一下所学的数据结构的知识,之前做实验的时候一直用C来做,都没怎么用所学的知识,这时候想练练.就这样确定了整体的结构算法。(2) 确定程序主要功能模块 这个就比较简单了,主要是根据系统设计的说明及要求来设计,从而设计了十大功能模块,有文件操作,有系统维护功能,排序和统计功能,有输入输出等基本功能,比较人性化,添加了较多的提示语。这个程序的主要功能时输入学生的学号,姓名,学期和三科成绩来对其进行存储,在存储后可以对学生的成绩按学号及学期或姓名及学期来进行查询,同时输出此同学的平均分及总分,之后

12、可以对某个同学的成绩进行各种操作,例如修改,删除等,同时还可以对学生们的成绩按照总分或单科成绩排序,在整个过程中所做的操作都会保存到student.txt”文件中并显示.(3) 系统结构体的设计Student 总分平均分成绩三学期学号成绩二姓名成绩一struct Student /结构体int term;/学期int num;/学号char name12;/姓名float mark1;/成绩float mark2;float mark3;float sum;/总分float average;/平均分; Student结构体说明表名称属性说明term数据成员说明学生学期num数据成员说明学生学号

13、name数据成员说明学生名字mark1数据成员说明学生高等数学成绩mark2 数据成员说明学生数据结构成绩mark3数据成员说明学生组成原理成绩sum数据成员说明学生总成绩average数据成员说明学生平均成绩(4) 各功能模块的设计*主函数模块 用函数void main()来实现 主要是来显示主菜单,使用户选择操作.首先定义一个指针数组(全局使用)Student *p=(Student )new Studentnum;在此处num是指学生个数,并不是学号,之前有定义的(不要弄混了),在这里应用了dowhile和switch-case语句来进行选择,是个比较简单实现的模块。最后若选择“11”则

14、是保存记录并退出永真循环。*输入学生记录模块 用函数void input(Student r); 来实现 主要功能用来对学生的成绩进行收集和输入。首先会有个提示“输入最初要求的学生数,之后跳出主菜单,选择1,进入输入模块输入所需学生个数的学生信息,比如学期,学号,姓名,成绩等。输完之后会自动跳出主菜单,根据主菜单来在此基础上进行操作.期间会有一些提示语,按此操作即可。根据if和for语句来判定期间是否有重复学号输入,在本操作中,允许有重复学生姓名出现.在此模块中,用到了文件操作的指针FILE *fp;同时也用到了一个控制变量t,它是用来判定的条件变量,t=1表示找到了与之重复的学号,t=0表示

15、未出现重复学号.在此期间会根据语句算出总分和平均分,并默认按学号排序保存到文件中去.之后返回主菜单.写文件操作代码:if(fp=fopen(”student。txt”,w”)=NULL) cout文件不能打开”endl;exit(0); for(n=0;ni;n+)fprintf(fp,%d s %。1f .1f %.1f d 。1f %.1f,rn。num,rn。name,rn.mark1,rn.mark2,rn.mark3,rn.term,rn。sum,rn.average);fprintf(fp,”n”);fclose(fp);cout”文件已经写入”endl;*显示学生记录模块 用函数

16、void output(Student r);来实现 主要功能是用来显示学生的信息进行输出.在系统已经录入了学生资料的前提下,只用该功能可以显示学生的信息资料等等。同时也会自动跳出主菜单进行后续操作。主要的程序代码就是从文件的读操作和界面显示操作。其中stew()指的是两字节之间的间隔,在括号中填入该有的数字就会有相应的间隔,从而使输出有一定的美感。读文件操作代码:if((fp=fopen(”student.txt”,”r)=NULL) cout文件不能打开endl;exit(0); for(int n=0;nnum;n+)fscanf(fp,dsf%f%fdff”,rn.num,rn.nam

17、e,&rn.mark1,&rn。mark2,&rn。mark3,rn.term,rn。sum,&rn.average);fclose(fp);cout文件已经读入”endl;*插入学生资料模块 用函数Student insert(Student r);来实现 主要功能是用来添加学生资料,成绩。若显示时没有此学生的信息,就可以使用本模块来进行添加。在此模块代码中定义了另一个指针数组:Student *y=(Student *)new Studentnum+1;用来存放新添加的学生记录。再利用for循环进行输入新学生记录,for(m=0;mnum;m+) ym=rm;先将指针数组r中的内容赋给y,

18、之后添加语句r=y;将y的地址送给r,这样可以保证新输入的记录可以在全程序中使用,使其变成全局变量,这样也可以将新输入的记录保存到文件中去,最后会有一个提示语句cout”是否继续输入?(继续,输入y,否则输入其他)endl;若输入y则继续输入,否则将返回主菜单,本模块功能到此结束。*按学号及学期来查找学生记录模块 用函数void searchnum(Student *r);来实现 主要功能时用来查找学生记录。首先会有提示输入学号及学期,再用for循环语句和if判断语句来进行查找,if(rm.num0=n0rm.term=k)若找到则显示学生记录并跳出循环;if(rm。num0!=n0&rm.t

19、erm!=k) 若没有则提示”该学号不存在,或没有这个学期的成绩!。*按姓名及学期来查找学生记录模块 用函数void searchname(Student *r) 来实现 主要功能也是用来查找学生记录的。首先会有提示输入姓名及学期,再用for循环语句和if判断语句来进行查找,if(rm。name0=n0&rm。term=k)若找到则显示学生记录并跳出循环;if(rm.name0!=n0rm.term!=k) 若没有则提示”该姓名不存在,或没有这个学期的成绩!”。*-查找输出语句实现的代码如下: cout学号setw(6)姓名”setw(10)”高等数学setw(10)数据结构setw(10)”

20、组成原理”setw(6)学期setw(6)总分”setw(8)”平均分”endl;coutrm。numsetw(6)rm.namesetw(7)rm.mark1setw(10)rm.mark2setw(10)rm.mark3setw(8)rm。termsetw(6)rm。sumsetw(8)rm。averageendl;*修改学生记录模块 用函数void change(Student *r)来实现 主要功能是用来修改学生记录。首先也要有个判断语句,来看看要修给的学生是否存在,这个是通过学号及学期来判断的(学号是不会有重复的),这里会有提示输入学号及学期,之后是for和if语句,if(rm.nu

21、m=n&rm.term=k)若存在则先输出修改之前的信息,查看是否正确。若正确,则修改此学生记录,这里有个while循环语句,和switchcase选择语句,用来选择修改哪科成绩,和是否进行再修改记录(通过选择Y或y来实现).最后将修改过后的记录保存到文件中去,并输出提示”文件已修改并写入”。*按学号及学期删除学生记录 用函数void shanchu(Student *r)来实现 主要功能是用来删除学生记录。首先有个度文件的操作,之后会有判断语句,根据所输入的学号及学期,来显示删除前的信息记录,添加for循环语句,循环把后一位的信息提前一位,整体数量减一,来进行全局变量的修改,之后再把修改过后

22、的信息记录保存到文件中去。在现实中会有由于某些原因而不在学校的同学的记录,这时候就要对其记录进行删除操作,这样可以使系统及时更新并得到优化。*按数据结构成绩(冒泡)降序排序模块 用函数void maopao(Student *r)来实现 主要功能时是用来对学生的记录来按单科成绩进行排序.这样方便对某科成绩有个大致的了解。首先会有一个读文件操作,为排序做基础。 本排序使用冒泡排序。它有两个优点:一是“编程复杂度”很低,很容易写出代码;二是具有稳定性,这里的稳定性是指原序列中相同两元素的相对顺序仍然保持到排序后的序列。冒泡排序时进过n1趟子排序完成的,第i趟子排序从第1个数至第n+1个数,若第i个

23、数比后一个数大(则升序,小则降序。本程序一律采用降序)则交换两数.本程序中冒泡排序代码如下:for(int k=0;knum-1;k+)for(int m=0;mnumk;m+) Student max;if(rm。mark2rm+1.mark2) max=rm+1;rm+1=rm;rm=max; cout”排序完毕endl; 排序之后,将排序之后的结果写入文件,再打开文件的时候,里面显示的就是按单科成绩排序后的结果.*按总分(选择)降序排序 用函数void xuanze(Student *r)来实现 主要功能时是用来对学生的记录来按总分成绩进行排序。这样方便对学生总体有个大致的了解。首先会有

24、一个读文件操作,为排序做基础。 本排序使用选择排序.其基本思想是:n个记录的文件的直接选择排序可进过n1趟直接选择排序得到有序结果:初始状态,无序区为R1.。n,有序区为空.第一趟排序 在无序区R1.n中选出关键字最小的记录Rk,将它与无序区的第一个记录R1交换,使R1.n和R2。n分别变为记录个数增加1个的新有序区记录和记录数减少1个的新无序区。 .。.。 第i趟排序 第i唐排序开始时,当前有序区和无序区分别为R1.i1和R(1in1)。该趟排序从当前无序区中选出关键字最小的记录Rk,将它与无序区的第一个记录与R交换,使R1。i和R分别变成为记录个数增加1个的新有序区和记录个数减少1个的新无

25、序区。 这样,n个记录的文件的直接选择排序可经过n1趟直接选择排序得到有序结果。本程序中选择排序代码如下:for(int i=0;inum;i+)int max=i;for(int j=i;jnum;j+)if(rmax。sumrj.sum)max=j;Student temp;temp=rmax;rmax=ri;ri=temp;cout的方向问题,函数的返回值等问题,虽然容易改掉,但是很容易养成不好的习惯,而且还会浪费时间,所以在一开始写的时候就要很仔细,这样才能保证程序编的精细,同时若出现很多这样的错误的话,在编写程序的时候也会心里烦的,所以在编程的时候要认真仔细.6、 文件的写入与读出刚

26、开始时对文件的操作不是很明白,一直不能很好的操作文件,直到最后验收的时候,仍旧出现了严重的问题,就是对已经存在的文件读取问题,通过”读取文件并输出学生信息”,将数据从文件中读取,但是不能够正常的读出,最后把读文件的操作语句进行仔细检查后,发现语句的顺序有点问题,把fscanf()语句进行再修改后就能够正常的读取文件了。7、 内存的分配问题 对于初学者的话对内存的分配和释放问题是比较抽象的和模糊的问题,在排序是之前就出现了交换数据困难的问题,以及内存分配空间繁琐释放空间不及时的问题,造成空间的浪费,使得程序运行时效率较低,因此最后采用了顺序存储记录的方式,这就能改变前面所出现的问题。8、 较小的

27、问题方面 其余的就没什么比较大的问题了,基本上只要细心一点的话就可以正确调试了。五、 系统特色及关键技术 其实在本程序的设计过程当中,没有很吸引人的关键技术,因为本人的C语言或C+语言都不是学的很好,所以当初设计的时候就只是想把功能都实现就好了,尽可能的把所要求的功能都编进程序,这样就觉得很满足了。所以都是设计的比较简单易懂的语言,这样自己能够更明白一些,所以就没有时间去细细地去设计自己的程序。本程序要说有什么值得说的,那就只有人性化这点了,在设计成学的时候,因为自己怕弄混了,所以添加了很详尽的提示,这样在编程的过程中或调试的时候都能够比较快的运行.还有就是尽可能的应用了do-while语句和

28、switchcase语句,这两个语句在之前不是很常用,所以在这个程序中试炼了一下,虽然在编写的过程中总是出错,但还是成功的用好了,也是程序有条理一些.我也知道这些东西别人可能比我弄得还要好,但是我在我所学的知识中成功的应用了这些,我觉得就是好事,就是进步。六、 结论及心得体会 一周多的课程设计,终于成功的验收了,虽然有些疲惫,但还是有很多的收获的,像计算机组成原理的课设一样,我又一次巩固了所学到的知识,之前的学习只是停留在理论基础上,现在自己动手操作试验后,才是真正的理解及体会。C+也学了近一年,有很多知识都是似懂非懂,通过平时上机操作,自己也了解了一些,但让我有了更深的理解和更好的认识,则是

29、在这次的课设上,之前的困惑也通过这次的课设解决了一些,虽然还是不能够全面的理解,但是有进步就很高兴。 在课程设计之前,因为有了综合实验的经验与教训,明白了写代码这一步是非常重要的,因为当你把代码输进去之后,并编译让其运行,发现通过不了,再来检查出问题,是很费费力的事情,因此分析和规划代码是很重要的,最重要的是要把逻辑结构写好,这样就不会出现大问题,写代码就要先找出核心的内容,用多种方法来实现核心部分,这样可以尽可能的避免发现逻辑或编译不支持的错误。 通过本次论文设计,我初步学会了论文设计的基本方法,学会了怎样去借鉴别人的方法和经验,知道了如何整合资料和处理这些资料的能力,这位以后做毕设的论文打

30、下了基础,使我感觉比较好的是有一种成功的喜悦,虽然在编译的时候会经常因为一些小的错误而心烦意乱,但是也不失为一件好事,失败的越多积累的经验越丰富,对人的考验也比较多,那么在最后编译成功时的喜悦就越浓烈,也是自己的能力有了进一步的提高.由于知识和经验的不足,这个程序编写的不是很尽如人意,但是融合了自己的心血,就觉得是最好的,所以在以后还是需要较多的努力的,还是会在以后的学习过程中不断地提高和改进的。七、 附录(源代码)#include /文件和标准控制台的输入输出#includestdio。h struct Student /结构体int term;/学期int num;/学号char name

31、12;/姓名float mark1;/成绩float mark2;float mark3;float sum;/总分float average;/平均分;int num=0;void input(Student r); /输入void output(Student *r); /输出void searchnum(Student *r); /按学号及学期查找void searchname(Student r); /按姓名及学期查找Student *insert(Student *r); /插入信息void shanchu(Student r); /按学号及学期删除信息void maopao(Stu

32、dent *r); /按英语降序排序void jisuanji(Student *r); /按计算机降序排序void shuxue(Student *r); /按数学降序排序void xuanze(Student *r); /按总分降序排序void tongji(Student r); /统计各科总分和平均分信息void main()coutnum;Student p=(Student )new Studentnum;/定义指针数组,存放学生个数int m;docoutendl;coutendl;coutt*菜单栏*nendl;coutt* 1 输入学生信息并保存到文件 2 读取文件并输出学生

33、信息 *”endl;coutt* 3 按学号及学期查询 4 按姓名及学期查询 *endl;coutt 5 按数学降序排序 6 插入信息 ”endl;coutt7 按计算机降序排序 8 按英语降序排序 endl;cout”t 9 按总分降序排序 10 统计各科成绩的总分和平均分 *endl;coutt* 11 退出 *”endl;coutt*n”endl;coutm;switch(m)case 1: input(p);break;case 2:output(p);break;case 3: searchnum(p);break;case 4: searchname(p);break;case 5

34、: shuxue(p); break;case 6: p=insert(p);break;case 7: jisuanji(p);break;case 8: maopao(p);break;case 9:xuanze(p);break;case 10: tongji(p);break;case 11:break;while(m!=11); void input(Student r) /输入信息FILE fp;int n=0;int i;int t=0; /t为控制标量,1为找到,0为未找到 coutendl 请输入学生信息 =”endl;for(i=0;inum;i+)coutri。term;cout”请输入第=1)for(n=0;ni;n+)if(rn.num=ri.num) cout该学号已存在!”endl;t=1;if(t=1)/表示有重复i;t=0;continue;coutri.name;coutri。

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服