简单的职工管理系统报告

时间:2024.5.13

郑州科技学院

算法与数据结构课程设计

                                         

题    目   职工管理系       

学生姓名   王永辉             

专业班级   12级计嵌1班      

学    号   201241009          

院 (系)  信息工程学      

指导教师(职称) 李瑞霞(讲师)

完成时间   20##年 12月 25日 


职工管理系统

摘  要

本系统以企业员工信息管理系统为设计课题,对小型企业进行人事信息进行管理。企业员工信息管理系统是典型的信息管理系统(MIS), 其开发主要包括后台数据库的建立和维护以及前端应用程序的开发两个方面。对于前者要求建立起数据一致性好、完整性强、数据安全性高的数据库,所以数据库设计采用数据库规范设计的方法,基于3NF(第三范式)的设计方法,基于抽象语法规范的设计方法等,而对于后者则要求应用程序功能完备,易使用等特点,经过分析,系统用使用了 MICROSOFT公司的 VISUAL FORFRO 6.0作为系统开发工具开发本管理系统。软件开发全过程采用工程的概念、原理、技术和方法来开发此软件,使得以后企业进行员工信息管理时,可以作为它的一个模块使用。本系统包括在职员工档案管理、添加、删除.数据查询、系统维护、系统功能、帮助和退出等功能。

关键词: 信息管理系统(MIS); NF(第三范式);VISUAL FORFRO 6.0


Staff management system

Abstract

In the system, employee information management system for the design task, for the management of small and medium-sized enterprises and personnel information. Employee information management system is a typical management information system (MIS), its development mainly includes two aspects: the background of the establishment and maintenance of database and front-end application development. For the former requirement to establish data consistency, integrity, data security database, so the database design by using the method of database standardization design, based on the 3NF (third form) design method, abstract syntax specification design method based on, for the latter request application procedure function is complete, easy to use etc. after analysis, system, using MICROSOFT VISUAL FORFRO 6 as the system development tool to develop the management system. Software development of the whole process of the engineering concept, principle, technique and method to develop this software, the enterprise staff information management, can be used as a module in it. The system includes staff file management, add, delete, query, system maintenance, system function, help and exit function.

