通讯录设计.docx

上传人:b****6 文档编号:8768529 上传时间:2023-05-14 格式:DOCX 页数:16 大小:17.16KB
下载 相关 举报
通讯录设计.docx_第1页
第1页 / 共16页
通讯录设计.docx_第2页
第2页 / 共16页
通讯录设计.docx_第3页
第3页 / 共16页
通讯录设计.docx_第4页
第4页 / 共16页
通讯录设计.docx_第5页
第5页 / 共16页
通讯录设计.docx_第6页
第6页 / 共16页
通讯录设计.docx_第7页
第7页 / 共16页
通讯录设计.docx_第8页
第8页 / 共16页
通讯录设计.docx_第9页
第9页 / 共16页
通讯录设计.docx_第10页
第10页 / 共16页
通讯录设计.docx_第11页
第11页 / 共16页
通讯录设计.docx_第12页
第12页 / 共16页
通讯录设计.docx_第13页
第13页 / 共16页
通讯录设计.docx_第14页
第14页 / 共16页
通讯录设计.docx_第15页
第15页 / 共16页
通讯录设计.docx_第16页
第16页 / 共16页
亲,该文档总共16页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

通讯录设计.docx

《通讯录设计.docx》由会员分享,可在线阅读,更多相关《通讯录设计.docx(16页珍藏版)》请在冰点文库上搜索。

通讯录设计.docx

通讯录设计

#include

#include

#include

//usingnamespacestd;

classPerson

{

protected:

charName[20];//姓名

charcity[20];//城市

inteip;//邮编

charstate[20];//国家

charstreet[20];//街道

Person*next,*prior;

public:

Person(char*Name,inteip,char*state,char*city,char*street)

{strcpy(this->Name,Name);

strcpy(this->state,state);

strcpy(this->city,city);

strcpy(this->street,street);

this->eip=eip;

}

friendclassManage;

};

classManage

{

private:

Person*person;

public:

Manage()

{

person=NULL;

Load();

}

~Manage()

{

Person*p;

p=person;

while(p)

{

p=p->next;

deleteperson;

person=p;

}

person=0;

}

voidFind(charName[20]);//按姓名查找

voidAdd();//添加加信息

voidDelete();//删除信

voidsearch();//查询信息

voidSave();//保存数据

voidLoad();//读入数据

voiddisplay();//显示信息

voidModify(charName[20]);

voidOutput(Person*p)

{

cout<<"\t\t姓名:

"<Name<

cout<<"\t\t邮政:

"<eip<

cout<<"\t\t国家:

"<state<

cout<<"\t\t城市:

"<city<

cout<<"\t\t街道"<street<

cout<

}

};

voidManage:

:

Add()

{

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

charstate[20];

charcity[20];

charstreet[20];

inteip;

charname[20];

charc;

cout<<"\n**新增学生通讯录**\n";

//输入学生信息

cout<<"输入姓名:

\t";

cin>>name;

cout<

cout<<"输出邮政:

\t";

cin>>eip;

cout<<"输入国家:

\t";

cin>>state;

cout<

cout<<"输入城市:

\t";

cin>>city;

cout<<"输入街道:

\t";

cin>>street;

cout<

p=newPerson(name,eip,state,city,street);

p->next=0;

//学生结点加入链表

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

{

p2=person;

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

{

p2=p2->next;

}

p->prior=p2;

p2->next=p;//连接

}

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

{

person=p;//连接

}

cout<<"\t\t\t***添加成功***\n"<

while

(1)

{

cout<<"是否继续添加(Y/N)"<

cin>>c;

if(c=='Y')

{

Add();

return;

}

else

return;

}

}

voidManage:

:

Delete()//删除人员

{

Person*p1,*p2;

intcount=0;

charName[20];

p1=person;

cout<<"请输入要删除人的名字:

"<

cin>>Name;

if(person)

{

while(p1)

{

if(strcmp(p1->Name,Name)==0)

{

count++;

Output(p1);

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

{

if(p1->next==NULL)

{

person=NULL;

p1=NULL;//把p1置空,不然会死循环!

}

else{

person=p1->next;

person->prior=NULL;

deletep1;

p1=person;

}

}

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

{

p2=p1->next;

if(p2==NULL)

{

p1->prior->next=NULL;

}

else

{

p1->prior->next=p1->next;

p1->next->prior=p1->prior;

}

deletep1;

p1=p2;//替代原先的"p1=p1->next"

}

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

}

else

p1=p1->next;

}

if(count==0)

cout<<"查无此人无法删除\n";

}

}

voidManage:

:

Save()//数据写入到文件

