C语言毕业课程设计通讯录管理系统.docx
《C语言毕业课程设计通讯录管理系统.docx》由会员分享,可在线阅读,更多相关《C语言毕业课程设计通讯录管理系统.docx(17页珍藏版)》请在冰豆网上搜索。
C语言毕业课程设计通讯录管理系统
(此文档为word格式,下载后您可任意编辑修改!
)
C语言通讯录管理系统
课程设计报告
题目
通讯录管理系统
学号
姓名
年级专业
09级电子信息工程
指导教师
完成日期
年
月
日
1设计题目的内容、任务及具体要求
本程序是非数值计算型算法设计,我设计出了通讯录管理系统的基本功能,并设计了简单的界面。
本程序主要考察对自定义函数的熟悉程度,本程序主要使用的是数组的相关操作,包括结构体数组的输入、输出、查找、删除等。
我设计的这个通讯录系统也初步实现了人员信息的显示、删除、查找、修改、添加等必要的功能。
记录通讯录内的人员的姓名、地址、邮编、电话号码。
显示所有人员的信息。
通过输入姓名查找人员信息。
通过输入姓名查找到要删除的人员信息,然后可以进行删除。
通过输入姓名查找到要修改的人员信息,然后可以进行修改。
添加人员信息。
2总体设计思路
本系统首先设计出了主函数,然后根据去要实现的功能分别设计拉,显示、删除、查找、修改、添加功能的子函数。
在显示的函数设计过程中首先运用拉文件的读取等必要的知识通过把文件的内容读取到内存然后打印出来。
删除函数的设计是首先从文件内找到要删除的人,然后通过写一个实现删除目的的FOR循环将该人从内存里删除,然后再用写的方式打开文件,将内存内的信息写入文件,实现删除。
查找也是先打开文件,用一个字符串对比的方法找出用户要查找的人,然后打印出来。
修改也大体和删除相同,添加函数在设计时通过申请一片空间,然后通过指针将需要添加的信息添加进去,从而实现添加功能。
下面就是总的程序流程图:
3功能模块的具体设计
3.1界面分析
3.1.1开始界面
3.1.2显示功能的界面:
选择1后系统出现现有的所有人员名单:
3.1.3显示删除功能的界面
3.1.4查找功能:
通过5:
find—by—name用姓名来查找个人的通讯录信息
通过6:
find—by—tel用电话号码来查找个人的通讯录信息
3.1.5修改功能的界面:
输入姓名后的系统界面:
输入修改信息后的系统界面:
3.1.6添加功能的界面:
选择1后的系统界面:
3.2程序设计主要内容
#include{intm;printf("***************************************************\n\n\n");printf("*********Welcometouseyufeng's***************\n\n\n");printf("**************addressbook**********************\n\n\n");creat();*主界面*while(1){printf("******************************\n\n");printf("0exit,press0\n\n");printf("1append,press1\n\n");printf("2modify,press2\n\n");printf("3output,press3\n\n");printf("4delete,press4\n\n");printf("5findbyname,press5\n\n");printf("6findbytel,press6\n\n");*功能菜单*printf("******************************\n");scanf("%d",&m);if(m>=0&&m<=6){switch(m){case1:append();break;case2:modify();break;case3:output();break;case4:delete();break;case5:find_by_name();break;case6:find_by_tel();break;case0:exit();}printf("\n\nHavefinished,selectagain!\n");}elseprintf("\n\nError,selectagain!\n");}}voidcreat(){structstudentone;printf("\nInputthenameofaddressbook:");gets(filename);if((fp=fopen(filename,"w"))==NULL){printf("\nCann'tcreataddressbook!");exit();}*fprintf(fp,"%-10s%-8d%-20s%-20s%-20s\n",one.name,one.num,one.dis,one.tel,one.addr);*printf("\nInputname,num,dis,tel,addr(endpress#)\n");gets(one.name);while(strcmp(one.name,"#")){gets(one.num);gets(one.dis);gets(one.tel);gets(one.addr);fprintf(fp,"%-10s%-10s%-10s%-20s%-20s\n",one.name,one.num,one.dis,one.tel,one.addr);gets(one.name);}fclose(fp);}voidfind_by_name(){intk=0;charnamekey[8];structstudentone;printf("\nInputname:");scanf("%s",namekey);if((fp=fopen(filename,"rb"))==NULL){printf("\nCann'topenthisaddressbook!!!");exit();}while(!feof(fp)){fscanf(fp,"%s%s%s%s%s\n",one.name,one.num,one.dis,one.tel,one.addr);if(!strcmp(namekey,one.name)){printf("\n\nHavefinded,asfollow:\n");printf("namenumdisteladdr");printf("\n%-10s%-10s%-10s%-20s%-20s\n",one.name,one.num,one.dis,one.tel,one.addr);k=1;}}if(!k)printf("\n\nSorry,thereisnothisstudent!!");fclose(fp);}voidfind_by_tel(){intk=0;chartelkey[8];structstudentone;printf("\nInputtel:");scanf("%s",telkey);if((fp=fopen(filename,"rb"))==NULL){printf("\nCann'topenthisaddressbook!!!");exit();}while(!feof(fp)){fscanf(fp,"%s%s%s%s%s\n",one.name,one.num,one.dis,one.tel,one.addr);if(!strcmp(telkey,one.tel)){printf("\n\nHavefinded,asfollow:\n");printf("namenumdisteladdr");printf("\n%-10s%-10s%-10s%-20s%-20s\n",one.name,one.num,one.dis,one.tel,one.addr);k=1;}}if(!k)printf("\n\nSorry,thereisnothisstudent!!");fclose(fp);}voidoutput(){structstudentone;if((fp=fopen(filename,"r"))==NULL){printf("\nCann'topenthisaddressbook!!!");exit(0);}*printf("\n\n%20s\n","\nCann'topenthisaddressbook\n");*while(!feof(fp)){fscanf(fp,"%s%s%s%s%s\n",one.name,one.num,one.dis,one.tel,one.addr);if(strcmp(one.name,"%-10s%-10s%-10s%-20s%-20s\n",one.name,one.num,one.dis,one.tel,one.addr);}fclose(fp);}voidappend(){structstudentone;if((fp=fopen(filename,"a"))==NULL){printf("\nCann'topenthisaddressbook!!");exit();}printf("\nInputnewname,num,dis,tel,addr\n");scanf("%s%s%s%s%s",one.name,one.num,one.dis,one.tel,one.addr);fprintf(fp,"%-10s%-10s%-10s%-20s%-20s\n",one.name,one.num,one.dis,one.tel,one.addr);fclose(fp);}voidmodify(){intm,k=0;longoffset;charnamekey[8];structstudentone;printf("\nInputname:");scanf("%s",namekey);if((fp=fopen(filename,"r+"))==NULL){printf("\nCann'topenthisaddressbook!!!");exit();}while(!feof(fp)){offset=ftell(fp);fscanf(fp,"%s%s%s%s%s\n",one.name,one.num,one.dis,one.tel,one.addr);if(!strcmp(namekey,one.name)){k=1;break;
{
intm;
printf("***************************************************\n\n\n");
printf("*********Welcometouseyufeng's***************\n\n\n");
printf("**************addressbook**********************\n\n\n");
creat();*主界面*
while
(1)
{printf("******************************\n\n");
printf("0exit,press0\n\n");
printf("1append,press1\n\n");
printf("2modify,press2\n\n");
printf("3output,press3\n\n");
printf("4delete,press4\n\n");
printf("5findbyname,press5\n\n");
printf("6findbytel,press6\n\n");*功能菜单*
printf("******************************\n");
scanf("%d",&m);
if(m>=0&&m<=6)
switch(m)
case1:
append();
break;
case2:
modify();
case3:
output();
case4:
delete();
case5:
find_by_name();
case6:
find_by_tel();
case0:
exit();
}
printf("\n\nHavefinished,selectagain!
\n");
else
printf("\n\nError,selectagain!
voidcreat()
structstudentone;
printf("\nInputthenameofaddressbook:
");
gets(filename);
if((fp=fopen(filename,"w"))==NULL)
printf("\nCann'tcreataddressbook!
*fprintf(fp,"%-10s%-8d%-20s%-20s%-20s\n",one.name,one.num,one.dis,one.tel,one.addr);
*printf("\nInputname,num,dis,tel,addr(endpress#)\n");
gets(one.name);
while(strcmp(one.name,"#"))
gets(one.num);
gets(one.dis);
gets(one.tel);
gets(one.addr);
fprintf(fp,"%-10s%-10s%-10s%-20s%-20s\n",one.name,one.num,one.dis,one.tel,one.addr);
fclose(fp);
voidfind_by_name()
intk=0;
charnamekey[8];
printf("\nInputname:
scanf("%s",namekey);
if((fp=fopen(filename,"rb"))==NULL)
printf("\nCann'topenthisaddressbook!
!
while(!
feof(fp))
fscanf(fp,"%s%s%s%s%s\n",one.name,one.num,one.dis,one.tel,one.addr);
if(!
strcmp(namekey,one.name))
printf("\n\nHavefinded,asfollow:
printf("namenumdisteladdr");
printf("\n%-10s%-10s%-10s%-20s%-20s\n",one.name,one.num,one.dis,one.tel,one.addr);
k=1;
k)
printf("\n\nSorry,thereisnothisstudent!
voidfind_by_tel()
chartelkey[8];
printf("\nInputtel:
scanf("%s",telkey);
strcmp(telkey,one.tel))
voidoutput()
if((fp=fopen(filename,"r"))==NULL)
exit(0);
*printf("\n\n%20s\n","\nCann'topenthisaddressbook\n");*
if(strcmp(one.name,"%-10s%-10s%-10s%-20s%-20s\n",one.name,one.num,one.dis,one.tel,one.addr);
voidappend()
if((fp=fopen(filename,"a"))==NULL)
printf("\nInputnewname,num,dis,tel,addr\n");
scanf("%s%s%s%s%s",one.name,one.num,one.dis,one.tel,one.addr);
voidmodify()
intm,k=0;
longoffset;
if((fp=fopen(filename,"r+"))==NULL)
offset=ftell(fp);
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1