1、VC+VC+课程设计课程设计 电话薄管理电话薄管理 一一 题目要求题目要求 程序功能程序功能 一个电话簿管理小程序。利用文本文件储存电话簿数据,具有添 加,删除,显示和查询联系人电话号码的功能。 (1)将电话簿数据和相应的函数封装在类中, 改写程序使之结构化。 (2)增加纪录修改功能,能选择修改用户的姓名,电话等信息。 (3)增加录入时间的显示及储存。 (4)增加缺省的查询方式,即查询时只输入姓名的首字母,所有符 合这一条件的电话资料均在屏幕上显示。 二二 课程设计解决问题和过程课程设计解决问题和过程 (1 1)程序的设计思想是什么?)程序的设计思想是什么? 运用学习的文件流的知识对文件进行操
2、作,原程序将电话簿数据 存放在文本文件中,在程序开始运行时将数据读入系统文件,在程序 运行期间使用单向链表来添加,删除,管理数据。在程序结束前再将 数据写回文本文件,这样的结构比较合理,不会造成数据的丢失,课 程设计的要求是根据这一结构将数据与函数封装起来。 关于如何增加时间单元的储存与显示 课程设计要求将电话簿录入时间的系统时间纪录并显示,这就需 要学会调用系统的 dos 命令,比如 system( “date”)就可以调用系 统的日期,然后在程序中显示出来。还有其他的各种系统命令,在程 序中或多或少都有体现。 (3 3)修改后的程序)修改后的程序 以及封装以及封装 就是充分利用函数和类,
3、主函数只写一点点。 主函数中多次调用函数, 在主函数外完成各函数定义等。我设计的管理项目主要包括以下几 个: 1添加联系人纪录 2显示电话簿内容 3根据姓名查询电话簿数据 4根据姓名删除电话簿数据 5根据姓名修改电话簿数据 6智能查找电话簿数据 7帮助 0退出系统 主要功能都不在主函数里,而是用了类的知识在。 我这里按照书上提 示的定义了三个类,一个电话簿记录类,一个链表类,一个节点类。 主要的类,程序中有一个选择函数, 可以通过这个函数来实现各种功 能。 注意: 在修改电话簿数据时,首先询问是只修改电话号码还是只修改姓名, 如果只修改电话号码, 则找到该结点后将新的电话号码更新即可;如 果需
4、要修改姓名,就需要先删除原结点,然后建立新结点,输入新的 姓名、电话、将这个结点插入到链表中,因为电话簿是按姓名顺序排 列的。 (4 4)如何设计修改功能的函数)如何设计修改功能的函数 基本思路:查找目标-建立新信息-插入新信息-删除原记 录。首先根据姓名查找用户的方法找到需要修改的目标, 然后建立一 个新结点输入修改的内容,此时新信息储存在新结点中, 再将新结点 插入到链表中并将查找到的需要修改的结点删除。使用了查找函数、 增加函数、删除函数这三个函数的思路。 三三 程序调试分析程序调试分析 在程序的调试过程中我遇到了种种困难,首先是出现的各种 errors,一出现就是好多,我还要一个一个去
5、找,鉴于程序中三个类 的函数太多,查找起来十分不便。最难搞的就是链表的内容,一不小 心就出现各种错误。考虑不周全,没有想到空链表,还有各结点处的 数据处理,很是头疼。当然还有开始没考虑到的确认删除函数,询问 是否继续函数等,在学姐同学的帮助下,终于调试正确! 四四 程序调试(截图版)程序调试(截图版) 五五 总结总结 编这个程序真是耗费了我相当多的人力财力与物力,最先选的就 是这题,后来觉得这题太难,真心不会,就决定换一题。然后我又想 不能挑太简单的,觉得至少是中等难度,希望通过编写程序更多地提 高自己。于是选了解方程的那个题,周日整天对着电脑越改越错,越 改 errors 越多,我真不知道该
6、怎么办了。最后决定还是认真做电话 薄管理。通过我的不懈努力,现在终于完成,我感到深深的自豪与激 动,还有一定得感谢一下在此次编程中帮助我的人。这次 VC+程序 设计让我对知识进行了一次总结和巩固,而通过这次做课程设计,也 使我明白了实践的重要性,我现在也很愿意做一些实践活动,来提高 自己的能力。这次做课程我真的受益非浅, 我以后会多参与这种活动 来锻炼自己的。链表部分我会一如既往好好努力,请看我的作业。 六六 附录附录 源程序: #include #include/conio.h 是 Console (键盘和屏幕) 输出输入 函数的头文件,con - Console, #include #include #include #include char pause; class CTelRecord /电话簿记录类 private: char date20; char time20; char szName20;/电话簿的数据:姓名和电话号码 char szNumb