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

下载本文档

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

文档简介

1、课程设计课程设计学生学籍管理系统 课程名称:课程名称:+面向对象程序设计面向对象程序设计 课程设计题目:大课程设计题目:大学生学籍管理系统学生学籍管理系统 目目目 录录录 第第 1 章章 概述概述.4第第 2 章章 系统分析系统分析.5第第 3 章章 系统设计系统设计.63.1 系统功能设计.63.2 类设计.63.3 输入输出设计.7第 4 章 系统实现.9结论.16后记.16参考文献.17 【摘要】 学籍管理系统设计涉及学生信息的录入,显示,查找,删除,修改,统计,保存,退出等功能,从而能够对信息进行处理。程序中运用了相关类的知识,同时定义了一定数量的数据及成员函数。程序使用了数组记录统计

2、的相关数据,运用了指针实现相应功能函数的功能,运用了 student ,school 两个类实现面向对象的要求。程序的完成涉及到程序的分析,模块的分解,程序的控制,程序的调试。【关键词】 学籍管理 vc+6.0 面向对象 程序控制 类 第第 1 章章 概述概述1.1 系统实现的目标 课程设计的任务: 制作一个小型的学生学籍管理系统,要求制作一个菜单,实现数据的录入,数据的显示,数据查找,数据的删除,数据的保存,数据的统计,数据的修改,系统的退出。系统的设计要求用到 C+面向对象的程序设计,要求用到类来实现,同时每一个功能用到一个函数。基本功能:学生基本信息(编号,姓名,性别,籍贯,民族,生日,

3、政治面貌,省份证,数学成绩,英语成绩,计算机成绩)成绩统计(各科总成绩,各科平均成绩,各科的及格率)扩展功能:学生数据的添加、修改、与删除学生数据的读取与存储 系统特点:系统要能够对相应的数据进行很好的测试,系统的统计对每一科的总成绩,平均成绩,及格律都进行了统计;系统数据的录入 除可以手工录入外,还可以采用文件的录入;系统统计学生的基本信息较全面,包括学号,姓名,民族,政治面貌,身份证号,生日,性别,数学、英语、计算机的成绩;程序中查找运用了两种查找方式即学号查找和姓名查找。1.2 系统实现方案第一步:分析题目,建立类并派生出它的子类,画出类图。 第二步:画出流程,根据流程图编写程序清单 第

4、三步:上机调试程序(使用单步调试,设置断点、分块调试的方法) 。 第五步:及时整理资料,撰写课程设计报告中有关这个题目的内容。 1.3 系统实现环境硬件配置硬件配置:586 以上 PC 兼容机或品牌机,配有彩色显示器、鼠标、键盘,内存不小于 64MB,硬盘自由空间不少于 200MB。推荐配置为内存 128MB 或 256MB(或以上) ,硬盘自由空间 500MB 以上。操作系统操作系统:Windows2000/NT/Xp、Visual C+集成开发环境。 第第 2 章章 系统分析系统分析2.1 调查程序对学生学籍的数据处理要求 能够输入并浏览学生的基本信息; 能够实现对学生信息的查询和修改;

5、能够对成绩进行统计; 能够对学生的信息进行保存;现行的系统功能:资料维护:系统维护包括对各学生信息和成绩的录入操作。资料维护:对数据表中的信息进行浏览。系统查询:可以对不同科目的总成绩、不及率、各科平均成绩相关信息。2.2 现行系统分析现行系统组织结构图:开始选择菜单序号1录入信息2显示信息3查找信息4删除信息5修改信息6统计成绩7保存信息0退出按要求逐步输入学生信息选择修改方式1?编号查询姓名查找2?保存?输入学生信息退出保存 第第 3 章章 系统设计系统设计3.1 系统功能设计系统功能设计系统功能结构图:3.2 类设计类设计类:student 数据成员编号,姓名,性别,籍贯,民族,生日,政

6、治面貌,省份证,数学成绩,英语成绩,计算机成绩类:school成员函数录入函数 Input():输入编号到计算机的成绩;统计函数 count():统计各科的总成绩,计算平均成绩,统计各科的及格率;查询函数 found():按学号或姓名查找学生的记录;修改函数 mend():修改指定学号学生成绩记录;删除函数 del():删除指定学号学生记录;输出函数 show():输出班级所有学生成绩记录;UML 图:主程序初始化程序采单程序查找删除修改统计输入显示退出 Student#number:int#name20:char#sex6:char#place20:char#nation6:char#bir

