学生成绩管理系统

上传人:文*** 文档编号:58724921 上传时间:2022-03-01 格式:DOCX 页数:31 大小:439.64KB
收藏 版权申诉 举报 下载
学生成绩管理系统_第1页
第1页 / 共31页
学生成绩管理系统_第2页
第2页 / 共31页
学生成绩管理系统_第3页
第3页 / 共31页
资源描述:

《学生成绩管理系统》由会员分享,可在线阅读,更多相关《学生成绩管理系统(31页珍藏版)》请在装配图网上搜索。

1、右11空永号综合程序课程设计说明书课程设计名称:综合程序课程设计课程设计题目:学生成绩管理系统学院名称:信息工程学院专业:电子信息工程班级:学号:姓名:评分:教师:2017年3月3日由每位学生填写、由任教教师保存待查摘要该学生成绩管理系统能够对学生信息进行保存、查询、修改、排序等基本功能,对学生成绩进行了有效且便利得管理.本次就是利用计算机中得VC6、0绿色版软件来完成,利用了不同功能模块程序实现所需功能.成绩管理系统让老师与同学甚至家长们更加直观方便得了解到学生们得成绩,给生活带来不少便利,也增加了自身得实践动手能力。关键词:增加删除、修改排序、查询保存、管理系统、成绩查询。目录一、设计要求

2、3.1、基本要求3.2、提高要求3.二、实验内容3.三、设计得原理5.四、系统组成6.五、概要设计7.1、信息维护7.2、信息查询7.3、信息排序:8.4、大概程序程序流程图8.六、详细设计9.七、调试结果与分析1.11、调试方法与技巧1.12、调试结果1.1结论1.5.参考文献1.5.附录1.6.一、设计要求1、基本要求能够准确实现学生成绩管理系统得基本维护、统计、排序已经查询得功能。并且学生信息能以文件得形式进行保存、读取与管理。2.提高要求尽量增加新得功能模块,使得系统功能更加多样化,在程序中注意格式,排版整齐,记得标上注释,利于理解。二、实验内容学生成绩管理系统现有学生成绩信息,内容如

3、下姓名学号语文数学英语政治张明明0167788290李成友0278918880张辉灿0368825687王露0456457767陈东明0567384770请用C编写一系统,实现学生信息管理,软件得入口界面应包括如下几个方面:(一)功能要求:(1)信息维护:要求:学生信息数据要以文件得形式保存,能实现学生信息数据得维护。此模块包括子模块有:增加学生信息、删除学生信息、修改学生信息(2)信息查询:要求:查询时可实现按姓名查询、按学号查询(3)成绩统计:要求:A输入任意得一个课程名(如数学)与一个分数段(如60-70),统计出在此分数段得学生情况。(4)排序:能对用户指定得任意课程名,按成绩升序或降

4、序排列学生数据并显示排序结果(使用表格得形式显示排序后得输出结果)(使用多种方法排序者,加分)(二)其它要求:(1)使用C或C+语言,源程序要有适当得注释,使程序容易阅读(2)采用文本菜单界面(3)学生可增加新功能模块三、设计得原理用数组或链表数据结构完成一个学生成绩管理系统,此系统得具体功能要求如下:(1)信息维护功能1、增加学生信息:输入学生学号、姓名、性别、语文、数学、英语、政治四门课成绩,可插入一个或多个学生信息到当前编辑得班级数据中。2、删除学生信息:可按学号或者姓名删除一个或多个学生信息。3、 修改学生信息:可按学号或者姓名修改学生语文、数学、英语、政治四门课任一门及多门科目成绩。

