c++课程设计电话薄管理文档格式.docx

上传人:b****1 文档编号:14720530 上传时间:2022-10-24 格式:DOCX 页数:31 大小:274.28KB
下载 相关 举报
c++课程设计电话薄管理文档格式.docx_第1页
第1页 / 共31页
c++课程设计电话薄管理文档格式.docx_第2页
第2页 / 共31页
c++课程设计电话薄管理文档格式.docx_第3页
第3页 / 共31页
c++课程设计电话薄管理文档格式.docx_第4页
第4页 / 共31页
c++课程设计电话薄管理文档格式.docx_第5页
第5页 / 共31页
点击查看更多>>
下载资源
资源描述

c++课程设计电话薄管理文档格式.docx

《c++课程设计电话薄管理文档格式.docx》由会员分享,可在线阅读,更多相关《c++课程设计电话薄管理文档格式.docx(31页珍藏版)》请在冰豆网上搜索。

c++课程设计电话薄管理文档格式.docx

我设计的管理项目主要包括以下几个:

1.添加联系人纪录

2.显示电话簿内容

3.根据姓名查询电话簿数据

4.根据姓名删除电话簿数据

5.根据姓名修改电话簿数据

6.智能查找电话簿数据

7.帮助

0.退出系统

主要功能都不在主函数里,而是用了类的知识在。

我这里按照书上提示的定义了三个类,一个电话簿记录类,一个链表类,一个节点类。

主要的类,程序中有一个选择函数,可以通过这个函数来实现各种功能。

注意:

在修改电话簿数据时,首先询问是只修改电话号码还是只修改姓名,如果只修改电话号码,则找到该结点后将新的电话号码更新即可;

如果需要修改姓名,就需要先删除原结点,然后建立新结点,输入新的姓名、电话、将这个结点插入到链表中,因为电话簿是按姓名顺序排列的。

(4)如何设计修改功能的函数

基本思路:

查找目标---建立新信息---插入新信息---删除原记录。

首先根据姓名查找用户的方法找到需要修改的目标,然后建立一个新结点输入修改的内容,此时新信息储存在新结点中,再将新结点插入到链表中并将查找到的需要修改的结点删除。

使用了查找函数、增加函数、删除函数这三个函数的思路。

三程序调试分析

在程序的调试过程中我遇到了种种困难,首先是出现的各种errors,一出现就是好多,我还要一个一个去找,鉴于程序中三个类的函数太多,查找起来十分不便。

最难搞的就是链表的内容,一不小心就出现各种错误。

考虑不周全,没有想到空链表,还有各结点处的数据处理,很是头疼。

当然还有开始没考虑到的确认删除函数,询问是否继续函数等,在学姐同学的帮助下,终于调试正确!

四程序调试(截图版)

 

五总结

编这个程序真是耗费了我相当多的人力财力与物力,最先选的就是这题,后来觉得这题太难,真心不会,就决定换一题。

然后我又想不能挑太简单的,觉得至少是中等难度,希望通过编写程序更多地提高自己。

于是选了解方程的那个题,周日整天对着电脑越改越错,越改errors越多,我真不知道该怎么办了。

最后决定还是认真做电话薄管理。

通过我的不懈努力,现在终于完成,我感到深深的自豪与激动,还有一定得感谢一下在此次编程中帮助我的人。

这次VC++程序设计让我对知识进行了一次总结和巩固,而通过这次做课程设计,也使我明白了实践的重要性,我现在也很愿意做一些实践活动,来提高自己的能力。

这次做课程我真的受益非浅,我以后会多参与这种活动来锻炼自己的。

链表部分我会一如既往好好努力,请看我的作业。

六附录

源程序:

#include<

iostream.h>

conio.h>

//conio.h是Console(键盘和屏幕)输出输入函数的头文件,con--Console,

fstream.h>

iomanip.h>

string.h>

stdlib.h>

charpause;

classCTelRecord//电话簿记录类

