通讯录管理系统解析.docx

上传人:b****6 文档编号:5645210 上传时间:2022-12-30 格式:DOCX 页数:46 大小:500.39KB
下载 相关 举报
通讯录管理系统解析.docx_第1页
第1页 / 共46页
通讯录管理系统解析.docx_第2页
第2页 / 共46页
通讯录管理系统解析.docx_第3页
第3页 / 共46页
通讯录管理系统解析.docx_第4页
第4页 / 共46页
通讯录管理系统解析.docx_第5页
第5页 / 共46页
点击查看更多>>
下载资源
资源描述

通讯录管理系统解析.docx

《通讯录管理系统解析.docx》由会员分享,可在线阅读,更多相关《通讯录管理系统解析.docx(46页珍藏版)》请在冰豆网上搜索。

通讯录管理系统解析.docx

通讯录管理系统解析

一.实验1通讯录管理系统

通讯录中的联系人包含以下信息项:

姓名、手机、办公电话、家庭电话、电子邮箱、所在省市、工作单位、家庭住址,群组分类(亲属、同事、同学、朋友、其他)。

系统的主要功能包括:

1.输入联系人的信息,要求:

至少输入10个联系人的数据,且注意数据的多样性。

2.按姓名对联系人信息进行排序,并将排序后信息存放到一个文本文件中。

3.添加联系人的信息,在已经存在的通讯录文件中添加若干个联系人。

要求:

添加后仍按联系人的姓名排序,并保存至原文件。

4.删除联系人的信息,输入一个姓名,若通讯录中有该联系人的信息,则删除该联系人,否则输出提示信息,并提示用户选择是否继续进行删除操作。

5.修改联系人的信息,输入一个姓名,根据具体需要修改该联系人的某一项信息,将修改后的信息重新保存到通讯录文件中,并提示用户选择是否继续进行修改操作。

6.按不同条件对通讯录进行查询操作,输出满足条件的联系人的信息。

(1)按姓名查询,包括精确查询(输入全名),模糊查询(输入姓);

(2)按手机号码查询,输入全部号码或号码位段(如输入130、133、139等);

(3)按群组分类查询,输入分类名称,输出该群组的全部联系人信息。

7.输出联系人的信息,按一定格式输出信息,保证信息排列整齐美观。

#include

#include

#include

#defineN100//最多能添加的联系人数

/***********************************************/

intn1=0;

intn2=0;

/*************************************************/

typedefstruct

{

charname[10];//姓名

charsex[10];//性别

charbirthday[20];//生日日期

charcellphone[15];//手机号码

chartelephone[15];//电话号码

charhomeaddress[100];//家庭地址

charQQ[15];//QQ号码

charemail[20];//电子邮件

charworkspace[100];//工作单位

charworkcity[100];//工作地址

}AddressList;

AddressListt[N];

AddressListe;

typedefstructrelatives//定义单链表

{

AddressListdata;

structrelatives*next;

}Address;

Address*h;

/*************************************************/

voidmenu();//一级菜单

voidrelatives();//亲人

voidfriends();//朋友

voidclassmates();//同学

voidworkmates();//同事

voidothers();//其他

voidSecondMenu();//二级菜单

voidInput();//插入好友信息

voidOutput();//显示好友的相关信息

voidDelete();//删除好友信息

voidSort();//按照姓名进行排序操作

voidCorrect();//给定姓名进行修改信息

voidThirdmenu();//三级菜单

voidNameFound();//查找好友信息(按照姓名)

voidCellFound();//查找好友信息(按照手机号)

voidTeleFound();//查找好友信息(按照电话号码)

/********************************************************/

voidInitList(Address*&L);

intListInsert(Address*&L,inti,AddressListe);

voidDispList(Address*L);

voidCreateListR(Address*&L,AddressLista[],intn);

intListEmpty(Address*L);

voidDispName(Address*L);

intListLength(Address*L);

intListDelete(Address*&L,inti,AddressList&e);

intLocateElem1(Address*L,AddressListe);

intLocateElem2(Address*L,AddressListe);

intLocateElem3(Address*L,AddressListe);

intGetElem(Address*L,inti,AddressList&e);

voidInsertSort(Address*L,intn);

voidDestroyList(Address*&L);

/*****************************************************************************************/

intName(Address*&L,inti,charnewname[]);

intSex(Address*&L,inti,charnewsex[]);

intBirthday(Address*&L,inti,charnewbirthday[]);

intCellphone(Address*&L,inti,charnewcellphone[]);

intTelephone(Address*&L,inti,charnewtelephone[]);

intHomeaddress(Address*&L,inti,charnewhomeaddress[]);

intQq(Address*&L,inti,charnewQQ[]);

intEmail(Address*&L,inti,charnewemail[]);

intWorkspace(Address*&L,inti,charnewworkspace[]);