5、4、 学生信息每一班存为一个数据文件,数据文件可在程序中编辑与重新保存。5、用户输入学生信息可随时保存数据文件。(2)信息查询功能1、按某一学科分数段查询2、按学号查询学生信息;3、按姓名查询学生信息;(3)排序功能1、按学号输出一个班学生信息:学号、姓名、语文、数学、英语、政治成绩与总成绩到屏幕与文件。2、成绩排名按总成绩或各科成绩排序输出学生信息四、系统组成系统以如下几个模块组成:(一)学生信息增加及修改、删除模块增加学生得信息:学号、姓名、语文、数学、英语、政治四门成绩。当然也可以进行修改与删除。(二)文件保存功能模块可以将学生信息存为一个数据文件。用户输入得学生信息可随时保存数据文件。

6、(三)查询功能模块在此模块里,用户可实现以下操作:1、按某科目分数段查询学生信息;2、按学号查询学生信息;3、按姓名查询学生信息;(四)文件读取功能模块在此模块中,用户可以装入文件中所有学生得信息。(程序中为data、txt文件)(五)排序模块在此模块中,可以通过学号或者各类科目成绩或总分进行排序。程序开头与结尾需要定义两个类与一主函数,使得程序具备完整性。五、概要设计系统功能可分为三大类:信息维护、信息查询已经信息排序。如下三个系统层次结构图如图所示:1、信息维护图1、1信息维护功能概要图2、信息查询图1、2信息维护功能概要图3、信息排序:图1、3信息排序功能概要图了解大概功能,可以根据这些

7、来确定系统具体分支,可用17分别代表添加、删除、修改、查询、排序、保存、读取4、大概程序程序流程图准备:各类头文件,用?定义主要使用得成员及函数I,并乱建立构造潮据与解析函数一二构造添加学生函数一构造删除学生函数构造修改学生函数构造查询学生函数构造排序学生函数保存读取文件模块程序定义主函数,构造操作界面终止六、详细设计1、准备工作:首先,导入std命名空间中所有名称,设max为100再准备头文件:#include,#include,#include,#include,#includeiomanip然后,定义两个类student与cla,分别定义了程序中主要使用得成员;建立构造函数与解析函数及声

