C语言手机通信录管理系统.doc
- 文档编号:230204
- 上传时间:2022-10-07
- 格式:DOC
- 页数:26
- 大小:294.50KB
C语言手机通信录管理系统.doc
《C语言手机通信录管理系统.doc》由会员分享,可在线阅读,更多相关《C语言手机通信录管理系统.doc(26页珍藏版)》请在冰豆网上搜索。
华中科技大学——c语言实习
手机通信录管理系统设计
[要求]模拟手机通信录管理系统,实现对手机中的通信录进行管理。
功能要求如下:
(1)查看功能:
选择此功能时,列出下列三类选择。
a)办公类
b)个人类
c)商务类
当选中某类时,显示出此类所有数据中的姓名、电话号码和电子邮件。
(2)增加功能:
能录入新数据。
一个结点包括:
姓名、电话号码、分类(办公类、个人类、商务类)、电子邮件。
例如:
杨**135896********商务类*****@***.com。
当录入了重复的姓名和电话号码时,则提示数据录入重复并取消录入;当通信录中超过15条信息时,储存空间已满,不能再录入新数据;;录入的新数据能按递增的顺序自动进行条目编号。
(3)修改功能:
选中某个人姓名时,可对此人的相应数据进行修改。
(4)删除功能:
选中某个人的姓名时,可对此人的相应数据进行删除,并自动调整后续条目的编号。
【需求分析】
根据题目要求,由于联系人信息时存放在文件中,所以应提供文件的输入、输出等操作;在程序中需要查看联系人信息,应提供显示、查看功能;要实现修改和删除联系人功能,所以应提供对文件的修改和删除操作。
【总体设计】
以下分析整个系统,根据上面的需求分析,可将这个系统的设计分为四大模块(如图一):
图一系统功能模块图
【详细设计】
1.主函数
主函数设计比较简洁,仅有一个语句。
[程序]
main()/*******************主函数********************/
{
menu();
}
2.主菜单
主菜单函数提供用户对系统功能的选择,包括浏览联系人、增加联系人、修改联系人、删除联系人。
该函数的流程图如图二所示。
程序如下,这样编写的目的在于系统执行完每部分模块后能够方便返回到系统界面。
开始
显示一系列功能选项
输入n,判断n是否是1-4?
Y
根据n的值调用各功能模块函数
结束
图二主菜单流程图
[程序]
voidmenu()/******************菜单函数*****************/
{
intn=0,w1;
do
{
puts("\t\t***********************MENU***********************\n\n");
puts("\t\t\t\t1.Browseall");
puts("\t\t\t\t2.Addmembers");
puts("\t\t\t\t3.Modifyinformation");
puts("\t\t\t\t4.Deleteinformation");
puts("\n\n\t\t***************************************************\n");
printf("Chooseyournumber(1-4):
[]\b\b");
scanf("%d",&n);
if(n<1||n>4)
{
w1=1;
getchar();
}
else
w1=0;
}while(w1==1);
switch(n)
{
case1:
browse();break;/*浏览联系人模块*/
case2:
add();break;/*增加联系人模块*/
case3:
modify();break;/*修改联系人模块*/
case4:
del();break;/*删除联系人模块*/
}
}
3.数据结构设计
各联系人信息包括有姓名、电话号码、联系人类型、电子邮件。
可以使用结构体数组,则姓名、电话、类型和电子邮件作为结构体成员。
structmember/*联系人结构体*/
{
charname[20];/*联系人姓名*/
chartel[11];/*联系人电话*/
inttype;/*联系人类型:
1为办公类;2为个人类;3为商务类*/
charemail[30];/*联系人电子邮件*/
}mem[N];/*N为全局变量,表示能够储存的联系人数量*/
注意:
mem[N]中的N为联系人数目,程序中采用宏定义的方式,可以随时在源程序宏定义中修改,本程序宏定义#defineN15.
4.浏览联系人模块
[需求分析]
该模块的功能是使用户可以浏览或者分类浏览各联系人信息。
如图三所示,当用户输入1、2、3、4时,分别显示办公类联系人、个人类联系人、商务类联系人和所有联系人。
图三浏览联系人模块流程图
[程序]
voidbrowse()/*********浏览联系人函数**********/
{
intm,n=0,w1;
m=load();
do
{
puts("\n\n\t\t******************BROWSR********************");
puts("\t\t\t\t1.showclericalmembers");/*查询办公类联系人*/
puts("\t\t\t\t2.showpersonalmembers");/*查询个人类联系人*/
puts("\t\t\t\t3.showcommercialmembers");/*查询商务类联系人*/
puts("\t\t\t\t4.showallmembers");/*查询所有联系人*/
puts("\t\t\t\t5.returntomenu");/*返回菜单*/
printf("Chooseyournumber(1-5):
[]\b\b");
scanf("%d",&n);
if(n<1||n>5)
{
w1=1;
getchar();
}
else
w1=0;
}while(w1==1);
if(n==1)
{
printf_cle(m);/*显示办公类联系人*/
puts("\ninformationhasbeenshowed,Pressanykeytoreturntomenu\n");
system("pause");/*暂停系统工作*/
getchar();
menu();
}
elseif(n==2)
{
printf_per(m);/*显示个人类联系人*/
puts("\ninformationhasbeenshowed,Pressanykeytoreturntomenu\n");
system("pause");/*暂停系统工作*/
getchar();
menu();
}
elseif(n==3)
{
printf_com(m);/*显示商务类联系人*/
puts("\ninformationhasbeenshowed,Pressanykeytoreturntomenu\n");
system("pause");/*暂停系统工作*/
getchar();
menu();
}
elseif(n==4)
{
printf_all(m);/*显示商务类联系人*/
puts("\ninformationhasbeenshowed,Pressanykeytoreturntomenu\n");
system("pause");/*暂停系统工作*/
getchar();
menu();
}
else
{
menu();
}
}
5.增加联系人模块
[需求分析]
该模块的功能是使用户实现增加新联系人的功能,从键盘输入新联系人信息并加入到原文件中。
该模块流程图如图四所示。
[程序]
voidadd()
{
intm,w1,n,t,w2,i,j;/*m为现有联系人数量*/
m=load();/*加载联系人信息,并将联系人数量输入m*/
if(m==N)
{运行save(int)函数,将信息保存至文件中
是否保存?
输入联系人姓名、电话、类型、电子邮箱
判断m是否小
于N?
运行m=load()函数,加载现有联系人信息
开始
返回至主菜单
输出:
储存空间已满,无法输入
Y
N
N
Y
图四增加联系人模块流程图
printf("thereisnoterabytestosave\n");
结束
printf("Pressanykeytoreturntomenu...");
getchar();
system("pause");
menu();
}
else
{
puts("\tpleaseinputcontract'sname:
");/*输入联系人姓名*/
scanf("%s",mem[m].name);/*将联系人姓名保存至结构体*/
puts("\tpleaseinputcontract'stelephonenumber:
");
scanf("%s",mem[m].tel);
do/*选择联系人类型语句*/
{
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 手机 通信 管理 系统
![提示](https://static.bdocx.com/images/bang_tan.gif)