11毕业设计通讯录系统.docx
- 文档编号:17607179
- 上传时间:2023-07-27
- 格式:DOCX
- 页数:43
- 大小:304.09KB
11毕业设计通讯录系统.docx
《11毕业设计通讯录系统.docx》由会员分享,可在线阅读,更多相关《11毕业设计通讯录系统.docx(43页珍藏版)》请在冰点文库上搜索。
11毕业设计通讯录系统
毕业设计(论文)
题目:
大学教育作为公共品的效率分析
班级:
14级物联网应用技术
(1)班
学生学号:
23
学生姓名:
严涛涛
指导教师:
庞文健
江西应用工程职业学院
二〇一六年九月
摘要
随着网络与信息技术的发展,人们的联系人越来越多,需要联系的人逐渐增多,需要记录的信息也逐渐增多。
以前是将这些信息手写到通讯录中,这很容易造成信息的丢失,而且查找起来很不方便。
本系统主要实现同学信息的管理,包括同学信息的添加、修改、查询和删除,及一些辅助项目管理,如登录系统用户管理和用户组管理。
系统的组成模块主要包括数据集模块,登录窗体模块,系统管理模块,主窗体模块,通讯录模块,通讯录数据管理模块,信息管理模块,登录信息查询模块。
关键词:
数据结构;C语言;模块化程序设计;算法
Abstract
Withthedevelopmentofnetworkandinformationtechnology,peoplearemoreandmorecontacts,needtocontactthenumberofpeoplegraduallyincreased,theneedtorecordtheinformationisalsoincreasing.Beforetheinformationiswrittenintotheaddressbook,whichisveryeasytocausethelossofinformation,butitisnoteasytofind.
Thissystemmainlyrealizesthestudentinformationmanagement,includingstudentinformationtoadd,modify,queryanddelete,andsomeauxiliaryprojectmanagement,suchasloginsystemusermanagementandusergroupmanagement.
Compositionmoduleofthesystemincludesdatacollectionmodule,loginformmodule,systemmanagementmodule,themainformmodule,maillistmaillistmodule,datamanagementmodule,informationmanagementmodule,informationquerymodulelogin.
Keywords:
datastructure;Clanguage;modularprogramming;algorithm
一需求分析
1.1引言
通过程序设计,达到理论与实际应用相结合,提高对信息管理系统的分析能力,能够根据实际应用,初步实现系统功能模块及算法的设计,通过编程基本实现信息管理系统。
1.2功能概述
1.采用结构体的形式对数据进行输入输出。
2.可以对通讯录进行简单的排序,筛选,删除。
3.可以对任意信息就行修改。
4.可以把数据已文件的形式输入输出。
5.任意浏览信息。
1.3数据描述
以所示的文本数据位初始数据进行简单操作,也可另行添加。
1.4系统菜单
菜单系统图一
实现以上功能需求。
1.5性能概述
1.能够进行简单的数据处理。
2.具有对新信息处理打印打能力。
1.6运行需求
1.输入个人信息时以例如按照“编号、姓名、年龄、电话号码、通讯地址、电子邮箱”的顺序输入。
2.输入时编号年龄、电话号码、通讯地址、电子邮箱以数字格式输入,输入姓名以文字输入。
3.以(Y/N)形式判断时,仅限N或者n为否,其他字符真。
4.进入排序功能后,要想见排序信息,到主菜单下见浏览信息功能。
1.7任务计划
1.样例输入和输出
输入信息图二
输出信息图三
2.本通讯录管理程序,可以对数据进行输入输出,集排序,修改,打印,删除等功能。
下面以上述数据描述的数据为测试数据进行简单输入输出。
——1.未排序前的信息
4).删除界面:
删除界面图四
删除后,通讯录里的显示记录:
删除界面2图五
5).查询界面:
查询界面图六
以姓名查询方式为例:
查询界面图七
6).修改界面:
修改界面图八
修改后,通讯录里的显示记录:
修改界面图九
7).保存界面:
保存界面图十
tongxunlu.txt文件截图:
文件截图图十一
二概要设计
2.1总体设计
主菜单
保存
修改
查询
显示
删除
添加
添加:
可以添加通讯录记录,依次输入编号、姓名、年龄、电话号码、通讯地址、电子邮箱后,会提示是否继续添加。
显示:
可以以表格形式输出所有通讯录里的记录
删除:
输入欲删除的那个人的名字后,会自动删除他(她)的记录内容
查询:
可以选择用姓名、电话、地址三种方式查询
修改:
输入欲修改的那个人的名字后,再依次输入编号、姓名、年龄、电话号码、通讯地址、电子邮箱即可完成修改
保存:
,输入文件名(带后缀名)后,即可将通讯录信息保存到文件
2.2数据类型设计(或数据结构设计)
typedefstruct
{
charscore;/*编号*/
charname[10];/*姓名*/
charnum[15];/*号码*/
charemail[20];/*邮箱*/
charage[8];/*年龄*/
charadds[20];/*住址*/
}Person;
以结构体数组类型输入数据。
2.1接口设计
表2.1:
函数列表
函数名
函数首部
函数功能
intmenu_select()
void
运行界面
intInput
(Personper[],intn)
int
输入函数
voidDisplay
(Personper[],intn)
Void
输出函数
intDelete_a_record
(Personper[],intn)
int
删除数据
voidQuery_a_record
(Personper[],intn)
void
查询数据
voidChange
(Personper[],intn)
void
更改数据
voidWritetoText
(Personper[],intn)
void
把数据写到文件
2.3运行界面设计
voidmain()/*主函数*/
{
intn=0;
for(;;)
{
switch(menu_select())
{
case1:
printf("\n\t添加记录到通讯录\n");/*添加记录*/
n=Input(pe,n);
break;
case2:
printf("\n\t\t\t通讯录记录表\n");/*显示记录*/
Display(pe,n);
break;
case3:
printf("\n\t从通讯录中删除记录\n");
n=Delete_a_record(pe,n);/*删除记录*/
printf("\t");
system("pause");
break;
case4:
printf("\n\t在通讯录中查找记录\n");
Query_a_record(pe,n);/*查找记录*/
printf("\t");
system("pause");
break;
case5:
printf("\n\t修改通讯录中的记录\n");
Change(pe,n);/*修改数据*/
printf("\t");
system("pause");
break;
case6:
printf("\n\t保存功能\n");
WritetoText(pe,n);/*保存数据*/
printf("\t");
system("pause");
break;
case0:
printf("\n\t\t谢谢使用,再见!
\n");/*结束程序*/
printf("\n\t\t");
system("pause");
exit(0);
}
}
}
以switch为关键控制选着要调用函数的开关,然后以主菜单为主界面,其他功能为扩展界面来运行通讯录管理系统。
主菜单代码为:
intmenu_select()
{
charc;
do{
system("cls");
printf("\t\t*****通讯录*****\n");
printf("\t\t|----------------------------------|\n");
printf("\t\t│1.添加记录│\n");
printf("\t\t│2.显示记录│\n");
printf("\t\t│3.删除记录│\n");
printf("\t\t│4.查询记录│\n");
printf("\t\t│5.修改记录│\n");
printf("\t\t│6.保存记录│\n");
printf("\t\t│0.退出程序│\n");
printf("\t\t\|----------------------------------|n");
printf("\t\t请您选择(0-6):
");
c=getchar();
}while(c<'0'||c>'6');
return(c-'0');
}
如图所示为主要运行界面:
主程序图十二
三详细设计
3.1输入模块设计
intInput(Personper[],intn)
{
inti=0;
charsign,x[10];
while(sign!
='n'&&sign!
='N')
{
printf("\t编号:
");
scanf("\t%d",&per[n+i].score);
printf("\t姓名:
");
scanf("\t%s",per[n+i].name);
printf("\t年龄:
");
scanf("\t%s",per[n+i].age);
printf("\t电话号码:
");
scanf("\t%s",per[n+i].num);
printf("\t通讯住址:
");
scanf("\t%s",per[n+i].adds);
printf("\t电子邮箱:
");
scanf("\t%s",per[n+i].email);
gets(x);
printf("\n\t是否继续添加?
(Y/N)");
scanf("\t%c",&sign);
i++;
}
return(n+i);
}
3.2输出模块设计
voidDisplay(Personper[],intn)
{
inti;
printf("----------------------------------------------------------------------\n");/*格式*/
printf("编号姓名年龄电话号码通讯地址电子邮箱\n");
printf("----------------------------------------------------------------------\n");
for(i=1;i { printf("%-5d%-8s%-6s%-13s%-15s%-15s\n",per[i-1].score,per[i-1].name,per[i-1].age,per[i-1].num,per[i-1].adds,per[i-1].email); if(i>1&&i%10==0) { printf("\t-----------------------------------\n"); printf("\t"); system("pause"); printf("\t-----------------------------------\n"); } } printf("----------------------------------------------------------------------\n"); system("pause"); } 3.3查找模块设计 voidQuery_a_record(Personper[],intn) { intm; printf("\t\n请选择查询方式: \n"); printf("\t┌──────┐\n"); printf("\t│1------姓名│\n"); printf("\t│2------电话│\n"); printf("\t│3------地址│\n"); printf("\t│4------返回│\n"); printf("\t└──────┘\n"); printf("请选择: "); scanf("%d",&m); while(m! =1&&m! =2&&m! =3&&m! =4) { printf("输入错误,请重新选择: "); scanf("%d",&m); } if(m==1) { chars[20]; inti=0; printf("\t请输入想查询的姓名: "); scanf("\t%s",s); while(strcmp(per[i].name,s)! =0&&i if(i==n) { printf("\t通讯录中没有此人! \n"); return; } printf("\t此人编号: %d\n",per[i].score); printf("\t此人年龄: %s\n",per[i].age); printf("\t电话号码: %s\n",per[i].num); printf("\t通讯地址: %s\n",per[i].adds); printf("\t电子邮箱: %s\n",per[i].email); }; if(m==2) { chars[20]; inti=0; printf("\t请输入想查询的电话: "); scanf("\t%s",s); while(strcmp(per[i].num,s)! =0&&i if(i==n) { printf("\t通讯录中没有此人! \n"); return; } printf("\t此人编号: %d\n",per[i].score); printf("\t此人姓名: %s\n",per[i].name); printf("\t此人年龄: %s\n",per[i].age); printf("\t通讯地址: %s\n",per[i].adds); printf("\t电子邮箱: %s\n",per[i].email); }; if(m==3) { chars[20]; inti=0; printf("\t请输入想查询的地址: "); scanf("\t%s",s); while(strcmp(per[i].adds,s)! =0&&i if(i==n) { printf("\t通讯录中没有此人! \n"); return; } printf("\t此人编号: %d\n",per[i].score); printf("\t此人姓名: %s\n",per[i].name); printf("\t此人年龄: %s\n",per[i].age); printf("\t电话号码: %s\n",per[i].num); printf("\t电子邮箱: %s\n",per[i].email); }; } 3.4删除模块设计 intDelete_a_record(Personper[],intn) { chars[20]; inti=0,j; printf("\t请输入想删除记录中的名字: "); scanf("%s",s); while(strcmp(per[i].name,s)! =0&&i if(i==n) { printf("\t通讯录中没有此人! \n"); return(n); } for(j=i;j { strcpy(per[j].num,per[j+1].num); strcpy(per[j].name,per[j+1].name); strcpy(per[j].age,per[j+1].age); strcpy(per[j].adds,per[j+1].adds); strcpy(per[j].email,per[j+1].email); per[j].score=per[j+1].score; } printf("\t\t\t已经成功删除! \n"); return(n-1); } 3.5更改模块设计 voidChange(Personper[],intn) { chars[20]; inti=0; printf("\t请输入想修改的记录中的名字: "); scanf("%s",s); while(strcmp(per[i].name,s)! =0&&i if(i==n) { printf("\t通讯录中没有此人! \n"); return; } printf("\t编号: "); scanf("\t%d",&per[i].score); printf("\t姓名: "); scanf("\t%s",per[i].name); printf("\t年龄: "); scanf("\t%s",per[i].age); printf("\t电话号码: "); scanf("\t%s",per[i].num); printf("\t通讯住址: "); scanf("\t%s",per[i].adds); printf("\t电子邮箱: "); scanf("\t%s",per[i].email); printf("\t修改成功! "); } 3.6保存模块设计 voidWritetoText(Personper[],intn) { inti=0; FILE*fp;/*定义文件指针*/ charfilename[20];/*定义文件名*/ printf("\t保存到文件\n");/*输入文件名*/ printf("\t请输入所保存的文件名: "); scanf("\t%s",filename); if((fp=fopen(filename,"w"))==NULL) { printf("\t无法打开文件\n"); system("pause"); return; } fprintf(fp,"******************************************通讯录******************************************\n"); fprintf(fp,"编号姓名年龄电话号码通讯地址电子邮箱\n"); fprintf(fp,"------------------------------------------------------------------------------------------\n"); while(i { fprintf(fp,"%-3d\t%-6s\t%-3s\t%-13s\t%-20s\t%-20s\n",per[i].score,per[i].name,per[i].age,per[i].num,per[i].adds,per[i].email); i++; } fprintf(fp,"------------------------------------------------------------------------------------------\n"); fprintf(fp,"***************************************共有%d条记录****************************************\n",n); fclose(fp);/*关闭文件*/ printf("保存成功! \n"); } voidmain()/*主函数*/ { intn=0; for(;;) { switch(menu_select()) { case1: printf("\n\t添加记录到通讯录\n");/*添加记录*/ n=Input(pe,n); break; case2: printf("\n\t\t\t通讯录记录表\n");/*显示记录*/ Display(pe,n); break; case3: printf("\n\t从通讯录中删除记录\n"); n=Delete_a_record(pe,n);/*删除记录*/ printf("\t"); syste
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 11 毕业设计 通讯录 系统