欢迎来到天天文库
浏览记录
ID:9381590
大小:56.00 KB
页数:17页
时间:2018-04-29
《c++课程设计--简单的通讯录管理》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、南京航空航天大学《C++语言程序设计》课程设计实验报告题目:简单的通讯录管理班级:班学号:姓名:刘新铨成绩:指导教师:潘梅园日期:年月日报告内容一、程序功能二、课题分析三、设计中的问题与解决方法四、感想和心得五、源程序代码(含注释)六、典型测试数据组(含输入数据和输出结果)(一)程序功能1.增加记录,可选择增加数目2.删除记录,可选择删除多个或单个或全部3.显示所有记录,十个一屏4.按姓名查找一个记录5.按姓名查找并更改记录6.从一个正文文件读取记录7.把目前的记录存入一个正文文本8.更改排序关键字并排序(二)课题分析此课程设计的数据里面包含每个人的姓名,电话号码以及E-mail地址
2、等信息,并且每个人的数据默认以姓名为关键字,按照升序排放,排序方式可修改,同时为了减少执行“添加”“删除”等过,与复杂和繁琐的操作,采用单向链表来进行数据的存储与操作。同时需要一个文本文件来存储联系人信息,数据可从该文本文件中导出。(三)设计中遇到的问题及解决办法1.从文本文件中载入数据时,出现不能读的情况,解决办法是分情况,写程序分别进行处理。2.从文本文件中载入数据时,出现不同类数据合并现象,原因是数据之间无空格,解决方法是增大字段占用宽度。3.修改排序关键字时出现错误,解决办法:依次从原链表中摘除结点,按要求的顺序添加到新链表中,最后将首尾结点指针指向新链表。(四)感想和心得通
3、过这次的课程设计我明白了学习程序设计语言必须要勤做实验,通过实验总结经验。我发现编写一个大一点的程序多么复杂,要掌握好C++就必须向老师说的那样,多操作,不然说平就提不高。有很多东西你了解了,但当你去编写时,就会不断暴露出我们自己的问题,所以平时遇到的一些小问题一定要重视,越是基础的知识越要理解透彻,比如指针与数组方面的知识,一旦没有弄清楚,在设计程序时就会吃亏。这次的课设中,我遇到了很多的问题,有的通过思考或查看书本解决了,有的还留在脑子里,只有通过孜孜不倦的求索我们才会有进步,不懂的思考就不能真正的掌握一门知识。这次的试验给予了我警示,他让我明白我掌握的知识还欠缺,对于继承与派生
4、这一章的知识,我以为自己勉强掌握了,这次试验后我发现我掌握的还不够。基类的保护成员公有继承到派生类,类外是否可以通过对象来访问呢,原先我以为是可以的,经过这次程序设计我知道我错了。总之,我觉得做学问不应该马虎,对于所学一定要有深入的理解,这也是我这次课设得到的启示。(五)源程序代码(含注释)#include#include#include#include#include#include#definelensizeof(classnode)//定义一个宏len大
5、小为node的字节长度classnode//定义一个面向对象的类{charname[10];intofficephone;inthomephone;charmobilephone[15];charemail[20];node*next;//指向下一个类的指针public:node(char*n="dd",into=0,inth=0,char*m="0",char*e="0")//缺省构造函数{strcpy(name,n);strcpy(mobilephone,m);strcpy(email,e);officephone=o;homephone=h;}voidshow()//定义一个打
6、印的接口函数{cout<<'t'<7、ephone(char*m)//更改手机号的接口函数{strcpy(mobilephone,m);}//以实参修改手机号voidsetemail(char*e)//更改邮箱的接口函数{strcpy(email,e);}//以实参修改邮箱friendclassaddrlist;//定义addrlist为友元类};classaddrlist{node*headptr;node*tailptr;inttag;public:addrlist()//缺省构造函数{h
7、ephone(char*m)//更改手机号的接口函数{strcpy(mobilephone,m);}//以实参修改手机号voidsetemail(char*e)//更改邮箱的接口函数{strcpy(email,e);}//以实参修改邮箱friendclassaddrlist;//定义addrlist为友元类};classaddrlist{node*headptr;node*tailptr;inttag;public:addrlist()//缺省构造函数{h
此文档下载收益归作者所有