C++课程设计报告(通信1101班-杨耽)(共25页).doc

上传人:飞****2 文档编号:14223218 上传时间:2022-05-03 格式:DOC 页数:25 大小:1.13MB
返回 下载 相关 举报
C++课程设计报告(通信1101班-杨耽)(共25页).doc_第1页
第1页 / 共25页
C++课程设计报告(通信1101班-杨耽)(共25页).doc_第2页
第2页 / 共25页
点击查看更多>>
资源描述

《C++课程设计报告(通信1101班-杨耽)(共25页).doc》由会员分享,可在线阅读,更多相关《C++课程设计报告(通信1101班-杨耽)(共25页).doc(25页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、精选优质文档-倾情为你奉上课 程 设 计 报 告课程名称 面向对象程序设计 课题名称 高校学籍管理系统 专 业 通信工程 班 级 1101 学 号 9 姓 名 杨 耽 指导教师 李峰、谭晓兰、张益星 2012年 12 月 22 日专心-专注-专业湖南工程学院课 程 设 计 任 务 书课程名称 面向对象程序设计 课 题 高校学籍管理系统 专业班级 通信工程 学生姓名 杨 耽 学 号 9 指导老师 李峰、谭晓兰、张益星 审 批 任务书下达日期 2012 年 12 月 22 日任务完成日期 2013 年 1 月 6 日一、设计内容与设计要求1.课程设计目的:面向对象程序设计课程设计是集中实践性环节之

2、一,是学习完面向对象程序设计课程后进行的一次全面的综合练习。要求学生达到熟练掌握C+语言的基本知识和技能;基本掌握面向对象程序设计的思想和方法;能够利用所学的基本知识和技能,解决简单的面向对象程序设计问题,从而提高动手编程解决实际问题的能力。2.课题题目公司库存管理系统高校学籍管理系统高校工资管理系统高校人事管理系统文件加密管理系统3设计要求:设计课题题目:第5个课题是扩展课题,有能力完成的同学可以选择。其余每位同学根据自己学号除以4所得的余数加一选择相应题号的课题。换题者不记成绩。根据自己对应的课题完成以下主要工作:完成系统需求分析:包括系统设计目的与意义;系统功能需求(系统流程图);输入输

3、出的要求。完成系统总体设计:包括系统功能分析;系统功能模块划分与设计(系统功能模块图)。完成系统详细设计:包括数据库需求分析;类层次图;界面设计与各功能模块实现。系统调试:调试出现的主要问题,编译语法错误及修改,重点是运行逻辑问题修改和调整。使用说明书及编程体会:说明如何使用你编写的程序,详细列出每一步的操作步骤。关键源程序(带注释)按规定格式完成课程设计报告,将其打印稿(A4纸)上交给老师存档。不得抄袭他人程序、课程设计报告,每个人应体现自己的个性设计。课题2:高校学籍管理系统 (一)、课程设计题目:高校学籍管理系统(二)、目的与要求: 1、目的: (1)要求学生达到熟练掌握C+语言的基本知

4、识和技能; (2)基本掌握面向对象程序设计的基本思路和方法; (3)能够利用所学的基本知识和技能,解决简单的面向对象程序设计问题。 2、基本要求: (1)要求利用面向对象的方法以及C+的编程思想来完成系统的设计;(2)要求在设计的过程中,建立清晰的类层次; (3)在系统的设计中,至少要用到面向对象的一种机制。3、创新要求: 在基本要求达到后,可进行创新设计,如根据查找结果进行修改的功能。 4、写出设计说明书 (三)、设计方法和基本原理: 1、问题描述(功能要求): (1)能够从屏幕上读取一个学生的信息并将信息存入到数据文件中。(2)能够将指定的信息从文件中删除。(3)能够按编号、姓名对学生的信

5、息进行检索并将检索结果显示在屏幕上。(4)可以统计全部学生的总成绩,及其在班上的排名。(5)能够统计各科的平均成绩及及格率。(6)要求有错误提示功能,例如性别只能输入男女,输入错误提示重新输入。(7)如果检索不到相应的信息应提示用户。(8)扩展要求:能先行设置本学期的科目 每个学生信息应该包括:姓名、学号、成绩成绩信息应该包括:科目数量、各科目名称、各科目成绩2、问题的解决方案: 根据系统功能要求,可以将问题解决分为以下步骤: (1)写出需求分析(做什么);(2)分析系统中的各个实体之间的关系及其属性和行为; (3)根据问题描述,设计系统的类层次; (4)完成类层次中各个类的描述(包括属性和方

6、法); (5)完成类中各个成员函数的定义; (6)用户界面的设计; (7)分析系统功能模块(系统流程图);(8)代码编写,功能调试;(9)完成系统总结报告以及系统使用说明书。 目 录1.1.1.1.1.1. 2.2.3.4.4.4.4.4.4.4.04. 1 7.附件2 1. 系统需求分析1.1.1系统设计目的与意义要求用C+面向程序设计语言编写一高校学籍管理系统,1、目的: 1)要求学生达到熟练掌握C+语言的基本知识和技能; 2)基本掌握面向对象程序设计的基本思路和方法; 3)能够利用所学的基本知识和技能,解决简单的面向对象程序设计问题。2. 系统设计的意义:系统要能够对相应的数据进行很好的

