为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

VC++课程设计电话簿管理

2011-11-01 3页 doc 38KB 43阅读

用户头像

is_416333

暂无简介

举报
VC++课程设计电话簿管理VC++课程设计报告 VC++课程设计报告 课题名称:电话簿管理 1.​ 程序功能简介 一个电话簿管理小程序。利用文本文件储存电话簿数据,具有添加、删除、显示和查询联系人电话号码的功能。 2.​ 课程设计要求 (1)​ 将电话簿数据和相应的函数封装在类中,改写程序使之结构化。 (2)​ 增加纪录修改功能,能选择修改用户的姓名,电话等信息。 (3)​ 增加录入时间的显示及储存。 (4)​ 增加缺省的查询方式,即查询时只输入姓名的首字母,所有符合这一条件的电话资料均在屏幕上显示。 3.​ 程序设计思想 1)​ 类的结构 原程序将电...
VC++课程设计电话簿管理
VC++课程报告 VC++课程设计报告 课名称:电话簿管理 1.​ 程序功能简介 一个电话簿管理小程序。利用文本文件储存电话簿数据,具有添加、删除、显示和查询联系人电话号码的功能。 2.​ 课程设计要求 (1)​ 将电话簿数据和相应的函数封装在类中,改写程序使之结构化。 (2)​ 增加纪录修改功能,能选择修改用户的姓名,电话等信息。 (3)​ 增加录入时间的显示及储存。 (4)​ 增加缺省的查询方式,即查询时只输入姓名的首字母,所有符合这一条件的电话资料均在屏幕上显示。 3.​ 程序设计思想 1)​ 类的结构 原程序将电话簿数据存放在文本文件中,在程序开始运行时将数据读入链表中,在程序运行期间使用单向链表来添加,删除,管理数据。在程序结束前再将数据写回文本文件,这样的结构比较合理,课程设计的要求是根据这一结构将数据与函数封装起来。参考结构如下: Class CTelRecord //电话簿类 { Private: Int nYear,nMonth,nDay,nHour,nMinute: //时间 Char szName[20]; //电话簿的数据:姓名和电话号码 Char szName[20[; Public: CTelRecord(); CTelRecord(char*name,char*number); //构造函数 Void SetRecord(char*name,char*number); //输入数据函数 Int Compare(CTelRecord&); //比较函数,比较姓名 Void show(); //打印数据函数 Void Modify(char*number); //修改结点的电话号码 Int LookChar(char*szName); //根据首字母查找匹配的姓名 }; Class CNode //定义结点类 { Private: CTelRecord*pData; //用于指向数据类的指针 CNode*pNext;   //指向链表下一个结点的指针 Public: CNode(){pData=0:pNext=0} //结点构造函数 CNode(CNode&node); //用于拷贝的构造函数 Void InoutData(CTelRecord*pdata){pData=pdata} //输入数据 Void showNode(){pData->Show();} CTelRecord*GetData(){retuen pData;} Friend class CList; //定义链表为友元类 }; Class Clist //定义链表类 { CNode*pHead; //链表头结点指针 Public:  CList(){pHead=0;} ~CList(){DeleteList();} Void AssNode(CNode*pnode); //在首部添加结点 CNode*Delete(CNode*); //删除一个指定结点,返回该结点的指针 CNode*LookUp(CTelRecord&); /*查找一个指定的数据返回该数据所在结点在链表中的指针,若为找到返回0*/ Void ShowList(); //打印整个链表 Void DeleteList(); //删除整个链表 CNode*GetListHead(){return pHead;} //返回链表首结点 CNode*GetListNextNode(CNode*); //返回链表指定结点的下一个结点 Void Insert(CNode*pnode); //根据姓名的顺序插入链表 2) 增加时间单元的储存与显示 课程设计要求将电话簿录入时间的系统时间纪录并显示,这就需要在结点数据域中增加一个时间单元,建议在结点数据对象的构造函数中用系统时间给时间单元赋值。这样在具体结点的操作中就不用考虑时间的因素,只是在显示时将时间单元中的数据按一定的格式显示即可。 3)​ 修改后的程序 以及封装 就是充分利用函数和类,主函数只写一点点,真是有意思啊,把那些东西从括号中一点点地挪出来,还要注意前后关系。我设计的管理项目主要包括以下几个: 1、​ 添加电话簿纪录 2、​ 显示电话簿内容 3、​ 根据姓名查询电话簿数据 4、​ 根据姓名删除电话簿数据 5、​ 根据姓名修改电话簿数据 6、​ 智能查找电话簿数据 7、​ 帮助 0、​ 退出系统 主要功能都不在主函数里,而是用了类的知识。我这里按照书上提示的定义了三个类,一个电话簿记录类,一个链表类,一个节点类。 主要的类, 注意: 在修改电话簿数据时,首先询问是只修改电话号码还是只修改姓名,如果只修改电话号码,则找到该结点后将新的电话号码更新即可;如果需要修改姓名,就需要先删除原结点,然后建立新结点,输入新的姓名、电话、将这个结点插入到链表中,因为电话簿是按姓名顺序排列的。 4.​ 课程设计心得 编这个程序真是多灾多难啊,最先遇到的是在机房感染到病毒……然后才是技术上的困难。编完之后,我和做别的题目的同学比较,竟然多了三四倍的数据量……是程序太复杂还是我编程太弱了,我到现在也不知道啊。还有就是时间不够。不是我们学生抱怨啊,但是老师看一下这个报告的创建时间吧,时间实在是太紧了。不过好在这个程序也最终出来了,庆祝庆祝…… 好在暑假帮助一个补考的同学复习,学的那点东西还算没有忘光,不过真是觉得以前学得远远不足,尤其是那些CtelRecord:: CTelRecord什么的,超级晕的,然后查书查书,问了几个我们院的强人,才把以前学的那些固定的东西应用到实际上去。书上还说让我们做三个程序,那也太困难了。不过真的很长知识啊。这次的程序设计,和咱原来的课后作业都不是一个级别的。用了那么多的函数,变量,还涉及到了我原来根本没有好好学的链表。如果说有什么难点的话,那就是那个链表了。原来上课的时候就没有好好听,等回来看书,书上又写的不详细,去图书馆借的c++书上竟然还有print什么什么的,我真怀疑那是关于c++的书吗。链表啊,做过这个程序我算看清你了。 原来选这个题目,就是觉得这个看起来比较简单,结果被表象所蒙蔽了啊。做了700多行,哪里简单了。多亏了有同学的帮助,不然我现在还在机房迷茫呢。对了,一星期八个小时根本不够用,机房这个规定到底是怎么统计出来的啊。 通过这次这个程序,我巩固了原来所学的知识,也充分认识到了自己的不足,还创造了好多奇怪的方便技巧,比如再打开一个记事本,作为现在这个程序的备份。记事本真是个好东西啊。还有啊,用记事本打开cpp文件速度实在是太棒了,想简单地改一下的时候,我都用记事本打开的。还有用笔在纸上打草稿,不要说我跟不上潮流…… 话说回来让菜单变得友好真是很有趣呢,还有我们对于使用程序的人,一定要称呼为您吗?
/
本文档为【VC++课程设计电话簿管理】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索