c语言程序设计通讯录 2Word文档下载推荐.docx
《c语言程序设计通讯录 2Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《c语言程序设计通讯录 2Word文档下载推荐.docx(15页珍藏版)》请在冰豆网上搜索。
6.排序通讯录联系人来进行开头的首写字母排序。
7.退出通讯录。
4.主要源程序代码
voidmenu();
//定义的函数
voidnewrecord();
voidxiugai();
voidshanchuname();
voidchazhaoname();
voidxianshi();
intdaoruwenji();
voidsave();
voidpaixu();
structfriends//定义的数组
{
charname[8];
charaddr[14];
charpc[7];
chare_mail[14];
charQQ[10];
chartel[12];
}frd[500];
intNO=10;
//宏定义k定义为删除联系人的个数m定义为添加联系人的个数NO定义为原始通讯录中的联系人的个数
intk,m;
FILE*fp;
voidmenu()//主菜单
inta;
printf("
\n\t\t|-----------欢迎您使用通讯录管理系统1.0beat版----------|"
);
\n\t\t|[1]添加联系人;
[2]删除联系人;
[3]查找联系人|"
\n\t\t|[4]显示联系人;
[5]修改联系人;
[6]排序联系人[7]退出|"
\n\t\t|---------------------------------------------------------|"
\n\t\t请选择您所所要的服务:
"
scanf("
%d"
&
a);
switch(a)
{
case1:
newrecord();
break;
case2:
shanchuname();
case3:
chazhaoname();
case4:
xianshi();
case5:
xiugai();
case6:
paixu();
case7:
exit(0);
default:
exit(0);
}
}
intmain()//主函数
daoruwenji();
while
(1)//1是真的进行死循环
menu();
return0;
voidxianshi()//打印所有的通讯录的人的信息
inti;
fp=fopen("
jk0119.txt"
"
r"
if(fp==0)
printf("
\n\n\n\n\t电话簿文件不存在"
\n\n********************************欢迎使用通讯录*******************************************"
\n姓名地址邮编e_mailQQ手机号"
for(i=0;
i<
NO-k+m;
i++)
fscanf(fp,"
%s%s%s%s%s%s"
frd[i].name,frd[i].addr,frd[i].pc,frd[i].e_mail,frd[i].QQ,frd[i].tel);
}
i++)
\t\n%3d"
i+1);
%8s%14s%7s%14s%10s%12s"
\n\n*****************************************************************************************"
intdaoruwenji()//判断通讯录是否为空和如果为空就新建一个txt文本
if((fp=fopen("
rb"
))==0)//打开jk0119.txt文件
if((fp=fopen("
contact.txt"
wb"
))==0)//判断文件是否为空
{
printf("
\n\t\t\t\t建立失败"
exit(0);
else
\n\t电话簿已建立"
\n\t按任意键进入主菜单"
getch();
return(0);
fseek(fp,0L,2);
//将读取文件的指针移至文件末端
if(ftell(fp)>
0)//统计文件的字节是否为0
rewind(fp);
\n\n\n\n\t\t\t\t\t文件导入成功"
\n\t\t\t\t\t按任意键返回主菜单"
fclose(fp);
return(0);
\n\n\n\n\t\t\t文件导入成功"
\n\t\t\t电话簿文件中无任何纪录"
\n\t\t\t按任意键返回主菜单"
fclose(fp);
getch();
return(0);
voidsave()//对修改的函数进行保存到txt文本中
w"
))==0)
\n\t\t\t\t打开失败"
fprintf(fp,"
%s\t%14s%7s%14s%10s%12s\n"
//打印出文件的信息
\n\t保存文件成功"
voidnewrecord()//新建一个新的联系人
\n\t\t******************请输入联系人信息************************"
\n\t\t输入联系人的姓名"
%s"
frd[NO-k+m].name);
for(inti=0;
if(strcmp(frd[NO].name,frd[i].name)==0)
\n\n\t姓名重复请重新新建联系人"
newrecord();
\n\t\t输入联系人的地址"
frd[NO-k+m].addr);
\n\t\t输入联系人的邮编"
frd[NO-k+m].pc);
\n\t\t输入联系人的e_mail"
frd[NO-k+m].e_mail);
\n\t\t输入联系人的QQ"
frd[NO-k+m].QQ);
\n\t\t输入联系人的手机号码"
frd[NO-k+m].tel);
if(strlen(frd[NO-k+m].tel)==11)
输入的电话号码合法"
else
请重新输入11位合法的数字"
scanf("
m++;
save();
是否继续添加新联系人(y/n):
"
if(getch()=='
y'
)
newrecord();
voidshanchuname()//对联系人信息进行全部的删除
inti,j;
charname[14];
fflush(stdin);
name);
if(strcmp(name,frd[i].name)==0)
%8s%14s%7s%14s%10s%12s\n"
\n\n\t是否删除该联系人的所有信息(y/n):
if(getch()=='
{
for(j=i;
j<
NO-k+m-1;
j++)
{
frd[j]=frd[j+1];
}
k++;
printf("
\n\t已经删除了该联系人"
save();
\n\t是否继续删除联系人(y/n):
if(getch()=='
shanchuname();
}
menu();
\n\n\t通讯录中不存在该联系人"
voidchazhaoname()//查找通讯录里的联系人
\n\t输入联系人的姓名"
name);
%8s%14s%7s%14s%10s%11s\n"
voidxiugai()//对联系人的部分信息进行修改
inti,a;
\n\n\t输入联系人的姓名"
%8s%14s%7s%14s%10s%13s\n"
\n\n\t是否确定修改该联系人(y/n):
\n\n\t************************************************"
\n\t[1]姓名[2]地址[3]邮编"
\n\t[4]邮箱[5]QQ[6]手机号码[7]返回"
\n\n\t************************************************\n"
\n\t请输入序号"
scanf("
switch(a)
case1:
姓名:
frd[i].name);
case2:
地址:
frd[i].addr);
case3:
邮编:
frd[i].pc);
case4:
邮箱:
frd[i].e_mail);
case5:
QQ:
frd[i].QQ);
case6:
11位手机号码:
frd[i].tel);
case7:
menu();
default:
xiugai();
\n\t\t您的修改结果为:
\n\t姓名:
\n\t地址:
\n\t邮编:
\n\t邮箱:
\n\tQQ:
\n\t手机号码:
%12s"
return;
else
menu();
\n\n"
voidpaixu()//对联系人进行按字母进行排序
structfriendsfr[500];
structfriendst;
inti,j;
i<
NO-k+m;
fr[i]=frd[i];
NO-k+m-1;
for(j=1;
j<
if(strcmp(fr[i].name,fr[j].name)>
0)
t=fr[i];
fr[i]=fr[j];
fr[j]=t;
\n\n姓名地址邮编e_mailQQ手机号\n"
%8s%20s%7s%14s%10s%12s\n"
Save();
}
本程序中大量使用了结构体和结构体数组,系统的功能模块都是使用子函数完成的,子函数中也存在大量结构体数组。
5.调试分析过程描述
1.软件进入界面后按任意键进入主菜单:
2.在软件后面按[4]导入和显示所有的联系人。
3在菜单栏接着按[3]查找通讯录里的任意联系人。
4在菜单栏接着按[5]进行联系人的姓名地址邮编邮箱QQ号手机号码的修改。
5.在菜单栏中选择[2]进行单个联系人删除。
6.在菜单栏中选择[6]进行对所有的联系人进行排序。
6.课程设计总结
课程设计是培养学生综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程.C语言已经成为当今计算机应用中空前活跃的领域,在生活中可以说得是无处不在。
因此作为计算机专业的大学来说掌握C语言程序的开发技术是十分重要的。
通过这次编程实践,巩固了c语言的知识,对c语言的内容有了进一步的了解,增强了动手能力,感受到了c语言的奥妙,找到了学习编程的乐趣。
同时在编程过程中,也发现了自身学习态度的问题。
由于课后又没及时时间去复习,造成了许多知识的缺多识不能很好的运用,编写过程面临困难。
事实告诫了我:
今后上课一定要认真听讲,及时复习,多动手去编程,增强实践能力。
指导教师评语:
报告成绩:
指导教师签名:
年月日