7、测试,系统的统计对每一科的总成绩,平均成绩,及格律都进行了统计;系统数据的录入 除可以手工录入外,还可以采用文件的录入;系统统计学生的基本信息较全面,包括学号,姓名,民族,政治面貌,身份证号,生日,性别,数学、英语、计算机的成绩;程序中查找运用了两种查找方式即学号查找和姓名查找。1.1.2.系统功能需求(系统流程图)1.要求完成以下功能:1)能够从屏幕上读取一个学生的信息并将信息存入到数据文件中。2)能够将指定的信息从文件中删除。3)能够按编号、姓名对学生的信息进行检索并将检索结果显示在屏幕上。4)可以统计全部学生的总成绩,及其在班上的排名。5)能够统计各科的平均成绩及及格率。6)要求有错误提

8、示功能,例如性别只能输入男女,输入错误提示重新输入。7)如果检索不到相应的信息应提示用户。 1.1.3.系统功能流程图退出主程序初始化程序菜单程序查找删除修改统计录入显示保存1.1.4输入输出的要求1.输入的要求:通过主函数体调用其他函数应用系统主控界面包括学生信息录入,查找等功能模块。学生信息录入功能完成学生信息和成绩的输入。记录查询功能可以对数据各分类的记录进行查询。2.输出的要求:1)能够按编号、姓名对学生的信息进行检索并将检索结果显示在屏幕上。2)可以统计全部学生的总成绩,及其在班上的排名。3)能够统计各科的平均成绩及及格率。4)如果检索不到相应的信息应提示用户2. 总体设计2.1系统

9、功能分析能够从屏幕上读取一个学生的信息并将信息存入到数据文件中。能够将指定的信息从文件中删除。能够按编号、姓名对学生的信息进行检索并将检索结果显示在屏幕上。可以统计全部学生的总成绩,及其在班上的排名。能够统计各科的平均成绩及及格率。要求有错误提示功能,例如性别只能输入男女,输入错误提示重新输入。如果检索不到相应的信息应提示用户。 开始选择菜单序号1录入信息2显示信息3查找信息4删除信息5修改信息6统计成绩7保存信息0退出按要求逐步输入学生信息选择修改方式1?编号查询姓名查找2?保存?输入学生信息退出保存2.2.系统功能结构图 3. 详细设计3.1.类设计:类:student 数据成员学号,姓名

10、,性别,籍贯,民族,生日,政治面貌,省份证,数学成绩,英语成绩,计算机成绩class student protected: int number; /学号char name20; /姓名char sex6; /性别char place20; /籍贯char nation6; /民族char birth20; /出生日期char party10; /政治面貌char id20; /身份证号float score3; /成绩类:school成员函数录入函数input():逐步输入学生信息;修改函数 mend():按姓名或学号修改学生信息;统计函数count():统计各科的总成绩,计算平均成绩,统计

11、各科的及格率;查找函数found():按学号或姓名查找学生的记录;修改函数mend():修改指定学号学生成绩记录;删除函数del():删除指定学号学生记录;输出函数show():输出班级所有学生成绩记录;class schoolvoid input(); /录入函数void mend(); /修改函数void del(); /删除函数int find(student *p,int num,char *pn=); /子查找函数void found(); /查找函数void show(); /显示函数void count(); /统计函数void save(); /保存函数void begin()

12、; /初始化函数void clear(); /清空函数char mainmenu(); /主菜单函数具体如下图所示: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

13、(ifstream & is): void +output():void+output(ofstream&os):voidschool+school()+school()+ input():void+ mend():vo具体如下图所示:id+ 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:int4. 系

14、统调试4.1.首页进入学籍管理系统主菜单4.1.2录入学生信息界面:4.3显示学生信息界面:4.4.查找学生信息界面:4.5.删除学生信息界面:4.6.修改学生信息:4.7统计学生信息:4.8.保存学生信息界面:5. 结果分析 在总体设计上,整个程序没什么问题,但是在调试过程中,每次都会出现界面菜单,而且在查找时,要是输入错误的话,整个界面框都在不停闪动,无法停止,这是一个问题。不过,总的来说,整个设计还是可以的。6.总结此次c+课程设计,在指导教师的精心教导下,我们学会了如何用C+编写一个简单的应用程序。首先要对程序的设计要求有一个比较明确的认识,然后系统分析与系统设计,最后是代码设计与调试