intWorkcity(Address*&L,inti,charnewworkcity[]);

/*****************************************************************************************/

voidInput()

{

if(n1==0)

{

//intn1;

printf("\t*******************添加联系人功能的实现**********************\n");

printf("很高兴为你服务,请输入添加的联系人个数:

");

scanf("%d",&n1);

for(inti=0;i

{

printf("请输入第%d个联系人的详细信息\n",i+1);

printf("姓名:

");

scanf("%s",t[i].name);

printf("性别:

");

scanf("%s",t[i].sex);

printf("生日日期:

");

scanf("%s",t[i].birthday);

printf("手机号码:

");

scanf("%s",t[i].cellphone);

printf("电话号码:

");

scanf("%s",t[i].telephone);

printf("家庭住址:

");

scanf("%s",t[i].homeaddress);

printf("QQ号码:

");

scanf("%s",t[i].QQ);

printf("电子邮件:

");

scanf("%s",t[i].email);

printf("工作单位:

");

scanf("%s",t[i].workspace);

printf("工作地址:

");

scanf("%s",t[i].workcity);

}

for(intj=0;j

{

ListInsert(h,j+1,t[j]);

//CreateListR(h,t,n1);

}

printf("添加完成!

\n");

}

else

{

n2=n1;

printf("\t*******************添加联系人功能的实现**********************\n");

printf("很高兴为你服务,请输入添加的联系人个数:

");

scanf("%d",&n1);

for(inti=n2;i

{

printf("请输入第%d个联系人的详细信息\n",i+1);

printf("姓名:

");

scanf("%s",t[i].name);

printf("性别:

");

scanf("%s",t[i].sex);

printf("生日日期:

");

scanf("%s",t[i].birthday);

printf("手机号码:

");

scanf("%s",t[i].cellphone);

printf("电话号码:

");

scanf("%s",t[i].telephone);

printf("家庭住址:

");

scanf("%s",t[i].homeaddress);

printf("QQ号码:

");

scanf("%s",t[i].QQ);

printf("电子邮件:

");

scanf("%s",t[i].email);

printf("工作单位:

");

scanf("%s",t[i].workspace);

printf("工作地址:

");

scanf("%s",t[i].workcity);

for(intj=n2;j

{

ListInsert(h,j+1,t[j]);

//CreateListR(h,t,n1);

}

printf("添加完成!

\n");

}

n1=n2+n1;

}

}

voidOutput()

{

printf("显示好友信息功能\n");

printf("通信录中所有联系人详细信息如下:

\n");

DispList(h);

}

voidDelete()

{

intm;

printf("删除功能的实现算法\n");

printf("%s\n",(ListEmpty(h)?

"老大,拜托!

通信录是空的!

\n":

"删除功能正常....\n"));

printf("通信录中共有%d个联系!

\n",ListLength(h));

if(ListLength(h)==0)

{

SecondMenu();

}

else

{

printf("通信录中所有联系人姓名如下:

\n");

DispName(h);

}

printf("请输入你想删除的联系人前面的序号(1——%d):

",ListLength(h));

scanf("%d",&m);

ListDelete(h,m,e);

printf("你删除的联系人的详细信息有:

\n");

printf("*姓名*:

%s\n",e.name);

printf("*性别*:

%s\n",e.sex);

printf("*生日日期*:

%s\n",e.birthday);

printf("*手机号码*:

%s\n",e.cellphone);

printf("*电话号码*:

%s\n",e.telephone);

printf("*家庭住址*:

%s\n",e.homeaddress);

printf("*QQ号码*:

%s\n",e.QQ);

printf("*电子邮件*:

%s\n",e.email);

printf("*工作单位*:

%s\n",e.workspace);

printf("*工作地址*:

%s\n",e.workcity);

}

voidSort()

{

printf("排序功能\n");

printf("%s\n",(ListEmpty(h)?

"老大,拜托!

通信录是空的!

\n":

"排序功能正常....\n"));

printf("通信录中共有%d个联系!

\n",ListLength(h));

InsertSort(h,ListLength(h));

}

voidCorrect()

{

charnewsex[10];

charnewname[10];

charnewbirthday[20];

charnewcellphone[15];

charnewtelephone[15];

charnewhomeaddress[100];

charnewQQ[15];

charnewemail[20];

charnewworkspace[100];

charnewworkcity[100];

intnum;

intnumber;

AddressListf;

printf("修改功能\n");

printf("%s\n",(ListEmpty(h)?

"老大,拜托!

通信录是空的!

\n":

"修改功能正常....\n"));

printf("通信录中共有%d个联系!

\n",ListLength(h));

if(ListLength(h)==0)

{

SecondMenu();

}

else

{

printf("通信录中所有联系人姓名如下:

\n");

DispName(h);

}

printf("请输入你想要修改的联系人姓名:

");

scanf("%s",f.name);

printf("你要修改的联系人的序号是%d\n",LocateElem1(h,f));

printf("***********************你具有的修改权限如下**************************\n");

printf("---------------------------------------------------------------------\n");

printf("||\t1.姓名2.性别3.生日日期4.手机号码5.电话号码\t||\n");

printf("||\t6.家庭地址7.QQ号码8.电子邮件9.工作单位10.工作地址\t||\n");

printf("---------------------------------------------------------------------\n");

printf("请输入你想修改的总项数:

");

scanf("%d",&num);

printf("\n");

for(inti=0;i

{

printf("请输入你想修改的选项的序号<1——10>:

");

scanf("%d",&number);

if(number==1)

{

printf("姓名修改:

");

scanf("%s",newname);

Name(h,LocateElem1(h,f),newname);

}

elseif(number==2)

{

printf("性别修改:

");

scanf("%s",newsex);

Sex(h,LocateElem1(h,f),newsex);

}

elseif(number==3)

{

printf("生日日修改:

");

scanf("%s",newbirthday);

Birthday(h,LocateElem1(h,f),newbirthday);

}

elseif(number==4)

{

printf("手机号码修改:

");

scanf("%s",newcellphone);

Cellphone(h,LocateElem1(h,f),newcellphone);

}

elseif(number==5)

{

printf("电话号码修改:

");

scanf("%s",newtelephone);

Telephone(h,LocateElem1(h,f),newtelephone);

}

elseif(number==6)

{

printf("家庭住址修改:

");

scanf("%s",newhomeaddress);

Homeaddress(h,LocateElem1(h,f),newhomeaddress);

}

elseif(number==7)

{

printf("QQ号码修改:

");

scanf("%s",newQQ);

Qq(h,LocateElem1(h,f),newQQ);

}

elseif(number==8)

{

printf("电子邮件修改:

");

scanf("%s",newemail);

Email(h,LocateElem1(h,f),newemail);

}

elseif(number==9)

{

printf("工作单位修改:

");

scanf("%s",newworkspace);

Workspace(h,LocateElem1(h,f),newworkspace);

}

elseif(number==10)

{

printf("工作地址修改\n");

scanf("%s",newworkcity);

Workcity(h,LocateElem1(h,f),newworkcity);

}

else

{

printf("没有其它选项,请重新输入!

\n");

}

//continue;

}

}

voidNameFound()

{

AddressListr;

AddressListf;

printf("按照姓名进行查找功能\n");

printf("请输入你想要查询的联系人姓名:

");

scanf("%s",f.name);

printf("你要查找的联系人在通信录中的位置是%d\n",LocateElem1(h,f));//有问题没有解决

printf("%s的详细信息如下:

\n",f.name);

GetElem(h,LocateElem1(h,f),r);

Thirdmenu();

}

voidCellFound()

{

AddressListr;

AddressListf;

printf("按照手机号进行查找功能\n");

printf("请输入你想要查询的联系人手机号:

");

scanf("%s",f.cellphone);

printf("你要查找的联系人在通信录中的位置是%d\n",LocateElem2(h,f));//有问题没有解决

printf("%s的详细信息如下:

\n",f.cellphone);

GetElem(h,LocateElem2(h,f),r);

Thirdmenu();

}

voidTeleFound()

{

AddressListr;

AddressListf;

printf("按照电话号码进行查找功能\n");

printf("请输入你想要查询的联系人电话号码:

");

scanf("%s",f.telephone);

printf("你要查找的联系人在通信录中的位置是%d\n",LocateElem3(h,f));//有问题没有解决

printf("%s的详细信息如下:

\n",f.telephone);

GetElem(h,LocateElem3(h,f),r);

Thirdmenu();

}

/**************************************************************************************/

voidrelatives()

{

printf("亲人模块\n");

SecondMenu();

};

voidfriends()

{

printf("朋友模块\n");

SecondMenu();

}

voidclassmates()

{

printf("同学模块\n");

SecondMenu();

}

voidworkmates()

{

printf("同事模块\n");

SecondMenu();

}

voidothers()

{

printf("其他模块\n");

SecondMenu();

}

/******************************************************************************************/

/*--------一级主菜单-----------*/

voidmenu()

{

inti;

intnum1;

printf("\t*********************<<通讯录管理程序>>**********************\n");

printf("\n");

printf("\n");

printf("\t***亲人<1>*****朋友<2>*****同学<3>*****同事<4>*****其他<5>***\n");

printf("\n");

printf("很高兴能为你服务,请输入你的选择(1、2、3、4、5):

");

scanf("%d",&num1);

for(i=1;i<5;i++)

{

if(num1<1||num1>5)

{

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

当前位置:首页 > 初中教育 > 中考

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

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