简单的职工管理系统报告Word文档格式.docx

上传人:b****5 文档编号:19715888 上传时间:2023-01-09 格式:DOCX 页数:15 大小:357.87KB
下载 相关 举报
简单的职工管理系统报告Word文档格式.docx_第1页
第1页 / 共15页
简单的职工管理系统报告Word文档格式.docx_第2页
第2页 / 共15页
简单的职工管理系统报告Word文档格式.docx_第3页
第3页 / 共15页
简单的职工管理系统报告Word文档格式.docx_第4页
第4页 / 共15页
简单的职工管理系统报告Word文档格式.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

简单的职工管理系统报告Word文档格式.docx

《简单的职工管理系统报告Word文档格式.docx》由会员分享,可在线阅读,更多相关《简单的职工管理系统报告Word文档格式.docx(15页珍藏版)》请在冰豆网上搜索。

简单的职工管理系统报告Word文档格式.docx

1.1课程设计目的

《数据结构》是计算机专业一门重要的专业技术基础课程。

本课程较系统地介绍了软件设计中常用的数据结构以及相应的存储结构和实现算法,介绍了常用的多种查找和排序技术。

本课程将为整个专业的学习以及软件设计水平的提高打下良好的基础。

为了学好《数据结构》,必须掌握编写一些在特定数据结构上的算法,并通过上机调试,更好地掌握各种数据结构及其特点,此次《数据结构》课程设计目的正在于此。

经过本次课程设计,我们对于数据结构基本理论和存储结构及算法设计将有更加深入的理解,并提高我们在实际设计操作中系统分析、结构确定、算法选择、数学建模和信息加工的能力,提高我们的C/C++语言程序设计能力,以及培养学我们编写程序设计文档的能力。

1.1.1问题描述

根据题目要求,由于职工信息是存放在文件中,所以应提供文件的输入、输出等操作;

在程序中需要浏览职工的信息,应提供显示、查找、排序等操作;

另外还应提供键盘式选择菜单实现功能选择。

1.1.2详细要求

(1)问题说明

设计一个简单的职工管理系统,按照课程设计的要求,实现对职工信息的新增、修改、插入、删除、以及排序操作。

(2)输入要求

由系统管理员依次输入现有职工和新增职工的以下信息:

姓名(可以重复)、性别、出生年月、工作年月、学历、职务、地址、电话等信息,并且注意输入时姓名、学历、职务、地址为字符串形式,性别为字符,其余的为长整型数字。

(3)输出要求

系统管理员根据公司的人员流动情况,选择系统提供的各项功能进行操作,并输出相应的结果。

1.2问题分析

(1)具体要求

简单的职工管理系统主要实现以下功能:

新增一名职工:

将新增职工对象按姓名以字典方式职工管理文件中。

删除一名职工:

从职工管理文件中删除一名职工对象。

查询:

从职工管理文件中查询符合某些条件的职工。

修改:

检索某个职工对象,对其某些属性进行修改。

排序:

按某种需要对职工对象文件进行排序。

要求:

职工信息包括姓名、性别、出生年月、工作年月、学历、职务、住址、电话等信息。

(2)实现提示:

由键盘输入职工对象,以文件方式保存。

程序执行时先将文件读入内存。

对职工对象中的"

姓名"

按字典顺序进行排序。

对排序后的职工对象进行增、删、查询、修改、排序等操作。

2概要设计

2.1总体设计思想

根据职工管理系统问题的描述和详细需求分析,要达到上述功能,链表的数据结构来存储职工信息,并对其进行相应的插入、删除、修改、查询、排序、保存等操作。

(1)输入功能的实现:

要想实现职工管理系统的输入,必须要建立一个职工信息系统的抽象数据类型,其中职工信息以链表的存储方式实现。

(2)系统处理功能的实现:

系统管理员根据公司的人员流动情况,在提示信息的提示下,选择相应的服务进行操作。

(3)输出的实现:

根据选择的操作,输出与之对应的信息。

综上可以绘制出职工管理问题的系统流程图,如图1所示

图1系统流程图

2.2系统功能设计

根据职工管理系统问题的分析和设计要求,可以得到该职工管理系统可以分为五个模块:

职工信息添加模块、职工信息修改模块、职工信息删除模块、职工信息查询模块、职工信息排序模块。