7、th20:char#party10: char#id20:char#score3:float+student*next; +student() +student() + * getname():char+getnumber():int+getscore(inti)double+ getg():float+ input():void+input(ifstream & is): void +output():void+output(ofstream&os):voidschool+school()+school()+ input():void+ mend():void+ del():

8、void+ find:int+found():void+ show():void+ count():void+ save():void+ begin():void+ clear():void+mainmenu():char+getkey():int+setkey(intk):void- *head: student - key:int3.3 输入输出的设计输入输出的设计1界面的设计界面的设计、界面设计程序运行后会出现一个简捷的窗口,便于用户查询数据。、功能设计通过主窗体调用其他窗体,具体实现可以参照系统分析相关内容。应用系统主控界面包括学生信息录入,查找等功能模块。学生信息录入功能完成学生信息

9、和成绩的输入。记录查询功能可以对数据各分类的记录进行查询。2数据输出设计数据输出设计系统主界面: 统计界面:查找界面:显示界面: 录入界面:修改界面:第第 4 章章 系统实现系统实现1.代码代码#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()

10、student() char* getname() return name; int getnumber() return number;double getscore(int i) return scorei;float getg() return (score0+score1+score2); void input() int e=1;coutttt 按提示输入:endl;coutnumber;coutname;docoutsex; if(strcmp(sex,男)=0 | strcmp(sex,女)=0) coutplace; coutnation;coutbirth; coutpart

11、y; coutid; coutscore0;coutscore1; coutscore2; e=0; else coutttt 无此类型性别!重新输入!numbernamesexplacenationbirthpartyid score0score1score2;is.get(); void output()cout学生基本信息如下:endl; cout编号:number 姓名:name 性别:sex 籍贯:place 民族:nation 生日:birth 政治面貌:partyendl身份证号:id 数学:score0 英语:score1 计算机:score2 总分:getg()endlend

12、l;void output(ofstream & os) ossetw(6)number setw(15)namesetw(20)place setw(6)nationsetw(20)birthsetw(20)party setw(20)idsetw(6)score0setw(6)score1setw(6)score2next=NULL; key=0; school() delete head; void input(); void mend(); void del();int find(student *p,int num,char *pn=);void found(); void

13、show(); void count();void save(); void begin(); void clear();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;

14、 p=p-next; school:setkey(1); coutn; /子查找函数int school:find(student *p1,int num,char *pn) student *p; p=head;while(p-next) (*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=;do coutn;wh

15、ile(n2);if(n=1) coutnum;if(n=2) coutname; if(!find(&p,num,name) ) couttt 找不到你要查找的内容!next)-output();/删除函数void school:del() student *p,*p2; int num;coutnum;if( !find(&p,num,) ) couttt 找不到你要删除的内容!next)-output();p2=p-next; p-next=p2-next;delete p2;school:setkey(1); void school:show() /显示函数 stude

16、nt *p; p=head;while(p-next) (p-next)-output();p=p-next;/修改函数void school:mend() student *p; int num=-1,n;char name20=;do coutn;while(n2);if(n=1) coutnum;if(n=2)coutname;if( !find(&p,num,name) ) couttt 找不到你要修改的内容!next)-output(); (p-next)-input();school:setkey(1);void school:save() /保存函数 student *p

17、; p=head;ofstream os(student.txt,ios:out);if (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()/统

18、计函数 student *p; p=head;int n=0;double g3=0,0,0; 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 及格率:j0/nendlttbbbb 英语总分:g1 平均分:g1/n 及格率:j1/nendlttbbbb 计算机总分: g2 平均分: g2/n 及格率:j2/nendl; /主选菜单函数char school:mainmenu()cha

19、r n6;coutnn 欢迎进入学籍管理系统endlendl * * * * * * * * * * * * * * * * * * * * * * * * * * * *endl * * * * * * * * * * * * * * * * * * * * * * * * * * * *endl * * 1: 录入学生信息 * *endl * * 2: 显示学生信息 * *endl * * 3: 查找学生信息 * *endl * * 4: 删除学生信息 * *endl * * 5: 修改学生信息 * *endl * * 6: 统计学生成绩 * *endl * * 7: 保存学生信息 * *

20、endl * * 0: 退出系统 * *endl * * * * * * * * * * * * * * * * * * * * * * * * * * * *endl * * * * * * * * * * * * * * * * * * * * * * * * * * * *endln;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:pp.save(); break; case 0: if(pp.getkey()=1) co

温馨提示

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

评论

0/150

提交评论