C语言课程设计报告-手机通信录管理系统设计.doc
文本预览下载声明
手机通信录管理系统设计
[要求] 模拟手机通信录管理系统,实现对手机中的通信录进行管理。功能要求如下:
(1)查看功能:选择此功能时,列出下列三类选择。
办公类
个人类
商务类
当选中某类时,显示出此类所有数据中的姓名、电话号码和电子邮件。
(2)增加功能:能录入新数据。
一个结点包括:姓名、电话号码、分类(办公类、个人类、商务类)、电子邮件。例如:杨** ********商务类 *****@***.com。
当录入了重复的姓名和电话号码时,则提示数据录入重复并取消录入;当通信录中超过15条信息时,储存空间已满,不能再录入新数据;;录入的新数据能按递增的顺序自动进行条目编号。
(3)修改功能:选中某个人姓名时,可对此人的相应数据进行修改。
(4)删除功能:选中某个人的姓名时,可对此人的相应数据进行删除,并自动调整后续条目的编号。
【需求分析】
根据题目要求,由于联系人信息时存放在文件中,所以应提供文件的输入、输出等操作;在程序中需要查看联系人信息,应提供显示、查看功能;要实现修改和删除联系人功能,所以应提供对文件的修改和删除操作。
【总体设计】
以下分析整个系统,根据上面的需求分析,可将这个系统的设计分为四大模块(如图一):
图一 系统功能模块图
【详细设计】
主函数
主函数设计比较简洁,仅有一个语句。
[程序]
main() /*******************主函数********************/
{
menu();
}
主菜单
主菜单函数提供用户对系统功能的选择,包括浏览联系人、增加联系人、修改联系人、删除联系人。该函数的流程图如图二所示。程序如下,这样编写的目的在于系统执行完每部分模块后能够方便返回到系统界面。
图二 主菜单流程图
[程序]
void menu() /******************菜单函数*****************/
{
int n=0,w1;
do
{
puts(\t\t***********************MENU***********************\n\n);
puts(\t\t\t\t1.Browse all);
puts(\t\t\t\t2.Add members);
puts(\t\t\t\t3.Modify information);
puts(\t\t\t\t4.Delete information);
puts(\n\n\t\t***************************************************\n);
printf(Choose your number(1-4):[ ]\b\b);
scanf(%d,n);
if(n1||n4)
{
w1=1;
getchar();
}
else
w1=0;
}while(w1==1);
switch(n)
{
case 1:browse();break; /*浏览联系人模块*/
case 2:add();break; /*增加联系人模块*/
case 3:modify();break; /*修改联系人模块*/
case 4:del();break; /*删除联系人模块*/
}
}
3.数据结构设计
各联系人信息包括有姓名、电话号码、联系人类型、电子邮件。可以使用结构体数组,则姓名、电话、类型和电子邮件作为结构体成员。
struct member /*联系人结构体*/
{
char name[20]; /*联系人姓名*/
char tel[11]; /*联系人电话*/
int type; /*联系人类型:1为办公类;2为个人类;3为商务类*/
char email[30]; /*联系人电子邮件*/
}mem[N]; /*N为全局变量,表示能够储存的联系人数量*/
注意:mem[N]中的N为联系人数目,程序中采用宏定义的方式,可以随时在源程序宏定义中修改,本程序宏定义#define N 15.
浏览联系人模块
[需求分析]
该模块的功能是使用户可以浏览或者分类浏览各联系人信息。如图三所示,当用户输入1、2、3
显示全部