C语言课程设计通讯录管理系统方案.docx

上传人:b****3 文档编号:26421692 上传时间:2023-06-19 格式:DOCX 页数:14 大小:16.03KB
下载 相关 举报
C语言课程设计通讯录管理系统方案.docx_第1页
第1页 / 共14页
C语言课程设计通讯录管理系统方案.docx_第2页
第2页 / 共14页
C语言课程设计通讯录管理系统方案.docx_第3页
第3页 / 共14页
C语言课程设计通讯录管理系统方案.docx_第4页
第4页 / 共14页
C语言课程设计通讯录管理系统方案.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

C语言课程设计通讯录管理系统方案.docx

《C语言课程设计通讯录管理系统方案.docx》由会员分享,可在线阅读,更多相关《C语言课程设计通讯录管理系统方案.docx(14页珍藏版)》请在冰豆网上搜索。

C语言课程设计通讯录管理系统方案.docx

C语言课程设计通讯录管理系统方案

#include

#include

#include

#defineMAX_NAME11

#defineMAX_SEX3

#defineMAX_BIRTHDAY9

#defineMAX_TEL21

#defineMAX_MOBILE21

#defineMAX_FAX21

#defineMAX_ADDRESS101

#defineMAX_POSTAL_CODE7

typedefstruct_person

{

charname[MAX_NAME];

charsex[MAX_SEX];

charbirthday[MAX_BIRTHDAY];

chartel[MAX_TEL];

charmobile[MAX_MOBILE];

charfax[MAX_FAX];

charaddress[MAX_ADDRESS];

charpostal_code[MAX_POSTAL_CODE];

}person;

typedefstruct_addr_book

{

personper;

struct_addr_book*next;

}addr_book;

addr_book*first=NULL;

voidadd();

voidshow();

voidsearch();

voiddelete();

voidupdate();

voidsave();

voidquit();

intprint_menu();

addr_book*get_last(addr_book*from);

voidprint_person(person*p);

voidinput_person(person*p);

charmenu[]=

"+=====================================================+\n"

"|通讯薄管理系统|\n"

"+-----------------------------------------------------+\n"

"|1添加联系人|\n"

"|2显示所有联系人|\n"

"|3查找联系人|\n"

"|4删除联系人|\n"

"|5更新联系人|\n"

"|6保存联系人|\n"

"|7退出系统|\n"

"+=====================================================+\n";

 

intmain()

{

intflg=1;

while(flg)

{

switch(print_menu())

{

case1:

add();

break;

case2:

show();

break;

case3:

search();

break;

case4:

delete();

break;

case5:

update();

break;

case6:

save();

break;

case7:

quit();

break;

}

}

}

 

voidadd()

