用c语言编写通讯录

时间:2013.07.13 发布人:dmzdhvoyt

用c语言编写通讯录

已解决问题

谷歌dmzdhvoyt用户在2013.07.13提交了关于“易烊千玺用c语言编写通讯录”的提问,欢迎大家涌跃发表自己的观点。目前共有1个回答,最后更新于2024-11-14T22:05:22。题目三通讯录
1.设计要求:
基本功能:
a)添加**
b)查询**
c)删除**
d)修改**
e)信息排序
f)输出全部信息
拓展功能:
采用文件形式对通讯录进行操作,包括:
a)写入文件
b)读取文件
创新(自拟)功能:
程序实现的其它功能由个人自拟。

2.设计要求具体说明
通讯录至少应该有以下**项:姓名,家庭住址,手机号码,邮编,E-mail。
输入信息湿检查**项手机、邮编、E-mail的合法性,手机号码:11位数字;邮编:6位数字;E-mail:包含@字符,且@两边都非空。
对通讯录应该包含有以下操作(包括基本功能和拓展功能):
a)向通讯录中添加信息;
b)在通讯录中按姓名或手机号查找**;
c)删除通讯录中的**;
d)修改通讯录中的**,并保存入文件;
e)按不同**项排序后列表输出通讯录中所有人的信息。通讯录中记录的数量没有限制。
f)将通讯录中的**写入文件和从文件读入**。
程序启动时先从文件读入**,如果文件中没有**则给出提示;写入文件时有两种方式,一为覆盖所有原有的内容;二为只将本次操作所修改的**写入文件
g)程序启动时先从文件读入**,如果文件中没有**则给出提示退出程序。

3.设计提示
定义合适的结构体类型,使用链表或数组的方式组织**。希望大家能够帮助她。

详细问题描述及疑问:题目三通讯录
1.设计要求:
基本功能:
a)添加**
b)查询**
c)删除**
d)修改**
e)信息排序
f)输出全部信息
拓展功能:
采用文件形式对通讯录进行操作,包括:
a)写入文件
b)读取文件
创新(自拟)功能:
程序实现的其它功能由个人自拟。

2.设计要求具体说明
通讯录至少应该有以下**项:姓名,家庭住址,手机号码,邮编,E-mail。
输入信息湿检查**项手机、邮编、E-mail的合法性,手机号码:11位数字;邮编:6位数字;E-mail:包含@字符,且@两边都非空。
对通讯录应该包含有以下操作(包括基本功能和拓展功能):
a)向通讯录中添加信息;
b)在通讯录中按姓名或手机号查找**;
c)删除通讯录中的**;
d)修改通讯录中的**,并保存入文件;
e)按不同**项排序后列表输出通讯录中所有人的信息。通讯录中记录的数量没有限制。
f)将通讯录中的**写入文件和从文件读入**。
程序启动时先从文件读入**,如果文件中没有**则给出提示;写入文件时有两种方式,一为覆盖所有原有的内容;二为只将本次操作所修改的**写入文件
g)程序启动时先从文件读入**,如果文件中没有**则给出提示退出程序。

3.设计提示
定义合适的结构体类型,使用链表或数组的方式组织**。期待您的答案,谢谢你帮我,祝你快乐,愿你事事如意 !

希望以下的回答,能够帮助你。

第1个回答

用户名:aloneb410  

#include<stdio.h>
#include<string.h>
#incl象ude<alloc.h>

FILE*fp;
inti;
charch;

/*AddressStructDefinition*/
structmember
{int**mber;
charname问答[20];
cha音三武六rtelephone[13];
charaddress[5均0];
charpost[6]铁粉;
}members[50];

voidData_Me**()
{printf("\n---------------------------me**---------------------------\n");
printf("1.Add");
printf("2护衣常.Delete");
pr晚跳完大烟封班学架intf("3.Search");
printf("4.S**e");
pri针百统专ntf("5.Showall")
printf区列路官远于黑谈第液("6.Exit");
p量权析校门半应rintf("\n--盾妈---------------------------------------------------------\n");
}

voidData_Load()
{intj;
longk;
fp=fopen("members.txt","rt");
if(fp!=**LL)
{for(i=1;i<50;i++)
{j=fgetc(fp);
if(j==EOF)
{部来return;
}
油负离级k=i-1;
fseek(fp,k*sizeof(structmember),**EK_**T);
fread(&members[i],sizeof(structmember),1,fp);
}
}
e选问握奏顾怎封应迫省顶lse
{fp=fopen("members.txt","w");
i=1;
}
}

voidData_Add(intj)
{printf叶示首求孙行("\n");
members开相方[j].**mber=j;
printf("\n\tNo:%d",j);
printf("\n\tName:")拉输儿迫营染;
scanf("%s",members[j].name);
printf("\tTele赶重入爱纸称亮了居火剂phone:");
scanf("%s",members[j].telephone);
printf("\tAddress:");
scanf("%s",members[j].address);
printf("\tPost大别都底边审认神甲价:");
scanf("%s",members[j].post);
}

voidData_Show(intj)
{printf("\n\tNo:%d",members[j].**mber);
printf("\n\tName:%s",members[j].name);
printf("\n\tTelephone:%s",members[j].telephone);
printf("\n\tAddress:%s",members[j].address);
printf("\n\tPost:%s",members[j].post);
}

voidData_Showall(intj)
{printf("\n\tNo:%d",members[j].**mber);
printf("\n\tName:%s",members[j].name);
printf("\n\tTelephone:%s",members[j].telephone);
printf("\n\tAddress:%s",members[j].address);
printf("\n\tPost:%s",members[j].post);
}

voidData_S**e()
{intj;
fp=fopen("members.txt","w");
for(j=1;j<=i;j++)
{fwrite(&members[j],sizeof(structmember),1,fp);}
}

main()
{char*search_name;
intj,k;
Data_Load();
i--;
do
{Data_Me**();
printf("PleaseChoose:");
ch=getche();
switch(ch)
{case'1':
while(i<50)
{i++;
Data_Add(i);
bre**;
}
if(i==50)
{printf("\n\tMessageisFilled!\n");}
bre**;
case'2':
if(i<1)
{printf("\n\tNoRecords\n");
bre**;
}
printf("\n\tDeleteNo:");
scanf("%d",&k);
for(j=k;j<i;j++){
strcpy(members[j].name,members[j+1].name);
strcpy(members[j].telephone,members[j+1].telephone);
strcpy(members[j].address,members[j+1].address);
strcpy(members[j].post,members[j+1].post);
}
i--;
bre**;
case'3':
printf("\n\tPleaseInputSearchName:");
search_name=(char*)malloc(20);
gets(search_name);
for(j=1;j<=i;j++)
{if(strcmp(search_name,members[j].name)==0){
Data_Show(j);
bre**;
}
}
free(search_name);
bre**;
case'4':
Data_S**e();
printf("DateisS**ed!\n");
fclose(fp);
bre**;
case'6':
printf("\n\t");
printf("DoYouWantToS**eMessage(y/n)");
if(getche()=='y')
{Data_S**e();}
fclose(fp);
exit(0);
bre**;
default:
bre**;
case'5':
for(j=1;j<=i;j++)
Data_Showall(j);
bre**;
}
}while(1);
}

ustb的?这个要tc编译