当前位置:文档之家› C语言通讯录管理系统程序设计

C语言通讯录管理系统程序设计

广西科技大学鹿山学院课程设计报告课程名称: c语言程序设计课题名称:通讯录管理系统设计指导教师:倪志平班级:物联网152姓名:吴肖军学号: 20153076成绩评定:指导教师签字:二〇一六年七月六日目录1 需求分析 (3)2 总体分析与设计 (3)2.1总体设计方案 (3)2.2功能描述 (4)2.2.1 新增联系人模块 (4)2.2.2 保存联系人模块 (4)2.2.3 查询联系人模块 (4)2.2.4 显示联系人模块 (4)2.2.5 修改联系人模块 (4)2.2.6 删除联系人模块 (4)2.2.7 读取联系人模块 (5)2.2.8 退出系统模块 (4)2.3系统流程图 (5)3 系统实现 (6)4功能测试 (11)4.1.1 新增联系人 (11)4.1.2 查询联系人 (13)4.1.3 显示联系人 (14)4.1.4 修改联系人 (15)4.1.5 删除联系人 (16)4.1.6 退出系统 (17)总结 (18)参考文献 (18)课程设计目的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 退出系统模块若在系统最初运行时,选择退出系统,则系统退出运行。

3 系统实现程序源码#include <stdio.h>#include <string.h>#include <stdlib.h>#include<conio.h>struct BOOKS{int id;char tell[12],phone[12],name[31],add[20],email[30],qq[20];}books[100],*p;void page_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); }void return_confirm(void){ printf("\n按任意键返回……\n");getchar();}void books_add(void) //输入模块{ int n;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();}int books_search(void)//查找模块{ int n,i=-1;char nam[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();return i;}int books_change(void)//修改模块{int n,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");return n;}}printf("\n没有找到相关记录.\n");getchar();return -1;}int books_show(void)//显示模块{int n,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;}int books_del(void)//删除模块{int n,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");return n;}}printf("没有找到相关记录\n");getchar();return -1;}void books_save()//保存模块{system("cls");FILE *fp;int i;p=books;if((fp=fopen("d:\\tt.txt","wb+"))==NULL){printf("Cannot open file,strike any key exit!");getchar();exit(1);}fwrite(p,sizeof(struct BOOKS),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,p->phone,p->email,p-> qq);fclose(fp);getchar();}void books_read(){system("cls");FILE *fp;int i;p=books;if((fp=fopen("d:\\tt.txt","rb+"))==NULL){printf("Cannot open file,strike any key exit!");getchar();exit(1);}fread(p,sizeof(struct BOOKS),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,p->phone,p->email,p-> qq);fclose(fp);getchar();}void main(void){menu:page_title("操作选单");printf("请用数字键选择操作\n\n");printf("\t\t\t1 新增联系人\t\t\t2 保存联系人\n");printf("\t\t\t3 查询联系人\t\t\t4 修改联系人\n");printf("\t\t\t5 显示联系人\t\t\t6 删除联系人\n");printf("\t\t\t7 输出数据 \t\t\t8 退出系统 \n");printf("请按数字键:\n");switch(getchar()){case '1' : books_add(); break;case '2' : books_save(); break;case '3' : books_search(); break;case '4' : books_change(); break;case '5' : books_show(); break;case '6' : books_del(); break;case '7' : books_read(); break;case '8' :/*退出系统*/{system("cls");printf("\n");printf("\t*===============================================================*\n");printf("\t* *\n");printf("\t* 使用 *\n");printf("\t* *\n");printf("\t* *\n");printf("\t* 如有疑问,请联系管理员 *\n");printf("\t*===============================================================*\n");printf("\t* *\n");printf("\t* 广西科技大学鹿山学院 *\n");printf("\t* 物联网 1 5 2 吴肖军 *\n");printf("\t*===============================================================*\n");printf("\n");}exit(0);break;}goto menu;}4 功能测试4.1选择新增联系人,查找联系人,显示联系人,修改联系人,删除联系人,五个功能进行测试。

相关主题