- 1、本文档共19页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Visual C++
课程设计报告
题目:电话薄管理
姓名:
学号:
班级:
提交时间:
1.程序任务:
功能介绍:一个电话薄管理小程序。利用文本文件存储电话簿数据,具有添加、删除、显示和查询联系人号码的功能。
(1) 将电话薄数据和相应的函数封装在类中,改写程序使之结构化。
(2) 增加记录修改功能,能选择修改用户的姓名、电话。
(3) 增加录入时间的显示及存储。
(4) 增加缺省的查询方式,即查询时只输入姓名的首字母,所有符合这一条件的电话资料均在屏幕上显示。
平定难易等级:A级。
所完成的功能:
程序大致流程图如下。
2.1原程序各功能分析与说明
原程序采用结构化的设计方法,通过直接构建链表来实现增加记录,显示记录,根据姓氏查找号码,删除号码,帮助,退出等基本功能。
原程序在主函数中在do-while循环中插入choice选择结构来对用户需要执行的功能进行选择,增加记录功能通过函数add_record()函数来完成,而函数add_record()里面又含有几个子函数。显示记录功能是通过display_list()功能来完成的,查找记录功能是通过search_by_name()函数来完成的,删除记录功能是通过delete_record()来完成的,帮助功能是通过help_me()函数来完成,最后在退出之前,执行delete_list()函数来完成相关记录的保存等工作。
2.2课程设计要求的实现
1.类的结构 因为课程设计要求将原程序的电话簿数据和相应的函数封装在类中,于是我就定义了一个Phone_Book的类,但是在封装成类的时候我遇到了很多问题。首先是面对如此多的函数和结构我不知道如何把他们封装到一个类里面去,因此我反复的看了书上有关类的定义,构造函数,析构函数等内容,然后定义了姓,名,电话号码三个字符数组,这三个成员都是私有的,然后我再把原程序中的函数进行了函数原型说明,并在后面定义了函数内容,类的封装的基本结构就成功了。
2.增加时间 根据样例程序说明第二部分的讲解和在网上查找了一些资料,我知道了time.h这个头文件的作用,因此我在代码顶部添加了time.h这个头文件,然后定义了tm的指针成员CurrentTime,我再网上查得获得当前时间的代码是
time_t timedata=time(0);
CurrentTime=localtime( timedata);
new_rec_ptr-nYear=CurrentTime-tm_year+1900;
new_rec_ptr-nMonth=CurrentTime-tm_mon+1;
new_rec_ptr-nDay=CurrentTime-tm_mday;
new_rec_ptr-nHour=CurrentTime-tm_hour;
new_rec_ptr-nMinute=CurrentTime-tm_min;
基本完成了记录时间的功能。
3.增加修改功能 我在类中定义了void modify_record()函数,用来修改用户的姓名、电话。在函数中,我运用了if-else,switch等语句并用search_by_name()函数找到欲修改的节点,对函数修改,并且可以选择修改哪一项,相关代码如下,
void Phone_Book::modify_record(void)
{
int n;
char last_name1[20];
char first_name1[15];
char phone_num1[12];
search_by_name();//此时current_ptr指向欲修改的节点
if(current_ptr)
{
cout你想修改当前记录的哪一项?;
cout\n1.姓:;
cout\n2.名:;
cout\n3.电话:\n;
cinn;
switch(n)
{
case 1:
cout请输入新的姓:;
cinlast_name1;
cin.ignore(20,\n);
strcpy(current_ptr-last_name, last_name1);
break;
case 2:
cout请输入新的名:;
cinfirst_name1;
cin.ignore(15,\n);
strcpy(current_ptr-first_name, first_name1);
break;
case 3:
cout请输入新的电话号码:;
cinphone_num1;
cin.ignore(12,\n);
您可能关注的文档
最近下载
- 初中英语_Module11Unit1Theytouchnoses!教学设计学情分析教材分析课后反思.doc VIP
- 计算机组成原理重点总结(详版).doc VIP
- ISO 37000:2021《 组织治理指南》专业解读和应用培训指导材料之3:“5概述”.pdf VIP
- 脂类代谢I-脂肪代谢.PPT
- 初中英语《Body language》教学设计和反思.doc VIP
- ISO 37000:2021《 组织治理指南》专业解读和应用培训指导材料之6:“6治理原则”之3:“6.3战略”.pdf VIP
- 施工现场消防管理制度--最新版.doc VIP
- ISO 37000:2021《组织治理指南》专业解读和应用培训指导材料之14:“6治理原则”之11:“6.11长期生存能力和绩效”.pdf VIP
- 新22G02 钢筋混凝土结构构造.docx VIP
- 17R410 热力管道直埋敷设.docx VIP
文档评论(0)