其系统功能结构如图2所示。

图2系统功能结构图

2.3模块函数构造

根据系统功能结构图的描述,可以构造出该系统的抽象数据类型和相对应的函数,其方法名和功能如表1所示。

表1函数功能表

模块

函数或数据结构

功能

链表数据类型

typedefstructNode

定义链表结点

typedefstructDatatype

定义职工信息

ListInitiate(SLNode**head)

初始化链表

系统处理模块

SLNode*ListInsert(SLNode*head,DataTypex)

插入职工信息

ListDelete(SLNode*head)

删除职工信息

ListModify(SLNode*head)

修改职工信息

put(SLNode*head,FILE*fp)

保存职工信息

Listfind(SLNodehead)

查询职工信息

Listpaixu(SLNode*head)

职工信息排序

输出模块

print(SLNode*head)

显示职工信息

2.4系统模块的调用关系图框架

根据需求分析和概要分析,可以得出职工管理系统问题的系统模块类图。

如图3所示

图3模块调用关系图

3详细设计

3.1抽象数据类型定义

(1)定义表结点(typedefstructNode)

typedefstructNode{

longintborn_time,work_time,tele_num;

charsex,name[ALLMAX],degree[ALLMAX],job[ALLMAX],address[ALLMAX];

structNode*next;

}SLNode;

(2)定义职工信息(typedefstructDatatype)

typedefstruct{

charname[ALLMAX],sex,degree[ALLMAX],job[ALLMAX],address[ALLMAX];

}DataType;

(3)初始化链表(ListInitiate(SLNode**head))

voidListInitiate(SLNode**head)//---------------------------------链表初始化

{

if((*head=(SLNode*)malloc(sizeof(SLNode)))==NULL)exit

(1);

//动态分配存储空间

(*head)->

next=NULL;

}

3.2主函数设计

根据详细设计要求,可以得到主函数代码及其对应的程序流程图:

在主函数中,实现了友好的界面设计。

系统需要输入职工的基本信息:

姓名、性别、出生年月、工作年月、学历、职务、住址、电话等。

这个系统还利用键盘输入提供的主菜单服务,在主菜单中,有七种操作的调用:

新增职工信息:

查询职工信息:

删除职工信息:

修改职工信息:

职工信息排序:

保存职工信息:

显示职工信息:

主函数代码见附录1

主函数程序流程图如图4所示:

图4主函数程序流程图

3.3查找算法设计

在查询算法中,职工管理系统提供了七种查询操作,实现了系统的人性化查询操作。

这些查询操作分别为:

对姓名进行查询,对性别进行查询,对出生年月进行查询,对工作年月进行查询,对学历进行查询,对职位进行查询,对住址进行查询,对电话进行查询等一些列操作。

查找算法中,利用链表的指针的移动扫描整个职工信息表,利用strcmp()函数判断字符串是否匹配。

查询算法程序流程图如图5所示:

图5查询算法程序流程图

3.4排序算法设计

在排序算法中,职工管理系统提供了四种查询操作,实现了系统的基本排序操作。

这些排序操作分别为:

对姓名进行排序,对性别进行排序,对出生年月进行排序,对工作年月进行排序,等一些列操作。

排序算法中,利用链表的指针的移动扫描整个职工信息表,利用strcmp()函数判断字符串是否匹配。

排序的核心代码:

for(q=head->

next,p=head,s=p;

q;

s=p,p=q,q=q->

next)

