《C++课程设计报告(学生学籍管理系统).pdf》由会员分享,可在线阅读,更多相关《C++课程设计报告(学生学籍管理系统).pdf(16页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、课程设计 学生学籍管理系统 课程名称:+面向对象程序设计 课程设计题目:大学生学籍管理系统 目 录 第 1 章概述 3 第 2 章系统分析 4 第 3 章系统设计 5 3。1 系统功能设计 5 3.2 类设计 5 3.3 输入输出设计 7 第 4 章系统实现 8 结论 15 后记 16 参考文献 17【摘要】学籍管理系统设计涉及学生信息的录入,显示,查找,删除,修改,统计,保存,退出等功能,从而能够对信息进行处理.程序中运用了相关类的知识,同时定义了一定数量的数据及成员函数。程序使用了数组记录统计的相关数据,运用了指针实现相应功能函数的功能,运用了 student,school 两个类实现面向
2、对象的要求。程序的完成涉及到程序的分析,模块的分解,程序的控制,程序的调试。【关键词】学籍管理 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 数据成员 编号,姓名,性别,籍贯,民族,生日,政治面貌,省份证,数学成绩,英语成绩,计算机成绩 类:school 成员函数 录入函数 Input():输入编
6、号到计算机的成绩;统计函数 count():统计各科的总成绩,计算平均成绩,统计各科的及格率;查询函数 found():按学号或姓名查找学生的记录;修改函数 mend():修改指定学号学生成绩记录;删除函数 del():删除指定学号学生记录;输出函数 show():输出班级所有学生成绩记录;UML 图:主程序 初始化程序 采单程序 查找 删除 修改 统计 输入 显示 退出 3。3 输入输出的设计 1界面的设计、界面设计 程序运行后会出现一个简捷的窗口,便于用户查询数据。、功能设计 通过主窗体调用其他窗体,具体实现可以参照系统分析相关内容。应用系统主控界面包括学生信息录入,查找等功能模块。学生信
7、息录入功能完成学生信息和成绩的输入。记录查询功能可以对数据各分类的记录进行查询。2数据输出设计 系统主界面:Student#number:int#name20:char#sex6:char#place20:char#nation6:char#birth20: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
8、):void +output():void+output(ofstream&os):void school+school()+school()+input():void+mend():void+del():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:int 统计界面:查找界面:显示界面:录入界面:修改界面:第 4 章 系统实现 1
9、。代码#includeiostream.h#includestring。h 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 number;double getscore(int i
10、)return scorei;float getg()return(score0+score1+score2);void input()int e=1;coutttt 按提示输入:”endl;coutnumber;coutname;do coutsex;if(strcmp(sex,”男)=0|strcmp(sex,”女)=0)coutplace;coutparty;coutid;cout score0;coutscore2;e=0;else cout”ttt 无此类型性别!重新输入!”numbernamesexplacenationbirthparty id score0score1 scor
11、e2;is。get();void output()cout学生基本信息如下:endl;cout编号:number”姓名:name 性别:”sex”籍贯:place 民族:nation”生日:birth 政治面貌:partyendl”身份证号:”id”数学:score0”英语:”score1 ”计算机:”score2”总分:getg()endlendl;void output(ofstream os)ossetw(6)number setw(15)namesetw(20)place setw(6)nationsetw(20)birthsetw(20)party setw(20)id setw(6
12、)score0setw(6)score1 setw(6)next=NULL;p=p-next;school::setkey(1);coutn;/子查找函数 int school:find(student p1,int num,char*pn)student p;p=head;while(pnext)(p1)=p;if((pnext)-getnumber()=num|!strcmp(pnext)-getname(),pn)return 1;p=pnext;return 0;/查找函数 void school::found()student*p;int num=-1,n=9;char name20
13、=”;do coutn;while(n1|n2);if(n=1)coutnum;if(n=2)coutname;if(!find(p,num,name)cout”tt 找不到你要查找的内容!next)output();/删除函数 void school::del()student p,p2;int num;coutnum;if(!find(p,num,”))cout”tt 找不到你要删除的内容!”next)-output();p2=p-next;pnext=p2-next;delete p2;school::setkey(1);void school::show()/显示函数 student
14、p;p=head;while(p-next)(p-next)output();p=pnext;/修改函数 void school::mend()student*p;int num=-1,n;char name20=;do coutn;while(n1|n2);if(n=1)cout ttt 输入编号:”;cinnum;if(n=2)coutname;if(!find(p,num,name)cout”tt 找不到你要修改的内容!output();(pnext)input();school:setkey(1);void school::save()/保存函数 student p;p=head;of
15、stream os(”student.txt”,ios::out);if(school::getkey()=1)while(p-next)(pnext)output(os);p=p-next;cout ttt 文件已保存!”num;is.seekg(t);if(num0)is.close();return;p2=new student;p2input(is);p-next=p2;p2next=NULL;p=pnext;void school::clear()/清空函数 student p,*p2;p=headnext;while(p)p2=p;p=p-next;delete p2;void s
16、chool::count()/统计函数 student*p;p=head;int n=0;double g3=0,0,0;float j3=0,0,0;while(pnext)p=pnext;n+;for(int i=0;igetscore(i);(pgetscore(i)=60。0?ji+:0;coutttbbbb 数学总分:g0”平均分:g0/n 及格率:”j0/n endl”ttbbbb 英语总分:”g1”平均分:”g1/n 及格率:”j1/nendl ”ttbbbb 计算机总分:”g2 平均分:”g2/n 及格率:j2/nendl;/主选菜单函数 char school::mainme
17、nu()char n6;coutnn 欢迎进入学籍管理系统endl endl”*endl *”endl ”*1:录入学生信息 ”endl”*2:显示学生信息 *endl *3:查找学生信息 *endl *4:删除学生信息 *”endl ”*5:修改学生信息 ”endl 6:统计学生成绩 *”endl 7:保存学生信息 *endl”*0:退出系统 *”endl *endl ”*endl n;return n0;/主函数 void main()school pp;int k=1;char n;pp。begin();while(k=1)n=pp.mainmenu();switch(n)case 1:
18、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)cout”ttt 是否保存?1:保存 0:不保存:”;cin k;if(k=1)pp。save();pp。clear();k=0;break;2.系统运行的结果 结论 本程序基本完成了题目要求的功能。但是由于显示的限制,所罗列的学生成绩只给
19、出了数学,英语,计算机的成绩。程序可通过改进,增加科目数。程序在显示学生信息时输入过于繁杂,不够清晰明朗,若显示成类似表格的形式就好了.解决办法将输出函数的输出格式改一下,难点是计算输出点的控制。后记 此次 c+课程设计,在指导教师的精心教导下,我们学会了如何用 C+编写一个简单的应用程序.首先要对程序的设计要求有一个比较明确的认识,然后系统分析与系统设计,最后是代码设计与调试。程序实现上,设计了简单的查询界面,将各个功能集中出来按照程序编写原则,便于查询。根据 C+课程所学的概念、理论和方法,按照 C+程序设计的基本步骤,设计出一个适当规模的程序;进一步加深对 C+语言的理解和掌握。理论联系实际,加深和巩固所学的理论知识,提高实践能力和计算机的综合运用能力。我们编写程序的过程是辛苦与快乐的,程序的编写原则很重要,只要我们在编程,就必须不断改进,才能更好提高编程能力。参考文献 1陈雪飞C+实例入门,中国青年出版社,2004 年 5 月出版 2谭浩强编,C+面向对象程序设计,清华大学出版社,2005 年 7 月出版 3李师贤等译,C+精髓,机械工业出版社,2002 年 8 月出版 4韩滨 魏海萍,C+类库使用手册,电子工业出版社,2007 年 7 月出版 5陈灿煌,C+彻底研究 中国青年出版社,2005 年 9 月出版。
限制150内