




已阅读5页,还剩24页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
C+课程设计设计名称: 学生学籍管理系统 系 (院): 计算机工程学院科学与技术系 设计时间: 2012.6.7-2012.6.20 设计地点:计算机工程学院机房、教室、学生宿舍、图书馆成绩:指导教师评语: 签名: 年 月 日C+课程设计报告 第 29 页,共 29 页1课程设计目的通过对学生学籍管理系统的设计、编写源代码,深刻掌握C+中各个语法、函数的应用,使对比较难的结构体,链表,文件的操作更加熟悉。初步掌握中、大型程序设计中的各个步骤、流程,以及开发过程中遇到问题的处理方法,为以后的学习打下基础。当然本课程设计是计算机科学与技术专业重要的实践性环节之一,是在学生学习完C+程序设计课程后进行的一次全面的综合练习。本课程设计的目的和任务:(1)巩固和加深学生对C+课程的基本知识的理解和掌握;(2)掌握C+编程和程序调试的基本技能;(3)利用C+进行简单软件设计的基本思路和方法;(4)提高运用C+解决实际问题的能力;(5)掌握书写程序设计说明文档的能力。本次课程设计利用C+程序设计课程中所学到的编程知识和编程技巧,完成具有一定难度和工作量的程序设计题目,帮助学生掌握编程、调试的基本技能,使学生能够独立完成所布置的任务。2课程设计任务与要求:任务: 设计一个学生学籍管理系统,该系统功能如下: (1) 系统以菜单方式工作。(2) 登记学生的学号,姓名,性别,年龄,籍贯,系别,专业,班级,修改已知学号的学生信息;(3) 删除已知学号的学生信息;(4) 查找已知学号的学生信息;(5) 按学号,专业输出学生籍贯表。(6) 查询学生学籍变化,比如入学,转专业,退学,降级,休学,毕业。备注:用数据文件存放学生的学籍,可对学生学籍进行注册,登录,修改,删除,查找,统计,学籍变化等操作。要求:1) 设计题目、设计要求以及系统功能需求分析;2) 总体设计:包括模块说明、模块结构图和系统流程图;3) 详细设计:包括主要功能模块的算法设计思路以及对应的工作流程图;4) 源程序代码及设计成果:完整源程序清单和设计成果;5)总结: 调试分析过程描述:包括测试数据、测试输出结果以及对程序调试过程中存在问题的思考(列出主要问题的出错现象、出错原因、解决方法及效果等)包括课程设计过程中的学习体会与收获、对C+和本次课程设计的认识等内容.;3课程设计说明书概要设计模块说明在本次程序设计中我用了两个类模块,第一个class student,首先在student中定义几个保护型的数据成员,学号number,姓名 name,性别sex,年龄 age,籍贯place,系别department,班级grade,专业special;再定义一个student的next指针student *next;这样是将两个类联系起来的桥梁。第二个类模块操作类school,首先两个类必须有个接口将他们联系起来,这样我们就在用一个类的对象指针作为school类中的一个私有数据成员,故定义私有成员student *head再定义一个整型key,下面在保存和推出时会用到。1、 系统功能结构图主程序菜单程序初始化程序学籍查询籍贯输出保存退出显示查找删除注册登录2、 系统流程图: 开 始 选择功能进入菜单目录N是否有该功能Y登录注册信息删除信息查找信息显示信息籍贯信息查寻籍贯退出NY保存是否保存YN 退出系统是否再次操作保存信息4课程设计成果#include#include#include#include#includeclass studentprotected:int number,pwd;char name20;char sex6;char age3;char place20; char department10; char special20; char grade10;public:int a,b,c,d,e,f,g;student *next;student ()student()char* getname() return name; int getnumber() return number;int getpwd()return pwd;char* getplace()return place;char* getspecial()return special; void getxueji(int b,int c,int d,int e,int f,int g)if(b=1) cout入学 ;elsecout未入学 ;if(b=0)cout暂无学籍信息;elseif(c=1) cout转专业 ; else cout未转专业 ; if(d=1) cout未退学 ;else cout已退学 ;if(e=1) cout未降级 ;else cout已降级 ;if(f=1) cout未休学 ;else cout已休学 ;if(g=1) cout未毕业 ;else cout已毕业 ;void input()int e=1;coutttt按提示输入:endl; coutnumber;coutpwd; coutname;while(e) coutsex; if(strcmp(sex,男)=0 | strcmp(sex,女)=0) coutage;coutplace; coutdepartment; coutspecial; coutgrade;coutn请输入学生学籍信息:默认1:入学;1:转专业;1:未退学;1:未降级;1:未休学;1:未毕业;endl;couttt输入学籍信息,请依次输入6个数:(0或1);coutbcdefg;getxueji(b,c,d,e,f,g); e=0; else coutttt无此类型性别!重新输入!numbernamesexageplacedepartmentspecialgrade; is.get(); /获取文件指针 void output() cout学生基本信息如下:endl; cout学号:number 密码:pwd 姓名:name 性别:sex 年龄:age 籍贯:place 系别:department 专业:special 班级:gradeendl; void output(ofstream & os) ossetw(20)number setw(8)pwd setw(15)name setw(6)sex setw(3)age setw(20)place setw(6)department setw(20)special setw(20)gradenext=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 jiguan(); void xueji(); void save(); void begin(); void clear(); void welcome(); void lock(); 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,p2指向空 p=head; /把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 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:welcome() student *p; int num=-1,times=0; char pwd20=; do cout欢迎进入学生学籍管理系统!endl; coutnum; coutpwd;if(!find(&p,num,pwd)cout您输入的卡号或密码有误,请重新输入!endl;times+;return;elsemainmenu();while(times=3);lock();void school:lock()coutendl对不起,由于您的操作失误,您已不能登录!endl;/查找函数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) ) 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() student *p; p=head; while(p-next) (p-next)-output(); p=p-next; /统计籍贯 void school:jiguan() student *p; p=head; while(p-next) cout学号:next)-getnumber() 专业:next)-getspecial() 籍贯:next)-getplace() 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:xueji()student *p=head;int number;coutnumber;if(p-getnumber()!=number)p=p-next; coutgetxueji(p-b,p-c,p-d,p-e,p-f,p-g);/保存函数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=p-next; coutttt文件已保存! num; is.seekg(t);/不连续进行访问 if(numinput(is);/为p2分配空间,并指向input 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; /主选菜单函数char school:mainmenu() char n5; coutnn 欢迎进入学生学籍管理系统endlendl * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *endl * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *endl * * 1: 注册学生信息 * *endl* * 2: 登录学生信息 * *endl * * 3: 删除学生信息 * *endl * * 4: 查找学生信息 * *endl * * 5: 显示学生信息 * *endl* * 6: 学生籍贯信息 * *endl * * 7: 查询学籍信息 * *endl * * 8: 保存学生信息 * *endl* * 9: 修改学生信息 * *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:pp.input(); break; case 2:pp.welcome ();break; case 3:pp.del(); break; case 4:pp.found(); break; case 5:pp.show(); break; case 6:pp.jiguan();break; case 7:pp.xueji(); break; case 8:pp.save(); break; case 9:pp.mend();break; case 0: if(pp.getkey()=1) coutk; if(k=1) pp.save(); pp.clear(); k=0; break; 1.注册学生信息:2. 登录学生信息:3.删除学生信息:4.查找学生信息:5.显示学生信息6学生籍贯信息:7.查询学籍信息8.保存学生信息:9. 退出系统:5.课程设计心得课程设计是培养学生综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程,我们专业课程知识综合应用的实践训练,是我们迈向社会,从事职业工作前一个必不少的过程”千里之行始于足下”,通过这次课程设计,我深深体会到这句千古名言的真正含义这次的程序设计是我们以前从来没有接触过的,一开始着手真的有点无从下手,可经过上网查资料,去图书馆整理一些要用的资料,把它分成一块一块的,解决起来也感觉没那么难了!在这次课程设计中用到了很多不熟悉的函数,但是在书本的解析下和自己的理解分析,我很快学会了许多没见过的函数。如: void getxueji(int b,int c,int d,int e,int f,int g)if(b=1) cout入学 ;elsecout未入学 ;if(b=0)cout暂无学籍信息;elseif(c=1) cout转专业 ; else cout未转专业 ; if(d=1) cout未退学 ;else cout已退学 ;if(e=1) cout
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 二零二五年度房地产开发与销售代理协议合同
- 2025版房地产公司股权分割与股东协议修订合同
- 2025版教育培训机构线上课程版权购买合同协议书
- 二零二五年度电子商务平台安全事件应急处理合同
- 2025年煤气领域专家深度解析面试题预测趋势
- 2025版搅拌车运输服务及运输配送合同
- 2025版建筑工程劳务内部承包工程结算与支付合同
- 2025版教育信息化设备购置贷款协议
- 2025版安徽酒店管理集团员工劳动合同范本
- 2025年物流经理面试题详解行业知识与实战策略
- 放射科护理服务规范礼仪课件
- 机场绿化应急预案及保障措施
- 鼻腔内窥镜上颌窦手术配合
- 充电桩安装与使用管理制度
- 海尔采购管理
- 《跨境电商基础与实务》全套教学课件
- 物料提升机安全知识培训
- 出生医学证明警示教育培训
- 项目验收表模板
- 2024年黑龙江省哈尔滨市中考英语试题卷(含答案及解析)
- 高一语文开学第一课课件
评论
0/150
提交评论