版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
长江大学工程技术学院C语言课程设计实习报告
通讯录管理系统
学生姓名:吴正杰学号:序号:19
专业班级:计科61031
指导老师:刘旨阳
报告日期:2015\7\6
1.需求分析
根据题目要求,通讯录保存在文件中,要提供文件的输入和输出
能力;还有就是要提供通讯录添加(个人信息包括姓名、邮编、住址、
电话号码、QQ、电子邮件等)、删除、显示、修改等基本功能。
2.概要设计?
系统总体设计是信息的输入、信息的编辑和退出。系统功能模块如
下:
3.详辘附?
1.输出通讯录用于让使用者观看通讯录里所有的信息。
算始
排
输
修
删
添
查
序
出
除
改
加
找
通
通
通
通
通
通V
——
讯
讯
讯
械
讯
所
出
录
录
录
陵
录
信
人
f录t
结束
2.通讯录里无信息,所以要添加信息。用键盘逐个输入通讯录里联
系人的信息。?
9
3.查找通讯录是让使用者可以通过姓名来查找通讯录里的联系人。??
?开始
I
4.修改通讯录是让使用者通过姓名查找到通讯录里的联系人,然后?
w
其作出修改I―按姓名查询
5.删除通讯录是用来按照联系人的姓名来单独删除通讯录中一些不
想要的联系人。
voidshanchuname();结束
voidchazhaoname();__________
voidxianshi();
intdaoruwcnji();
voidsave();
voidpaixuO;
结束
structfriends//定义的数组
(
charname[8];
charaddr[14];
charpc[7];
charejnail[14];
charQQ[10];
chartel[12];
}frd[500];
intN0=10;〃宏定义k定义为删除联系人的个数m定义为添加联系人的
个数NO定义为原始通讯录中的联系人的个数
intk,m;
ElLE*fp;
voidmenu()〃主菜单
(
inta;
printf(/z\n\t\t|-----------欢迎您使用通讯录管理系统1.Obcat版
1〃);
printfC\n\t\t|[1]添加联系人;[2]删除联系人;[3]查找联系人
〃);
printfC\n\t\t|[4]显示联系人;[5]修改联系人;[6]排序联系人[7]
退出I〃);
printf('\n\t\t
I-----------------------------------------------------------1);
printf('\n\t\t请选择您所所要的服务:〃);
scanf(〃%d”,&a);
switch(a)
(
case1:newrecord();break;
case2:shanchunameO;break;
case3:chazhaoname();break;
case4:xianshi();break;
case5:xiugai();break;
case6:paixu();break;
case7:exit(0);
default:
exit(0);
}
)
intmainO〃主函数
(
daoruwcnji();
while(1)〃1是真的进行死循环
menu();
return0;
}
voidxianshiO〃打印所有的通讯录的人的信息
(
inti;
fp=fopen("jk0119.txt","r");
if(fp==0)
(
printfC\n\n\n\n\t电话簿文件不存在〃);
exit(0);
)
prinIf("\n\n**************************林****欢迎使用通讯录
*J**J****J**J***'')\.
printf("\n姓名地址邮编e_mailQQ
手机号〃);
for(i=0;i<NOkfm;i+十)
(
fscanf(fp,,,%s%s%s%s%s%s,\frd[i].name,frd[i].addr,frd[i].pc,
frd[i].email,frd[i].QQ,frd[i].tel);
)
for(i=0;i<N0-k+m;i++)
(
printf(,,\t\n%3d,/,i+1);
printf(,/%8s%14s%7s%14s%10s%12s/,,frd[i].name,frd[i].addr,
frd[i].pc,frd[i].e_mail,frd[i].QQ,frd[i].tel);
printf("\n\n**************************林*************************
^|c〃)•
)^
intdaoruwcnji()〃判断通讯录是否为空和如果为空就新建一个txt文本
if((fp=fopenCJkOl19.txt/,,//rb,/))==0)〃打开jkOl19.txt文件
printfC\n\n\n\n\t电话簿文件不存在〃);
if((fp=fopen("contact,txt",〃wb"))==0)〃判断文件是否为空
printf('\n\t\t\t\t建立失败〃);
exit(0);
)
else
printf(z,\n\t电话簿已建立“);
printf(z/\n\t按任意键进入主菜单〃);
getchO;
return(0);
}
exit(0);
}
fseek(fp,0L,2);//将读取文件的指针移至文件末端
if统计文件的字节是否为0
(
rewind(fp);
printfCz\n\n\n\n\t\t\t\t\t文件导入成功〃);
printfC\n\t\t\t\t\t按任意键返回主菜单”);
fclose(fp);
getchO;
return(0);
)
printf("\n\n\n\n\t\t\t文件导入成功〃);
printf('\n\t\t\t电话簿文件中无任何纪录〃);
printf('\n\t\t\t按任意键返回主菜单〃);
fclose(fp);
getchO;
return(0);
)
voidsave()〃对修改的函数进行保存到txt文本中
inti;
if((fp=fopen(,zJkOl19.txt,z,"w"))=二0)
(
printf打开失败“);
)
for(i=0;i<NO-k+m;i++)
(
fprintf(fp,"%s\t%14s%7s%14s%10s%12s\rT,frd[i].name
frd[i].addr,frd[i].pc,frd[i].e_mail,frd[i].QQ,frd[i].tel);〃打印
出文件的信息
)
printfC\n\t保存文件成功〃);
fclose(fp);
}
voidnewrecord()〃新建一个新的联系人
{
printf("3\1:\1:*粒***************请输入联系人信息
printf(,,\n\t\t输入联系人的姓名〃);
scanf&frd[NO-k+m].name);
for(inti=0;i<N0-k+m;i++)
{
if(strcmp(frd[NO].name,frd[i].name)-0)
(
printf('\n\n\l姓名重复请重新新建联系人〃);
newrecordO;
}
)
printf('\n\t\t输入联系人的地址〃);
scanf("%s”,&frd[N0-k+m].addr);
printf('\n\t\t输入联系人的邮编〃);
scanf("s”,&frd[NO-k+m].pc);
printf(,z\n\t\t输入联系人的e_mail〃);
scanf&frd[NO-k+in],e.mail);
printf(/z\n\t\t输入联系人的QQ〃);
scanf&frd[NOk+m].QQ);
printf('\n\t\t输入联系人的手机号码〃);
scanf&frd[N0-k+m].tel);
if(strlen(frd[NO-k+m].tel)==11)
(
printf(〃输入的电话号码合法〃);
)
else
(
printf("请重新输入11位合法的数字〃);
scanf(,z%s,z,&frd[NO-k+m].tel);
)
m++;
save();
printf(〃是否继续添加新联系人(y/n):〃);
if(getchO=='y')
(
newrecord();
)
}
voidshanchunameO〃对联系人信息进行全部的删除
(
inti,j;
charname[14];
printf(,z\n\t\t输入联系人的姓名");
fflush(stdin);
scanf('%s”,name);
for(i=0;i<NO-k+m;i++)
(
if(strcmp(name,frd[i].name)==0)
(
printf(z/%8s%14s%7s%14s%10s%12s\n/z,frd[i].name,frd[i].addr,
frd[i].pc,frd[i].e_mail,frd[i].QQ,frd[i].tel);
printf(,z\n\n\t是否删除该联系人的所有信息(y/n):〃);
if(getchO=='y')
(
for(j=i;j<N0-k+m-1;j++)
(
frd[j]=frd[j+1];
)
k++;
printf(〃\n\t已经删除了该联系人〃);
saveC;
printf(〃\n\t是否继续删除联系人(y/n):〃);
if(getchO=='y')
(
shanchuname();
)
)
menu();
}
)
printf(〃\n\n\t通讯录中不存在该联系人〃);
}
voidchazhaonameO〃查找通讯录里的联系人
(
inti;
charname[14];
printf(,z\n\t输入联系人的姓名〃);
fflush(stdin);
scanf(〃%s〃,name);
for(i=0;i<N0-k+m;i++)
(
if(strcmp(name,frd[i].name)二二0)
(
printf("%8s%14s%7s%14s%10s%lls\n〃,
frd[i].name,frd[i].addr,frd[i].pc,frd[i].e_mail,frd[i].QQ,
frd[i].tel);
menu();
)
voidxiugai()〃对联系人的部分信息进行修改
inti,a;charname[14];
printf(,z\n\n\t输入联系人的姓名”);
fflush(stdin);
scanf(,z%sz,,name);
for(i=0;i<NO-k+m;i++)
(
if(strcmp(name,frd[i].name)==0)
(
printf(,,%8s%14s%7s%14s%10s%13s\nz,,frd[i].name,frd[i].addr,
frd[i].pc,frd[i].e_mail,frd[i].QQ,frd[i].tel);
printfCz\n\n\t是否确定修改该联系人(y/n):");
if(getchO=='y')
printf(〃\n\n\t*我******************冰**我**********************");
printf(z/\n\t[1]姓名[2]地址[3]邮编
〃);
printf(,z\n\t[4]邮箱[5]QQ[6]手机号
码[7]返回〃);
printf("\n\n\t*在*********************我**********************\11"
);
printf("\n't请输入序号〃);
scanfd,&a);
switch(a)
(
case::printf("姓名:");scanf(,z%s/z,frd[i].name);
break;
case2:printf(“地址:");scanf(,,%s,/,frd[i].addr);
break;
case3:printf(“邮编:“);scanffrd[i].pc);
break;
case4:printf("邮箱:“);scanfC%s,z,frd[i].e_mail);
break;
case5:printf("QQ:");scanffrd[i].QQ):
break;
case6:printf("11位手机号码;scanf("%s〃,frd[i].tel);
break;
case7:mcnu();
default:
xiugai();
)
printf("\n\t\t您的修改结果为:");
printf(〃\n\t姓名:%s”,frd[i].name);
printf("\n\t地址:%s〃,frd[i].addr);
printf(〃\n\l邮编:%s”,frd[i].pc);
printf("\n\t邮箱:%s”,frd[i].e_mail)
printf(/z\n\tQQ:%s",frd[i].QQ);
printf("\n\t手机号码:%12s”,frd[i].tel);
saveC;
return;
)
else
(
menuC;
)
printfC\n\n〃);
)
voidpaixuO〃对联系人进行按字母进行排序
(
structfriendsfr[500];
structfriendst;
inti,j;
for(i=0;i<NO-k+m;i++)
fr[i]=frd[i];
for(i=0;i<NO-k+m-1;i++)
(
for(j=1;j<N0-k+m;j++)
{
if(strcmp(fr[i].name,fr[j].name)>0)
(
t=fr[i];
fr[i]=fr[j];
fr[j]=t;
)
}
}
printf(,z\n\n姓名地址邮编e_mail
QQ手机号\n");
for(i=0;i<NO-k+m;i++)
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025-2030中国四氟丙醇市场风险评估及前景产销规模预测报告
- 侵袭性真菌病诊疗指南修订2026
- 电阻率测量报告
- 金属材料工程就业前景分析
- 七年级数学教学工作计划书怎么写(25篇)
- 职业规划:实现梦想的路径
- 历年护理学研究自考试题及答案
- 历史教案板块四世界古近代史第九单元第28讲中古时期的亚洲非洲和美洲
- 2026年贵州省国家公务员考试《申论》真题和答案
- 2025年广西壮族自治区防城港市初二地生会考考试试题及答案
- XJJ 077-2017 高性能混凝土应用技术规程
- 一片叶子的奥秘科学课件
- 重庆特产课件
- 医师责任保险制度:现状、问题与发展路径探析
- 病区临床护理技术操作常见并发症考题(有答案)
- 党建专员面试题目及答案
- 2023版水利工程强条
- 军品科研生产管理制度
- 麻醉科三基三严考试试题及答案
- Amfori BSCI社会责任验厂全套管理手册及程序文件
- 疤痕培训课件
评论
0/150
提交评论