{

charinput='N';

addr_book*last=NULL;

addr_book*new_addr=(addr_book*)malloc(sizeof(addr_book));

memset(new_addr,0,sizeof(addr_book));

new_addr->next=NULL;

if(first==NULL)

{

first=new_addr;

}

else

{

last=get_last(first);

last->next=new_addr;

}

input_person(&(new_addr->per));

printf(">继续输入?

(Y继续,N返回菜单)");

getchar();

input=getchar();

if(input=='y'||input=='Y')

{

add();

}

}

 

voidshow()

{

inti=0;

addr_book*p=first;

while(p!

=NULL)

{

i++;

printf("*****第%d个联系人******************************\n",i);

print_person(&(p->per));

p=p->next;

}

if(i==0)

{

printf("没有联系人!

");

}

printf("按回车键返回菜单");

getchar();

getchar();

}

 

voidsearch()

{

intcount=0;

charinput='N';

charname[MAX_NAME]={0};

addr_book*p=first;

printf(">请输入要查找的联系人姓名(最大%d个字符):

",MAX_NAME-1);

scanf("%s",name);

while(p!

=NULL)

{

if(strcmp(p->per.name,name)==0)

{

print_person(&(p->per));

count++;

}

p=p->next;

}

if(count==0)

{

printf("没有找到姓名为%s的联系人",name);

}

printf("继续查找吗?

(Y继续查找,N返回菜单)");

getchar();

input=getchar();

if(input=='y'||input=='Y')

{

search();

}

}

 

voiddelete()

{

intcount=0;

charinput='N';

charname[MAX_NAME]={0};

addr_book*p=first;

addr_book*p1=NULL;

printf(">请输入要删除的联系人姓名(最大%d个字符):

",MAX_NAME-1);

scanf("%s",name);

while(p!

=NULL)

{

if(strcmp(p->per.name,name)==0)

{

print_person(&(p->per));

count++;

}

p=p->next;

}

if(count==0)

{

printf("没有找到姓名为%s的联系人",name);

}

else

{

printf("确定要删除姓名为[%d]的联系人吗?

(Y确认,N取消)",name);

getchar();

input=getchar();

if(input=='y'||input=='Y')

{

if(p==first)

{

first=p->next;

}

else

{

p1=first;

while(p1!

=NULL)

{

if(p1->next==p)

{

p1->next=p->next;

break;

}

p1=p1->next;

}

}

free(p);

}

}

printf("继续删除其他联系人吗?

(Y继续删除,N返回菜单)");

getchar();

input=getchar();

if(input=='y'||input=='Y')

{

delete();

}

}

 

voidupdate()

{

intcount=0;

charinput='N';

charname[MAX_NAME]={0};

addr_book*p=first;

printf(">请输入要更新的联系人姓名(最大%d个字符):

",MAX_NAME-1);

scanf("%s",name);

while(p!

=NULL)

{

if(strcmp(p->per.name,name)==0)

{

print_person(&(p->per));

count++;

break;

}

p=p->next;

}

if(count==0)

{

printf("没有找到姓名为%s的人",name);

}

else

{

input_person(&(p->per));

}

printf("继续更新联系人吗?

(Y继续更新,N返回菜单)");

getchar();

input=getchar();

if(input=='y'||input=='Y')

{

update();

}

}

 

voidsave()

{

FILE*fp;

charfile[100];

addr_book*p=first;

printf("请输入文件名:

");

scanf("%s",file);

fp=fopen(file,"w");

while(p!

=NULL)

{

fprintf(fp,"%s,%s,%s,%s,%s,%s,%s\n",p->per.name,p->per.sex,p->per.birthday,p->per.tel,p->per.mobile,p->per.fax,p->per.address,p->per.postal_code);

p=p->next;

}

fclose(fp);

printf("保存成功\n按任意键返回菜单..\n");

getchar();

getchar();

}

 

voidquit()

{

addr_book*pdel=first;

addr_book*p=NULL;

if(pdel==NULL)

{

exit(0);

}

while(pdel->next!

=NULL)

{

p=pdel->next;

free(pdel);

pdel=p;

}

free(pdel);

exit(0);

}

intprint_menu()

{

intselected=0;

system("cls");

printf(menu);

printf("请选择[1~7]:

");

scanf("%d",&selected);

if(selected<1||selected>7)

{

printf("错误的选择!

(请输入1~7).按回车键继续...");

getchar();

getchar();

}

returnselected;

}

 

voidinput_person(person*p)

{

printf(">请输入联系人信息:

\n");

printf("请输入姓名(最大长度%d个字符):

",MAX_NAME-1);

scanf("%s",p->name);

printf("请输入性别(最大长度%d个字符):

",MAX_SEX-1);

scanf("%s",p->sex);

printf("请输入出生日期(最大长度%d个字符):

",MAX_BIRTHDAY-1);

scanf("%s",p->birthday);

printf("请输入电话(最大长度%d个字符):

",MAX_TEL-1);

scanf("%s",p->tel);

printf("请输入手机(最大长度%d个字符):

",MAX_MOBILE-1);

scanf("%s",p->mobile);

printf("请输入传真(最大长度%d个字符):

",MAX_FAX-1);

scanf("%s",p->fax);

printf("请输入地址(最大长度%d个字符):

",MAX_ADDRESS-1);

scanf("%s",p->address);

printf("请输入邮编(最大长度%d个字符):

",MAX_POSTAL_CODE-1);

scanf("%s",p->postal_code);

}

 

voidprint_person(person*p)

{

printf("姓名:

%s\t性别:

%s\t生日:

%s\n",p->name,p->sex,p->birthday);

printf("电话:

%s\n",p->tel);

printf("手机:

%s\n",p->mobile);

printf("传真:

%s\n",p->fax);

printf("地址:

%s\n",p->address);

printf("邮编:

%s\n",p->postal_code);

printf("\n");

}

 

addr_book*get_last(addr_book*from)

{

addr_book*p=from;

while(p->next!

=NULL)

{

p=p->next;

}

returnp;

}

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

当前位置:首页 > 高等教育 > 艺术

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

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