C++程序设计通讯录管理系统cpp.docx

上传人:b****2 文档编号:2744983 上传时间:2023-05-04 格式:DOCX 页数:22 大小:18.33KB
下载 相关 举报
C++程序设计通讯录管理系统cpp.docx_第1页
第1页 / 共22页
C++程序设计通讯录管理系统cpp.docx_第2页
第2页 / 共22页
C++程序设计通讯录管理系统cpp.docx_第3页
第3页 / 共22页
C++程序设计通讯录管理系统cpp.docx_第4页
第4页 / 共22页
C++程序设计通讯录管理系统cpp.docx_第5页
第5页 / 共22页
C++程序设计通讯录管理系统cpp.docx_第6页
第6页 / 共22页
C++程序设计通讯录管理系统cpp.docx_第7页
第7页 / 共22页
C++程序设计通讯录管理系统cpp.docx_第8页
第8页 / 共22页
C++程序设计通讯录管理系统cpp.docx_第9页
第9页 / 共22页
C++程序设计通讯录管理系统cpp.docx_第10页
第10页 / 共22页
C++程序设计通讯录管理系统cpp.docx_第11页
第11页 / 共22页
C++程序设计通讯录管理系统cpp.docx_第12页
第12页 / 共22页
C++程序设计通讯录管理系统cpp.docx_第13页
第13页 / 共22页
C++程序设计通讯录管理系统cpp.docx_第14页
第14页 / 共22页
C++程序设计通讯录管理系统cpp.docx_第15页
第15页 / 共22页
C++程序设计通讯录管理系统cpp.docx_第16页
第16页 / 共22页
C++程序设计通讯录管理系统cpp.docx_第17页
第17页 / 共22页
C++程序设计通讯录管理系统cpp.docx_第18页
第18页 / 共22页
C++程序设计通讯录管理系统cpp.docx_第19页
第19页 / 共22页
C++程序设计通讯录管理系统cpp.docx_第20页
第20页 / 共22页
亲,该文档总共22页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

C++程序设计通讯录管理系统cpp.docx

《C++程序设计通讯录管理系统cpp.docx》由会员分享,可在线阅读,更多相关《C++程序设计通讯录管理系统cpp.docx(22页珍藏版)》请在冰点文库上搜索。

C++程序设计通讯录管理系统cpp.docx

C++程序设计通讯录管理系统cpp

C++信息管理

#include

#include

#include

#include

#include

//#include

usingnamespacestd;

stringID;//具有唯一性

classPerson

{

protected:

stringNo;//学号

stringAge;

charName[20];//姓名

charSex[10];//性别

stringTel;//联系方式

Person*next;

public:

Person(stringID,char*Name,char*Sex,stringAge,stringTel)

{

strcpy(this->Name,Name);

strcpy(this->Sex,Sex);

this->Tel=Tel;

this->No=ID;

this->Age=Age;

}

friendclassManage;

};

classManage

{

private:

Person*person;

public:

Manage()

{

person=0;

Load();

}

~Manage()

{

Person*p;

p=person;

while(p)

{

p=p->next;

deleteperson;

person=p;

}

person=0;

}

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

voidFind(stringID);//按编号查找

voidAdd();//添加加信息

voidDelete();//删除信息

voidModify(stringID);//修改信息

voidQuery();//查询信息

voidTJ();//清除文件信息

voidSave();//保存数据

voidLoad();//读入数据

voidLook();//预览

voidDesTory();

voidOutput(Person*p)

{

cout<<"\t\t学号:

"<No<

cout<<"\t\t姓名:

"<Name<

cout<<"\t\t性别:

"<Sex<

cout<<"\t\t年龄:

"<Age<

cout<<"\t\t联系电话:

"<Tel<

cout<

}

};

voidManage:

:

Add()

{

system("cls");

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

stringNo,Age,Tel;

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<<"该学号已存在,是否修改该学生信息(Y/N)"<

cin>>c;

if(toupper(c)=='Y')

{

cout<<"该学生信息为:

"<

Find(No);

cout<

Modify(No);

return;

}

else

return;

}

}

cout<<"输入姓名:

\t";

cin>>Name;

cout<

cout<<"输入性别:

\t";

cin>>Sex;

cout<

cout<<"输入年龄:

\t";

cin>>Age;

cout<

cout<<"输入联系方式:

\t";

cin>>Tel;

cout<

p=newPerson(No,Name,Sex,Age,Tel);

p->next=0;

//学生结点加入链表

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

{

p2=person;

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

{

p2=p2->next;

}

p2->next=p;//连接

}

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

{

person=p;//连接

}

system("cls");

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

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

cin>>c;

if(toupper(c)=='Y')

{

Add();

return;

}

else

return;

}

voidManage:

:

Delete()//删除人员

{

system("cls");

charc;

stringNo;

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

cout<<"输入要删除的学生ID:

\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)//若找到结点,则删除

{

cout<<"所要删除的学生的信息如下:

\n"<

Output(p1);

cout<<"确定是否删除(Y/N):

";

cin>>c;

if(toupper(c)!

='Y')

return;

//system("pause");

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

{

person=p1->next;

deletep1;

}

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

{

p2->next=p1->next;

deletep1;

}

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

cout<<"是否继续删除(Y/N)"<

cin>>c;

if(toupper(c)=='Y')

{

Delete();

return;

}

else

return;

}

else//未找到结点

cout<<"未找到该学生!

\n";

getch();

}

voidManage:

:

Modify(stringID)

