通讯录管理系统课程设计报告..
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
设计课题题目
一、课程设计目的与要求
1.课程设计目的
(1)综合运用之前所学知识(选择控制,循环控制,数组,函数,指针,结构体和文件等)来完成一个简单的信息管理程序的设计。
(2)充分体现和体会函数在程序设计中的必要性和实用性,并反映主函数main()在程序设计中的实现思路和方法。
2. 课程设计要求
制作一个通讯录系统。
(1)该程序具有查找、添加、修改、删除功能。
(2)通讯录包括:姓名、电话、街道、城市、省、邮编等。
二、总体设计
根据系统的要求,系统总体设计如图1所示。
三、详细设计
1、数据结构设计
#include
#include
#include
#define FILENAME "phone.dat"
struct date //定义一个结构体类型数组
{ char name[10]; /*姓名*/
char phone[12]; /*电话*/
char email[20]; /*邮箱*/
char QQ[20]; /*QQ*/
} per[10];
int menu() //主菜单选择函数
2.函数说明
(1) 主函数
main()允许用户通过菜单进行功能选择,使用相应的功能代码来调用对应的函数功能。
(2)
四、程序清单
1、头文件
#include
#include
#include
#define FILENAME "phone.dat"
2、主函数
void main() //主函数
{
int n=0,i;
while(1)
{ switch (menu())
{ case 1: { printf("\n\t 通讯信息录入\n"); //信息录入
n=Input(per, n);
}
break;
case 2:
printf("\n\t\t\t 通讯录记录表\n"); //显示记录
Display(per,n);
break;
case 3:
printf("\n\t保存功能\n");
WritetoText(per,n); //保存数据
printf("\t");
system("pause"); //操作完成后进行暂停
break;
case 4:
printf("\n\t从通讯录中删除记录\n");
n=Delete_a_record(per,n); //删除记录
printf("\t");
system("pause");
break;
case 5:
printf("\n\t修改通讯录中的记录\n");
Change(per,n); //修改数据
printf("\t");
system("pause");
break;
case 6:
printf("\n\t添加记录到通讯录\n"); //添加记录
n=Input(per,n);
break;
case 7:
printf("\n\t在通讯录中查找记录\n");
Query_a_record(per,n); //查找记录
printf("\t");
system("pause"); //从程序里调用”pause”命令break;
case 0:
printf("\n\t\t谢谢使用,再见!\n"); //结束程序
printf("\n\t\t");
system("pause");
exit(0);
}
五、总程序和分工执行结果
#include
#include
#include
#define FILENAME "phone.dat"
struct date //定义一个结构体类型数组
{ char name[10]; /*姓名*/
char phone[12];
char email[20]; /*邮箱*/
char QQ[20];
}per[10];
int menu() //主菜单选择函数
{ int c; //定义一个整型变量
do{
system("cls"); //清屏
printf("\t*******通讯录*******\n");
printf("\t--------------------\n");
printf("\t 1、通讯信息录入\n");
printf("\t 2、通讯信息显示\n");
printf("\t 3、通讯信息保存\n");
printf("\t 4、通讯信息删除\n");
printf("\t 5、通讯信息修改\n");
printf("\t 6、通讯信息增加\n");
printf("\t 7、通讯信息查询\n");
printf("\t 0. 退出\n");
printf("\t--------------------\n");
printf("\t请您选择(0-7):");
scanf("%d",&c);
}while(c>7&&c<0);
return(c);
}
int Input(struct date per[10],int n)
{ int i=0;
char sign,x[10];
while(sign!='n'&&sign!='N')
{ printf("\t姓名:");
scanf("%s",per[n+i].name);
printf("\t电话号码:");
scanf("%s",per[n+i].phone);
printf("\t电子邮箱:");
scanf("%s",per[n+i].email);
printf("\tQQ:");
scanf("%s",per[n+i].QQ);
gets(x);
printf("\n\t是否继续添加?(Y/N)");
fflush(stdin); //清空缓存
scanf("%c",&sign);
i++;
}
return(n+i);
}
void writeToFile(struct date per[10],int n)
{ FILE *fp=NULL;
int i=0;
fp=fopen("phone.dat","wb");
if(fp==NULL)
{ printf("打开文件出错!\n");
exit(0);
}