{

if(p->

born_time>

q->

born_time)//对出生年月进行排序

{

if(head==p)

{

head->

next=q->

next;

head=q;

q->

next=p;

q=head->

p=head;

}

else

{

p->

s->

next=q;

p=q;

q=p->

flag=1;

}

}

排序算法流程图如图6所示:

图6排序算法程序流程图

4测试

测试是使用人工或者自动手段来运行或测试某个系统的过程,其目的在于检验它是否满足规定的需求或弄清预期结果与实际结果之间的差别.其主要阶段包括单元测试、集成测试、确认测试和系统测试。

测试方法主要有白盒测试法和黑盒测试法;

其中,白盒测试也称结构测试或逻辑驱动测试,它是按照程序内部的结构测试程序,通过测试来检测产品内部动作是否按照设计规格说明书的规定正常进行,检验程序中的每条通路是否都能按预定要求正确工作;

黑盒测试也称功能测试,它是通过测试来检测每个功能是否都能正常使用。

在测试中,把程序看作一个不能打开的黑盒子,在完全不考虑程序内部结构和内部特性的情况下,在程序接口进行测试,它只检查程序功能是否按照需求规格说明书的规定正常使用,程序是否能适当地接收输入数据而产生正确的输出信息。

黑盒测试着眼于程序外部结构,不考虑内部逻辑结构,主要针对软件界面和软件功能进行测试。

职工信息有:

姓名、性别、出生年月、工作年月、学历、职务、住址、电话。

在数据输入中注意数据类型:

现有10组测试数据:

姓名、性别、出生年月、工作年月、学历、职务、住址、电话

aaa32543453254aaaaaaaaaaaa4365357

bbb52654654365bbbaaaabbbbb5365463

cca54325546354aaabbbbccccc4354365

ddb43543435465bcbddddccccc1351512

eea23611151312bbbccccbbbbb1531515

ffb53111151515ffffffffffff1561561

ggb53111435465aaabbbbfffff4454564

hhb11223564564hhhhhhhhhhhh1545555

kka45455454545kkkaaaakkkkk4564534

ppa54565456454fffffffwwwww4564565

系统运行结果:

(1)进入职工管理系统,如图7所示:

图7进入职工管理系统界面

(2)输入职工人数为4,并输入职工信息,如图8所示:

图8主菜单选择界面

(3)新增一职工信息并查询全部职工信息,如图9所示:

图9新增并查询职工信息界面

(4)删除并查询信息,如图10所示:

删除职工姓名:

dd

图10删除并查询职工信息界面

(5)修改职工信息并与前面信息对照,如图11所示:

修改职工姓名:

ee

图11修改职工信息界面

(9)对职工信息进行排序,如图12所示:

按照出生年月进行排序:

图12职工按照出生年月进行排序的界面

(10)退出系统,如图13所示:

选择0,退出职工管理系统。

图13退出职工管理系统界面

5课程设计总结

5.1该课程设计的特点

本次课程设计是围绕数据结构进行。

根据问题描述可知,需要解决问题并不复杂,整个问题只需要实现一个职工管理系统功能,那就是在这个系统中实现对职工信息的插入、删除、查询、排序、修改以及保存。

但是,为了实现该功能,却需要优秀的算法和数据结构以保证实现的时间和空间效率。

把职工信息存储在一个单链表中,利用指针实现对职工信息的各项基本操作。

5.2存在的不足

虽然设计的程序完成了题目描述所需要实现的功能,但是仍然存在不尽人意的地方。

那就是可以再排序上面多设计几个算法。

实现多角度排序。

在这个系统中没有职工序号的信息,所以允许职工姓名相同,在很大程度上面,可能是的职工信息重复。

5.3心得体会

经过这次数据结构课程设计,我们不仅及时巩固的了数据结构、算法、以及软件工程的知识,并对数据结构和算法的配合对于程序时间和空间性能的影响以及软件工程提供的开发流程和工具对于实现特定功能程序的重要意义。

当我们面对一个实际问题,应该迅速根据问题性质和特点抽象成特定的数据结构,当然每个问题都有可能能够抽象成多种数据结构,每种数据结构适应于不同的算法,例如,马踏棋盘问题就可以采用广度优先搜索或深度优先搜索来解决。

因此此时就应该综合考虑这样的数据结构、算法以及它们的空间和时间效率,然后从中选择一个作为实现程序的基础。

此外,对程序的测试应该要仔细,根据模块的特点和测试阶段,采用各种软件测试方法对程序进行测试,确保各个模块的正确性和完整性,最后集成起来测试其是否正确和完整地实现了问题描述中要求的功能。

参考文献

[1]李云清,杨庆红,揭安全.数据结构(C语言版)[M].人民邮电大学出版社,2004.6

[2]潘彦.算法设计与分析基础[M].北京:

清华大学出版社,2007.1

[3]肖梦强,曲秀清.软件工程——原理、方法与应用[M].中国水利水电出版社,2005.10

[4]吕凤翥.C++语言程序设计(第2版).电子工业出版社,2007.2

[5]严蔚敏,吴伟民.数据结构(C语言版)[M].清华大学出版社,2002.9

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 医药卫生 > 基础医学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1