C++课程设计电话本管理

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

VC++ 课程

专业班级:

学号:

报告人:

C++课程实验报告

一、实验题目:电话本管理

二、功能描述:

这是一个电话簿管理小程序,利用文本文件储存电话簿数据,具有添加、删除、显示和查询联系人电话号码功能。在这个小型管理程序中,类与类之间通过链表将各个数据相连接,形成一个通畅的应用小程序!在程序中,对于用户需求尽可能的予以满足.

三、算法设计与实验步骤

四、流程图:

按ENTER进入电话本功能界面

电话本功能界面(用户根据界面说明进行选择操作)

0 进入帮助1

2

3

4

5

6

用户根据帮助程序根据

提示

用户

新建

联系

人姓

名和

电话

号码

输入

联系

人姓

名,查

找修

输入

姓名

查找

输入

首字

母匹

配查

显示

电话

薄全

部数

逐一

删除

联系

人数

据,

首先

输入

联系

人姓

7

退

簿

簿

四、类与对象结构描述,核心程序代码(需要有相应的注释)

1.程序中所定义的类 (1)电话簿记录类 class CTelRecord {

private:

int nYear,nMonth,nDay,nHour,nMinute,nSecond; //时间单元 char szName[20]; //电话簿数据:姓名和电话号码 char Last[20]; char szNumber[20]; public:

CTelRecord(){} //构造函数

CTelRecord(char *name,char *number);

void SetRecord(char *name,char *last,char *number); //输出时间 int Compare(char *name); //根据姓名查找

void SetName(char *name){strcpy(szName,name);} void SetNum(char *num){strcpy(szNumber,num);} void SetLast(char *last){strcpy(Last,last);}

char *GetName(void){return szName;} //需通过函数访问的私有成员

char *GetLast(void){return Last;} char *GetNum(void){return szNumber;} int GetYear(void){return nYear;} int GetMonth(void){return nMonth;}

用户选择0后进入帮助界面

1 怎样产生一个新纪录

2 怎样显示我的电话本

3 什么时候我有一种新版面

4 什么时候有一种新版面

5 退出帮助进入电话簿功能界面

电话本功能界面

int GetDay(void){return nDay;}

int GetHour(void){return nHour;}

int GetMinute(void){return nMinute;}

int GetSecond(void){return nSecond;}

void Show(); //打印数据

void Modify(char *number); //修改结点函数

int LookChar(char *szName); //按首字母查找匹配姓名};

(2)定义结点类

class CNode

{

private:

CTelRecord *pData; //用于指向数据类指针

CNode *pNext; //指向链表下一个结点指针

public:

CNode(){pData=0;pNext=0;} //结点构造

CNode(CNode &node); //拷贝构造函数

void ShowNode(){pData->Show();} //指向打印函数

CTelRecord *GetData(void){return pData;}

friend class CList; //定义链表类为友元类

};

(3) 定义链表类

class CList

{

CNode *head_ptr,*current_ptr;

public:

CList(){head_ptr=NULL;} //构造函数

void Help_me(); //帮助函数

void AddNode(); //在首部添加结点

void DeleteNode(); //删除结点

void ShowList(); //显示所有记录

void DeleteList(); //删除所有记录

void Search(); //查找

CNode *GetListHead(){return head_ptr;}

void Insert(CNode *new_rec_ptr); //按顺序插入新节点CNode*Position_insertion_point(char name[20]);

void ModNum(void); //修改号码

void SearchFriends(void); //查找具有相似名的记录

void load_list_from_file(void); //保存文件

void write_list_to_file(); //把文件数据写入链表中};

2.新增函数说明

根据姓氏,返回其在链表中的正确位置,新节点即将插入此点。CNode*CList::Position_insertion_point(char name[20])

{

char temp_name[20];

CNode *temp_ptr;

相关文档
最新文档