收藏 分享(赏)

个人约会管理系统课程设计报告.doc

上传人:HR专家 文档编号:11493159 上传时间:2020-05-13 格式:DOC 页数:22 大小:392.50KB
下载 相关 举报
个人约会管理系统课程设计报告.doc_第1页
第1页 / 共22页
个人约会管理系统课程设计报告.doc_第2页
第2页 / 共22页
个人约会管理系统课程设计报告.doc_第3页
第3页 / 共22页
个人约会管理系统课程设计报告.doc_第4页
第4页 / 共22页
个人约会管理系统课程设计报告.doc_第5页
第5页 / 共22页
点击查看更多>>
资源描述

1、C+课程设计报告课程设计题目:C+个人约会管理系统 学生 姓名 吴亚亮专 业 软件工程班 级 081103学 号 08110322指导教师 李祥 汪雪元 2009年12月15日目录一、C+语言发展状况3二、课程设计名称.4三、课程设计的意义.4四、课程设计题目与内容.5五、课程设计目的.5六、课程设计的过程(个人约会管理系统).61、个人约会管理系统UML图形表示62、详细设计模块.7 3、源程序清单及其实现说明8 4、功能实现和结果显示.16 5、调试、测试与运行错误处理19七、课程设计总结与收获20八、参考文献21 一、 C+语言发展状况语言的发展是一个逐步递进的过程,C+ 是直接从 C

2、语言发展过来的,而 C 语言是从B 语言发展过来的,B 语言是 BCPL 的一个解释性后代,BCPL 是 Basic CPL。其中最有趣的是 CPL 中 C 的由来,由于当时这个语言是剑桥大学和伦敦大学合作开发的,在伦敦的人员加入之前,C 表示剑桥,伦敦人员加入之后,C 表示 Combined 组合。还有一种非正式的说法,C 表示 Christopher,因为 Christopher 是 CPL 背后的主要动力。最初导致C+诞生的原因是在Bjarne博士等人试图去分析UNIX的内核的时候,这项工作开始于1979年4月,当时由于没有合适的工具能够有效的分析由于内核分布而造成的网络流量,以及怎样将

3、内核模块化。同年10月,Bjarne博士完成了一个可以运行的预处理程序,称之为Cpre,它为C加上了类似Simula的类机制。在这个过程中,Bjarne博士开始思考是不是要开发一种新的语言,当时贝尔实验室对这个想法很感兴趣,就让Bjarne博士等人组成一个开发小组,专门进行研究。当时C+即是C with class,这是把它当作一种C语言的有效扩充。由于当时C语言在编程界居于老大的地位,要想发展一种新的语言,最强大的竞争对手就是C语言,所以当时有两个问题最受关注:C+要在运行时间、代码紧凑性和数据紧凑性方面能够与C语言相媲美,但是还要尽量避免在语言应用领域的限制。在这种情况下,很自然C+从C语

4、言继承过来,但是我们的Bjarne博士更具有先见之明,他为了避免受到C语言的局限性,参考了很多的语言,例如:从Simula继承了类的概念,从Algol68继承了运算符重载、引用以及在任何地方声明变量的能力,从BCPL获得了/注释,从Ada得到了模板、名字空间,从Ada、Clu和ML取来了异常。二、课程设计名称 2008级面向对象程序设计C+个人约会管理系统三、课程设计的意义面向对象程序(C+)语言设计是一门既要结合理论学习,又要结合动手编程的科目。理论的学习是不断广面的书籍资料的查阅,然而动手编程则在结合理论的基础上对语言代码的编写与实现,再加上各种功能要求和结构思想的联系。再次,在专业科课程

5、设计中,强调科学的学习方法,在进行设计之前,先要明确主题,然后查阅大量的资料,寻找课程设计的主题思想,同时也要不断更新知识总结的广度和思维发展的过程。最后通过,大量的练习编写与更改,发现无数的运行错误,从而进行不断的修改完善,最终综合地将自己课题要求的功能一步一步地实现出来。四、课程设计题目与内容 课程设计题目:C+个人约会管理系统 课程设计内容与要求: i)具有不同约会类的层次结构 ii)具有不同性质朋友的类层次结构 iii)应用类的继承和派生机制来实现 iv)具有约会的保存与查询功能五、课程设计目的 本课程设计旨在实验中训练我们的基本编程能力,了解关于C+(面向对象语言)管理信息系统的开发

6、思想、开发流程及功能实现,熟悉C+的各种各样的基本操作和代码实现。本管理系统程序中涉及了基类定义、基类继承与派生、函数构造与析构、循环函数、I/O流输入/输出函数、指针函数等各方面的C+编程设计理论的知识。通过课程设计大量的实验训练,使我们能对C+的功能实现操作有一个更深刻更进一步的了解,掌握C+语言程序对各类信息管理的原理、思想和具体的实现方式,为将来进一步开发出高质量的多方向的信息管理系统打下坚实的基础。六、课程设计的过程(个人约会管理系统) 1、个人约会管理系统UML图形表示date# no : string# name : char 10# address : char 33# tim

