c语言程序设计通讯录管理系统_第1页
c语言程序设计通讯录管理系统_第2页
c语言程序设计通讯录管理系统_第3页
c语言程序设计通讯录管理系统_第4页
c语言程序设计通讯录管理系统_第5页
已阅读5页,还剩7页未读 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

长江大学工程技术学院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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论