master
parent da8cf7e0af
commit d276072d27

@ -1,20 +1,33 @@
#include<stdio.h> #include<stdio.h>
#include<stdlib.h> #include<stdlib.h>
#include<string.h> #include<string.h>
FILE *ptr1;
typedef struct typedef struct
{ {
char name[20]; char name[20];
char phonenum[20]; char phonenum[20];
char kind[10]; int kind;
char email[30]; char email[30];
} linkman; } lm;
lm linkman;
void add();
void view();
void search();
void sc();
void dial();
void amend();
int main_menu() int main_menu()
{ {
char c; char c;
do{ do{
system("cls");
printf("\t\t ════════════════\n"); printf("\t\t ════════════════\n");
printf("\t\t 手机通讯录小程序 \n"); printf("\t\t 手机通讯录小程序 \n");
printf("\t\t ════════════════\n"); printf("\t\t ════════════════\n");
printf("\t\t ┌────────────────┐\n"); printf("\t\t ┌────────────────┐\n");
printf("\t\t │ 1. 新增联系人 2. 全部联系人 │\n"); printf("\t\t │ 1. 新增联系人 2. 全部联系人 │\n");
@ -32,7 +45,7 @@ int main_menu()
} }
main() main()
{ {
for(;;) while(1)
{ {
switch(main_menu()) switch(main_menu())
{ {
@ -53,15 +66,15 @@ main()
amend(); amend();
break; break;
case 5: case 5:
printf("\t\t -----------拨号-----------\n"); printf("\t\t --------删除联系人---------\n");
delete(); sc();
break; break;
case 6: case 6:
printf("\t\t --------全部联系人--------\n"); printf("\t\t -----------拨号------------\n");
dial(); dial();
break; break;
case 0; case 0:
printf("感谢使用,再见\n") printf("感谢使用,再见\n");
system("pause"); system("pause");
exit(0); exit(0);
@ -70,3 +83,288 @@ main()
} }
return 0; return 0;
} }
void add()
{
int i=0;
ptr1=fopen("storage.sto","rb+");
if(ptr1==NULL)
{
ptr1=fopen("storage.sto","wb+");
if(ptr1==NULL)
{
printf("无法建立文件\n");
exit(0);
}
}
rewind(ptr1);
while(!feof(ptr1))
{
fscanf(ptr1, "%s%s%d%s",linkman.name,linkman.phonenum,&linkman.kind,linkman.email);
++i;
}
fseek(ptr1,0,SEEK_END);
printf("您目前有%d条联系人数据您还可以新增%d条联系人数据(%d/15)\n",i,15-i,i);
if(i==15)
{
system("pause");
return;
}
char ch='y';
while(ch!='n'&&ch!='N')
{
fflush(stdin);
++i;
printf("姓名:");
gets(linkman.name);
printf("电话号码:");
gets(linkman.phonenum);
printf("分类1 办公类 2 个人类 3 商务类):");
scanf("%d",&linkman.kind);
while(linkman.kind<0||linkman.kind>3)
{
printf("请输入1-3内的数字");
scanf("%d",&linkman.kind);
}
printf("电子邮箱:");
fflush(stdin);
gets(linkman.email);
fprintf(ptr1, "%20s%20s%5d%20s",linkman.name,linkman.phonenum,linkman.kind,linkman.email);
if(i<15)
printf("\n这是您的第%d条联系人您可以继续新增%d条联系人y/n",i,15-i);
else
{
printf("\n这是您的第%d条联系人您无法继续新增联系人了y/n",i,15-i);
system("pause");
return;
}
fflush(stdin);
ch=getchar();
}
fclose(ptr1);
}
void view()
{
int x,i=0;
ptr1=fopen("storage.sto","rb+");
if(ptr1==NULL)
{
printf("您目前没有联系人的记录\n");
printf("【1】返回主目录\n");
printf("【2】新增联系人\n");
printf("【3】结束程序\n");
scanf("%d",&x);
while(x<1||x>3)
{
printf("请输入1-3内的数字");
scanf("%d",&x);
}
switch(x)
{
case 1:return;break;
case 2:add();return;break;
case 3:exit(0);
}
}
rewind(ptr1);
fflush(stdin);
printf("请您选择查看联系人的范围:\n");
printf("【1】所有联系人\n");
printf("【2】办公联系人\n");
printf("【3】个人联系人\n");
printf("【4】商务联系人\n");
while(x<1||x>4)
{
printf("请输入1-4内的数字");
scanf("%d",&x);
}
printf("序号 姓名 手机号码 分类 电子邮件\n");
printf("***************************************************************\n");
if(x==1)
{
while(!feof(ptr1))
{
fscanf(ptr1, "%s%s%d%s",linkman.name,linkman.phonenum,&linkman.kind,linkman.email);
i++;
//printf("%d %-10s %-10s %d %-10s",i,linkman.name,linkman.phonenum,linkman.kind,linkman.email);
if(linkman.kind==1)
printf("%d %-10s %-10s 办公类 %-10s",i,linkman.name,linkman.phonenum,linkman.email);
if(linkman.kind==2)
printf("%d %-10s %-10s 个人类 %-10s",i,linkman.name,linkman.phonenum,linkman.email);
if(linkman.kind==3)
printf("%d %-10s %-10s 商务类 %-10s",i,linkman.name,linkman.phonenum,linkman.email);
printf("\n");
}
}
else
{
while(!feof(ptr1))
{
fscanf(ptr1, "%s%s%d%s",linkman.name,linkman.phonenum,&linkman.kind,linkman.email);
switch(x)
{
case 2:if(linkman.kind==1)printf("%d %-10s %-10s 办公类 %-10s",++i,linkman.name,linkman.phonenum,linkman.email);break;
case 3:if(linkman.kind==2)printf("%d %-10s %-10s 个人类 %-10s",++i,linkman.name,linkman.phonenum,linkman.email);break;
case 4:if(linkman.kind==3)printf("%d %-10s %-10s 商务类 %-10s",++i,linkman.name,linkman.phonenum,linkman.email);break;
}
printf("\n");
}
}
printf("已经显示全部内容,共%d条\n",i);
system("pause");
return;
}
void search()
{
int x,i=0,u=0;
ptr1=fopen("storage.sto","rb+");
if(ptr1==NULL)
{
printf("您目前没有联系人的记录\n");
printf("【1】返回主目录\n");
printf("【2】新增联系人\n");
printf("【3】结束程序\n");
scanf("%d",&x);
while(x<1||x>3)
{
printf("请输入1-3内的数字");
scanf("%d",&x);
}
switch(x)
{
case 1:return;break;
case 2:void add();break;
case 3:exit(0);
}
}
rewind(ptr1);
fflush(stdin);
printf("您想按照什么关键字搜索呢:\n");
printf("【1】模糊搜索\n");
printf("【2】姓名搜索\n");
printf("【3】手机号码搜索\n");
printf("【4】电子邮件地址搜索\n");
printf("【5】返回主菜单\n");
scanf("%d",&x);
while(x<1||x>5)
{
printf("请输入1-5内的数字");
scanf("%d",&x);
}
char keywords[20];
fflush(stdin);
printf("请输入关键字:");
gets(keywords);
while(!feof(ptr1))
{
fscanf(ptr1, "%s%s%d%s",linkman.name,linkman.phonenum,&linkman.kind,linkman.email);
if(x==1)
{
if(keywords[0]==linkman.name[0]&&keywords[1]==linkman.name[1])u=1;
}
if(x==2)
{
if(strcmp(keywords,linkman.name)==0)u=1;
}
if(x==3)
{
if(strcmp(keywords,linkman.phonenum)==0)u=1;
}
if(x==4)
{
if(strcmp(keywords,linkman.email)==0)u=1;
}
if(u)
{
switch(linkman.kind)
{
case 1:printf("%d %-10s%-10s办公类%-10s",++i,linkman.name,linkman.phonenum,linkman.email);break;
case 2:printf("%d %-10s%-10s个人类%-10s",++i,linkman.name,linkman.phonenum,linkman.email);break;
case 3:printf("%d %-10s%-10s商务类%-10s",++i,linkman.name,linkman.phonenum,linkman.email);break;
}
}
u=0;
printf("\n");
}
printf("已经显示全部搜索结果,共%d条\n",i);
system("pause");
return;
}
void amend()
{
int x,i=0;
FILE *ptr2;
ptr1=fopen("storage.sto","rb+");
if(ptr1==NULL)
{
printf("您目前没有联系人的记录\n");
printf("【1】返回主目录\n");
printf("【2】新增联系人\n");
printf("【3】结束程序\n");
scanf("%d",&x);
while(x<1||x>3)
{
printf("请输入1-3内的数字");
scanf("%d",&x);
}
switch(x)
{
case 1:return;break;
case 2:add();return;break;
case 3:exit(0);
}
}
rewind(ptr1);
fflush(stdin);
printf("序号 姓名 手机号码 分类 电子邮件\n");
printf("***************************************************************\n");
while(!feof(ptr1))
{
fscanf(ptr1, "%s%s%d%s",linkman.name,linkman.phonenum,&linkman.kind,linkman.email);
i++;
//printf("%d %-10s %-10s %d %-10s",i,linkman.name,linkman.phonenum,linkman.kind,linkman.email);
if(linkman.kind==1)
printf("%d %-10s %-10s 办公类 %-10s",++i,linkman.name,linkman.phonenum,linkman.email);
if(linkman.kind==2)
printf("%d %-10s %-10s 个人类 %-10s",++i,linkman.name,linkman.phonenum,linkman.email);
if(linkman.kind==3)
printf("%d %-10s %-10s 商务类 %-10s",++i,linkman.name,linkman.phonenum,linkman.email);
printf("\n");
}
printf("请从0-%d选择要修改的序号",%i);
scanf("%d",&x);
while(x<0||x>i)
{
printf("请从0-%d选择要修改的序号",%i);
scanf("%d",&x);
}
ptr2=fopen("temp","wb+");
if(ptr2==NULL)
{
printf("ERROR");
exit(0);
}
return;
}
void sc()
{
return;
}
void dial()
{
return;
}

Binary file not shown.

@ -0,0 +1 @@
中国电信 10000 1 10000@163.com 中国联通 10010 2 10010@126.com 中国移动 10086 3 10086@188.com 黄皓 13380341245 2 1374832868@qq.com 工大助手 88888888 1 8888@hut.aa
Loading…
Cancel
Save