长江大学工程技术学院C语言课程设计实习报告
通讯录管理系统
学生姓名:吴正杰学 号:201461031 序 号:19
专业班级:计科61031
指导老师:刘旨阳 报告日期:2015\7\6
需求分析
根据题目要求,通讯录保存在文件中,要提供文件的输入和输出 能力;还有就是要提供通讯录添加(个人信息包括姓名、邮编、住址、 电话号码、QQ电子邮件等)、删除、显示、修改等基本功能。
概要设计
系统总体设计是信息的输入、信息的编辑和退出。系统功能模块如
下:
详细设计
输出通讯录用于让使用者观看通讯录里所有的信息。
开始
1
输出所有联 系人信息
1
T
(结束)
通讯录里无信息,所以要添加信息。用键盘逐个输入通讯录里联 系人的信息。
查找通讯录是让使用者可以通过姓名来查找通讯录里的联系 人。
输出结果
输出结果
结束
修改通讯录是让使用者通过姓名查找到通讯录里的联系人,然
其作出修改
开始
删除通讯录是用来按照联系人的姓名来单独删除通讯录中一些不 想要的联系人。
查找联系人
查找联系人
否
删除联系
删除单
继续删除
否
结束
6.排序通讯录联系人来进行开头的首写字母排序
开始
排序联系人
结束
7.退出通讯录
4.主要源程序代码
void menu();/ 定义的函数
void newrecord();
void xiugai();
void shanchuname();
void chazhaoname();
void xianshi();
int daoruwenji();
void save();
void paixu();
struct friends // 定义的数组
{
char n ame[8];
char addr[14];
char pc[7];
char e_mail[14];
char QQ[10];
char tel[12];
}frd[500];
int NO= 10; // 宏定义k定义为删除联系人的个数m定义为添加联系人的
个数NO定义为原始通讯录中的联系人的个数」
int k, m;
FILE*fp;
void menu() // 主菜单
{
int a;
printf( "\n\t\t | 欢迎您使用通讯录管理系统1.0beat版
1" );
printf( " \n\t\t|[1]添加联系人;[2]删除联系人;[3]查找联系人
| ");
printf( " \n\t\t| [4]显示联系人;[5]修改联系人;[6]排序联系人[7]
退出| ");
printf( "\n\t\t
|1" );
printf( "\n\t\t请选择您所所要的服务:");
seanf( "%d", &a);
switch (a)
{
ease 1:n ewrecord(); break;
ease 2:sha nchun ame();break;
case 3:chazha on ame();break;
case 4:xia nshi();break;
case 5:xiugai(); break;
case 6:paixu(); break;
case 7:exit(0);
default :
exit(0);
}
}
int main()// 主函数
{
daoruwenji(); while (1)〃1{ menu();} return 0;}void xianshi() //{int i;
daoruwenji(); while (1)〃1
{ menu();
} return 0;
}
void xianshi() //
{
int i;
fp = fopen( "jk0119.txt", "r");
if (fp == 0)
{
printf( "\n\n\n\n\t exit(0);
}
printf("\n\n ********************************
*******************************************、'
是真的进行死循环
打印所有的通讯录的人的信息
电话簿文件不存在");
姓名
printf( "\n
手机号”);
for (i = 0; i < NO-k+m; i++) {
地址
欢迎使用通讯录
);
邮编 e mail
fscanf(fp,"%s%s%s%s%s(%fed[i].name, frd[i].addr, frd[i].pc,
frd[i].e_mail, frd[i].QQ, frd[i].tel);
}
}
for (i = 0; i < NO-k+m;i++ )
{
printf( "\t\n%3d" , i + 1);
printf( "%8s%14s%7