




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、北 华 航 天 工 业 学 院基于C+的面向对象程序设计实例课程设计报告报告题目: 课程设计选题管理系统设计 作者所在系部: 计算机科学与工程系 作者所在专业: 计算机应用技术 作者所在班级: 11512 作 者 姓 名 : 王杰 指导教师姓名: 斯庆巴拉 完 成 时 间 : 2012-6-20 北华航天工业学院教务处制课程设计任务书课题名称课程设计选题管理系统设计完成时间2012/6/20指导教师斯庆巴拉职称教师学生姓名王杰班 级11512总体设计要求和技术要点课程设计选题管理系统设计课程设计题目包括:编号、名称、关键词、实现技术、人员数(由几个人来完成)等信息。学生信息包括:学号、姓名、性
2、别、年龄、班级、专业等信息。(1)添加功能:程序能够添加学生的记录和课程设计题目记录,提供选择界面供用户选择所要添加的类别。添加记录时,要求学号和编号要唯一。如果添加了重复记录,则提示数据添加重复并取消添加。(2)查询功能:可根据学号、姓名、编号、名称等信息对已添加的学生和课程设计题目进行查询,如果未找到,给出相应的提示信息,如果找到,则显示相应的记录信息。(3)显示功能:可显示当前系统中所有学生的信息和课程设计题目信息,每条记录占据一行。(4)编辑功能:可根据查询结果对相应的记录进行修改,修改时注意学号的唯一性。(5)删除功能:主要实现对已添加的学生和课程设计题目记录进行删除。如果当前系统中
3、没有相应的记录,则提示“记录为空!”并返回操作。(6)统计功能:能根据多种参数进行统计。能按课程设计题目名称统计出学生选择该题目的人员的信息。(7)保存功能:可将当前系统中各类记录存入文件中,存入方式任意。(8)读取功能:可将保存在文件中的信息读入到当前系统中,供用户进行使用。工作内容及时间进度安排16月4日10日:布置任务,软件设计;26月11日18日:编写代码,上机调试;36月19、20、21日:软件验收,撰写课程设计报告;4各班在6月22日下午五点前将课程设计报告收齐并上交。课程设计成果1课程设计报告2源程序代码摘 要在当前的各大高校课程设计选题管理系统中,为了方便管理、查询、修改与统计
4、相关信息,一般都会将学生、课程设计题目等信息进行编号存储,所以就必须拥有一套完善的并且适合自身特点的信息化管理系统,以实现对冗杂的课程设计题目信息与学生信息的管理目的,还可以提高效率,方便同学们选题。本文利用Microsoft的Visual C+ 6.0(类和函数,数组,对象等)编写程序,实现了用户对课程设计选题的管理操作。本系统主要有八个功能模块:包括添加、查询、显示、修改、删除、统计、保存、读取等功能。已经过全面的系统测试,能够很好的运行,达到了预期设计预想。关键词:系统设计 类 函数 数组 文件操作 目录摘 要1第一章 绪论111 课程设计的目的112 课程设计的背景和意义1121 课程
5、设计的背景1122 课程设计的意义113 课程设计环境1第二章 需求分析221 问题描述222 功能要求223 问题的解决方案2第三章 系统设计331 数据设计3311 类设计3312 函数设计332 结构设计3321 系统流程图3322 界面设计4第四章 系统实现541 类实现542 函数实现543 主函数实现14第五章 系统测试1651 模块测试1652 课程设计过程中遇到的问题22总 结22致 谢22参考文献23附 录24第一章 绪论11 课程设计的目的(1)要求学生能够熟练掌握C+语言的基本知识和技能。(2)基本掌握面向对象程序设计的基本思路和方法。(3)能够利用所学的基本知识和技能,
6、解决简单的面向对象程序设计问题。12 课程设计的背景和意义121 课程设计的背景1. 理论研究基础(1)运用面向对象(类和对象)的机制来实现系统功能。(2)建立清晰的类与函数之间的关系,学会对函数调用的熟练使用。2. 技术层面的支持Microsoft Visual C+6.0Microsoft Visual studio2010122 课程设计的意义通过此次课程设计,清晰的掌握C+语言的基本知识并能熟练的应用进行编程。13 课程设计环境软件:WindowsXP、windows7系统, Microsoft Visual Studio 2010, Microsoft Visual C+ 6.0编译
7、器。硬件:戴尔 双核处理器,2G内存,512独立显卡,80G硬盘。 宏基 双核处理器,2G内存,1G独立显卡,500G硬盘。第二章 需求分析21 问题描述课程设计题目包括:编号、名称、关键词、实现技术、人员数(由几个人来完成)等信息。学生信息包括:学号、姓名、性别、年龄、班级、专业等信息。22 功能要求(1)添加功能:程序能够添加学生的记录和课程设计题目记录,提供选择界面供用户选择所要添加的类别。添加记录时,要求学号和编号要唯一。如果添加了重复记录,则提示数据添加重复并取消添加。(2)查询功能:可根据学号、姓名、编号、名称等信息对已添加的学生和课程设计题目进行查询,如果未找到,给出相应的提示信
8、息,如果找到,则显示相应的记录信息。(3)显示功能:可显示当前系统中所有学生的信息和课程设计题目信息,每条记录占据一行。(4)编辑功能:可根据查询结果对相应的记录进行修改,修改时注意学号的唯一性。(5)删除功能:主要实现对已添加的学生和课程设计题目记录进行删除。如果当前系统中没有相应的记录,则提示“记录为空!”并返回操作。(6)统计功能:能根据多种参数进行统计。能按课程设计题目名称统计出学生选择该题目的人员的信息。(7)保存功能:可将当前系统中各类记录存入文件中,存入方式任意。(8)读取功能:可将保存在文件中的信息读入到当前系统中,供用户进行使用23 问题的解决方案根据系统功能要求,可以将问题
9、解决分为以下步骤:(1)应用系统分析,建立该系统的功能模块框图以及界面的组织和设计;(2)分析系统中的各个实体及它们之间的关系;(3)根据问题描述,设计系统的类层次;(4)完成类层次中各个类的描述;(5)完成类中各个成员函数的定义;(6)完成系统的应用模块;(7)功能调试;(8)完成系统总结报告。第三章 系统设计31 数据设计311 类设计定义一个学生类Student,类中包括学号stuid,姓名stuname,性别sex,年龄age,班级clas,专业specialty,及所选课程的课程编号couid,课程名称couname,关键词keyword,实现技术technology;定义一个管理类
10、Guanli,其成员函数包括向文件输入函数void write(int n);从文件读取函数,int read();添加学生信息函数void add(),查询信息函数void search (),按学号查询函数void searchsid(),按姓名查询函数void searchsname(),按题目编号查询函数void searchcid(),按题目名称查询函数void searchcname();修改信息函数void alter() ;删除信息函数void del();统计信息函数void total();显示函数void display()以及一个数据成员Student stu50。31
11、2 函数设计void write(int n),向文件中写入数据,打开文本文档,并将数据输入到文本文档中;int read(),向文件中写入数据从文件中读数据,打开文本文档,并将文本文档中的数据输出;void add(S),添加学生信息;void search()查询信息(可根据学生的学号、姓名、所选课程编号、课程名称进行信息查询);void alter(),修改学生信息;void del()删除学生信息,根据输入的学生学号通过调用函数实现;void total(),统计学生信息(根据学生所选课程名称进行统计);void display(),显示函数用来显示所有学生信息;int main()主
12、函数,显示主菜单,调用各个函数实现所有功能。 32 结构设计321 系统流程图课程设计学生选课系统设计结构图:进入功能界面后,可以进行多项功能选择,如添加、查询、显示、修改、删除、统计,将数据写入文件以及从文件读取数据等;而查询功能又可以分为按学号、姓名、题目编号、题目名称等方式进行查询。如图3-1示。主菜单退出系统显示所有记录统计所有记录删除学生信息修改学生信息 查询记录信息添加新的记录按学号查询按姓名查询按编号查询按名称查询图3-1课程设计学生选课系统设计结构图322 界面设计主界面是“欢迎使用课程设计选课系统”,下面是所要使用的功能:1.添加新的纪录2.查询记录信息3.修改学生信息4.删
13、除学生信息5.统计所有记录6.显示所有记录0.退出系统其中,查询记录又可以弹出一个界面分别有以下几个功能:(1).根据学号查询(2).根据姓名查询(3).根据编号查询(4).根据题目名称查询每实现一个功能,重新弹出主界面,进行下一个的功能选择。第四章 系统实现41 类实现class Studentpublic: int stuid; /学号 char stuname10; /姓名 char sex2; /性别int age; /年龄char clas10; /班级char specialty10; /专业 int couid; /题目编号 char couname10; /题目名称char k
14、eyword20; /关键词char technology30; /实现技术stu50; /定义对象class Guanliprivate:Student stu50;public:void add(); /添加学生信息void search(); /查询信息void searchsid(); /按学号查询信息void searchsname(); /按名字查询信息void searchcid(); /按题目编号查询信息void searchcname(); /按题目名称查询信息 void alter(); /修改信息void del(); /删除信息void total(); /统计信息vo
15、id display(); /显示信息void write(int n); /向文件中写入数据int read(); /从文件中读数据;42 函数实现void Guanli:write(int n) fstream myfile;myfile.open(student.txt,ios:out|ios:binary);if(!myfile)cout该文件不能打开!endl;abort();int count=n;myfilecountendlendl;for(int i=0;i=count;i+)myfilestui.stuid stui.stuname stui.sex stui.age st
16、ui.clas stui.specialty stui.couid stui.couname stui.keyword stui.technology endl;myfile.close();int Guanli:read() fstream myfile;myfile.open(student.txt,ios:in|ios:binary);if(!myfile)cout该文件不能打开!count;for(int i=0;istui.stuidstui.stunamestui.sexstui.agestui.classtui.specialtystui.couidstui.counamestu
17、i.keywordstui.technology;coutendl;myfile.close();return count;void Guanli:add()int n=read();int i=0;char sign;coutendl请输入增加的学生的相关信息: endl; while(sign!=N) loop:coutstui.stuid; cout endl;int c=0;while(ci)c+;if(stui.stuid=stui-c.stuid)cout你输入的学号已经存在!请重新输入endl;goto loop;coutstui.stuname; coutendl; couts
18、tui.sex;coutendl;coutstui.age;coutendl;coutstui.clas; coutendl; coutstui.specialty;coutendl;coutstui.couid;coutendl;coutstui.couname; coutendl;coutstui.keyword;coutendl;coutstui.technology;coutendl;coutsign; /输入判断 i+;write(i);void Guanli:search()int n=read();cout* (1)根据学号查询 *endl; cout* (2)根据姓名查询 *e
19、ndl; cout* (3)根据编号查询 *endl; cout* (4)根据名称查询 *endl;coutendl; int c;Guanli g; coutc; switch(c)case 1: g.searchsid(); break; case 2: g.searchsname(); break; case 3: g.searchcid(); break; case 4: g.searchcname(); break;default:cout输入错误,请重新输入!endl;g.write(n);void Guanli:searchsid() int n=read();int s; in
20、t i=0;coutendl查找学生信息:endl;cout请输入需要查找学生的学号:s; while(stui.stuid-s)!=0&in) i+; /查找判断 if(i=n) cout提示:对不起,无法找到该学生的信息!endl; elsecout*endl; cout学号: stui.stuidendl; cout姓名: stui. stunameendl; cout性别: stui.sexendl ; cout年龄: stui. ageendl; cout班级: stui.clas endl; cout专业: stui. specialtyendl; cout题目编号: stui.c
21、ouidendl; cout题目名称: stui.counameendl; cout关键词: stui.keywordendl;cout实现技术: stui.technologyendl;void Guanli:searchsname() int n=read();char a10; cout请输入需要查找学生的姓名:a; for(int i=0;in;i+) if(strcmp(stui.stuname,a)=0) cout*endl;cout学号: stui.stuidendl; cout姓名: stui. stunameendl; cout性别: stui.sexendl ; cout年
22、龄: stui. ageendl ; cout班级: stui.clasendl; cout专业: stui. specialtyendl; cout题目编号: stui.couidendl; cout题目名称: stui.counameendl;cout关键词: stui.keywordendl;cout实现技术: stui.technologyendl; void Guanli:searchcid()int n=read();int b; int i=0;cout请输入需要查找的题目编号:b; while(stui.couid-b)!=0&in) i+; /查找判断if(i=n) cout
23、提示:对不起,无法找到该信息!endl; elsecout*endl; cout学号: stui.stuidendl; cout姓名: stui. stunameendl; cout性别: stui.sexendl ; cout年龄: stui. ageendl ; cout班级: stui.clas endl; cout专业: stui. specialtyendl; cout题目编号: stui.couidendl; cout题目名称: stui.counameendl; cout关键词: stui.keywordendl;cout实现技术: stui.technologyendl;voi
24、d Guanli:searchcname()int n=read();char c10; cout请输入需要查找的题目名称:c;for(int i=0;in;i+) if(strcmp(stui.couname,c)=0) cout*endl; cout学号: stui.stuidendl; cout姓名: stui. stunameendl; cout性别: stui.sexendl ; cout年龄: stui. ageendl ; cout班级: stui.clas endl; cout专业: stui. specialtyendl; cout题目编号: stui.couidendl;
25、cout题目名称: stui.counameendl; cout关键词: stui.keywordendl;cout实现技术: stui.technologyendl; void Guanli:alter() int n=read();int s; int i=0;coutendl修改学生信息:endl;cout请输入需要修改学生的学号:s; while(stui.stuid-s)!=0&in) i+; /查找判断 if(i=n) cout提示:对不起,无该学生的信息!endl; /输入失败信息 elsecout该学生的信息:endl; cout学号stui.stuidn姓名stui.stun
26、amen性别stui.sexn年龄stui.agen班级stui.clasn专业stui.specialtyn题目编号stui.couidn题目名称stui.counamen关键词stui.keywordn实现技术stui.technologynendl;cout请重新输入该学生的信息endl;coutstui. stuid ; coutendl; coutstui. stuname; coutendl; coutstui.sex; coutendl; coutstui.age; coutendl; coutstui.clas ; coutendl; coutstui. specialty;
27、coutendl; coutstui.couid; coutendl; coutstui.couname; coutendl;coutstui.keyword; coutendl; coutstui.technology; coutendl; char c; cout是否保存数据?(y/n)c; if(c=y)cout修改成功!endl;write(n);void Guanli:del() int n=read();int s; int i=0,j;coutendl删除学生信息:endl;cout请输入需要删除学生的学号:s; while(stui.stuid-s)!=0&in) i+; /查
28、找判断 if(i=n) cout提示:记录为空!endl; /返回失败信息 elsefor(j=i;jn-1;j+) /删除操作 stuj.stuid=stuj+1.stuid; strcpy(stuj.stuname,stuj+1.stuname); strcpy(stuj.sex,stuj+1.sex);stuj.age=stuj+1.age;strcpy(stuj.clas,stuj+1.clas); strcpy(stuj.specialty,stuj+1.specialty); stuj.couid=stuj+1.couid; strcpy(stuj.couname,stuj+1.c
29、ouname); strcpy(stuj.keyword,stuj+1.keyword); strcpy(stuj.technology,stuj+1.technology); cout提示:已成功删除!endl; /返回成功信息 cout你要删除的信息如下:endl; cout姓名:stui.stunameendl;cout学号:stui.stuidendl; cout性别:stui.sexendl;cout年龄:stui.ageendl; cout班级:stui.clasendl;cout专业:stui.specialtyendl; cout题目编号:stui.couidendl; cou
30、t题目名称:stui.counameendl;cout关键词:stui.keywordendl; cout实现技术:stui.technologyendl; write(n-1); void Guanli:total()int n=read();char c10; cout请输入需要查找的题目名称:c;for(int i=0;in;i+) if(strcmp(stui.couname,c)=0) cout你要统计的信息如下:endl;cout姓名:stui.stunameendl;cout学号:stui.stuidendl;cout性别:stui.sexendl;cout年龄:stui.age
31、endl;cout班级:stui.clasendl;cout专业:stui.specialtyendl;cout题目编号:stui.couidendl;cout题目名称:stui.counameendl;cout关键词:stui.keywordendl;cout实现技术:stui.technologyendl; elsecout没有此条记录!endl;void Guanli:display() int n=read(); coutendl显示全部学生信息:endl;if(!stu)cout没有记录endl; elsefor(int i=0;in;i+) /循环输入 cout学号stui.stu
32、idn姓名stui.stunamen性别stui.sexn年龄stui.agen班级stui.clasn专业stui.specialtyn题目编号stui.couidn题目名称stui.counamen关键词stui.keywordn实现技术stui.technologynendl; 43 主函数实现int main()char choice;coutnnt *欢迎使用课程设计选题管理系统*nn; coutt 1.*添加新的记录*n; coutt 2.*查询记录信息*n; coutt 3.*修改学生信息*n; coutt 4.*删除学生信息*n; coutt 5.*统计所有记录*n; cout
33、t 6.*显示所有记录*n; coutt 0.* 退出系统 *n;coutchoice; Guanli g;if(choice=0)coutntt 谢谢您使用本系统!nnendl;exit(0);else if(choice=1) g.add();system(pause);main();else if(choice=2)g.search();system(pause);main();else if(choice=3) g.alter();system(pause);main();else if(choice=4) g.del();system(pause);main();else if(ch
34、oice=5) g.total();system(pause);main();else if(choice=6) g.display();system(pause);main();elsecoutt 输入错误,请重新输入您的选择:; main();return 0;第五章 系统测试51 模块测试1. 添加功能添加学生信息界面如图5-1示。图5-1 添加学生信息2. 查询功能查询学生信息的界面如图5-2示。图5-2 查询学生信息(1)根据学生学号进行查询,界面如图5-3示。图5-3根据学生学号查询学生信息(2)根据学生姓名进行查询,界面如图5-4示。图5-4根据学生姓名查询学生信息(3)根据题目
35、编号进行查询,界面如图5-5示。图5-5根据题目编号查询学生信息(4)根据题目名称进行查询,界面如图5-6示。图5-6根据题目名称查询学生信息3. 修改功能修改学生的相关信息,界面如图5-7示。图5-7修改学生的相关信息4. 删除功能删除学生的信息,界面如图5-8示。图5-8删除学生的信息5. 统计功能根据题目名称统计学生的信息,界面如图5-9示。图5-9根据题目名称统计学生的信息6. 显示功能显示全部学生的信息,界面如图5-10示。图5-10显示全部学生的信息7. 退出系统退出使用系统,界面如图5-11示图5-10退出使用系统52 课程设计过程中遇到的问题类的定义时要声明对象,另外,在调用类
36、中定义的成员函数时,要通过类的对象进行调用。另外,写入文件的数据在显示时只能显示第一个数据,需要用到for循环语句。注意数据成员的类型,字符串型或整形等,一定要注意数据类型的匹配,否则会报错,对文件的操作不熟悉,文件的读写操作不熟悉,对文件所存储的内容删除与修改不会。总 结经过这几天的课程设计的训练,我学到了很多知识,可以熟练的应用所学的知识,遇到不会的问题时通过与同学们交流,查找书籍,上网检索来解决问题。在做课程设计部时,首先对系统要求进行分析,根据要求设计类,设计函数,理解了面向对象的编程思想。因为本人水平有限,在做课程设计是参考了很多资料,并在一些书籍中找到了解决问题的方法,在查阅书籍的
37、同时进行学习,经过多次的修改与调试,最后交出了一份自己比较满意的答卷。通过这次课设,让我进一步掌握了C+程序设计语言,更好的理解了面向对象的程序设计思想。我相信这会对以后的学习有帮助作用。在以后的学习中应当继续努力。致 谢首先,感谢老师给予我们这样一次机会,让我们独立完成课设,让我们学会了独立思考问题,提高了我们解决问题的能力,让我们在这学期即将结束的时候能将所学的知识应用到实践中,使我们加深了对所学知识的掌握程度。 再则我要感谢我的同学在课程设计上给予我的指导、提供给我的支持和帮助,是他们的帮助让我可以更加顺利的完成这次课设;同时也感谢学院为我提供良好的做课程设计的环境。最后再一次感谢所有在
38、设计中曾经帮助过我的良师益友和同学在这次课程设计的撰写过程中,我得到了许多人的帮助。这次课设让我认识到自己不足,在解决问题的同时收获了友谊,在大家的帮助下完成了课设,感到很高兴。在此真挚的感谢帮助我的所有人,参考文献1安志远,贾振华. c+程序设计基础.北京:高等教育出版社,20092谭浩强.c+面向对象程序设计. 北京:清华大学出版社,20063刘丽华.c+面向对象程序设计 .北京:人们交通出版社,20044王超,C+程序设计.-北京:地质出版社,2006.825王继明,C+程序设计与应用开发M.北京:清华出版社,2008.附 录#include #include #include #include #include class Studentpublic: int stuid; /学号 ch
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 公司车转让合同范例
- 低价二手房合同范例
- 化工废水采购合同范例
- 化工项目收购合同范例
- 包租行业投资合同范例
- 医院药品合同范例
- 买卖订购合同范例
- 医生合作合同范例
- 医院强电施工合同范例
- 个人转让阴阳合同范例
- 华为认证HCIA-5G(H35-660)考试题附答案
- 消防管道及设备安装技术交底
- 精装修项目主要分项工程施工技术方案
- 四川省成都市航天中学2025届高三二诊模拟考试物理试卷含解析
- 巧绘节气图(教学设计)-2024-2025学年二年级上册综合实践活动蒙沪版
- 《2024年 《法学引注手册》示例》范文
- 2022年4月07138工程造价与管理试题及答案含解析
- 项目部施工班组管理办法
- 气管插管操作并发症
- 《浙江省建设工程专业工程师和高级工程师职务任职资格评价条件》
- CJT486-2015 土壤固化外加剂
评论
0/150
提交评论