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

VC++ 电话簿管理

2011-11-01 3页 doc 36KB 25阅读

用户头像

is_416333

暂无简介

举报
VC++ 电话簿管理电话簿管理 VC++课程设计报告 课题名称:电话簿管理 1,​ 程序功能简介 一个电话簿管理小程序。利用文本文件储存电话簿数据,具有添加,删除,显示和查询联系人电话号码的功能。 2,​ 课程设计要求 (1)​ 将电话簿数据和相应的函数封装在类中,改写程序使之结构化。 (2)​ 增加纪录修改功能,能选择修改用户的姓名,电话等信息。 (3)​ 增加录入时间的显示及储存。 (4)​ 增加缺省的查询方式,即查询时只输入姓名的首字母,所有符合这一条件的电话资料均在屏幕上显示。 3,​ 程序设计思想 1)​ 类的结构 原程序将电话簿数据存...
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,​ 课程设计心得 这次我所选的课程设计题目——电话簿管理相对来说比较难,所以在完成题目的过程中遇到了许多困难,但经过努力,终于完成了这个课程设计。 首先遇到的就是函数的封装,这要求对以前所学的内容要进行应用与创新,可以说是对上学期知识的一个,是对知识掌握情况的一种检验方式。虽然有些困难,但我还是很快解决了这个问题。 其次,对于原程序的修改使我头疼不已。这种问题显然是对知识理解的考察和对所学知识的总结,问了许多人,包括同学和值班的老师,才慢慢的将原程序修改过来,并最终做到了没有错误,这浪费了许多的精力,但还好我终于克服了难题,顺利的进入了下一步。 最后,也是最最困难的问题,就是菜单的设计。由于上学期根本没有接触过这方面的知识,也没有亲自实践过,所以相对于前两项,这个就难多了,不过对于任何知识来说,只要认真去学,虚心的去请教其他人,就不可能有看不懂的,于是我跟同学们在一起讨论,学习,也只用了一个星期将菜单设计完成了。 这次VC++程序设计让我对知识进行了一次总结和巩固,而通过这次做课程设计,也使我明白了实践的重要性,我现在也很愿意做一些实践活动,来提高自己的能力。这次做课程设计使我搞清楚许多程序上的知识,受益非浅,我以后会多参与这种活动来锻炼自己的。
/
本文档为【VC++ 电话簿管理】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索