C++课程设计学生学籍管理系统_第1页
C++课程设计学生学籍管理系统_第2页
C++课程设计学生学籍管理系统_第3页
C++课程设计学生学籍管理系统_第4页
C++课程设计学生学籍管理系统_第5页
已阅读5页,还剩23页未读 继续免费阅读

下载本文档

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

文档简介

1、课程名称:C+面向对象程序设计课程设计题目:大学生学籍管理系统目录:一、系统设计目标、意义二、系统设计思路三、系统功能介绍四、输入输出的设计(1)界面的设计(2)数据输出设计(3)系统运行结果五、详细设计(1)系统功能结构图(2)UML六、附录七、系统设计、开发过程中遇到的问题八、心得体会学生学籍管理系统-、系统设计目标、意义(一)系统实现的目标1、课程设计的任务:制作一个小型的学生学籍管理系统,要求制作一个菜单,实现数据的录入,数据的显示,数据查找,数据的删除,数据的保存,数据的统计,数据的修改,系统的退出。系统的设计要求用到C+向对象的程序设计,要求用到类来实现,同时每一个功能用到一个函数

2、。2、(1)基本功能:学生基本信息(编号,姓名,性别,籍贯,民族,生日,政治面貌,省份证,数学成绩,英语成绩,计算机成绩)成绩统计(各科总成绩,各科平均成绩,各科的及格率)(2)扩展功能:学生数据的添加、修改、与删除学生数据的读取与存储3、系统特点:系统要能够对相应的数据进行很好的测试,系统的统计对每一科的总成绩,平均成绩,及格律都进行了统计;系统数据的录入除可以手工录入外,还可以采用文件的录入;系统统计学生的基本信息较全面,包括学号,姓名,民族,政治面貌,身份证号,生日,性别,数学、英语、计算机的成绩;程序中查找运用了两种查找方式即学号查找和姓名查找。(二)系统设计的意义通过设计此项程序,能

3、够对学生的学籍进行统一的管理,对学生的学籍进行录入、修改、保存等功能进行处理,从而能够较快地对信息进行处理,系统数据的录入除可以手工录入外,还可以采用文件的录入;系统统计学生的基本信息较全面,程序中查找运用了两种查找方式即学号查找和姓名查找,方便查询。二、系统设计思路第一步:分析题目,建立类并派生出它的子类,画出类图。第二步:画出流程,根据流程图编写程序活单第三步:上机调试程序(使用单步调试,设置断点、分块调试的方法)。第四步:及时整理资料,撰写课程设计报告中有关这个题目的内容。三、系统功能介绍(一)程序对学生学籍的数据处理要求1能够输入并浏览学生的基本信息;2能够实现对学生信息的查询和修改;

4、3能够对成绩进行统计;4能够对学生的信息进行保存;(二)系统功能:资料维护:系统维护包括对各学生信息和成绩的录入操作。资料维护:对数据表中的信息进行浏览。系统查询:可以对不同科目的总成绩、不及率、各科平均成绩相关信息四、输入输出的设计1.界面的设计1、界面设计程序运行后会出现一个简捷的窗口,便于用户查询数据。2、功能设计通过主窗体调用其他窗体,具体实现可以参照系统分析相关内容。应用系统主控界面包括学生信息录入,查找等功能模块。学生信息录入功能完成学生信息和成绩的输入。记录查询功能可以对数据各分类的记录进行查询2.数据输出设计主要运行界面:统计界面:查找界面:显示界面:录入界面:保存界面:修改界

5、面:删除界面:3、系统运行的结果:(仅部分)五、详细设计1、系统功能结构图:2、(1)类:student化数据成员:编号,姓名,性别,籍贯,民族,生日,政治面貌,省份证,数学成绩,英语成绩,计算机成绩(2)类:school成员函数:录入函数Input():输入编号到计算机的成绩;统计函数count():统计各科的总成绩,计算平均成绩,统计各科的及格率;查询函数found():按学号或姓名查找学生的记录;修改函数mend():修改指定学号学生成绩记录;删除函数del():删除指定学号学生记录;输出函数show():输出班级所有学生成绩记录;UMLB:schoolStudentI+school()

6、六、附录:(主要代码)#include#include#include#include/classstudentprotected:intnumber;charname20;charsex6;charplace20;charnation6;charbirth20;charparty10;charid20;floatscore3;public:student*next;#number:int操纵符定义在其中student()(student()(char*getname()(returnname;intgetnumber()(returnnumber;doublegetscore(inti)(r

