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

c语言编程:用文件实现通讯录管理怎么做?具体点。急用,谢谢!

发布网友 发布时间:2022-05-05 11:11

我来回答

1个回答

热心网友 时间:2022-04-23 11:49

#include<stdio.h>
#include<string.h>
typedef struct Friends
{
char sName[30];
int tel;
int sMovtel;
int home;
char Emaile[30];
char assort[30];
}Friends;
int c;
void jianli ();
void search ();
void amend ();
void change ();
void input (Friends *p);
void output (Friends *p);
void sdele ();
void fugai ();
int main()
{
int a,b=1;
char s;
while(b==1)
{
printf("\t\t通讯录\n");
printf("\t1、新建\n");
printf("\t2、查找\n");
printf("\t3、修改\n");
printf("\t4、删除\n");
printf("请选择.......\n");
scanf("%d",&a);
switch(a)
{
case 1:jianli ();break;
case 2:search ();break;
case 3:amend ();break;
case 4:sdele();break;
}
printf("是否返回主菜单('Y'or'N')\n");
fflush(stdin);
scanf("%c",&s);
if(s=='y'|| s=='Y')
b=1;
else
break;
}
return 0;
}
/*新建*/
void jianli ()
{
int b=1;
char d;
Friends x;
FILE *fp;
fp=fopen("e:\\通讯录.txt","ab");
while (b==1)
{
input(&x);
fwrite(&x,sizeof(x),1,fp);
printf("是否继续新建('Y'or'N')?\n");
fflush(stdin);
scanf("%c",&d);
if(d=='y'||d=='Y')
{
b=1;
}
else
break;
}
fclose(fp);
}