{

private:

chardate[20];

chartime[20];

charszName[20];

//电话簿的数据:

姓名和电话号码

charszNumber[20];

charszTName[20];

public:

CTelRecord();

//缺省构造函数

CTelRecord(char*name,char*number,char*,char*,char*);

//构造函数

voidSetRecord(char*name,char*number,char*,char*D,char*T);

//输入数据函数

voidSetDate_Time(char*dd,char*tt){strcpy(date,dd);

strcpy(time,tt);

}

char*GetLName(){returnszName;

char*GetFName(){returnszTName;

char*GetNumber(){returnszNumber;

char*GetDate(){returndate;

}//增加时间的显示及存储

char*GetTime(){returntime;

}//显示时间

intCompare(CTelRecord&

);

//比较函数,比较姓名

voidShow();

//打印数据函数

voidModify(char*number);

//修改电话号码

intLookChar(char*szName);

//根据首字母查找匹配的姓名

};

classCNode//定义节点类

CTelRecord*pData;

//用于指向数据类的指针

CNode*pNext;

//指向链表下一个节点的指针

CNode(){pData=newCTelRecord;

pNext=0;

}//节点构造函数

CNode(CTelRecordctelrecord,CNodenode){pData=&

ctelrecord,pNext=&

node;

}//构造函数

CNode(CNode&

node);

//用于拷贝的构造函数

~CNode(){};

voidInputData(CTelRecord*pdata){pData=pdata;

}//数据录入函数

voidShowNode(){pData->

Show();

}//结点显示函数

CTelRecord*GetData(){returnpData;

}//获得结点信息函数

CNode*GetpNext(){CNode*p=pNext;

returnp;

}//获得下一个结点

friendclassCList;

//定义链表类为友员类

CNode*current_ptr=NULL;

//全程变量,用于指明当前在链表中的位置

classCList//定义链表类

CNode*pHead;

//链表头节点指针

CList(CNode*node=NULL){pHead=node;

}//构造函数

~CList(){DeleteList();

}//析构函数

voidSetpHead(CNode*node){pHead=node;

}//重置链表头函数

voidAddNode(CNode*pnode);

//在首部添加节点

voidDeleteNode(CNode*);

//删除结点函数

CNode*LookUp(CTelRecord&

//按照姓氏智能查询函数(新增函数用以完成设计要求(4))

voidShowList();

//显示链表函数

voidDeleteList();

//删除链表函数

CNode*GetListHead(){returnpHead;

}//获得链表头部函数

CNode*GetListEnd();

//获得链表尾部函数

CNode*GetListNextNode(CNode*);

//获得链表中指定结点的下个结点函数

voidInsert(CNode*pnode);

//排序插入函数

intload_list_from_file();

//从文件载入数据函数

voiddelete_record();

//删除记录函数

intverify_delete();

//确认删除的函数

voidwrite_list_to_file();

//把信息写入文件的函数

voidhandle_choice(intchoice);

//选择处理函数

voidhelp_me();

//帮助函数

CTelRecord:

:

CTelRecord()

strcpy(date,"

date"

strcpy(time,"

time"

strcpy(szName,"

姓氏"

strcpy(szTName,"

名字"

strcpy(szNumber,"

电话号码"

CTelRecord(char*lastname,char*firstname,char*number,char*DD,char*TT)

{

strcpy(date,DD);

strcpy(time,TT);

strcpy(szName,lastname);

strcpy(szNumber,number);

strcpy(szTName,firstname);

voidCTelRecord:

SetRecord(char*lastname,char*firstname,char*number,char*DD,char*TT)

intCTelRecord:

Compare(CTelRecord&

ctelrecord)

if(strcmp(ctelrecord.szName,szName)==0||strcmp(ctelrecord.szTName,szTName)==0)

return0;

elsereturn1;

Show()

charname[40];

strcpy(name,szName);

strcat(name,szTName);

cout<

<

setw(40)<

name<

setw(20)<

szNumber<

date<

setw(10)<

time<

'

\n'

;

Modify(char*number)

LookChar(char

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 人文社科 > 视频讲堂

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1