{

ofstreamfPerson("tongxun.txt",ios:

:

out);

charc;

cout<<"\n保存数据,是否继续?

[Y/N]:

";

cin>>c;

if(c!

='Y')

return;

Person*p=person;

while(p)

{

fPerson<Name<<""<eip<<""<state<<""<city<<""<street<

p=p->next;

}

fPerson.close();

cout<<"\n保存成功...\n";

cout<<"输出数据"<

display();

}

voidManage:

:

Load()//数据读入

{

ifstreamfPerson;

Person*p=person;

charName[20],state[20],city[20],street[20];

inteip;

fPerson.open("tongxun.txt",ios:

:

in);

fPerson>>Name>>eip>>state>>city>>street;

while(fPerson.good())

{

p=newPerson(Name,eip,state,city,street);

p->next=0;

//员工结点加入链表

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

{

Person*p2;

p2=person;

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

{

p2=p2->next;

}

p2->next=p;//连接

}

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

{

person=p;//连接

}

fPerson>>Name>>eip>>state>>city>>street;

}

fPerson.close();

}

voidManage:

:

Find(charName[20])

{

Person*p1;

intcount=0;

p1=person;

while(p1)

{

if(strcmp(p1->Name,Name)==0)

{

count++;

Output(p1);

}

p1=p1->next;

}

if(count)

{

cout<<"\t查询成功!

!

!

"<

cout<<"\n共找到"<

}

else

cout<<"\n\t\t未找到该学生!

!

!

\n"<

}

voidManage:

:

search()

{

charc;

charName[20];

do{

cout<<"1按名字查找,2退出查找"<

cin>>c;

cout<

switch(c)

{

case'1':

{

cout<<"输入姓名Name:

";

cin>>Name;

Find(Name);

};break;

case'2':

break;

default:

cout<<"输入有误请重新输入!

!

!

\n"<

}

}while(c!

='1'&&c!

='2');

cout<<"\t\t\t***查找成功***\n"<

cout<<"是否继续查找(Y/N)"<

cin>>c;

if(c=='Y')

search();

else

return;

}

voidManage:

:

display()

{

Person*p;

p=person;

while(p)

{

cout<Name<<""<state<<""<city<<""<street<<""<eip<

p=p->next;

cout<

}

}

voidManage:

:

Modify(charName[20])

{

Person*p1;

charc,name[20];

p1=person;

while(p1)

{

if(strcmp(p1->Name,Name)==0)

break;

else

{

p1=p1->next;

}

}

if(p1!

=NULL)//若找到结

{

cout<<"所要修改的学生的信息如下:

\n"<

Output(p1);

cout<<"1.修改姓名2修改邮政3修改国家4修改城市,5修改街道,6退出修改\n"<

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

cin>>c;

if(c!

='6')

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

";

switch(c)

{

case'1':

cin>>p1->Name;break;

case'2':

cin>>p1->eip;break;

case'3':

cin>>p1->state;break;

case'4':

cin>>p1->city;break;

case'5':

cin>>p1->street;break;

default:

break;

}

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

cout<<"\t修改后的信息如下"<

Output(p1);

cout<<"是否继续修改(Y/N):

"<

cin>>c;

if(c=='Y')

{

cout<<"请输入要修改人员的name:

";

cin>>name;

cout<

Modify(name);

return;

}

else

return;

}

else//未找到结点

cout<<"未找到该学生!

\n";

}

intmain()

{

Managem;

charname[20];

intc;

cout<<"★*******★★★★★★*******★"<

cout<<"****★辽宁科技大学计11-2班通讯录★************"<

cout<<"★*******★★★★★★*******★"<

do

{

cout<<"=========================================="<

cout<<"★☆\t1.新增通讯录\t☆★"<

cout<<"★☆\t2.删除通讯录\t☆★"<

cout<<"★☆\t3.查询详细信息\t☆★"<

cout<<"★☆\t4.保存数据\t☆★"<

cout<<"★☆\t5.输出信息\t☆★"<

cout<<"★☆\t6.修改信息\t☆★"<

cout<<"=========================================="<

cout<<"0-退出\t请选择(1-6):

";

cin>>c;

switch(c)

{

case1:

m.Add();break;

case2:

m.Delete();break;

case3:

{

m.search();

};break;

case4:

m.Save();break;

case5:

m.display();break;

case6:

cout<<"请输入要修改的人员的姓名"<

cin>>name;

m.Modify(name);

}

}while(c!

=0);

chars;

cout<<"\n★是否要保存您的所有操作(Y/N):

"<

cin>>s;

if(s=='Y')

m.Save();

return0;

}

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

当前位置:首页 > 自然科学 > 物理

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2