课程设计报告

发布 2022-10-01 06:32:28 阅读 6395

计算机科学与工程学院。

专业:软件工程

姓名:赵晓亮

学号: 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语言程序设计 系别 专业班级 学号。姓名。课程题目 企业人事管理系统 完成日期 指导老师 年月日。附件。课程设计的内容。企业人事管理系统 本项目的目标是开发一个功能实用,操作简便,简单明了的人事管理系统。能够录入人事的基本资料,在操作上能够完成诸如添加 修改 删除 ...