7、eturnscorei;floatgetg()(return(score0+score1+score2);voidinput()(inte=1;coutttt按提示输入:endl;coutnumber;coutname;do(coutsex;if(strcmp(sex,男”)=0|strcmp(sex,女”)=0)(coutplace;coutnation;coutbirth;coutparty;coutid;coutscore0;coutscore1;coutscore2;e=0;else(coutttt无此类型性别!重新输入!numbernamesexplacenationbirthpar

8、tyidscore0score1score2;is.get();voidoutput()(cout学生基本信息如下:endl;cout编号:number姓名:name性别:sex籍贯:place民族:nation生日:birth政治面貌:partyendl身份证号:id数学:score0英语:score1计算机:score2总分:getg()endlendl;voidoutput(ofstream&os)(ossetw(6)numbersetw(15)namesetw(20)placesetw(6)nationsetw(20)birthsetw(20)partysetw(20)idse

9、tw(6)score0setw(6)score1setw(6)score2next=NULL;key=0;school()(deletehead;voidinput();voidmend();voiddel();intfind(student*p,intnum,char*pn=AH);voidfound();voidshow();voidcount();voidsave();voidbegin();voidclear();charmainmenu();intgetkey()(returnkey;voidsetkey(intk)(key=k;private:student*head;intkey

10、;/录入函数voidschool:input()(student*p,*p2=NULL;p=head;intn;while(p-next)p=p-next;while(n)(p2=newstudent;p2-input();p-next=p2;p2-next=NULL;p=p-next;school:setkey(1);coutn;/子查找函数intschool:find(student*p1,intnum,char*pn)(student*p;p=head;while(p-next)if(n=1)(*p1)=p;if(p-next)-getnumber()=num|!strcmp(p-nex

11、t)-getname(),pn)return1;p=p-next;return0;/查找函数voidschool:found()(student*p;intnum=-1,n=9;charname20=HA;do(coutn;while(n2);(coutnum;if(n=2)(coutname;if(!find(&p,num,name)(couttt找不到你要查找的内容!next)-output();/删除函数voidschool:del()(student*p,*p2;intnum;coutnum;(coutttt输入编号:;if(!find(&p,num,HA)(coutt

12、t找不到你要删除的内容!next)-output();p2=p-next;p-next=p2-next;deletep2;school:setkey(1);voidschool:show()/显示函数(student*p;p=head;while(p-next)(p-next)-output();p=p-next;/修改函数voidschool:mend()(student*p;intnum=-1,n;charname20=A;docoutn;while(n2);if(n=1)coutnum;if(n=2)coutname;if(!find(&p,num,name)(couttt找不到

13、你要修改的内容!next)-output();(p-next)-input();school:setkey(1);voidschool:save()/保存函数(student*p;p=head;ofstreamos(student.txt,ios:out);if(school:getkey()=1)(while(p-next)(p-next)-output(os);p=p-next;while(1)文件已保存!num;is.seekg(t);if(numinput(is);p-next=p2;p2-next=NULL;p=p-next;voidschool:clear()/活空函数(stude

14、nt*p,*p2;p=head-next;while(p)(p2=p;p=p-next;deletep2;voidschool:count()/统计函数(student*p;p=head;intn=0;doubleg3=(0,0,0;floatj3=(0,0,0;while(p-next)(p=p-next;n+;for(inti=0;igetscore(i);(p-getscore(i)=60.0?ji+:0;coutttbbbb数学总分:g0平均分:g0/n及格率:jO/nendlttbbbb平均分:g1/n及格率:j1/nendlttbbbb计算机总分:g2平均分:g2/n及格率:j2/

15、nendl;/主选菜单函数charschool:mainmenu()charn6;coutnn欢迎进入学籍管理系统endlendlvv*却vvendlvv*却vvendl*1:录入学生信息*endl*2:显示学生信息*endl*3:查找学生信息*endl*4:删除学生信息*endl*5:修改学生信息*endl*6:统计学生成绩*endl*7:保存学生信息*endl*0:退出系统*endl*endl*endln;returnn0;/主函数voidmain()(schoolpp;intk=1;charn;pp.begin();while(k=1)(n=pp.mainmenu();switch(n)

16、(case1:pp.input();break;case2:pp.show();break;case3:pp.found();break;case4:pp.del();break;case5:pp.mend();break;case6:pp.count();break;case7:pp.save();break;case0:if(pp.getkey()=1)coutk;if(k=1)pp.save();pp.clear();k=0;break;七、系统设计、开发过程中遇到的问题及创新点本程序基本完成了题目要求的功能。但是由于显示的限制,所罗列的学生成绩只给出了数学,英语,计算机的成绩。程序可通过改进,增加科目数。程序在显示学生信息时输入过于繁杂,不够活晰明朗,若显示成类似表格的形式就好了。解决办法将输出函数的输出格式改一下,难点是计算输出点的控制。至于创新,就是在课题的选择上,我更加偏向于选择自己感兴趣的课题,更加注意程序的实用性八、心得体会通过这次课程设计,我学会了很多的知识,我通过自学相关的书籍,浏览网站,接触了大量的编程知识,在编程过程中逐

温馨提示

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

评论

0/150

提交评论