c++课程设计(通讯录管理系统)

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

通讯录管理系统

要求:

1.创建文本文件,记录联系人的信息。

2.以菜单方式工作

3.联系人的信息包括:姓名,籍贯,电话号码,QQ号等信息

4.管理系统的功能包括:

a)增加:添加新的联系人

b)删除:删除一个联系人(输入电话号码,删除该联系人)

c)修改:修改某个联系人的信息

i.修改姓名

ii.修改电话号码

iii.修改籍贯

iv.修改QQ号

d)查询

i.根据名字查询联系人信息(查询结果不唯一)

ii.根据电话号码查询联系人信息

iii.根据QQ号查询联系人信息

实现过程分析:

建立一个文本文件,记录联系人的基本信息

建立以下几个类:

1.联系人类:表示一个联系人

数据成员包括:

姓名

籍贯

电话号码

QQ号

成员函数包括

一组set函数为数据成员赋值

一组modify函数,修改数据成员的值

Display函数:显示联系人的信息

2.通讯簿类(这是一个数据库类):用于记录所有联系人的信息

数据成员包括:

联系人的数量

联系人对象数组

成员函数包括

构造函数:读取文本文件中的数据,并根据文件内容创建联系人对象数组

析构函数:将对象数组中的内容写入到文本文件中。

增加函数:增加一个联系人

删除操作:删除一个联系人

Display:显示所有联系人的信息

修改某一联系人的信息:

查询并显示某一联系人的信息:

3.用户类(这是一个操作类,完成通讯簿的操作):用户拥有一个通讯簿,并且可以对通讯录进行管理

数据成员包括:

通讯簿对象

成员函数包括(成员函数体现用户的行为):

添加联系人:调用通讯簿对象的增加函数完成联系人的添加

删除联系人:调用通讯簿对象的删除操作删除一个联系人

Display:显示所有联系人的信息

修改某一联系人的信息:调用通讯簿对象的函数完成操作

查询并显示某一联系人的信息:调用通讯簿对象的函数完成操作4.界面菜单类:用来给出操作提示

数据成员:可以不定义数据成员

成员函数:

Display函数:显示操作菜单的提示。说明:可以根据需要定义多个函数,显示不同的菜单(操作提示)。

#include

#include

#include

#include

class person

{

int tel;

int QQ;

char name[20];

char nplace[40];

public:

int set_tel()

{

return tel;

}

int set_QQ()

{

return QQ;

}

char *set_name()

{

char *p=new char[strlen(name)+1];

strcpy(p, name);

return p;

}

char*set_nplace()

{

char *p=new char[strlen(nplace)+1];

strcpy(p, nplace);

return p;

}

friend istream & operator >>(istream &in,person&b);

friend ostream & operator <<(ostream &out,person&b);

void disp()

{

cout<<"联系人姓名:"<name<

cout<<"联系人电话:"<tel<

cout<<"联系人籍贯:"<nplace<

cout<<"联系人QQ:"<QQ<

}

void luru()

{

cout<<"请输入姓名、籍贯、电话、QQ"<

cin>>this->name;

cin>>this->nplace;

cin>>this->tel;

cin>>this->QQ;

}

friend class addbook;

};

istream & operator >> (istream &in,person&p)

{

in>>;

in>>p.tel;

in>>p.nplace;

in>>p.QQ;

return in;

}

ostream & operator << (ostream &out,person&p)

{

out<<"姓名:"<<<

out<<"籍贯:"<

out<<"电话:"<

out<<" QQ : "<

return out;

}

class addbook

{

person *book;

int n;

public:

addbook();

~addbook();

void add();

void display();

void del();

void modify();

void searchbyname();

void searchbytel();

void searchbyQQ();

void Luru()

{

for(int j=0;j

book[j].luru();

}

};

addbook::addbook()

{

book = new person[1000];

fstream fin("person.dat",ios::in|ios::binary);

int i=0;

n=i;

if(!fin)

{

cout<<"文件打开失败"<

return ;

}

fin.read ((char *)&book[i],sizeof(person));

while(!fin.eof()){

i++;

fin.read ((char *)&book[i],sizeof(person));

相关文档
最新文档