15、。程序实现上,设计了简单的查询界面,将各个功能集中出来按照程序编写原则,便于查询。根据C+课程所学的概念、理论和方法,按照C+程序设计的基本步骤,设计出一个适当规模的程序;进一步加深对C+语言的理解和掌握。理论联系实际,加深和巩固所学的理论知识,提高实践能力和计算机的综合运用能力。我们编写程序的过程是辛苦与快乐的,程序的编写原则很重要,只要我们在编程,就必须不断改进,才能更好提高编程能力。7. 附件(程序代码)#include#include#include#include class student protected: int number; /学号char name20; /姓名char

16、 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;float getscore(int i) return scorei;float getg() return (score0+score1+score2); /录入

17、信息void input()int e=1;cout按提示输入:endl;coutnumber;coutname;do coutsex; if(strcmp(sex,男)=0 | strcmp(sex,女)=0) coutplace; coutnation; coutbirth; coutparty; coutid; coutscore0; coutscore1; coutscore2; e=0; else cout无此类型性别!重新输入!numbernamesexplacenationbirthpartyid score0score1score2;is.get(); /显示信息void ou

18、tput()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)name setw(6)sex setw(20)place setw(6)nation setw(20)birth setw(20)party setw(20)id setw(6)score

19、0 setw(6)score1 setw(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 show(); /显示函数void count(); /统计函数void save(); /保存函数void begin(); /初始化函数void clear(); /清空函数char mainmenu(); /

20、主菜单函数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;/子查找函数int school:find(student *p1,int

21、 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;while(n2);if(n=1)coutnum;if(n=2)coutname;if(!find(&p,num,name) )coutSORRY!找不到你要

22、查找的内容!next)-output();/删除函数void school:del()student *p,*p2;int num;coutnum;if( !find(&p,num,) )coutSORRY!找不到你要删除的内容!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;/修改函数void school:mend()student *p;int

23、 num=-1,n;char name20=;do coutn;while(n2);if(n=1)coutnum;if(n=2)coutname;if( !find(&p,num,name) )coutSORRY!找不到你要修改的内容!next)-output();(p-next)-input();school:setkey(1);/保存函数void school:save()student *p;p=head;ofstream os(student.txt,ios:out);if (school:getkey()=1) while(p-next) (p-next)-output(os); p

24、=p-next;cout文件已保存! 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;float j3=0,0,0;while(p-next) p=p-next; n+; for(int i=0;igetscor

25、e(i) ); (p-getscore(i) )=60? i+ : 0 ;cout数学总分:g0 平均分:g0/n 及格率:j0/nendl英语总分:g1 平均分:g1/n 及格率:j1/nendl计算机总分: g2 平均分: g2/n 及格率:j2/nendl;/主选菜单函数char school:mainmenu()char n6;coutnn 欢迎进入高校学籍管理系统endlendl * * * * * * * * * * * * * * * * * * * * * * * * * * * *endl * * * * * * * * * * * * * * * * * * * * * *

26、 * * * * * *endl * * 1: 录入学生信息 * *endl * * 2: 显示学生信息 * *endl * * 3: 查找学生信息 * *endl * * 4: 删除学生信息 * *endl * * 5: 修改学生信息 * *endl * * 6: 统计学生成绩 * *endl * * 7: 保存学生信息 * *endl * * 0: 退出系统 * *endl * * * * * * * * * * * * * * * * * * * * * * * * * * * *endl * * * * * * * * * * * * * * * * * * * * * * * * *

27、 * * *endln;return n0;/2.主函数:/主函数void main()school p;int k=1;char n;p.begin();while(k=1)n=p.mainmenu();switch(n) case 1:p.input(); break; case 2:p.show(); break; case 3:p.found(); break; case 4:p.del(); break; case 5:p.mend(); break; /修改学生信息 case 6:p.count(); break; /统计学生信息 case 7:p.save(); break; /保存学生信息 case 0: if(p.getkey()=1) coutk; if(k=1) p.save(); p.clear(); k=0; break;计算机科学与技术系课程设计评分表课程名称: 面向对象程序设计 项 目评 价设计方案的合理性与创造性设计与调试结果设计说明书的质量答辩陈述与回答问题情况课程设计周表现情况综合成绩 教师签名: 日 期:

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 教案示例

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

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