欢迎来到天天文库
浏览记录
ID:11587420
大小:168.50 KB
页数:20页
时间:2018-07-12
《c++课程设计---电话簿管理》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、VisualC++课程设计实验报告题目:电话薄管理班级:07102003学号:0710200310姓名:指导老师:2008年9月实验题目:5-5电话薄管理一、课程设计要求:功能介绍:一个电话薄管理小程序。利用文本文件存储电话薄数据,具有添加、删除、显示和查询联系人号码的功能。(1)将电话薄数据和相应的函数封装在类中,改写程序使之结构化。(2)增加记录修改功能,能选择修改用户的姓名、电话。(3)增加录入时间的显示及存储。(4)增加缺省的查询方式,即查询时只输入姓名的首字母,所有符合这一条件的电话资料均在屏幕上显示。平定难易等级:A级。二、程序设计思想(相关问题解决办法):类封装成类是首先
2、遇到的问题,我根据课程设计书上的提示,通过看书和与同学讨论,最后比较清楚地明白了类的封装方法。我在封装时,在类中定义了一些内联函数,并且把函数都定义为公有成员,这样可以方便类外的函数使用成员数据。书上的参考程序与我的稍有不同。增加时间这个是通过互联网学到的,利用time.h。3)增加修改功能我定义了friend_node::modify_record函数,用来修改用户的姓名、电话。在函数中,我运用了if-else,switch等语句并对函数进行了重载。并且本程序可以选择修改,姓,名,电话。首字母查询这是一个比较难解决的问题,我使用了与全名查找基本相同的函数,我只要求姓相同,全名查找要求
3、姓和名全部相同。我在这个的解决上还存在一些问题,这证明程序还是不够完善。这说明我对指针的使用还不够好。三、课程设计心得:本来打算选计算器,后来觉得计算器编起来没什么意思,就换成了这个难一点儿的电话薄管理。在程序编写过程中,我发现,不只是难了一点儿。但是,有难度才有挑战,才有乐趣,不是么?看到源程序,立马被其拥有的函数的数量震撼了。把它们封装起来费了我不少精力。但是,看着它们由零散的函数变为整齐的类,就如同看到C语言向C++语言进化。课程还提出了要增加时间单元。在VB里面,只需要把一个小钟表图标拖进来就可以了,而在C++里面,我尚且不知如何操作。最后通过互联网,才算学会在C++中调用时间
4、单元。也算是学了一招吧。通过这次C++的课程设计,我的知识得到了巩固,同时也学到了很多新知识。我意识到,我们不应是为了编程而编程,而是为了解决问题而编程。编出来的程序能够为我们服务,程序才有意义。一、以下是我所编写的程序源代码及相关注解:/*第5题电话簿管理--源代码及关键源代码注解如下:*///PhoneBook1.0ByMarkMiller#include#include#include#include#include#include#include5、e.h>//全程结构及变量classfriend_node//类类型定义,包括:姓、名和电话号码{tm*CurrentTime;//定义时间指针charlast_name[20];//姓charfirst_name[15];//名charphone_num[12];//电话号码intnYear,nMonth,nDay,nHour,nMinute;//定义friend_node*next,*prev;charpause;//定义一字符型变量,用于接受输入的任意键public://函数原形说明voidhandle_choice(intchoice);//处理选择voidadd_record6、();//增加记录voidinsert_node(friend_node*new_rec_ptr);//插入节点friend_node*position_insertion_point(charlastname[20]);//寻找节点插入位置voidmake_node_new_head(friend_node*new_rec_ptr);//插入链首voidadd_node_to_end(friend_node*new_rec_ptr);//插入链尾voidmove_current_to_end();//使当前指针指向链尾voiddisplay_list();//显示链表voiddele7、te_record();//删除记录voiddelete_head_of_list();//删除链首voiddelete_end_of_list(friend_node*previous_ptr);//删除链尾voiddelete_from_middle_of_list(friend_node*previous_ptr);//删除链表中一节点intverify_delete();//确认是否删除voiddelete_node(friend_no
5、e.h>//全程结构及变量classfriend_node//类类型定义,包括:姓、名和电话号码{tm*CurrentTime;//定义时间指针charlast_name[20];//姓charfirst_name[15];//名charphone_num[12];//电话号码intnYear,nMonth,nDay,nHour,nMinute;//定义friend_node*next,*prev;charpause;//定义一字符型变量,用于接受输入的任意键public://函数原形说明voidhandle_choice(intchoice);//处理选择voidadd_record
6、();//增加记录voidinsert_node(friend_node*new_rec_ptr);//插入节点friend_node*position_insertion_point(charlastname[20]);//寻找节点插入位置voidmake_node_new_head(friend_node*new_rec_ptr);//插入链首voidadd_node_to_end(friend_node*new_rec_ptr);//插入链尾voidmove_current_to_end();//使当前指针指向链尾voiddisplay_list();//显示链表voiddele
7、te_record();//删除记录voiddelete_head_of_list();//删除链首voiddelete_end_of_list(friend_node*previous_ptr);//删除链尾voiddelete_from_middle_of_list(friend_node*previous_ptr);//删除链表中一节点intverify_delete();//确认是否删除voiddelete_node(friend_no
此文档下载收益归作者所有