7、e : char 10+ date ()+date ()+ input () :void+ output () :void+ getno () :stringGenfriendage : intsex : char 5+ Genfriend()+ input (): void+ output () :voidimpfriendProf : char 10interest : char 10+ impfriend()+ input (): void+ output () :voidB_Gfriendhobby : char 6workplace : char 10+ B_Gfriend()+ i

8、nput (): void+ output () :void 内部结构属性及相互关系说明date 为约会基类,其中包括有四个保护成员no、name、address、time,公有成员包括构造函数、析构函数、input、output、get。由date通过公有派生出三个朋友约会类分别为:Genfriend(普通朋友类) impfriend(重要朋友类) B_Gfriend(女/男朋友类)2、详细设计模块 约会类的定义模块 私有成员定义,包括有:No、name10 、address33 、time10公有成员定义,包括input(输入)、output(输出)、getno() 约会类的继承与派生模块

9、 公有(public)派生出Genfriend(普通朋友约会类) 、impfriend(重要朋友约会类)、 B_Gfriend(女/男朋友约会类)。其中包括有,Genfriend:私有成员intage,char sex5公有成员input,output。Impfriend:私有成员char prof10,char interest10公有成员input,output。B_Gfriend:私有成员char hobby6,char workplace10公有成员input,output。等等。主函数定义与功能模块 三个派生类的对象声明Genfriend、impfriend、 B_Gfriend和部

10、分应用需要的具体控制变量i=0,j=0,k=0,l,m,n,x等。个人约会系统登录界面具体设计部分与登录控制的循环函数。再使用switch()判断语句分别进行对各类约会信息更新、各类约会信息详细查询。各类朋友约会类的具体信息读取与保存模块,分别利用I/O流格式,比如fstream file1(datee1.txt,ios:in); fstream f1(datee1.txt,ios:out);等等 3、源程序清单及其实现说明源程序代码清单:(利用到多文件格式)基类定义及其继承派生#include #include using namespace std;class date /约会类定义pro

11、tected:string no;char name10;char address33;char time10;public:void input()cout约会编号_no;cout约会人姓名_name;cout约会地址是_address;cout约会时间为_(时间格式如2009-12-25)time;void output()cout约会编号_ noendl;cout约会的人名_nameendl;cout约会的地址是_addressendl; cout约会时间在_timeendl;string getno()return no;class Genfriend:public date /公有派

12、生普通朋友约会类private: int age; char sex5;public: void input() date:input(); coutage; coutsex; void output() date:output(); cout年龄_ ageendl; cout性别_ sexendl; ;class impfriend:public date /公有派生重要朋友约会类private: char prof10; char interest10;public: void input() date:input(); coutprof; coutinterest; void outpu

13、t() date:output(); cout工作类型_ profendl; cout兴趣_ interestendl;class B_Gfriend:public date /公有派生女(男)朋友约会类private:char hobby6;char workplace10;public:void input()date:input();couthobby;coutworkplace;void output()date:output();cout爱好_hobbyendl;cout工作单位_workplaceendl; 主函数及文件读取、保存#include #include #include

14、 约会类定义.h#include #include using namespace std;void main() Genfriend c20,cs; impfriend imp20,imps;B_Gfriend r20,rs;int i=0,j=0,k=0,l,m,n,x;/i,j,k 分别对应三个派生类的人数string num; cout 欢迎使用个人约会管理系统_ endl;cout endlendlendlendl;cout endl; cout endl; cout endl; cout 更 新 endl; cout endl; cout 查 询 endl; cout endl;c

15、out 退 出 endl;cout endl; cout endl;cout endl; cout endl;while(l) if (i=0 & j=0 & k=0 ) cout endl; coutendl; coutendlendl; cout1,退出系统 -0endl; cout(注释: 写入信息,请键入 1 退出系统,请键入 0 )l; else cout 1 查询- 2 退出- 0 l;system(cls); switch(l) case 1: /各类朋友约会类信息更新 cout 1 n 重要朋友信息更新- 2 n 女(男)朋友信息更新- 3 n 返回- 0 m; switch(

16、m) case 1: cout输入一个普通朋友的数据:endl;ci.input();i+;break; case 2: cout输入一个重要朋友的数据:endl;impj.input();j+;break; case 3: cout输入一个女(男)朋友的数据:endl;rk.input();k+;break; case 0:break; default :cout代号输入有误endl; coutendl; break; break; case 2: /各类朋友约会类信息查询 cout 1 n 重要朋友信息查询- 2n 女(男)朋友信息查询- 3n 返回- 0 n;switch(n)case

