问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

求C语言编程完成简单通信录程序,急急急!

发布网友 发布时间:2022-04-25 05:59

我来回答

1个回答

热心网友 时间:2023-11-01 03:51

你是在做C语言综合设计的部分的题目吗????这个我做过 我在邮箱里面挖出来了。。。。。。。。你看看 有的地方修改一下就可以了。。。。。。。。。。。。。。。。。。。很简单的 我刚刚运行了下 没有错误。。。。。你自己去琢磨一下吧
我也是新手 有不好的地方请见谅哈。。。。呵呵

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
struct person
{char name[8];
char tel[15];
char addr[50];
char email[30];
};
char filename[20];
FILE *fp;
void creat();
void output();
void search();
void append();
void modify();
void del();
void main()
{
int m;char k;

printf("\n请输入你要打开的通讯录文件名:");
gets(filename);
if((fp=fopen(filename,"r"))==NULL)
{
printf("\n当前没有此通讯录文件,现在是否执行创建(Y/N)?:");
scanf("%c",&k);
if(k!='Y'&&k!='N'&&k!='y'&&k!='n')
{printf("\n输入有误,请再次输入一个值:");scanf("%c",&k);}
else if(k=='Y'||k=='y') {creat();}
else if(k=='N'||k=='n')
{printf("\n由于你选择了退出,现在程序即将关闭!\n");exit(0);}
}
else
{
printf("\n你要打开的通讯录文件%s已存在,现在可直接对其操作:\n",filename);
printf("通讯录文件中现已有的通讯信息:\n");output();
printf("\n请选择根据提示选择1~5对通讯录文件进行操作。\n");
}
while (1)
{printf("\n\n添加,请按1");
printf("\n查找,请按2");
printf("\n修改,请按3");
printf("\n删除,请按4");
printf("\n输出,请按5");
printf("\n退出,请按0\n");
scanf("%d",&m);
if(m>=0&&m<=5)
{switch(m)
{case 1: append();break;
case 2: search();break;
case 3: modify();break;
case 4: del();break;
case 5:output();break;
case 0:exit(0);
}
printf("\n\n操作完毕,请再次选择!");
}
else printf("\n\n操作错误,请再次选择!:");
}
}
void creat()
{struct person one;
printf("\n请输入通讯簿文件名:");
scanf("%s",filename);
if ((fp=fopen(filename,"w"))==NULL)
{printf("\n不能建立通讯薄!");
exit(0);
}
fprintf(fp,"%-10s%-20s%-30s%-20s\n","姓名","电话号码","住址","电子邮箱");
printf("\n请输入姓名:\n");
scanf("%s",one.name);
while (strcmp(one.name,"0"))
{printf("请输入电话号码:\n");
scanf("%s",one.tel);
printf("请输入住址:\n");
scanf("%s",one.addr);
printf("请输入电子邮箱:\n");
scanf("%s",one.email);
fprintf(fp,"%-10s%-20s%-30s%-20s\n",one.name,one.tel,one.addr,one.email);
printf("请再输入另一个人的姓名,若想要结束,请输入0\n");
scanf("%s",one.name);
}
fclose(fp);
}

void output()
{struct person one;
if((fp=fopen(filename,"r"))==NULL)
{printf("\n不能打开通讯薄!");
exit(0);
}
while (!feof(fp))
{fscanf(fp,"%s%s%s%s\n",one.name,one.tel,one.addr,one.email);
printf("%-10s%-20s%-30s%-20s\n",one.name,one.tel,one.addr,one.email);
}
fclose(fp);
}
void append()
{struct person one;
if ((fp=fopen(filename,"a"))==NULL)
{printf("\n不能打开通讯薄!");
exit(0);
}
printf("\n请输入添加的姓名\n");
scanf("%s",one.name);
printf("请输入电话号码:\n");
scanf("%s",one.tel);
printf("请输入住址:\n");
scanf("%s",one.addr);
printf("请输入电子邮箱:\n");
scanf("%s",one.email);
printf("%-10s%-20s%-30s%-20s\n",one.name,one.tel,one.addr,one.email);
fprintf(fp,"%-10s%-20s%-30s%-20s\n",one.name,one.tel,one.addr,one.email);
fclose(fp);
}

void search()
{int flag=0;
char namekey[8];
struct person one;
printf("\n请输入姓名:");
scanf("%s",namekey);
if((fp=fopen(filename,"r"))==NULL)
{printf("\n不能打开通讯薄!");
exit(0);
}
while(!feof(fp))
{fscanf(fp,"%s%s%s%s\n",one.name,one.tel,one.addr,one.email);
if (!strcmp(namekey,one.name))
{printf("\n\n已查到,记录为:");
printf("\n%-10s%-20s%-30s%-20s",one.name,one.tel,one.addr,one.email);
flag=1;
}
}
if(!flag)
printf("\n\n对不起,通讯薄中没有此人的记录。");
fclose(fp);
}

