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

付费下载

下载本文档

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

文档简介

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

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

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

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

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

6、l()#number: int六、附录:(主要代码)#include#include #include#include/操纵符定义在其中class student protected: int number; char name20;char sex6; char place20;char nation6; char birth20;char party10; char id20;float score3;public: student *next;student() student() char* getname() return name; int getnumber() return n

7、umber; double getscore(int i) return scorei; float getg() return (score0+score1+score2); void input() int e=1;coutttt按提示输入 :endl;coutnumber;coutname;if(strcmp(sex,男 )=0 | strcmp(sex,女 )=0)docoutsex;coutbirth; coutparty;coutid;coutscore0;coutttcoutscore1;输入计算机分数 : ;cinscore2;e=0;elsecoutttt无此类型性别 ! 重

8、新输入 !numbernamesexplacenationbirthpartyidscore0score1score2;is.get(); void output() cout 学生基本信息如下 :endl;coutvv编号:numbervv姓名:namew性别:sex 籍贯:place民族:nationvv生日:birth政治面貌:partywendl身份证号:vvidvv 数学:vvscore0vv 英语:score1计算机:score2总分:vvgetg()vvendlwendl;void output(ofstream & os) ossetw(6)number setw(15)nam

9、esetw(20)placesetw(6)nationsetw(20)birthsetw(20)partysetw(20)idsetw(6)score0setw(6)score1 setw(6)score2next=NULL; key=0; school() delete head; void input(); void mend(); void del();int fin d(stude nt *p ,i nt nu m,char *pn=);void found(); void show(); void count();void save(); void begin(); void cle

10、ar();char mainmenu();int getkey() return key; void setkey(int k) key=k; private:;/ 录入函数student *head; int key;void school:input() student *p,*p2=NULL;p=head; int n;while(p-next)p=p-next;while(n) p2=new student; p2-input();p-next=p2; p2-next=NULL; p=p-next;school:setkey(1);coutn;/ 子查找函数 student *p; p

11、=head;while(p-next)int school:find(student *p1,int num,char *pn)(*p1)=p;if( (p-next)-getnumber()=num|!strcmp( (p-next)-getname(),pn ) )return 1; p=p-next;return 0; / 查找函数void school:found() student *p;int num=-1, n=9; char name20=A;do coutn;while(n2);if(n=1) coutnum; if(n=2) student *p,*p2; int num;

12、 coutname; if(!find(&p,num,name) ) couttt 找不到你要查找的内容 !next)-output();/ 删除函数void school:del()coutnum;if( !find(&p,n um,) couttt 找不到你要删除的内容 !next)-output();p2=p-next; p-next=p2-next;delete p2;school:setkey(1); void school:show() / 显示函数 student *p; p=head;while(p-next) (p-next)-output();p=p-next; / 修改函

13、数void school:mend() student *p; int num=-1,n;char n ame20-皿;do coutn;while(n2);if(n=1) coutnum;if(n=2) cinname;coutttt输入姓名: ;if( !find(&p,num,name) ) couttt 找不到你要修改的内容 !next)-output(); (p-next)-input();school:setkey(1);void school:save() /保存函数 student *p; p=head;ofstream os(student.txt,ios:out);if (

14、school:getkey()=1) while(p-next) (p-next)-output(os);p=p-next; coutttt 文件已保存 ! num;is.seekg(t);if(numinput(is);p-next=p2; p2-next=NULL; p=p-next;void school:clear()/清空函数student *p,*p2;p=head-next;while( p ) p2=p; p=p-next;delete p2; void school:count()/ 统计函数student *p; p=head;int n=0;double g3=0,0,0

15、; float j3=0,0,0;while(p-next) p=p-next;n+;for(int i=0;igetscore(i) );(p-getscore(i) )=60.0? ji+ : 0 ;coutttbbbb 数学总分 :g0 平均分 :g0/n英语总分 :g1 及格率 :j0/nendlttbbbb 平均分 :g1/n 及格率 :j1/nendl ttbbbb 计算机总分 : g2 平均分: g2/n 及格率 :j2/nendl;/ 主选菜单函数char school:mainmenu() char n6;coutnn欢迎进入学籍管理系统e ndlwe ndl* * * *

16、* * * * * * * * * * * * * * * * * * * * * * * *endl* * * * * * * * * * * * * * * * * * * * * * * * * * * *endl1:录入学生信息* *endl2:显示学生信息* *endl3:查找学生信息* *endl4:删除学生信息* *endl5:修改学生信息* *endl6:统计学生成绩* *endl7:保存学生信息* *endl0:退出系统* *endl * * * * * * * * * * * * * * * * * * * * * * * * * * * *endl * * * * * *

17、 * * * * * * * * * * * * * * * * * * * * * *n;return n0;/ 主函数void main() school pp;int k=1; char n; pp.begin();while(k=1) n=pp.mainmenu();switch(n) case 1:pp.input(); break;case 2:pp.show(); break;case 3:pp.found(); break;case 4:pp.del(); break;case 5:pp.mend(); break;case 6:pp.count(); break;case 7

18、:pp.save(); break;case 0: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

提交评论