版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、仲恺农业工程学院课程设计报告*课 程 面向对象课程设计姓 名 院 (系) 计算机科学与工程学院 专业年级 计算机科学与技术班学 号 指导教师 日 期 2010年8月30日-2010年9月12日仲恺农业工程学院教务处制目录课程设计目的1课程设计的内容1详细程序8课程设计总结17一、课程设计目的 1.通过c+课程设计,使学生能够将学到的面向对象的设计思想运用在具体的工作和学习 中,加深对类和对象的理解,要求学生对生活中许多具体的事物抽象出类,并掌握继承和派 生类、基类、虚函数和多态的概念。2、通过这次课程设计掌握c+语言程序设计的编程思想,为后续课程打下基础。3、培养我实际操作能力和实践能力,为以
2、后的工作打下坚实的基础。课程设计的要求 利用学到的编程知识和编程技巧,要求学生:1、对系统进行功能模块分析、控制模块分析正确2、系统设计要能完成题目所要求的功能。3、编程简练,可用,尽可能的使系统的功能更加完善和全面4、使用说明书、流程图要清楚。5、特别要求自己独立完成。二、课程设计的内容1、课程设计的题目及简介有新生来报到,要逐个录入其信息,如:学生姓名,性别,专业,出生日期,家庭地址、英语入学成绩。要求设计链表类来实现,并统计学生人数。文本界面为:1. 新增学生信息2. 删除学生信息3. 导入学生信息(已经保存于的文件信息)4. 学生信息搜索(按姓名)5. 学生信息统计(按专业或性别或年龄
3、-年龄要自动计算)6. 按英语成绩排序7. 学生信息保存8. 退出2、设计说明总体结构我们采取模块化方式进行程序设计,要求程序的功能设计、数据结构设计及整体结构设计合理。也可根据自己对题目的理解增加新的功能模块。系统以菜单界面方式(至少采用文本菜单界面,如能采用图形菜单界面更好)工作,运行界面友好,演示程序以用户和计算机的对话方式进行(1)首先,看题目要求,每一条记录包括一个学生的姓名、性别、专业、出生日期、家庭住址、英语成绩。同时,应具备以下功能:1、输入功能:一次可以完成自定义学生人数的学生信息记录的输入。2、删除功能:对指定学生的信息进行删除。3、修改功能:对指定学生的信息进行修改。4、
4、查询功能:选择某种方式并输入该信息查询符合条件的学生信息。5、统计功能:对某几个专业的人数、男女性别学生信息进行统计。6、 排序功能:以英语课程的分数为依据对学生信息进行排序。7、 显示功能:将以上功能操作后的学生信息显示出来。8、 退出主菜单。3 程序流程图 各功能模块的实现流程图:1增加学生信息调用函数node* create()判断gg是否等于一如果是可创建链表输入相应的学生信息如果不是则需要运用insert(p)函数插入结点增加学生信息的,并通过chundang(p)函数进行存档,具体流程如下图所示判断以前是否存储了学生信息是新增信息退出该功能,返回主菜单,继续选择流程图新增学生信息按
5、提示:输入学个的各种信息按格式显示输入的学生信息 2删除学生信息 调用函数node* delete(node* head , int num) 删除学生的信息则必须对链表结点进行删除意味着将某个要删除结点前后的连续打断,去掉该结点,使前后指针变量重新连接,完成链表结点的删除任务 流程图输入要删除学生信息2退出该功能,返回主菜单,继续选择输入要删除信息的编号该生信息已删除,显示其他同学的信息输出所有学生的信息3导入学生信息打开存档文件ifstream filein(out.txt);输出说存档的学生信息导入学生信息显示学生的信息退出该功能,返回主菜单,继续选择 4、学生信息的搜索 调用函数nod
6、e* sousuo(node* head , char na20) ,按学生的姓名进行搜索退出该功能,返回主菜单,继续选择 输出所以查询的学生信息按照提示输入学生的姓名进行搜索搜索学生信息 4流程图: 5信息的统计 调用函数node* tongji(node* head) 运用一个for循环,将输入的相应的学生信息用strcmp()函数与对应的数组进行比较,然后再进行统计输出统计的信息统计所设定的专业人数和男女性别的人数,计算学生的年龄并统计信息的统计:5退出该功能,返回主菜单,继续选择。 6、按英语成绩进行排序:调用函数node* paixu(node* head)完成排序功能它的主要思想的
7、:首先设置英语成绩的最大值100,最小值0(也可以使150或者其他)然后让输入的学生信息英语成绩一次比较进行比较,(如果有相等的就输出排名1 ,然后排名加1),否则最大值减1,然后再次进行比较( 如果等于99且上次没有等于100的,就输出排名1,然后排名加1,如果上次有等于100的排名为2),如果没有与99相等的.,则继续循环流程图:输出排序之后的学生信息对英语成绩进行排序退出该功能,返回主菜单,继续选择按学生信息进行排序5总功能模块图:2、输入要删除的学生的编号,删除学生信息。1输入学生的信息:姓名、性别、专业、出生日期、家庭地址、英语成绩 菜单1. 新增学生信息2. 删除学生信息3. 导入
8、学生信息4. 学生信息搜索5. 学生信息统计6. 按英语成绩排序7. 学生信息保存8. 退出5统计各种专业、男女、相应年龄的人数6按英语成绩降序排列,输出学生的姓名排名和英语成绩7保存学生信息:提示保存成功4、输入你要查找你学生姓名3、输出学生的编号、姓名、性别、专业、出生日期、家庭地址、英语成绩8、退出系统学生管理系统功能模块图各功能显示效果模块图:增加学生信息和导入学生信息保存学生信息统计电子、建筑、通信、三个专业的人的个数,按英语成绩进行排名并输出删除相应学生的信息四、详细程序#include #include #include#includeusing namespace std;in
9、t nn=0;struct node int num;char name20;char xb20;char zy20;int nian,yue,ri;char dz20;int mark;node *next ;/* node* create() /链表创建 cout请输入学生信息(输入0退出):num=1; head=null; n+; while (p1-num!=null) if (n=1) head=p1; else p2-next=p1; p2=p1; p1=new node; int a; nn+; p1-num=nn; coutp1-name; a=(int)p1-name0-4
10、8; if (a=0)break; coutp1-xb; coutp1-zy; coutp1-nian; cinp1-yue; cinp1-ri; coutp1-dz; coutp1-mark; n+; p2-next=null; return head; /* /* void chundang(node *head) /存档 node *p=head; p=p-next; ofstream fileout(out.txt);fileout学生资料endl;fileout-endl;while(p)fileout - 编号:num 姓名:name 性别:xb 专业:zy 出生日期:nian/y
11、ue/ri/ 地址:dz 英语入学成绩:marknext; fileout-num=nn; coutp0-name; coutp0-xb; coutp0-zy; coutp0-nian; cinp0-yue; cinp0-ri; coutp0-dz; coutp0-mark; if (head=null) head=p0; p0-next=null; return head; while (p1-numnum & p1-next) p2=p1; p1=p1-next; if (p1-num=p0-num) if (p1=head) head=p0; else p2-next=p0; p0-ne
12、xt=p1; else p1-next=p0; p0-next=null; return head; /* /* node* delete(node* head , int num) /删除节点 if (head=null) cout不存在此编号num!=num & p1-next) p2=p1; p1=p1-next; if (p1-num=num) if (p1=head) head=p1-next; else p2-next=p1-next; else cout没找编号为 num的学生!next; /整顿编号 while (p1) kk+; p1-num=kk; p1=p1-next;
13、/* return head; /*/* node* sousuo(node* head , char na20) /搜索 node *p1=head; while(p1!=null)if(!strcmp(p1-name,na)cout编号:num姓名:name 性别:xb 专业:zy 出生日期:nian/yue/ri/ 地址:dz 英语入学成绩:marknext; return 0; /*/* node* tongji(node* head) /统计 node *p1=head;int a=0,b=0,c=0,d=0,e=0,i100,j100;char aa=网络工程, bb=计算机科学与
14、技术,cc=其他,nan=男,nv=女;for(int k=0;kzy,aa)a+;else if(!strcmp(p1-zy,bb)b+;else if(!strcmp(p1-zy,cc)c+;if(!strcmp(p1-xb,nan)d+;else if(!strcmp(p1-xb,nv)e+;for(int l=0;lnian=il)jl+;p1=p1-next;/-存档ofstream fileout(统计.txt);fileout统计信息endl;fileout-endl;fileouta专业的个数:aendlb专业的个数:bendlc专业的个数:cendl;fileout男性个数:
15、dendl女性个数:eendl;for(int mm=0;mm100;mm+)if(jmm!=0)fileout年龄imm的个数:jmmendl;fileout-endl;fileout.close(); /-cout统计信息endl;cout-endl;cout网络工程的个数:aendl计算机科学与技术的个数:bendl其他专业的个数:cendl; cout男性个数:dendl女性个数:eendl;for(int m=0;m100;m+)if(jm!=0)cout年龄im的个数:jmendl;cout-endl; return 0; /*/*node* paixu(node* head) /
16、英语成绩排序node *p1=head;int rr=100;/成绩int ll=1;/排名ofstream fileout(英语成绩排序.txt);fileout英语成绩排序endl;fileout-endl;fileout排名 成绩 姓名endl;cout-endl;cout排名 成绩 姓名mark=rr)fileoutll mark nameendl; coutll mark namenext ;rr-;fileout-endl;fileout.close(); cout-endl;return 0; /* main()int gg=1; int strcmp(const char *s
17、1,const char *s2);node *p;/= cout* 学 生 信 息 管 理 系 统 * endl; cout* * endl; cout* 1.增加学生信息 *endl; cout* 2.删除学生信息 *endl; cout* 3.导入学生信息 *endl; cout* 4.学生信息搜索 *endl; cout* 5.学生信息统计 *endl; cout* 6.按英语成排序 *endl; cout* 7.学生信息保存 *endl;cout* 8.退出 *endl; cout 请输入您的选择(1-8):endl;while(1) /输出操作文本int line=0;char b
18、uf100;ifstream filein(in.txt);while(filein.getline(buf,100)+line;coutbufn;/-if(n=1) /新增学生信息if(gg) p=create();/调用创建列表gg-;elseinsert(p);/新增学生信息nn+;chundang(p);/信息存档/-elseif(n=2) /删除学生信息int line=0;/导入学生信息char buf100;ifstream filein(out.txt);while(filein.getline(buf,100)+line;coutbufendl;filein.close();
19、coutcc;delete(p ,cc);chundang(p);/信息存档/-else if(n=3) /导入学生信息int line=0;char buf100;ifstream filein(out.txt);while(filein.getline(buf,100)+line;coutbufendl;filein.close();/-else if(n=4) /学生信息搜索coutname;sousuo(p,name);/-else if(n=5) /学生信息统计tongji(p);/-else if(n=6) /英语入学成绩排序cout按英语成绩排序:endl;paixu(p);/-
20、else if(n=7) /学生信息保存char ch,ch1=n;ofstream file1(学生信息保存.txt,ios_base:app);/=清空文件学生信息保存.txt的内容 file * fp; fp = fopen(学生信息保存.txt,w);/=组合文件ifstream file2(out.txt);file1.write(char *) &ch1,sizeof(ch1);while(file2.get(ch)file1.put(ch);ifstream file3(统计.txt);file1.write(char *) &ch1,sizeof(ch1);while(file3.get(ch)file1.put(ch);ifstream file4(英语成绩排序.txt);file1.write(char *) &ch1,sizeof(ch1);whi
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 细胞内运输中的纳米技术应用-洞察分析
- 医院化验室个人工作总结范文(7篇)
- 《保安服务培训》课件
- 农机配件行业的办公流程与质量控制整合策略
- IT技术支持团队问题解决的动态视觉汇报
- 健康教育课程在校园文化建设中的作用
- 企业内部实验室的节能减排措施
- 健康管理在提升现代生活品质中的重要性
- 《物体的形状改变以后》课件
- 创新客户服务模式引领行业发展
- 2024年短剧拍摄及制作协议版
- 汽车维修安全生产管理制度(3篇)
- 用电安全专项检查工作方案模版(3篇)
- 微积分(I)知到智慧树章节测试课后答案2024年秋南昌大学
- 低空经济的商业化路径分析
- 新外贸业务员年终总结
- 化工厂设备安装施工方案
- 代账公司会计主管年终总结
- 创新思维训练学习通超星期末考试答案章节答案2024年
- 2024年一级注册消防工程师考试复习题库100题及答案(一)
- 科学与文化的足迹学习通超星期末考试答案章节答案2024年
评论
0/150
提交评论