Keywords: information management system (MIS); NF (FORFRO 6; VISUAL third paradigm

目录

1 课程设计任务与要求..................................................................................................................... 1

    1.1  课程设计目的.................................................................................................................... 1

1.1.1  问题描述.............................................................................................................. 1

1.1.2  详细要求.............................................................................................................. 1

1.2  问题分析......................................................................................................................... 2

2 概要设计..................................................................................................................................... 2

2.1  总体设计思想................................................................................................................... 2

2.2  系统功能设计................................................................................................................... 3

2.3  模块函数构造................................................................................................................... 4

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

3 详细设计..................................................................................................................................... 5

3.1  抽象数据类型定义............................................................................................................ 5

3.2  主函数设计...................................................................................................................... 5

3.3  查找算法设计................................................................................................................... 6

4 测试........................................................................................................................................... 7

4.1运行程序,进入职工信息管理系统的主菜单:........................................................................ 8

4.2输入数字“1”进行录入职工信息:....................................................................................... 8

4.3输入“y”返回主菜单(界面同图1)。.................................................................................. 9

4.4输入“2”浏览职工信息:.................................................................................................... 9

4.7进入主菜单输入“5”进行添加职工信息:............................................................................ 12

4.8进入主菜单输入“6”进行修改职工信息:............................................................................ 13

4.9进入主菜单输入”7”退出职工信息管理系统。......................................................................... 14

5课程设计总结.............................................................................................................................. 14

5.1  该课程设计的特点........................................................................................................... 14

5.2  存在的不足..................................................................................................................... 14

5.3  心得体会........................................................................................................................ 14

参考文献....................................................................................................................................... 15


 简单的职工管理系统

1 课程设计任务与要求

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  函数功能表

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

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

图3  模块调用关系图

3 详细设计

3.1  抽象数据类型定义

(1)定义表结点(typedef struct Node)

typedef struct Node{

       long int born_time,work_time,tele_num;

       char sex,name[ALLMAX],degree[ALLMAX],job[ALLMAX],address[ALLMAX];

       struct Node *next;

}SLNode;

(2)定义职工信息(typedef struct Datatype)

typedef struct{

       long int born_time,work_time,tele_num;

       char name[ALLMAX],sex,degree[ALLMAX],job[ALLMAX],address[ALLMAX];

}DataType;

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

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

{

       if((*head=(SLNode *)malloc(sizeof(SLNode)))==NULL) exit(1);//动态分配存储空间

       (*head)->next=NULL;

}

3.2  主函数设计

根据详细设计要求,可以得到主函数代码及其对应的程序流程图:在主函数中,实现了友好的界面设计。系统需要输入职工的基本信息:姓名、性别、出生年月、工作年月、学历、职务、住址、电话等。这个系统还利用键盘输入提供的主菜单服务,在主菜单中,有七种操作的调用:

新增职工信息:SLNode *ListInsert(SLNode *head,DataType x)

查询职工信息:Listfind(SLNode head)

删除职工信息:ListDelete(SLNode *head)

修改职工信息:ListModify(SLNode *head)

职工信息排序:Listpaixu(SLNode *head)

保存职工信息:put(SLNode *head,FILE *fp)

显示职工信息:print(SLNode *head)

主函数代码见附录1

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

图 4  主函数程序流程图

3.3  查找算法设计

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

对姓名进行查询,对性别进行查询,对出生年月进行查询,对工作年月进行查询,对学历进行查询,对职位进行查询,对住址进行查询,对电话进行查询等一些列操作。查找算法中,利用链表的指针的移动扫描整个职工信息表,利用strcmp()函数判断字符串是否匹配。

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

图 5  查询算法程序流程图

4 测试

测试是使用人工或者自动手段来运行或测试某个系统的过程,其目的在于检验它是否满足规定的需求或弄清预期结果与实际结果之间的差别.其主要阶段包括单元测试、集成测试、确认测试和系统测试。测试方法主要有白盒测试法和黑盒测试法;其中,白盒测试也称结构测试或逻辑驱动测试,它是按照程序内部的结构测试程序,通过测试来检测产品内部动作是否按照设计规格说明书的规定正常进行,检验程序中的每条通路是否都能按预定要求正确工作;黑盒测试也称功能测试,它是通过测试来检测每个功能是否都能正常使用。在测试中,把程序看作一个不能打开的黑盒子,在完全不考虑程序内部结构和内部特性的情况下,在程序接口进行测试,它只检查程序功能是否按照需求规格说明书的规定正常使用,程序是否能适当地接收输入数据而产生正确的输出信息。黑盒测试着眼于程序外部结构,不考虑内部逻辑结构,主要针对软件界面和软件功能进行测试。

职工信息有: 职工号、姓名、性别、年龄、学历、工资、住址、电话

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

4.1运行程序,进入职工信息管理系统的主菜单:

图1:进入主菜单界面

4.2输入数字“1”进行录入职工信息:

图2:录入职工信息

4.3输入“y”返回主菜单(界面同图1)。

4.4输入“2”浏览职工信息:

图3:浏览职工信息

4.5输入“y”后继续,输入“3”进行查询职工信息:

图4:按职工号及学历查询职工信息

图5:按电话号码查询职工信息

4.6进入主菜单,输入“4”进行删除职工信息:

图6:删除职工信息

4.7进入主菜单输入“5”进行添加职工信息:

图7:添加职工信息

4.8进入主菜单输入“6”进行修改职工信息:

图8:修改职工信息

4.9进入主菜单输入”7”退出职工信息管理系统。

5课程设计总结

5.1  该课程设计的特点

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

根据问题描述可知,需要解决问题并不复杂,整个问题只需要实现一个职工管理系统功能,那就是在这个系统中实现对职工信息的插入、删除、查询、排序、修改以及保存。但是,为了实现该功能,却需要优秀的算法和数据结构以保证实现的时间和空间效率。把职工信息存储在一个单链表中,利用指针实现对职工信息的各项基本操作。

5.2  存在的不足

虽然设计的程序完成了题目描述所需要实现的功能,但是仍然存在不尽人意的地方。那就是可以再排序上面多设计几个算法。实现多角度排序。在这个系统中没有职工序号的信息,所以允许职工姓名相同,在很大程度上面,可能是的职工信息重复。

5.3  心得体会

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

当我们面对一个实际问题,应该迅速根据问题性质和特点抽象成特定的数据结构,当然每个问题都有可能能够抽象成多种数据结构,每种数据结构适应于不同的算法,例如,马踏棋盘问题就可以采用广度优先搜索或深度优先搜索来解决。因此此时就应该综合考虑这样的数据结构、算法以及它们的空间和时间效率,然后从中选择一个作为实现程序的基础。

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

参考文献

  1、 谭浩强编著, C程序设计 1991年7月

  2、 裘宗燕 著,从问题到程序科学出版社,北京大学出版社,1999年4月。

  3、 刘瑞挺主编,计算机二级教程,南开大学出版社,1996年10月。

  4、 陈朔鹰等编著,C语言程序设计基础教程,兵器工业出版社,1994年9月

  5、 姜仲秋等主编,C语言程序设计,南京大学出版社,1998年1月。

  6、《C程序设计(第二版)》,谭浩强编,清华大学出版社,1999年12月。

本书以初学者为读者对象,要求的起点低,详细而透彻地讲述了C语言各个语句的语法规则,通过典型的简单的例题,引领初学者进入C语言的世界。

 7、《C语言程序设计题解与上机指导》,谭浩强编,清华大学出版社,20##年11月。

与教材配套的上机指导。

 8、《Turbo C 2.0实用大全》,常玉龙等编写,北京航空航天大学出版社,1994年9月。

一本厚厚地过千页地"砖头"。详细介绍了C语言地库函数,是一本很好的适合已经掌握C语言基础之后使用的参考手册。

 9、《C语言程序设计习题集(第二版)》,陈朔鹰 陈英主编,人民邮电出版社,20##年2月。

汇集近千道不同难度、不同层次、不同类型的习题,简单的题目适合初学者进行基本概念自测,复杂的题目足可以让你研究上一个月。

 10、《C语言趣味程序百例精解》,陈朔鹰 陈英主编,北京理工大学出版社,1996年。

汇集100道从易到难的趣味编程题目,你可以通过对这些饶有兴趣问题的求解过程,掌握程序设计的基本方法。

 11、《C语言程序设计辅导与习题集》,田淑清等,中国铁道出版社,20##年1月。

一本典型的与全国计算机等级考试题型类似的习题集。整本书的习题难度适中。

 12、《C语言编程常见问题解答》,[美]Paul S. R. Chishohm等著,张芳妮 吕波译,清华大学出版社,11996年12月。

它是一本以问答方式书写的好的参考书,在按照章节回答问题的过程中,让你可以明确清楚地体会到C语言的精髓。

  13、《The C Programming Language》,by Brian W. Kernighan and Dennis M. Ritchie.,Pubilished by Prentice-Hall in 1988。

著名的原版C语言教材,虽然教学内容上与国内的教材不是同一风格,但你如果有时间的话可以读读它,来感受感受世界著名的教材的风范。

更多相关推荐:
个人原因简单的辞职报告范文

个人原因简单的辞职报告范文尊敬的各位领导您们好我从年月份来到公司到如今已经有一年半了非常感激公司给了我这个工作和学习的机会使我得到了很多的历练同时我也得到了很多的照顾在此我对关心过照顾过教导过我的领导们说声谢谢...

辞职报告 简短版 范文

辞职报告注应在正式离职前三十天提交辞职报告尊敬的单位领导您好首先致以我深深地歉意怀着及其复杂而愧疚的心情我写下这份辞职信很遗憾自己在这个时候突然向单位提出辞职纯粹是出于个人的原因家庭原因身体原因等等不能在单位继...

简单的辞职报告模板范文6篇

简单的辞职报告模板范文6篇辞职报告模板一尊敬的领导从20xx年初至今进入公司工作两年的时间里得到了公司各位同事的多方帮助我非常感谢公司各位同事在过去的两年里我在公司里工作的很开心感觉公司的气氛就和一个大家庭一样...

最简洁实用的辞职报告

辞职信范文辞职信范文一尊敬的领导我很遗憾自己在这个时候向公司正式提出辞职我自年月日进入xxx股份有限公司年月日调入xx部门至今已过半载正是在这里我开始踏上了社会完成了个人人生中的一次重要转变从一个学生到社会人的...

简单的辞职书范本

辞职信尊敬的领导你好我很遗憾也很抱歉在这个时候向公司正式提出辞职申请来到公司这段时间得到了公司各位同事的照顾以及领导的教诲我学到了很多不管是工作业务方面还是为人处事方面我非常感谢公司各位同事由于原因这里重点说你...

最简单明了的辞职申请

辞职申请尊敬的领导我叫xxx现任外xxxxxxxxxxxxxxx20xx年11月入职考虑再三我向公司提出离职申请不得不说我在公司一年多的时间里学到了很多东西深刻感受到了xxx大家庭的温暖每个人都是那么的积极向上...

简单有用的辞职报告范本

辞职报告范本敬的领导经理您们好我很遗憾自己在这个时候向公司提出辞职来到公司差不多一年了在这很感谢各位领导的教导和照顾尤其是经理您是您给了我一个又一个很好的学习机会让我在踏进社会后第一次有了归属的感觉经理您一直对...

20xx简单的辞职报告范本

20xx简单的辞职报告范本0718敬的领导经理您们好我很遗憾自己在这个时候向公司提出辞职来到公司差不多一年了在这很感谢各位领导的教导和照顾尤其是经理您是您给了我一个又一个很好的学习机会让我在踏进社会后第一次有了...

简单明了的辞职报告

简单明了的辞职报告尊敬的领导您好我进已经有几个月了由于我个人的原因经过深思熟虑地考虑我决定辞去我目前在公司所担任的职位我非常重视在公司内这段经历也很荣幸成为的一员特别是的处事风范及素质使我倍感钦佩在这几个月所学...

20xx简单的辞职报告范本

20xx简单的辞职报告范本0718敬的领导经理您们好我很遗憾自己在这个时候向公司提出辞职来到公司差不多一年了在这很感谢各位领导的教导和照顾尤其是经理您是您给了我一个又一个很好的学习机会让我在踏进社会后第一次有了...

20xx校长辞职报告范文简洁

20xx校长辞职报告范文简洁辞职报告是个人离开原来的工作岗位时向单位领导或上级组织提请批准的一种申请书下面学习啦小编带来校长的辞职报告范文欢迎大家阅读尊敬的教育局领导承蒙中心校领导厚爱让我担任小学校长之职经过二...

简单的辞职报告范本

简单的辞职报告范本敬的领导经理您们好我很遗憾自己在这个时候向公司提出辞职来到公司差不多一年了在这很感谢各位领导的教导和照顾尤其是经理您是您给了我一个又一个很好的学习机会让我在踏进社会后第一次有了归属的感觉经理您...

简单的辞职报告范文(36篇)