void modify()
{int flag=0;
long offset;
char namekey[8];
struct person one;
printf("\n请输入姓名:");
scanf("%s",namekey);
if((fp=fopen(filename,"r+"))==NULL)
{printf("\n不能打开通讯薄!");
exit(0);
}
while(!feof(fp))
{ offset=ftell(fp);
fscanf(fp,"%s%s%s%s\n",one.name,one.tel,one.addr,one.email);
if(!strcmp(namekey,one.name))
{flag=1;
break;
}
}
if(flag)
{printf("\n已查到,记录为");
printf("\n%-10s%-20s%-30s%-20s",one.name,one.tel,one.addr,one.email);
while (1)
{printf("\n\n修改姓名,请按2");
printf("\n修改电话,请按3");
printf("\n修改地址,请按4");
printf("\n修改邮箱,请按5");
printf("\n退出,请按6\n");
scanf("%d",&flag);
if (flag==2) {printf("请输入新的姓名\n"); scanf("%s",one.name);printf("修改完毕,请指示!:\n");}
if (flag==3) {printf("请输入新的电话\n");scanf("%s",one.tel);printf("修改完毕,请指示!:\n");}
if(flag==4) {printf("请输入新的地址\n");scanf("%s",one.addr);printf("修改完毕,请指示!:\n");}
if(flag==5) {printf("请输入新的邮箱\n");scanf("%s",one.email);printf("修改完毕,请指示!:\n");}
if (flag==6) break;

}
fseek(fp,offset,0);
fprintf(fp,"%-10s%-20s%-30s%-20s\n",one.name,one.tel,one.addr,one.email);
printf("\n%-10s%-20s%-30s%-20s",one.name,one.tel,one.addr,one.email);
}
else printf("不存在指定的名字!\n");
fclose(fp);
}

void del()
{
int m,flag=0;
long offset;
char namekey[8];
struct person one;
printf("\n请输入姓名:");
scanf("%s",namekey);
if((fp=fopen(filename,"r+"))==NULL)
{
printf("\n不能打开通讯簿!");
exit(0);
}
while(!feof(fp))
{
offset=ftell(fp);
fscanf(fp,"%s%s%s%s\n",one.name,one.tel,one.addr,one.email);
if(!strcmp(namekey,one.name)) {flag=1;break;}
}
if(flag)
{
printf("\n已查到,记录为");
printf("\n%-10s%-20s%-30s%-20s",one.name,one.tel,one.addr,one.email);
printf("\n确定要删除,按1;不删除,按0:");
scanf("%d",&m);
if (m)
{fseek(fp,offset,SEEK_SET);
fprintf(fp,"%-10s%-20s%-30s%-20s\n","","","","","");
}

}
else
printf("\n对不起,通讯簿中没有此人的记录。");
fclose(fp);
}追问这位朋友,能不能帮我把程序流程图写出来啊,不胜感激

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
长沙到西昌。坐火车先从长沙到成都、成都东,再到西昌,哪个方便一些 S先生与P先生谜题的题面 为什么首都设在襄阳 改姓可以不随父母性吗 韩艺瑟怎么改姓? 纸、墨、笔、砚是中国传统的文房四宝,墨的使用最早在 [ ] A.商代后期... 想问下创维光伏E企赢模式有哪些优势,到底值不值得投资啊?有没有合作... 太平洋太享e保百万医疗值得入手吗?每年花多少钱? 爱e满分适合哪些人买?注意哪些问题? 太平洋太享e保百万医疗适合哪些人买?价格多少? 戴隐形眼镜,平时要用什么样的眼药水? c语言程序设计流程图怎么画?具体有什么规范? 通讯录程序 (用C语言做的) 原谅我的财富就剩下这么点了。。。 戴隐形眼镜适合滴什么眼药水 20. 通讯录的制作 数据结构题目 用c或类c语言编写 并写出每句含义 谢啦!!!! 隐形眼镜专用眼药水,平时不佩戴隐形眼镜时也能使用吗? 隐形眼镜得用什么样的眼药水? C语言程序设计:通讯录程序设计 戴隐形眼镜者用什么类形的滴眼液好?(急需) 推荐下隐形眼镜的眼药水吧 带隐形眼镜用什么眼药水好 戴隐形眼镜干涩用什么眼药水 隐形眼镜专用的眼药水是啥 经常戴隐形眼镜用什么滴眼液 隐形眼镜用什么滴眼液比较好? 戴隐形眼镜洗什么眼药水? 戴隐形眼镜可以用的眼药水,有哪些? 邮箱怎么绑定 如图所示:我的支付宝该还款了,怎么推迟一个月啊? 微博能不能看最近访客? 经常戴隐形眼镜..点什么眼药好呢? C语言程序设计,题目:学生通讯系统,包括 姓名、学号、年龄、性别、家庭住址、联系电话、寝室号 c语言编程一个通讯录的程序,包含增删修改查询(默糊查询),要流程图 急求一份C语言课程设计 通讯录管理系统 谢谢了! 一道C语言题目,很难,对我很重要,但是我没有思路,希望大家帮帮我 求c语言通讯录的源代码与算法流程图,我扣扣邮啊箱897266674 C语言的流程图用什么软件来做? 阿迪达斯纯棉上衣怎么清洗才不掉色 微信聊天记录如何收藏保存 我的ADIDAS运动外套用热水浸泡掉色了怎么办? 我买了件带帽的阿迪才穿了两星期就被晒了褪色,我这衣服是不是真的。能有什么办法不褪色? 阿迪达斯纯棉衣服褪色怎么处理啊 阿迪纯棉套装掉色可以买吗? 阿迪达斯外套,百分之七十棉,百分之三十聚酯纤维,要怎么洗才能不损害到... 存定期哪个银行利息高,怎么计算 阿迪达斯的衣服退色严重 身份证盗用如何查询 很多ACG作品中的“里世界”是什么意思? 什么是里世界? 如何知道自己的身份证是否被盗用了呢?被盗用了该怎么办?