计算机科学与工程学院。
专业:软件工程
姓名:赵晓亮
学号: 2008082332
日期:2024年3月16日。
目录: 问题描述2
需求分析2
系统设计2
编码与调试分析11
系统使用说明12
测试结果12
课程设计心得14
参考文献14
通讯录管理程序。
1 问题描述。
1.1 问题描述:本程序用于管理个人通讯信息,方便用户对通讯录中联系人的信息快速进行各种操作,提高效率。
1.2 基本要求:功能要求实现:
添加、删除、修改、显示联系人基本信息(姓名、职务、职称、手机、email等);分类查找(可以实现任何属性内容的查找;)、排序(按姓名排序并输出各记录信息)。
2 需求分析。
2.1 增加联系人:用户可以应用该程序增加通讯录中的联系人,输入其基本通讯信息:
姓名(英文字母)、职务(英文字母)、职称(英文字母)、手机(十一位阿拉伯数字)、email(若干英文字母+@+若干英文字母+.com),否则提示用户输入错误,请重新输入;当用户完成一个联系人的信息录入后,系统询问是否继续增加联系人,用户选择继续增加联系人,提示用户继续输入联系人信息,否则返回主菜单。
2.2 查找联系人:用户在主菜单中选择查找功能,系统显示分类查找菜单,用户可以选择根据通讯录中的联系人的各种信息(姓名、职位、职称、手机、email)进行查找。
如果通讯录没有联系人,系统提示用户通讯录为空;如果通讯录不为空,且待查找联系人存在,系统输出该联系人信息,否则系统提示没有找到。均返回查找菜单,用户选择继续查找或者返回主菜单。
2.3 删除联系人:如果通讯录中没有联系人,系统提示通讯录为空;通讯录非空,系统提示用户输入要删除的联系人的姓名,系统对该姓名进行查找,如果该联系人存在,删除该联系人,否则提示用户没有找到。
然后系统询问用户是否继续删除联系人,并根据用户的选择继续删除联系人或者返回主菜单。
2.4 修改联系人信息:如果通讯录中没有联系人,系统提示通讯录为空;通讯录非空,系统提示用户输入要修改的联系人的姓名,系统对联系人姓名进行查找,如果找到要修改的联系人,系统提示用户输入联系人的新信息,否则提示用户没有找到。
然后系统询问用户是否继续修改联系人信息,并根据用户的选择继续修改联系人信息或者返回主菜单。
2.5 显示联系人信息:如果通讯录中没有联系人,系统提示用户通讯录为空;否则,系统按照用户增加联系人的顺序输出联系人的基本信息,供用户查阅。然后返回主菜单。
2.6 联系人排序:如果通讯录中没有联系人,系统提示用户通讯录为空;否则,系统自动按照联系人姓名的拼音字母,按字典序排列,并输出联系人的信息。然后返回主菜单。
3 系统设计。
3.1 开发和设计的总体思想。
本系统主要应用结构化的设计思想实现通讯录中联系人信息的增加、删除、查找、修改和联系人排序等功能。在开发过程中应用了程序设计中的基本控制结构,如选择、循环、顺序结构,主要是对链表进行操作。
系统的设计方法是结构化设计方法,采用c语言进行开发。
3.2系统模块结构图。
3.3 界面设计。
界面设计力求简洁的风格,进入“欢迎使用通讯录”界面,倒计时5秒钟进入主菜单,利用光标定位,将主菜单显示在屏幕**,利用方向键和回车键进行选择操作,黄色字体和黑色显示屏搭配。界面效果如下:
3.4 数据结构设计。
联系人信息数据结构:用于存放联系人的姓名、职务、职称、手机、电子邮件等各方面信息。
/*结构体类型person*/
struct person
char name[20姓名。
char job[20职务。
char position[20]; 职称。
char tel[20手机。
char email[20email
struct person *next;
3.5 通讯录管理模块。
1.模块描述。
该模块共有添加、删除、修改、显示联系人基本信息(姓名、职务、职称、手机、email等);分类查找(可以实现任何属性内容的查找;)、排序(按姓名排序并输出各记录信息)等功能。
2.函数声明。
1)void goto(int x, int y)
功能:光标定位函数,通过坐标goto(x,y)将光标移动到显示屏的任意位置。
伪**:handle hconsole;
void goto(int x, int y)
coord coord;
= x; = y;
setconsolecursorposition(hconsole, coord); 设置标准输出设备句柄。
hconsole = getstdhandle(std_output_handle); 获得标准输出设备句柄。
setconsoletextattribute(hconsole, foreground_red|foreground_green);/设置黄色字体。
2)void wel(void)功能:进入“欢迎使用通讯录”界面,利用光标定位处理界面,等待5秒钟进入主菜单(见上图)。
伪**:void wel(void)
int x, y, j;
x = 23;
y = 6;
goto(x, y); 调用光标定位函数。
printfn");
goto(x, y + 3);
printf("*欢迎使用通讯录 *");
goto(x, y + 6);
printfn");
while (1)else
for (j = 3; j >=0; -j)
3)void major()
功能:利用光标定位函数,显示主菜单,用户利用方向键和回车键选择要进行的操作,调用其他函数;用while和for语句循环操作,用break语句结束。
伪**:(略)
4)int judging(char str[20], int n)功能:判断用户输入的联系人信息是否合法:姓名、职位、职称必须是英文字母或者,手机必须是十一位的0—9之间的阿拉伯数字,邮箱地址必须是若干英文字母+@+若干英文字母+.
com的格式,否则提示用户输入错误,请重新输入。
int judging(char str[20], int n)
int i, j, p;
p = 0;
switch(n)
case 1:
for (i = 0; str[i] !0'; i++)
if (str[i] <48 ||str[i] >57) /48 和57分别是0和9的ascii**。
p = 1;
break;
if (i !=11判读用户输入的手机是否是11位。
p =1;break;
case 2: /判断用户输入的是否为大小写英文字母*/
for (i = 0; str[i] !0'; i++)
if (str[i] z' |str[i] >91 &&str[i] <96))
p = 1;
break;
elsep = 0;
break;
case 3: /判断用户输入的电子邮件地址是否是英文字母+@+英文字母+.com的格式*/
for (i = 0; str[i] !0'; i++)
if (str[i] =
for (j = i + 2; str[j] !0'; j++)
if (str[jstr[j + 1] =c' &str[j + 2] =o' &str[j + 3] =m')
p = 1;
break;
if (p ==1)
break;
break;
default:
break;
return p;
5)struct person *adding(struct person *head,struct person *stud)
功能:根据用户需求,循环增加联系人,并调用judge函数判断用户输入的信息是否合法。
伪**(judge函数、循环和变量定义部分省略):
stud = struct person*)malloc(len); 对要增加的新结点开辟空间。
*输入联系人信息*/
scanf("%s", stud->name);
scanf("%s", stud->job);
scanf("%s", stud->position);
scanf("%s", stud->tel);
scanf("%s",stud->email);
p1 = head;
p0 = stud;
课程设计报告格式 课程设计
洛阳理工学院。课程设计说明书。课程名称。设计课题。专业。班级。学号。姓名。完成日期2014年12月26日。问题描述 小四宋体,行间距单倍行距,每段缩进两个字符。叙述一下设计的内容要求。基本要求 小四宋体,行间距单倍行距,每段缩进两个字符。叙述一下设计的基本要求。测试数据 小四宋体,行间距单倍行距,每...
课程设计总结,课程设计报告
课程设计总结,课程设计报告。3.尝试应用项目管理软件进行项目进程的规划管理 绘制甘特图,不作硬性要求 二 选题说明。人事管理是企业信息管理的重要部分,面对大量的人事工资信息,财务部门采用人力处理将浪费大量的时间 人力和物力,且数据的准确性低。因此,开发一个界面友好,易于操作的人事工资管理软件进行自动...
课程设计 课程设计报告格式
学校名。课程设计报告。课程名称 c语言程序设计 系别 专业班级 学号。姓名。课程题目 企业人事管理系统 完成日期 指导老师 年月日。附件。课程设计的内容。企业人事管理系统 本项目的目标是开发一个功能实用,操作简便,简单明了的人事管理系统。能够录入人事的基本资料,在操作上能够完成诸如添加 修改 删除 ...