版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第C语言通讯录管理系统完整代码本文实例为大家分享了C语言实现通讯录管理系统的具体代码,供大家参考,具体内容如下
设计内容:
设计一个通讯录管理系统,以实现以下功能:信息添加、查询、修改、删除、排序等功能。
设计要求:
1)每条信息至包含:姓名、电话、工作单位等信息
2)作为一个完整的系统,应具有友好的界面和较强的容错能力
#includestdio.h
#includestdlib.h
#includestring.h
#includewindows.h
#defineLENsizeof(structlist)
#defineDATAa[i].num,a[i].name,a[i].job,a[i].address
#defineFORMAT"\t\t
||
%-12d%-12s%-19s%-20s||\n"
voidin();
voidmenu();
voidsearch();
voiddel();
voidshow();
voidmodify();
voidinsert();
voidorder();
voidtotal();
structlist
intnum;
//号码
charname[15];
//姓名
charjob[30];
//工作单位
charaddress[30];
//地址
structlista[50];
voidmain()
system("color5e\n");
menu();
intn;
scanf("%d",
while(n)
{
switch(n)
{
case1:in();
break;
case2:search();
break;
case3:del();
break;
case4:modify();
break;
case5:insert();
break;
case6:order();
break;
case7:total();
break;
case8:show();
break;
default:break;
}
getch();
menu();//执行完后显示菜单
scanf("%d",
}
voidmenu()
system("cls");
printf("\n\n\n");
printf("\t\t\t\t\t**************************************\n");
printf("\t\t\t\t\t************通讯录管理系统************\n");
printf("\t\t\t\t\t======================================\n");
printf("\t\t\t\t\t*
1.录入联系人信息
*\n");
printf("\t\t\t\t\t*
2.查找联系人信息
*\n");
printf("\t\t\t\t\t*
3.删除联系人信息
*\n");
printf("\t\t\t\t\t*
4.修改联系人信息
*\n");
printf("\t\t\t\t\t*
5.插入联系人信息
*\n");
printf("\t\t\t\t\t*
6.排序
*\n");
printf("\t\t\t\t\t*
7.统计联系人总数
*\n");
printf("\t\t\t\t\t*
8.显示所有联系人
*\n");
printf("\t\t\t\t\t*
0.退出系统
*\n");
printf("\t\t\t\t\t======================================\n");
printf("\t\t\t\t\t**************************************\n");
printf("\t\t\t\t\t
请选择(0-8):");
voidin()
inti,m=0;
charch[2];
FILE*fp;
if((fp=fopen("data.txt","a+"))==NULL)
{
printf("\t\t
文件不存在!\n");
return;
}
while(!feof(fp))
{
if(fread(a[m],LEN,1,fp)==1)
m++;
}
fclose(fp);
if(m==0)
{
printf("\t\t
文件中没有记录!\n");
}
else
{
show();
}
if((fp=fopen("data.txt","a+"))==NULL)
{
printf("\t\t
文件不存在!\n");
return;
}
printf("\t\t
是否输入联系人信息(y/n):");
scanf("%s",ch);
while(strcmp(ch,"Y")==0||strcmp(ch,"y")==0)
{
printf("\t\t
电话:");
scanf("%d",a[m].num);
for(i=0;ii++)
{
if(a[i].num==a[m].num)
{
printf("\t\t
此用户已经存在了,按任意键继续!");
getch();
fclose(fp);
return;
}
}
printf("\t\t
姓名:");
scanf("%s",a[m].name);
printf("\t\t
工作单位:");
scanf("%s",a[m].job);
printf("\t\t
地址:");
scanf("%s",a[m].address);
if(fwrite(a[m],LEN,1,fp)!=1)
{
printf("\t\t
不能保存");
getch();
}
else
{
printf("\t\t
%s已被保存!\n",a[m].name);
m++;
}
printf("\t\t
继续(y/n):");
scanf("%s",ch);
}
fclose(fp);
printf("\t\t
结束录入!\n");
voiddel()
show();
FILE*fp;
intnmb,i,j,m=0;
intt=1;
//判断是否正常结束
charch[2];
if((fp=fopen("data.txt","r+"))==NULL)
{
printf("\t\t
\n文件不存在\n");
return;
}
while(!feof(fp))
{
if(fread(a[m],LEN,1,fp)==1)
m++;
}
fclose(fp);
if(m==0)
{
printf("\t\t
\n文件没有记录!\n");
return;
}
printf("\t\t
输入要删除的联系人的电话号码:");
scanf("%d",nmb);
for(i=0;ii++)
if(nmb==a[i].num)
{
printf("\t\t
找到这条记录是否删除(y/n):");
scanf("%s",ch);
if(strcmp(ch,"Y")==0||strcmp(ch,"y")==0)
{
for(j=i+1;jj++)
a[j-1]=a[j];
m--;
if((fp=fopen("data.txt","w+"))==NULL)
{
printf("\t\t
文件不存在\n");
return;
}
for(j=0;jj++)
{
if(fwrite(a[j],LEN,1,fp)!=1)
{
printf("\t\t
无法写入文件!删除失败!");
getch();
}
}
fclose(fp);
printf("\t\t
删除成功");
}
else
{
fclose(fp);
printf("\t\t
找到了记录选择不删除");
}
t=0;
//标志找到该联系人
break;
}
if(t)
printf("\t\t
没有找到该联系人!\n");
voidmodify()
show();
FILE*fp;
inti=0,j=0,m=0,nmb;
if((fp=fopen("data.txt","r+"))==NULL)
{
printf("\t\t
文件不存在\n");
return;
}
while(!feof(fp))
if(fread(a[m],LEN,1,fp)==1)
m++;
if(m==0)
{
printf("\t\t
文件中没有记录");
fclose(fp);
return;
}
printf("\t\t
请输入要修改的联系人的电话号码:");
scanf("%d",nmb);
for(i=0;ii++)
if(nmb==a[i].num)
//检索是否有要相应的联系人
{
printf("\t\t
找到该名联系人,将修改他的信息!\n");
printf("\t\t
电话:");
scanf("%d",a[i].num);
printf("\t\t
姓名:");
scanf("%s",a[i].name);
printf("\t\t
工作单位:");
scanf("%s",a[i].job);
printf("\t\t
住址:");
scanf("%s",a[i].address);
printf("\t\t
修改成功!");
if((fp=fopen("data.txt","w+"))==NULL)
{
printf("\t\t
不能打开");
return;
}
for(j=0;jj++)
//写入新的信息
if(fwrite(a[j],LEN,1,fp)!=1)
{
printf("\t\t
不能打开");
getch();
}
fclose(fp);
break;
}
if(i==m)
printf("\t\t
没有找到该名联系人");
voidsearch()
show();
FILE*fp;
intnmb,i,m=0;
if((fp=fopen("data.txt","r+"))==NULL)
{
fclose(fp);
printf("\n\t\t
文件不存在!\n");
return;
}
while(!feof(fp))
{
if(fread(a[m],LEN,1,fp)==1)
m++;
}
if(m==0)
{
fclose(fp);
printf("\n\t\t
文件没有记录!\n");
return;
}
printf("\n\t\t
请输入联系人的电话号码!:");
scanf("%d",nmb);
for(i=0;ii++)
if(nmb==a[i].num)
{
printf("\t\t
电话
姓名
工作单位
住址
\n");
printf(FORMAT,DATA);
break;
}
if(i==m)
printf("\t\t
没有找到记录!\n");
fclose(fp);
voidshow()
FILE*fp;
inti,m=0;
if((fp=fopen("data.txt","r+"))==NULL)
{
printf("\n\t\t
文件不存在\n");
return;
}
while(!feof(fp))
{
if(fread(a[m],LEN,1,fp)==1)
m++;
}
fclose(fp);
printf("\t\t
---------------------------------------------------------------------------\n");
printf("\t\t
||
电话
姓名
工作单位
住址
||\n");
for(i=0;ii++)
{
printf(FORMAT,DATA);
}
printf("\t\t
---------------------------------------------------------------------------\n");
voidinsert()
show();
FILE*fp;
inti,j,k,m=0,nmb;
if((fp=fopen("data.txt","r+"))==NULL)
{
printf("\t\t
文件不存在!\n");
return;
}
while(!feof(fp))
if(fread(a[m],LEN,1,fp)==1)
m++;
if(m==0)
{
printf("\t\t
文件中没有记录!\n");
fclose(fp);
return;
}
printf("\t\t
请输入要插入哪个号码的位置之后:");
scanf("%d",nmb);
for(i=0;ii++)
if(nmb==a[i].num)
break;
if(m==i)
{
printf("\t\t
没有找到改电话号码");
fclose(fp);
return;
}
for(j=m-1;jj--)
a[j+1]=a[j];
printf("\t\t
请输入要插入的通讯录信息:\n");
printf("\t\t
电话:");
scanf("%d",nmb);
for(k=0;kk++)
if(a[k].num==nmb)
{
printf("\t\t
电话已经存在,请按任意键继续!");
getch();
fclose(fp);
return;
}
a[i+1].num=nmb;
printf("\t\t
姓名:");
scanf("%s",a[i+1].name);
printf("\t\t
工作:");
scanf("%s",a[i+1].job);
printf("\t\t
地址:");
scanf("%s",a[i+1].address);
printf("\t\t
插入成功,请输入任意键返回主界面!");
if((fp=fopen("data.txt","w+"))==NULL)
{
printf("\t\t
不能打开!");
return;
}
for(k=0;kk++)
if(fwrite(a[k],LEN,1,fp)!=1)
{
printf("\t\t
不能保存!");
getch();
}
fclose(fp);
voidorder()
FILE*fp;
structlistb;
inti=0,j=0,m=0;
printf("\n");
if((fp=fopen("data.txt","r+"))==NULL)
{
printf("\t\t
文件不存在\n");
return;
}
while(!feof(fp))
if(fread(a[m],LEN,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年四川省巴中市从“五方面人员”中选拔乡镇领导班子成员考试强化练习题及答案
- 2025年卫生高级职称面审答辩普通外科副高面审经典试题及答案
- 2025年一级建造师考试(机电工程管理与实务)题库含答案佛山
- 2026年高级育婴师学习考试试题及答案解析
- 宁德市一级建造师考试(机电工程管理与实务)题库含答案(2025年)
- 除颤操作失误纠错模拟应急演练
- 跨河桥梁汛期漂浮物撞击应急预案
- 机动车检测站内审年度计划及实施细则
- Giparmen-生命科学试剂-MCE
- FTC-146-precursor-生命科学试剂-MCE
- 中职机械教学中数字化教学资源的开发与应用课题报告教学研究课题报告
- 宜宾市自然资源和规划局竞争性比选工作人员的考试参考试题及答案解析
- 《道路运输企业主要负责人和安全生产管理人员安全考核机动车维修企业》专业部分题库(附答案)
- 20.2电生磁教案(表格式)2025-2026学年初中物理人教版九年级全一册
- 霍桑红字介绍
- TGXAS-抗肿瘤药物临床试验护理工作规范编制说明
- 美团推广合同范本
- 网络金融部业务知识考试题库
- 税务领导选拔面试题目及答案
- 内分泌危象识别与应急处理
- 机关人员公务出差审批单
评论
0/150
提交评论