/*查找*/
void search ()
{
int h , j = 1 , n=0 , num ;
char k[20];
FILE *fp;
Friends y;
printf("\t1、按号码查找\n");
printf("\t2、按姓名查找\n");
printf("请选择...........\n");
scanf("%d",&h);
if(h==1)
{
printf("\t请输入你查找的号码!\n");
while(j==1)
{
scanf("%d",&num);
fp=fopen("e:\\通讯录.txt","rb");
while(!feof(fp))
{
fread(&y,sizeof(y),1,fp);
if(num==y.sMovtel)
{
output(&y);
break;
}
}
if(num!=y.sMovtel)
{
printf("你输入的号码有误!!!\n请重新输入\n");
j=1;
}
fclose(fp);
}
}

if(h==2)
{
printf("\t请输入你查找的姓名!\n");
while(j==1)
{
scanf("%s",k);
fp=fopen("e:\\通讯录.txt","rb");
while(!feof(fp))
{
fread(&y,sizeof(y),1,fp);
if(strcmp(k,y.sName)==0)
{
output(&y);
break;
}
}
if(strcmp(k,y.sName)!=0)
{
printf("你输入的姓名有误!!!\n请重新输入\n");
j=1;
}
fclose(fp);
}
}
}
/*修改*/
void amend ()
{
int h , j = 1 , n=0 , num ;
char k[20];
FILE *fp;
Friends y;
printf("\t1、按号码查找你所需要修改的原始资料\n");
printf("\t2、按姓名查找你所需要修改的原始资料\n");
printf("请选择...........\n");
scanf("%d",&h);
if(h==1)
{
printf("\t请输入查找你的号码!\n");
while(j==1)
{
scanf("%d",&num);
fp=fopen("e:\\通讯录.txt","rb");
while(!feof(fp))
{
c++;
fread(&y,sizeof(y),1,fp);
if(num==y.sMovtel)
{
change ();
break;
}
}
if(num!=y.sMovtel)
{
printf("你输入的号码有误!!!\n请重新输入\n");
j=1;
}
fclose(fp);
}
}
if(h==2)
{
printf("\t请输入你查找的姓名!\n");
while(j==1)
{
c++;
scanf("%s",k);
fp=fopen("e:\\通讯录.txt","rb");
while(!feof(fp))
{
fread(&y,sizeof(y),1,fp);
if(strcmp(k,y.sName)==0)
{
change ();
break;
}
}
if(strcmp(k,y.sName)!=0)
{
printf("你输入的姓名有误!!!\n请重新输入\n");
j=1;
}
fclose(fp);
}
}
}
/*删除*/
void sdele()
{
int h , j = 1 , n=0 , num ;
char k[20];
FILE *fp;
Friends y;
printf("\t1、按号码查找你所需要修改的原始资料\n");
printf("\t2、按姓名查找你所需要修改的原始资料\n");
printf("请选择...........\n");
scanf("%d",&h);
if(h==1)
{
printf("\t请输入查找你的号码!\n");
while(j==1)
{
scanf("%d",&num);
fp=fopen("e:\\通讯录.txt","rb");
while(!feof(fp))
{
fread(&y,sizeof(y),1,fp);
if(num==y.sMovtel)
{
fugai ();
break;
}
}
if(num!=y.sMovtel)
{
printf("你输入的号码有误!!!\n请重新输入\n");
j=1;
}
fclose(fp);
}
}
if(h==2)
{
printf("\t请输入你查找的姓名!\n");
while(j==1)
{
scanf("%s",k);
fp=fopen("e:\\通讯录.txt","rb");
while(!feof(fp))
{
fread(&y,sizeof(y),1,fp);
if(strcmp(k,y.sName)==0)
{
fugai ();
break;
}
}
if(strcmp(k,y.sName)!=0)
{
printf("你输入的姓名有误!!!\n请重新输入\n");
j=1;
}
fclose(fp);
}
}
}
void change ()/*用于修改*/
{
int f,j;
FILE *fp;
Friends z ;
j=c*133;
printf("你要修改的内容:\n");
printf("\t1、姓名\n\t2、手机号\n\t3、固定电话号码\n");
printf("\t4、电子信箱\n\t5、家庭住址、\n\t6、分类\n");
printf("请选择...........\n");
scanf("%d",&f);
printf("输入你的新信息!\n");
switch(f)
{
case 1:fp=fopen("e:\\通讯录.txt","wb");
fread(&z,sizeof(z),1,fp);
fseek(fp,j,SEEK_SET);
scanf("%s",z.sName);
fwrite(&z.sName,sizeof(z.sName),1,fp);
fclose(fp);
output (&z);
break;
fclose(fp);
case 2:fp=fopen("e:\\通讯录.txt","rb");
fread(&z,sizeof(z),1,fp);
fseek(fp,(j+31),SEEK_SET);
scanf("%d",&z.sMovtel);
fwrite(&z.sMovtel,sizeof(z.sMovtel),1,fp);
fclose(fp);
break;
case 3:fp=fopen("e:\\通讯录.txt","rb");
fread(&z,sizeof(z),1,fp);
fseek(fp,(j+35),SEEK_SET);
scanf("%d",&z.tel);
fwrite(&z.tel,sizeof(z.tel),1,fp);
fclose(fp);
case 4:fp=fopen("e:\\通讯录.txt","rb");
fread(&z,sizeof(z),1,fp);
fseek(fp,(j+73),SEEK_SET);
scanf("%s",z.Emaile);
fwrite(&z.Emaile,sizeof(z.Emaile),1,fp);
fclose(fp);
break;
case 5:fp=fopen("e:\\通讯录.txt","rb");
fread(&z,sizeof(z),1,fp);
fseek(fp,(j+69),SEEK_SET);
scanf("%d",&z.home);
fwrite(&z.home,sizeof(z.home),1,fp);
fclose(fp);
break;
case 6:fp=fopen("e:\\通讯录.txt","rb");
fread(&z,sizeof(z),1,fp);
fseek(fp,(j+103),SEEK_SET);
scanf("%d",&z.assort);
fwrite(&z.assort,sizeof(z.assort),1,fp);
fclose(fp);
break;
}
}
void input (Friends *p)/*输入*/
{
printf("请输入姓名:\n");
scanf("%s",p->sName);
printf("请输入手机号码:\n");
scanf("%d",&p->sMovtel);
printf("请输入固定电话号码:\n");
scanf("%d",&p->tel);
printf("请输入电子信箱:\n");
scanf("%s",p->Emaile);
printf("输入家庭住址");
scanf("%s",p->home);
printf("请分类:\n");
scanf("%s",p->assort);
}
void output (Friends *p)/*输出*/
{
printf("**********************\n");
printf("%s\n",p->sName);
printf("%d\n",p->sMovtel);
printf("%d\n",p->tel);
printf("%s\n",p->Emaile);
printf("%d\n",p->home);
printf("%s\n",p->assort);
}
void fugai ()/*用于删除 */
{
Friends d;
FILE *fp;
fp=fopen("e:\\通讯录.txt","rb");
fread(&d,sizeof(d),1,fp);
}追问程序运行有问题!新建一组之后就停止运行了!

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
若cpu一秒执行n次运算需耗能5w,那执行2n次运算要耗能是大于小于还是等于... 大神们,N5G跟N5W哪里不一样? 刚出生的婴儿会感冒吗 刚出生宝宝感冒的症状 怀庄永佳福代理,什么品牌白酒好呢? 做白酒品牌代理,有怀庄永佳福牌子怎么样? 怀庄永佳福白酒喝得人多吗?代理怎么样? 为什么很多女性都把男闺密当作结婚对象? 关于电影“罗生门”的问题 实际利率法是指什么 请问python编程使用Django建web? ...上总会弄到墨水和颜料,要怎么才能彻底洗干净衣服? 通讯录的制作 有没有大神帮忙注释一下这段python程序,要详细,越详细追加给分。_百... 孕妇梦见夏天的黑鞋,在楼道里??是什么意思? 定义一个描述学生通讯录的类,并进行测试。 初学者用python编写一个手机管家,难度大吗? 请问下各位高手:如何用python写一个通讯录,实现如下功能:插入,更新,删... 如何用python编写一个游戏,或者在线测试系统,或者通讯录 用python实现简单通讯录 大学生水平即可 越简单越好 其中较复杂的地方注... 非法获取公民个人信息罪量刑规定怎么处罚 求一个python程序,用文件的方法编写一个通讯录,急!!! 警察查个人信息可以吗 急需一个python通讯录 简单的就行 可以 增加 删除 编辑 搜索 显示 联... 警察泄露公民信息处罚 python django 做通讯录 警察泄露公民个人信息的行为怎么处罚 python:编写一个通讯录管理程序,实现通讯录文件建立,读取,添加记录,查找... 警察非法泄露个人信息会受到什么处罚 辅警擅自使用他人数字证书密码查询公民个人信息属于什么行为? 修真归来有了老婆和孩子全文在线阅读 求 修真归来有了老婆和孩子 百度云资源,谢谢 找本小说大概内容就是后面的图上 修真归来有了老婆和孩子小说什么时候有了徒弟? 谁有李文妖的小说修真归来有啦老婆孩子完整的就是全文 不要那种从28章以后正在手打中的 修真归来有了老婆叫青儿一个女儿好想叫李梦? 求类似地府重临人间或者修真归来在都市这样的小说,不废话不种马的。 求类似地府重临人间或者修真归来在都市这样的小说,不废话不种马的。先200分好了追加 谁能写个参观西湖300个字的作文行吗? 游三门小西湖日记300字 宁波抵押房产可以办理补交土地出让金 写去过杭州西湖。 宁波高桥梁祝小区土地出让金要多少 关于您对我“土地出让金是按3层楼房的建筑面积计算还是按土地使用证上的划拨土地面积计算”的答复的追问 补缴土地出让金如何财税处理?求解 宁波安置小区产权证划拨转出让的时候产权证号会变吗? 大家对最近出台的房价政策有什么看法 宁波房价形成的原因 宁波经济适用房满五年,想要出售,在出售之前需要办理什么证件或者手续吗?还有办理这些手续需要付钱吗? 宁波享受集资房后住房公积金有影响吗?