C语言通讯录管理系统程序设计.docx
《C语言通讯录管理系统程序设计.docx》由会员分享,可在线阅读,更多相关《C语言通讯录管理系统程序设计.docx(21页珍藏版)》请在冰豆网上搜索。
![C语言通讯录管理系统程序设计.docx](https://file1.bdocx.com/fileroot1/2022-10/11/fb76680c-4450-4782-8b97-7243611fd376/fb76680c-4450-4782-8b97-7243611fd3761.gif)
C语言通讯录管理系统程序设计
C语言通讯录管理系统程序设计
————————————————————————————————作者:
————————————————————————————————日期:
广西科技大学鹿山学院
课程设计报告
课程名称:
c语言程序设计
课题名称:
通讯录管理系统设计
指导教师:
倪志平
班级:
物联网152
姓名:
吴肖军
学号:
20153076
成绩评定:
指导教师签字:
二〇一六年七月六日
4.1.1新增联系人11
4.1.2查询联系人13
课程设计目的
1需求分析
通讯录档案信息采用文件存储,因而要提供文件的输入输出操作;根据联系人信息的变动情况,添加删除记录,因而要提供文件的添加删除操作;根据编号进项查询,所以要提供文件的查找操作;高级编辑功能,就是提供文件的修改操作;显示功能就是显示出通讯录中所有联系人的功能;另外还要提供键盘式选择菜单以实现功能选择。
2总体分析与设计
1.总体设计
总体设计目标:
使用者可以利用本系统对通讯录的各项管理进行操作,根据用户要求自动进行新增联系人,保存联系人,删除联系人,查找所要的联系人,修改所要的联系人,最后将他们清楚地显示在屏幕中。
结合上述分析,该系统应包括一下模块:
新增联系人,保存联系人,查询联系人,修改联系人,显示联系人,删除联系人,退出系统。
结构图如下。
2.1总体设计方案
图2-1系统功能模块图
2.2功能描述
根据以上需求分析,通讯录管理系统划分为七个功能模块,分别是新增联系人模块,保存联系人模块,查找联系人模块,修改联系人模块,显示联系人模块,删除联系人模块,读取联系人模块。
其中各功能模块的具体说明如下。
2.2.1新增联系人模块
增加联系人模块:
该模块的功能是增加新的联系人信息。
信息包括联系人姓名,联系人所在单位,联系人电话号码等。
然后从键盘输入并逐条写入到的文件中。
增加成功后提示增加联系人信息成功!
2.2.2保存联系人模块
保存联系人模块:
该模块会保存所新增联系人,修改联系人等信息到指定文件夹中。
2.2.3查找联系人模块
查找人事信息模块:
该模块的功能是,查找文件中的联系人信息记录,从键盘输入联系人编号,输入时会判断该联系人编号是否存在,若不存在,则重新输入。
若存在,则将该人事信息输出到窗口。
2.2.4修改联系人模块
修改人事信息模块:
该模块的功能是由用户输入所需修改的联系人信息编号。
然后对联系人信息(姓名和电话号码等)进行修改,最后保存修改后的结果。
2.2.5显示联系人模块
该模块将文件里的内容输出到电脑屏幕。
用户可以通过该功能看到文件当中的所有联系人的信息。
2.2.6删除联系人模块
删除人事信息模块:
该模块首先由用户输入要删除的联系人的编号,根据编号删除所需的联系人信息,删除后提示联系人删除成功。
删除的方法是将文件中的数据读入内存,赋给相应的结构体,并将结构体数组中将删除的后面的数据赋给前一个结构体,然后将相应数据写入文件并保存。
2.2.7读取联系人模块
该模块将保存到文件中的联系人读取到内存中以供程序操作。
2.2.8退出系统模块
若在系统最初运行时,选择退出系统,则系统退出运行。
2.3系统流程图
3系统实现
程序源码
#include
#include
#include
#include
structBOOKS
{
intid;
chartell[12],phone[12],name[31],add[20],email[30],qq[20];
}books[100],*p;
voidpage_title(char*menu_item)
{
printf("\t\t********************************************\n",menu_item);
printf("\t\t*欢迎使用通讯录管理系统*\n",menu_item);
printf("\t\t**\n",menu_item);
printf("\t\t*系统设计人:
吴肖军*\n",menu_item);
printf("\t\t**\n",menu_item);
printf("\t\t********************************************\n\n-%s-\n\n",menu_item);
}
voidreturn_confirm(void)
{printf("\n按任意键返回……\n");
getchar();
}
voidbooks_add(void)//输入模块
{intn;
system("cls");//清屏
page_title("新增联系人");
for(n=0;n<100;n++)
if(books[n].id==0)break;
printf("序号:
");
scanf("%d",&books[n].id);
printf("姓名:
");
scanf("%s",&books[n].name);
printf("单位:
");
scanf("%s",&books[n].add);
printf("固定电话:
");
scanf("%s",&books[n].tell);
printf("移动电话:
");
scanf("%s",&books[n].phone);
printf("邮件:
");
scanf("%s",&books[n].email);
printf("QQ:
");
scanf("%s",&books[n].qq);
return_confirm();
}
intbooks_search(void)//查找模块
{intn,i=-1;
charnam[30];
system("cls");
printf("请输入联系人:
");
scanf("%s",&nam);
for(n=0;n<100;n++)
{if((strcmp(books[n].name,nam)==0))
{printf("序号:
%d\t",books[n].id);
printf("联系人:
%s\t",books[n].name);
printf("单位:
%s\t",books[n].add);
printf("固定电话:
%s\t",books[n].tell);
printf("移动电话:
%s\t",books[n].phone);
printf("邮件:
%s\t",books[n].email);
printf("QQ:
%s\n",books[n].qq);i=n;
}
}
if(i==-1)
printf("\n没有找到相关记录.\n");
getchar();
returni;
}
intbooks_change(void)//修改模块
{
intn,i;
system("cls");
page_title("修改联系人信息");
printf("请输入要修改的联系人编号:
");
scanf("%d",&i);
for(n=0;n<100;n++)
{if(books[n].id==i)
{
printf("修改联系人:
");
scanf("%s",books[n].name);
printf("修改单位:
");
scanf("%s",books[n].add);
printf("修改固定电话:
");
scanf("%s",books[n].tell);
printf("修改移动电话:
");
scanf("%s",books[n].phone);
printf("修改邮件:
");
scanf("%s",books[n].email);
printf("修改QQ:
");
scanf("%s",books[n].qq);
printf("修改联系人信息成功.\n");
returnn;
}
}
printf("\n没有找到相关记录.\n");
getchar();
return-1;
}
intbooks_show(void)//显示模块
{intn,i=1;
system("cls");
for(n=0;n<100;n++)
{
if(strlen(books[n].name)!
=0)
{
printf("序号:
%d\t",books[n].id);
printf("联系人:
%s\t",books[n].name);
printf("单位:
%s\t",books[n].add);
printf("固定电话:
%s\t",books[n].tell);
printf("移动电话:
%s\t",books[n].phone);
printf("邮件:
%s\t",books[n].email);
printf("QQ:
%s\n",books[n].qq);
i=0;
}
}
if(i==1)
printf("\n没有找到相关记录.\n");
getchar();
return-1;
}
intbooks_del(void)//删除模块
{
intn,num,i;
system("cls");
page_title("删除联系人");
printf("请输入所要删除的联系人的编号:
\n");
scanf("%d",&num);
for(n=0;n<100;n++)
{
if(books[n].id==num)
{
for(i=n;i<100;i++)
{books[i].id=books[i+1].id;
strcpy(books[i].name,books[i+1].name);
strcpy(books[i].email,books[i+1].email);
}
printf("该联系人已删除.\n");
returnn;
}
}
printf("没有找到相关记录\n");
getchar();
return-1;
}
voidbooks_save()//保存模块
{
system("cls");
FILE*fp;
inti;
p=books;
if((fp=fopen("d:
\\tt.txt","wb+"))==NULL)
{
printf("Cannotopenfile,strikeanykeyexit!
");
getchar();
exit
(1);
}
fwrite(p,sizeof(structBOOKS),2,fp);
p=books;
for(i=0;i<2;i++,p++)
printf("%5d\t%s\t%s\t%s\t%s\t%s\t%s\t\n",p->id,p->name,p->add,p->tell