通讯录C++代码.docx

上传人:b****4 文档编号:1169764 上传时间:2022-10-18 格式:DOCX 页数:17 大小:104.72KB
下载 相关 举报
通讯录C++代码.docx_第1页
第1页 / 共17页
通讯录C++代码.docx_第2页
第2页 / 共17页
通讯录C++代码.docx_第3页
第3页 / 共17页
通讯录C++代码.docx_第4页
第4页 / 共17页
通讯录C++代码.docx_第5页
第5页 / 共17页
点击查看更多>>
下载资源
资源描述

通讯录C++代码.docx

《通讯录C++代码.docx》由会员分享,可在线阅读,更多相关《通讯录C++代码.docx(17页珍藏版)》请在冰豆网上搜索。

通讯录C++代码.docx

通讯录C++代码

黔南民族师范学院C++课程设计

名称:

通讯录管理系统

 

指导老师:

学号:

姓名:

系别:

计算机科学系

班级:

B12计科

 

1、问题描述

定义通讯录类,属性有:

编号、姓名、性别、通讯地址、邮箱地址、电话等信息和相关的对属性做操作的行为。

主要完成对通讯录的简单管理。

2、功能要求

(1)添加功能:

程序能够添加通讯录信息,要求编号要唯一,如果添加了重复编号的记录时,则提示数据添加重复并取消添加。

(2)查询功能:

可根据姓名、电话、邮箱地址等信息对已添加的信息进行查询,如果未找到,给出相应的提示信息,如果找到,则显示相应的记录信息;

(3)显示功能:

可显示当前系统中所有通讯信息,每条记录占据一行。

(4)编辑功能:

可根据查询结果对相应的记录进行修改,修改时注意编号的唯一性。

(5)删除功能:

主要实现对已添加的通讯记录进行删除。

如果当前系统中没有相应的人员记录,则提示“记录为空!

”并返回操作。

(6)保存功能:

可将当前系统中通讯录记录存入文件中,存入方式任意。

(7)读取功能:

可将保存在文件中的信息读入到当前系统中,供用户进行使用。

3、问题的解决方案

根据系统功能要求,可以将问题解决分为以下步骤:

(1)应用系统分析,建立该系统的功能模块框图以及界面的组织和设计;

(2)分析系统中的各个实体及它们之间的关系;

(3)根据问题描述,设计系统的类层次;

(4)完成类层次中各个类的描述;

(5)完成类中各个成员函数的定义;

(6)完成系统的应用模块;

(7)功能调试;

(8)完成系统总结报告。

实体间与属性联系:

功能描述

添加功能:

能够向链表之中输入相关的信息,在编号重复时取消本次输入,并且一次只能输入一条信息。

删除功能:

根据唯一标识一个对象的属性,删除与之对应的信息。

修改功能:

根据唯一标识一个对象的属性,选选择要修改的数据项进行修改。

阅览功能:

是对所有的数据进行访问,不能改变其中任何数据。

查询功能:

按照当前给定的信息,查询详细详细。

保持功能:

时对所有数据进行存档,方便以后的操作,如果一个程序没有保持功能,每一次使用时会更繁琐,保存其实是程序不可缺少的功能之一。

读取功能:

将已存在的数据从文档中读取出来;本程序是通过在建立对象时,系统自己调用

构造函数实现的,如果将其单独作为一功能也是可以的,但是那样似乎比较繁琐。

建立类:

Person:

数据成员

stringNo;//编号

stringpost;//邮箱地址

stringaddre;//联系地址

charName[20];//姓名

charSex[10];//性别

stringTel;//联系方式

成员函数

Person(stringID,char*Name,char*Sex,stringpost,stringTel,stringaddre)构造函数

friendclassManage;manage作为有元函数,可以访问person类

manage:

数据成员

Person*person建立了一个基类指针

成员函数

Manage()构造函数

~Manage(){}//析构函数

voidFindName();//按姓名查找

oidFindID();//按编号查找

voidAdd();//添加加信息

voidDelete();//删除信息

voidModify();//修改信息

voidSave();//保存数据

voidLoad();//读入数据

voidLook();//预览

程序首页

添加功能

阅览功能

查找功能

删除功能

修改功能

代码源程序:

#include

#include

#include

usingnamespacestd;

stringID;//编号唯一性

classPerson

