C语言课程设计:
通讯录管理系统
一、需求分析………………………………………………………2
二、概要设计………………………………………………………2
三、详细设计………………………………………………………3
四、上机操作………………………………………………………14
五、实习心得………………………………………………………19
六、源程序 ………………………………………………………20
一、需求分析
具有数据的插入、修改、删除、显示和查询功能的电话簿管理程序。
(1)数据包括:人名、工作单位、电话号码和E-MAIL地址。
(2)可对记录中的姓名和电话号码进行修改。
(3)可增加和删除记录。
(4)可显示所有的保存记录。
(5)可按人名或电话号码进行查询。
[提示]
建议采用结构体数组和文件系统实现。结构体成员包括人名、工作单位、电话号码和E-MAIL地址。
根据题目的要求程序应该采用结构体数组和文件系统实现。应该有文件的操作功能;在程序中应该包括输入、显示、删除、查询、添加、修改、保存、加载和退出的功能。
二、概要设计
根据上面的分析,可以将程序系统的设计分为如下几个模块:插入、显示、删除、查询、修改、保存和退出。
三、详细设计
1、主函数;
主函数一般设计得比较简洁,只提供输入,处理和输出部分的函数调用。其中各功能模块用菜单方式选择。
流程图
N
Y
【程序】
int main() //主函数
{
Man man[500],*pman=man;;
char control;
int size;
printf("\t\t**********************************************\n"); //窗口初始化
printf("\t\t********** 欢迎使用通讯录管理系统! ***********\n");
printf("\t\t*--------------------------------------------*\n");
printf("\t\t* 请按回车键继续! *\n");
printf("\t\t**********************************************\n");
scanf("%c",&control);
if(control)
{
size=Scan(pman); //判断文件是否存在
printf("\t\t\t请输入相应操作数操作\n");
for(;;) //菜单生成
{
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");
scanf("%s",&control);
switch(control)
{
case '1': size=Insert(pman,size);break; //插入新的通讯录
case '2': S_asname(pman,size);break; //按姓名查
case '3': S_astel(pman,size);break; //按电话查
case '4': Delete(pman,size);break; //删除信息
case '5': Display(pman,size);break; //显示所有信息
case '6': Modify(pman,size);break; //修改信息c语言程序设计教程李丽娟
case '0': printf("**************谢谢使用!再见!**************\n"); //退出系统
return 0;
default: printf("**********输入数字有误,请重新输入**********\n");break;
}
}
}
return 0;
}
2、插入模块
此模块为插入信息模块,插入后再调用保存函数来保存所插入的数据,支持多条信息的插入。
流程图
【程序】
int Insert(Man * pMan,int Size) //插入模块
{
int i,n;
printf("\t\t***********请输入要插入数据的个数.************\n");
printf("\t\t**********************************************\n");
scanf("%d",&n);
for(i=0;i<n;i++) //从键盘输入数据再写入文件
{ printf("您将要录入第%d条记录(共有%d条)\n",i+1,n);
printf("请输入姓名:\n");
scanf("%s",&pMan[Size+i].Name);
printf("请输入工作单位:\n");
scanf("%s",&pMan[Size+i].Depart);
printf("请输入电话号码:\n");
scanf("%s",&pMan[Size+i].TEL);
printf("请输入Email地址:\n");
scanf("%s",&pMan[Size+i].Email);
}
if(Save(pMan,Size+n))
{
printf("\t\t*********** 恭喜!数据插入成功! ***********\n");
}
else
{
printf("\t\t*********** 操作失败,请稍后再试 !***********\n");
}
return Size+n;
}
3、显示模块
此模块为显示所有记录,流程图如下:
【程序】
void Display(Man * pMan,int Size) //显示所有记录
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论