{

Person*p1;

charc;

p1=person;

while(p1)

{

if(p1->No==ID)

break;

else

{

p1=p1->next;

}

}

if(p1!

=NULL)//若找到结点

{

system("cls");

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

\n"<

Output(p1);

do

{

cout<<"1.修改姓名2.修改性别3.修改年龄4.修改联系方式5.退出修改\n"<

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

cin>>c;

if(c!

='5')

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

";

switch(c)

{

case'1':

cin>>p1->Name;break;

case'2':

cin>>p1->Sex;break;

case'3':

cin>>p1->Age;break;

case'4':

cin>>p1->Tel;break;

default:

break;

}

}while(c!

='5');

system("cls");

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

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

"<

cin>>c;

if(toupper(c)=='Y')

{

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

";

cin>>ID;

cout<

Modify(ID);

return;

}

else

return;

}

else//未找到结点

cout<<"未找到该学生!

\n";

getch();//暂停

}

voidManage:

:

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

{

ofstreamfPerson("Person.txt",ios:

:

out);

charc;

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

[Y/N]:

";

cin>>c;

if(toupper(c)!

='Y')

return;

Person*p=person;

while(p)

{

fPerson<No<<""<Name<<""<Sex<<""<Age<<""<Tel<

p=p->next;

}

fPerson.close();

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

system("pause");

}

voidManage:

:

Load()//数据读入

{

ifstreamfPerson;

Person*p=person;

stringNo,Age,Tel;

charName[20],Sex[10];

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

:

in);

fPerson>>No>>Name>>Sex>>Age>>Tel;

while(fPerson.good())

{

p=newPerson(No,Name,Sex,Age,Tel);

p->next=0;

//员工结点加入链表

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

{

Person*p2;

p2=person;

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

{

p2=p2->next;

}

p2->next=p;//连接

}

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

{

person=p;//连接

}

fPerson>>No>>Name>>Sex>>Age>>Tel;

}

fPerson.close();

}

voidManage:

:

Find(stringID)

{

Person*p1;

p1=person;

while(p1)

{

if(p1->No==ID)

break;

else

{

p1=p1->next;

}

}

if(p1!

=NULL)

{

Output(p1);

}

else

cout<<"未找到该学生"<

}

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:

:

Query()

{

charc;

stringID,Tel;

charName[20];

do{

cout<<"1.按学号查找2.按名字查找3.按电话号码查找4.退出查找"<

cin>>c;

//system("cls");

cout<

switch(c)

{

case'1':

{

cout<<"输入学号ID:

";

cin>>ID;

Find(ID);

};break;

case'2':

{

cout<<"输入姓名Name:

";

cin>>Name;

Find(Name);

};break;

case'3':

{

cout<<"输入电话号码Tel"<

cin>>Tel;

Find(Tel);

};break;

case'4':

break;

default:

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

!

!

\n"<

}

}while(c!

='1'&&c!

='2'&&c!

='3'&&c!

='4');

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

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

cin>>c;

if(toupper(c)=='Y')

{

Query();

return;

}

else

return;

system("pause");

}

voidManage:

:

Look()

{

//设置字体颜色

SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|

FOREGROUND_RED|FOREGROUND_GREEN);

system("cls");

Person*p1;

intcount=0;

charc;

p1=person;

while(p1)

{

cout<<"ID:

"<No<<"\t姓名:

"<Name<

count++;

p1=p1->next;

}

if(count!

=0)

{

cout<<"\n\t\t预览成功!

!

!

\n"<

cout<<"查询详细信息(Y/N):

";

cin>>c;

if(toupper(c)=='Y')

{

Query();

return;

}

else

return;

}

else

{

cout<<"尚未创建通讯录,是否创建(Y/N)"<

cin>>c;

if(toupper(c)=='Y')

{

Add();

return;

}

else

return;

}

}

voidManage:

:

DesTory()

{//设置字体为红色

SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|

FOREGROUND_RED);

charc;

system("cls");

cout<<"\n\t\t\t**清除信息**\n";

cout<<"警告:

\n清除通讯录信息会导致您保存的信息完全消失!

!

!

\n"<

cout<<"★是否决定清除通讯录信息(Y/N):

"<

cin>>c;

if(toupper(c)!

='Y')

return;

cout<<"请再次确认(Y/N)"<

cin>>c;

if(toupper(c)!

='Y')

return;

else

{

Person*p;

p=person;

while(p)

{

p=p->next;

deleteperson;

person=p;

}

person=0;

//ofstreamfPerson("person.txt");

//fPerson.close();

}

system("pause");

}

voidManage:

:

TJ()

{

Person*p1;

intcount=0,Boy=0,Girl=0;

p1=person;

while(p1)

{

count++;

if(strcmp(p1->Sex,"男")==0)

Boy++;

if(strcmp(p1->Sex,"女")==0)

Girl++;

p1=p1->next;

}

cout<<"\n总共有"<

cout<<"男生:

"<

"<

system("pause");

}

intmain(void)

{

Managem;

intc;

do

{

//设置字体为绿色

SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|

FOREGROUND_GREEN);

system("cls");

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

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

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

cout<<"★☆\t3.修改通讯录\t☆★"<

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

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

cout<<"★☆\t6.预览信息\t☆★"<

cout<<"★☆\t7.清除通讯录\t☆★"<

cout<<"★☆\t8.统计\t☆★"<

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

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

";

cin>>c;

switch(c)

{

case1:

m.Add();break;

case2:

m.Delete();break;

case3:

{

system("cls");

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

";

cin>>ID;

cout<

m.Modify(ID);

};break;

case4:

{

system("cls");

m.Query();

};break;

case5:

m.Save();break;

case6:

m.Look();break;

case7:

m.DesTory();break;

case8:

m.TJ();break;

default:

break;

}

}while(c!

=0);

chars;

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

"<

cin>>s;

if(toupper(s)=='Y')

m.Save();

return0;

}

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

当前位置:首页 > 党团工作 > 入党转正申请

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

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