{protected:

stringNo;//编号

stringpost;//邮箱地址

stringaddre;//联系地址

charName[20];//姓名

charSex[10];//性别

stringTel;//联系方式

Person*next;//建立联系人的指针next

public:

Person(stringID,char*Name,char*Sex,stringpost,stringTel,stringaddre)//有参构造函数

{

strcpy(this->Name,Name);

strcpy(this->Sex,Sex);

this->Tel=Tel;//this指针是指当前对象指针

this->No=ID;

this->post=post;

this->addre=addre;

}

friendclassManage;//把manage作为有元函数,可以访问person类

};

classManage

{

protected:

Person*person;

public:

Manage()

{

person=0;

Load();//建立对象的同时,调用了读取这个函数

}

~Manage(){}//析构函数

voidFindName();//按姓名查找

voidFindID();//按编号查找

voidAdd();//添加加信息

voidDelete();//删除信息

voidModify();//修改信息

voidSave();//保存数据

voidLoad();//读入数据

voidLook();//预览

};

voidManage:

:

Add()

{

Person*p,*p2;//新结点指针

stringNo,post,Tel,addre;

charName[20],Sex[10];

charc;

cout<<"\n**新增联系人通讯录**\n";

cout<<"输入学号:

\t";//输入联系人信息

cin>>No;

cout<

{

Person*p1;

p1=person;

while(p1)

{

if(p1->No==No)

{

break;

}

else

{

p1=p1->next;

}

}

if(p1!

=NULL)

{

cout<<"该编号已存在,取消改该联系人的信息添加"<

return;

}

}

cout<<"输入:

姓名性别邮箱地址联系方式联系地址,(并用逗号隔开)"<

cin>>Name>>Sex>>post>>Tel>>addre;

p=newPerson(No,Name,Sex,post,Tel,addre);

p->next=0;

//联系人结点加入链表

if(person)//若已经存在结点

{

p2=person;

while(p2->next)//查找尾结点

{

p2=p2->next;

}

p2->next=p;//连接

}

else//若不存在结点(表空)

{

person=p;//连接

}

return;

}

voidManage:

:

Delete()//删除联系人

{

charc;

stringNo;

cout<<"\n**删除信息**\n";

cout<<"输入要删除的联系人编号:

\t";

cin>>No;

cout<

//查找要删除的结点

Person*p1,*p2;

p1=person;

while(p1)

{

if(p1->No==No)

break;

else

{

p2=p1;

p1=p1->next;

}

}

//删除结点

if(p1!

=NULL)//若找到结点,则删除

{

if(p1==person)//若要删除的结点是第一个结点

{

person=p1->next;

deletep1;

}

else//若要删除的结点是后续结点

{

p2->next=p1->next;

deletep1;

}

cout<<"\t\t***删除成功***\n";

return;

}

else//未找到结点

cout<<"未找到该联系人!

\n";

}

voidManage:

:

Modify()

{

cout<<"请输入要修改联系人的编号:

";

cin>>ID;

cout<

Person*p1;

charc;

p1=person;

while(p1)

{

if(p1->No==ID)

{cout<<"所要修改的联系人的信息如下:

\n"<

cout<<"编号:

"<No<<"\t姓名:

"<Name<<"\t性别:

"<Sex<<"\t年龄:

"<post<<"\t电话:

"<Tel<<"\t联系地址:

"<addre<

cout<

break;}

else

{

p1=p1->next;

}

}

if(p1!

=NULL)//若找到结点

{

do

{

cout<<"1.修改姓名2.修改性别3.修改邮箱地址4.修改联系方式5.修改联系地址0.退出\n"<

cout<<"请选择(1-5)要修改的信息\n"<

cin>>c;

if(c!

='0')

cout<<"请输入新的信息:

";

switch(c)

{

case'1':

cin>>p1->Name;break;

case'2':

cin>>p1->Sex;break;

case'3':

cin>>p1->post;break;

case'4':

cin>>p1->Tel;break;

case'5':

cin>>p1->addre;break;

default:

break;

}

}while(c!

='0');

cout<<"\t***修改成功***\n"<

return;

}

else

cout<<"未找到该学生!

\n";

}

//fPerson<No<<""<Name<<""<Sex<<""<post<<""<Tel<

voidManag

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

当前位置:首页 > 人文社科 > 法律资料

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

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