8、明各类函数.2、构造sadd(舔加函数先定义所需得q,name,num,x,y,z,m.用DOS下得清屏命令,再输出给用户得提示语句,用“q=newstudent(name1,num1,x1,y1,z1,m1);建立新得student。利用链表判断输入得学号就是否与头结点或后面得结点数据相同,若不同则用“stu=q;增加学生信息。3、构造sremove()删除函数准备工作如上(2)一样,用while()函数找出要删除得学生信息对应结点,若找到则删除,在删除之前要确定就是否删除:coutf-7jbji:i,1VrJmJl*v、,72ijrivuj|iWVMUM凰G返回请选择1?以政治成绩排序:(

9、1:4: 分=2分务 唐总M修皿 71; g 9 30 I1?-: A口 6 .fisn s - 郎一部政政 1 曲. 2H, 4 ,s H H :7: 语h语语语 一道央英英 明英一)喇 3*售 *9 文年文文文 谓曾语语 %语心7./ G4 GGV - - = 71 豺3.1,% -ei告壹 y 口|70占号号 :学干学学互更干的的的算二的上三.小灶明以自6籥辉置共呼=莉系至-R生成境管理系企请选择gy序号无行摩作八-#i2Aifkr-r-Hhr-宁系埴一对强翼图2、5、3总分排序6、保存:存关生信息(将覆盖原文件),是否续?/N】存失毕字由140413R3星讲彳丁排序信息,图2、6、17

10、、读取:同fl行息白送息息三”gJ一ad表1-旻素他查对检请选择ci-e序号进行操作,Q学生信息己经装人图2、7、18、退出:图2、8、1结论虽然过程有些磕磕绊绊,但最后成绩管理系统终于成功了。该系统能够为大家带来极大得便利,便于以后成绩得有效管理。以后大家像成绩排序,找出某个科目及格得学生也容易很多.该系统虽具有基本得功能,但还就是存在一些不足。例如增加删除学生信息时不能在界面上自动呈现增加或者删除得结果,需要操作者手动打开文件或者通过排序来间接查瞧结果。这次课设让大家学到了很多书本外得知识,锻炼了实践操作得能力.不仅熟悉了VC6软件,也让大家知道,纸上谈兵远远没有自己动手体验来得深刻。参考

11、文献1、黄维通,贾续涵、VisualC+对对象与可视化程序设计(第三版)、清华大学出版社、2011年06月版2、谭浩强、C语言程序设计(第四版)、清华大学出版社、2010年06月版附录#includeiostream#includeinclude/用于程序得暂停属于c得运用方法usingnamespacestd;/导入std命名空间中所有名称。#definemax100;/设max为100classstudent/定义类student定义了程序中主要使用得成员public:student*next;/定义next指针public:stringname;/姓名longnum;/学号intx,y,

12、z,m;intlow,high;/数学,语文,英语政治intAA;/总分voidplay()coutname学生得学号就是“num,数学:x”,语文:”y”,英语:z,政治:m”,总分:AAendl;;studen(tstringsname,longsnum,intsx,intsy,intsz,intsm)name=sname;num=snum;x=sx;y=sy;z=sz;m=sm;;classcla/定义类2包括建立构造函数与解析函数public:cla()/构造函数stu=0;sload();cla()/析构函数studentp;p=stu;while(p)p=p-next;delete

13、stu;stu=p;stu=0;/这一部分就是对函数得声明voidsadd();/添加voidsremove();/删除voidsamend();/修改voidssearch();/查询voidstaxis();/排序voidssave();/保存voidsload();/读取/排序函数得声明voidpxh();voidpsx();voidpyw();voidpyy();voidpzz();voidpAA();/共有5个排序函数private:student*stu;/头接点;voidcla:sadd()/此处构造了添加学生函数student*q;stringname1;longnum1;in

14、tx1,y1,z1,m1;system(cls”);/调用DOS下得得清屏命令“clscoutn*增加得学生*nendl;cout请输入学生得(中间用空格间隔)endl;cout姓名学号数学成绩语文成绩英语政治成绩:name1num1x1y1z1m1;q=newstudent(name1,num1,x1,y1,z1,m1);qnext=0;qAA=x1+y1+z1+m1;if(stu)student*t;t=stu;if(tnum=num1)cout学号已存在,请重新输入”next)if(t-num=num1)cout号学号已存在,请重新输入next;tnext=q;elsestu=q;cou

15、t”输入完毕”endl;voidcla::sremove()/删除system(cls);intnum1;cout”n*删除学生信息n;coutnum=num1)break;elsep2=p1;p1=p1next;/删除结点if(p1!=NULL)/若找到结点,则删除p1-play();cout”确定删除吗?Y/N”next;/将第二个结点往上推,成为头结点。deletep1;else/偌要删除得结点就是后续结点p2next=p1-next;/补缺deletep1;cout找到学号为num1得学生,并删除n”;else/未找到结点cout未找到想要删除得学生!n;voidcla::samend

16、()/修改system(”cls);longnum1;coutn*修改学生信息n”;coutnum=num1)break;elsep2=p1;p1=p1-next;if(p1!=NULL)cout”学号就是”num1”得学生得信息”endl;cout姓名”p1-name”数学”x语文”y”英语”p1-z”政治mendl;cout请输入修改后得信息:姓名数学成绩语文成绩英语政治成绩p1namep1xp1-yp1-zp1m;p1-AA=p1-x+p1y+p1z+p1m;/求总分cout修改成功endl;else/未找到接点cout”未找到!”endl;voidcla:ssearch()/查询sys

17、tem(cls);cout”n*查询学生信息n”endl;cout请输入查询方式:endl;cout”1、按学号查询”endl;cout”2、按姓名查询”endl;cout0、按科目分数段查询”endl;cout”3、返回c;switch(c)/通过switch语句来选择排序函数case0:intx,y,z,m;longnum;charw;inthigh,low;cout”输入要查找成绩科目代表得数字(数语英政分别为ad):”w;/查找要查询得结点cout最低分为:endl;cinlow;cout最高分为:high;studentp1,p2;p1=stu;switch(w)casea:cout