17、1: coutnum;for(x=0;xi;x+)if (num=cx.getno()cout显示编号为_num 普通朋友的数据_endl;cx.output();coutendl;elsecoutn_没有这个编号的数据!nendl; break;case 2: coutnum;for(x=0;xj;x+)if (num=impx.getno()cout显示编号为_num 重要朋友的数据_endl;impx.output();coutendl;elsecoutn_没有这个编号的数据!nendl; break;case 3: coutnum;for(x=0;xk;x+)if (num=rx.ge

18、tno()cout显示编号为_num 朋友的数据_endl;rx.output();coutendl;elsecoutn_没有这个编号的数据!nendl; break; case 0:break; default :cout代号输入有误endl; coutendl; break;break; case 0:break; default :cout代号输入有误endl; coutendl;break; /各类文件信息读取 fstream file1(datee1.txt,ios:in); /普通朋友信息读出 while (1) file1.read(char *)&cs,sizeof(cs);

19、if (!file1) break; ci=cs; i+; file1.close(); fstream file2(datee2.txt,ios:in); /重要朋友信息从读出 while (1) file2.read(char *)&imps,sizeof(imps); if (!file2) break; impj=imps; j+; file2.close(); fstream file3(datee3.txt,ios:in); /女(男)朋友信息从读出 while (1) file3.read(char *)&rs,sizeof(rs); if (!file3) break; rk=

20、rs; k+; file3.close();/各类文件信息的保存 fstream f1(datee1.txt,ios:out); /普通朋友信息保存 for (x=0;xi;x+) f1.write(char *)&cx,sizeof(cx); f1.close(); fstream f2(datee2.txt,ios:out); /重要朋友信息保存 for (x=0;xi;x+) f2.write(char *)&impx,sizeof(impx); f2.close(); fstream f3(datee3.txt,ios:out); /女(男)朋友信息保存 for (x=0;xi;x+)

21、 f3.write(char *)&rx,sizeof(rx); f3.close(); /退出管理系统的界面设置cout endlendlendlendlendlendl;cout 谢谢你的使用与支持.endl;cout endl;cout 你已经成功退出个人约会系统endl;4、功能实现和结果显示个人约会管理系统的登录界面约会管理系统普通朋友类数据的输入约会管理系统重要朋友类数据的输入约会管理系统重要朋友类数据的输入重要朋友约会类的信息查询显示女/男朋友约会类的信息查询显示个人约会管理系统的退出界面 5、调试、测试与运行错误处理(1)调试过程 在利用Microsoft Visual C+6

22、.0软件进行个人约会管理系统程序编写过程中,按照各部分的程序与结合老师的理论指导,我依次分多步调试,根据每个模块的函数结构连接进行局部调试,再对未定义完全的问题、错误、非法部分进行大量的修改代码和结构分析。(2) 测试过程 管理系统程序测试中,主要会发现一些函数运用错误、基类和派生类定义的不完整、循环功能函数变量使用不当与函数功能不对口等问题。测试后,再详细查看代码、理解系统要求的功能,不断寻找错误之处和完善功能结构,再通过查阅大量的有关书籍资料,寻找更好的功能函数,再对代码进行改进。如此多次反复调试、测试与改进。七、课程设计总结与收获我在设计这个个人约会管理系统程序时采用了模块多文件的设计方

23、法,使用循环函数控制呈现操作界面,使用不同的函数来实现各项目的需求功能。花了大约一周的时间,其中大部分时间用于构思程序功能、输入程序、调试和写实验报告。遇到的主要困难是:开始时由于构思不完善,导致程序很乱,搞清楚具体类定义、继承派生、各种类的实现和文件操作函数结构等函数关系后,程序代码编写就变得简洁明朗了。通过这次课程设计,更大地增加了我学习软件技术的兴趣,虽然还不明确软件技术包含更深的具体内容,但从C+语言程序设计这门课程的学习与实践中,再次更好的发现程序设计的乐趣,在学习C+编程的过程中也学到了许多计算机应用基础知识,对计算机的软件应用也有了更大的了解。在具体操作中对这学期所学的C+的理论知识得到巩固,达到实训的基本目的,也发现自己的不足之出,在以后的上机中应更加注意,同时体会到C+具有的语句简洁,使用灵活,执行效率高等特点。发现上机实训的重要作用,特别是对类与对象、继承与派生、数组和指针等有了深刻的理解。通过实际操作,学会 C+程序编程的基本步骤、基本方法,开发了自己的逻辑思维能力,培养了分析问题、各种解决问题的能力。八、参考文献C+语言程序设计(第3版)清华大学出版社C+ Primer 中文版 (第4版).人民邮电出版社

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 学术论文 > 管理论文

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报