C语言课程设计通讯录管理系统.docx
《C语言课程设计通讯录管理系统.docx》由会员分享,可在线阅读,更多相关《C语言课程设计通讯录管理系统.docx(19页珍藏版)》请在冰豆网上搜索。
C语言课程设计通讯录管理系统
YangtzeUniversityCollegeofArtsandScience
(课程设计报告)
学部:
理工学部
专业:
计算机科学与技术
班级:
姓名:
学号:
课程名称:
C语言课程设计
指导教师:
呙明辉
摘要:
纸质的通讯录已经不能满足我们的要求,更新麻烦,查询困难等缺点是纸质通讯录所不能克服的。
在此情况下,迫切需要一个电子版的通讯录来满足我们的需求。
这次课程设计的通讯录采用了二叉搜索树这一数据结构,并完成了添加、查找、删除、保存等功能。
在TC2.0平台下实现了人机交互界面上的图形化设计,其中菜单的显示为逐桢动画,在等待用户按键输入时设计了友好的系统。
关键字:
数组,结构体,指针,函数,文件
summary:
paper'saddressbookcan'tmeetourrequirements,updatethetrouble,inquiresthedifficultyisthedisadvantagessuchaspaperaddressbookcan'tovercome.Inthiscase,theurgentneedtoaversionoftheaddressbooktomeetourneeds.Thecoursedesignoftheaddressbookadoptedbinarysearchtreesthedatastructure,andcompletedadd,delete,savesearch,etc.Function.InTC2.0theworkbenchrealizedontheman-machineinterfacegraphicaldesign,includingthemenuthatbystandardforanimation,waitingfortheuserinputbuttonswhenthefriendlysystemdesign.
Keywords:
arrays,structures,pointer,function,file
目录
一、设计题目及要求1
二、概要设计2
三、详细设计2
3.1通讯录:
2
3.2工作流程图:
4
四、源程序代码8
五、用户手册16
六、课程设计总结和心得体会16
七、参考文献16
一、设计题目及要求:
建立通讯录信息,信息至少包含编号、姓名、年龄、电话、通讯地址、电子邮箱等;
能够提供添加、删除和修改通讯录信息的功能;
能够提供安不同方式查询的功能;如按姓名或年龄、电话等查询;
将通讯录保存在文件中;
能够按表格方式输出通讯录信息。
系统功能需求分析:
主要包含一下多种功能:
添加:
添加通讯录记录
显示:
显示通讯录记录
删除:
删除通讯录记录
查询:
查询通讯录记录
修改:
修改通讯录记录
保存:
将信息保存到文件
本文档,极大的方便了用户的使用。
二、概要设计
系统功能模块图:
添加:
可以添加通讯录记录,依次输入编号、姓名、年龄、电话号码、通讯地址、电子邮箱后,会提示是否继续添加。
显示:
可以以表格形式输出所有通讯录里的记录。
删除:
输入欲删除的那个人的名字后,会自动删除他(她)的记录内容。
查询:
可以选择用姓名、电话、地址三种方式查询。
修改:
输入欲修改的那个人的名字后,再依次输入编号、姓名、年龄、电话号码、通讯地址、电子邮箱即可完成修改。
保存:
输入文件名(带后缀名)后,即可将通讯录信息保存到文件。
运行所需环境:
win7及以下各版本windows,visualC++6.0。
三、详细设计
3.1通讯录:
typedefstruct
{
charscore;/*编号*/
charname[10];/*姓名*/
charnum[15];/*号码*/
charemail[20];/*邮箱*/
charage[8];/*年龄*/
charadds[20];/*住址*/
}Person;
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);
}
}
}
3.2工作流程图:
①添加:
添加通讯录记录
②显示:
显示通讯录记录
③删除:
删除通讯录记录④查询:
查询通讯录记录
先选择查询方式,以姓名查询方式为例
⑤修改:
修改通讯录记录
四、源程序代码
#include
#include
#include
typedefstruct
{
charscore;/*编号*/
charname[10];/*姓名*/
charnum[15];/*号码*/
charemail[20];/*邮箱*/
charage[8];/*年龄*/
charadds[20];/*住址*/
}Person;
Personpe[80];
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');
}
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);
}
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");
}
intDelete_a_record(Personper[],intn)
{
chars[20];