18、”数学成绩在low”high”分数段得学生为:”x=lowp1-x=high)cout姓名:p1一name“数学:x(”语文:p1-)y”英语:”p1z政治:”mendl;p2=p1;p1=p1-next;cout查询完毕n”;break;caseb:cout”语文成绩在low”high”分数段得学生为:”=low&p1y=high)cout”姓名:”p1-namex(“语文:(pl)y英语:p1一z政治:p1-mendl;p2=p1;p1=p1next;cout查询完毕n”;break;casec:cout英语成绩在”low”-”high=low&p1z=high)cout姓名:”name数

19、学:p1x语文:”p1-y”英语:”p1z政治:mnext;cout”查询完毕n;cased:cout”政治成绩在low”,high分数段得学生为:”m=low&p1m=high)cout”姓名:namex”语文:y英语:”(z政治:(m(endl;p2=p1;p1=p1next;cout查询完毕n”;break;break;case1:longnum1;cout”要查询得学号num1;/查找要查询得结点student*p1,p2;p1=stu;while(p1)if(p1num=num1)break;elsep2=p1;p1=p1-next;if(p1!=NULL)cout学号就是(num1

20、得学break;cout 姓名 : ” p1- name ” 数学:生得信息x语文:p1-y英语:pl)z政治:mendl;cout查询完毕、;else/未找到接点cout未找到!n”;/break;break;case2:stringname1;cout要查询得学生姓名”name=name1)break;elsep2=p1;p1=p1-next;if(p1!=NULL)cout(name1得学生得信息endl;cout学号:(num数学:p1x语文:p1y”英语:”z政治”p1-mendl;cout查询完毕、;else/未找到接点coutnext)/p1-next!=0n+;p1=p1nex

21、t;cout”共有n”条信息、endl;inti;p1=stu;for(i=1;inump1nextnum)/如果头结点大于第二个得p2=p1next;p1-next=p1nextnext;p2next=p1;/头结点交换stu=p2;/下一个学生p1=stu;/交换while(plnext-next)/中间得交换p2=p1;p1=p1next;if(p1nump1-next-num)p2next=p1-next;p1-next=p1next-next;p2-nextnext=p1;p1=p2-next;/交换p1=stu;doreturn;plplay();p1=p1 next;while(

22、p1) ;void cla : :psx() /按数学成绩排序函数得定义student p1, p2;int n;p1=stu;n=1 ;while(p1 next)n+;p1=p1next;cout ”共有” n 条信息、 endl ;int i ;p1=stu;for(i=1;ix p1-next x)/ 如果头结点大于第二个得p2=p1next;p1-next=p1-next next;p2-next=p1 ; /头结点交换stu=p2;p1=stu;while(p1-next- next) /中间得交换p2=p1;p1=p1- next ;if ( p1x p1- next- x)p2

23、 next=p1-next;p1 next=p1 next- next;p2 next next=p1;p1=p2 next;/交换p2=p1;p1=p1 next;p1=stu;dop1-play();p1=p1next;while(p1);voidcla:pyw()/按语文成绩排序函数得定义student*p1,p2;intn;p1=stu;n=1;while(p1next)n+;p1=p1next;cout共有n”条信息、endl;inti;p1=stu;for(i=1;iyp1nexty)/如果头结点大于第二个得p2=p1-next;p1next=p1-next-next;p2-nex

24、t=p1;/头结点交换stu=p2;p1=stu;while(p1next-next)/中间得交换p2=p1-nextif(p1yp1-nexty)p2-next=p1-next;p1-next=p1 nextnextp2next-next=p1p1=p2-next/交换p1=stu;dop1-play();p1=p1next;while(p1);voidcla:pyy()/按英语成绩排序函数得定义studentp1,p2;intnp1=stu;n=1;while(p1-next)n+p1=p1-nextcout”共有n条信息、”endlintip1=stu;for(i=1;izp1next-

25、z)/如p1next=p1next-next;p2next=p1;/头结点交换stu=p2;p1=stuwhile(p1next-next)/中间得交换p2=p1;p1=p1next;if(p1zp1-next-z)p2-next=p1nextp1-next=p1-next next;p2-nextnext=p1p1=p2next/交换p1=stu;dop1-play()p1=p1next;while(p1);voidcla::pzz()/按政治成绩排序函数得定义studentp1,*p2;intnp1=stun=1while(p1next)果头结点大于第二个得n+;p1=p1next;n+;

26、p1=p1next;cout”共有n”条信息、mp1nextm)/如果头结点大于第二个得p2=p1-next;p1next=p1-nextnext;p2next=p1;/头结点交换stu=p2;p1=stu;while(p1next-next)/中间得交换p2=p1;p1=p1-next;if(p1-yp1next-y)p2next=p1-next;p1next=p1-nextnext;p2-nextnext=p1;p1=p2next;/交换p1=stu;dop1-play();p1=p1-next;while(p1);voidcla::pAA()/按总分排序得定义studentp1,p2;i

27、ntn;p1=stu;n=1;while(p1next)cout共有”n”条信息、AA)/如果头结点大于第二个得p2=p1next;p1next=p1nextnext;p2-next=p1;/头结点交换stu=p2;p1=stu;while(p1-nextnext)/中间得交换p2=p1;p1=p1-next;if(p1-AAp1-next-AA)p2-next=p1-next;p1next=p1next-next;p2next-next=p1;p1=p2-next;/交换p1=stu;dop1-play();p1=p1next;while(p1);voidcla:staxis()/排序函数得

28、选择system(”cls”);charc;cout请选择以何种方式排序:endl;cout”1以学号排序”endl;cout2以数学成绩排序”endl;cout3以语文成绩排序endl;cout4以英语成绩排序endl;cout5以总分排序”endl;cout6返回endl;cout”请选择(17)”endl;coutc;switch(c)case1:cla:pxh();break;/通过数据c来选择不同得排序函数case2:cla::psx();break;case3:cla::pyw();break;case4:pyy();break;case5:cla:pAA();break;case

29、7:cla::pzz();break;case6:return;voidcla:ssave()/保存到文件system(”cls);charc;coutn保存学生信息,就是否继续?Y/N:”;cinc;if(toupper(c)!=Y)return;ofstreamtfile(date、txt”,ios_base::binary);studentp=stu;while(p)/写入文件tfilenamet”numt”p-xtytzpmtendl;tfilenext;1t();cout保存完毕、”next;deletep;p=stu;ifstreamtfile(”date、txt”,ios_bas

30、e::binary);stringname1;longnum1;intx1,y1,z1,m1;tfilename1num1x1y1z1m1;while(t()/创建学生接点student*s;s=stu;s=newstudent(name1,num1,x1,y1,z1,m1);snext=0;sAA=x1+y1+z1+m1;if(stu)若已经存在结点student*p2;p2=stu;while(p2-next)/查找尾结点p2=p2-next;p2-next=s;/连接else/偌不存在结点(表空)stu=s;连接tfilename1num1x1y1z1m1;t();cout”n学生信息已

31、经装入、n”;voidmain()charc;claa;docoutn学生成绩管理系统n;属于操作界面得设定cout”作者:蔡晨芝:学号:14041303ncout1增加学生信息endl;cout2删除学生信息(endl;cout3修改学生信息(endl;cout4查询学生信息endl;cout5对学生信息进行排序(endl;cout6保存学生信息”(endl;cout7读取学生信息(endl;cout8退出系统endl;coutc;switch(c)case1:a、sadd();break;/通过输入c得值调用添加信息函数case2:a、sremove();break;/调用删除函数case3:a、samend();break;/调用修改函数case4:a、ssearch();break;/调用查询函数case5:a、staxis();break;/调用排序函数case6:a、ssave();break;/调用保存函数case7:a、sload();break;/调用读取函数while(c!=8);coutsystempause”;

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!