程序设计课程设计报告.docx
《程序设计课程设计报告.docx》由会员分享,可在线阅读,更多相关《程序设计课程设计报告.docx(18页珍藏版)》请在冰豆网上搜索。
程序设计课程设计报告
程序设计课程设计报告
设计题目:
人事管理信息系统
姓名:
唐家维
学号:
班级:
信息
同组人员:
顾婵媛()
报告日期:
年月日
引言
选题背景
需求分析
开发环境
.功能设计
功能结构图
模块设计
.数据结构设计
.详细设计
程序结构图
各模块功能
.调试分析
.小结
参考文献
引言
选题背景
管理信息系统在强调管理,强调信息的现代社会中已变得越来越普及。
它涉及了管理科学、信息技术和计算机技术。
人事信息的管理是企事业单位的必要管理内容。
企业的规模越大,所要管理的人员越多,人事管理就越复杂。
随着信息技术的发展,传统的人事信息管理模式已经落伍,人们需要从繁琐的手工操作中解放出来。
由于人事信息比较复杂,手工操作可能导致错误较多、工作效率不高。
因此应用计算机技术实现人事信息的管理是可行而必要的工作,利用人事管理信息系统既能够提高工作效率,又可以提高工作水平。
……
需求分析
本人事管理信息系统将用户分为两大类管理者和普通员工,普通员工可以查看、修改自己的信息并完成考勤和请假的操作。
管理者除了这些基本的功能还能对数据库进行统计和账户管理。
人事管理信息系统应该实现以下主要功能:
1.建立和维护
员工基本信息、考勤信息、调动信息的增、删、修改;
2.查询
(1)根据编号或姓名查询员工基本信息
(2)根据员工的编号以及时间(年、月)查询考勤信息
(3)根据员工的编号查询调动信息。
3.统计
(1)统计某个职工的出勤情况信息;
(2)按某年某月某日统计查询某部门的迟到人数;
开发环境
操作系统:
;
开发语言:
;
:
。
.功能设计
功能结构图
根据系统的功能分析,系统针的功能结构图如图所示:
图系统的功能结构图
模块设计
1.基本信息管理
输入:
员工的编号、姓名、性别、进入本单位时间
输出:
员工基本信息文件
修改:
修改员工信息的各项字段
处理:
将员工的基本信息添加到员工基本信息文件中。
2.基本考勤信息管理
输入:
添加员工上下班及请假的时间。
输出:
员工基本考勤信息查询结果视图。
处理:
将考勤时间记录到数据库中。
.基本员工账户信息管理
输入:
员工、登录密码、管理权限、上次登录时间
、数据库管理
将内存中的信息备份到磁盘中或将磁盘中的信息写入内存
.数据结构设计
根据系统的需求分析,员工基本信息、考勤信息、调动信息、账户信息应该分别保存各自的类体中,每个类的具体数据及结构有:
数据结构简况:
、员工基本信息类
编号:
姓名:
性别:
进入本单位时间:
所在部门:
、员工考勤信息类
上下班时间:
迟到次数:
早退次数:
请假天数:
假期开始时间:
<>
、 员工调动信息类
原部门:
新部门:
调入时间:
、员工账户类
员工:
登录密码:
管理权限:
上次登录时间:
.详细设计
程序结构
1、本人负责了欢迎模块、用户具体操作界面(参数修改模块、考勤信息显示模块、考勤请假操作模块、统计信息显示模块)、退出模块。
下面主要介绍这几个模块的详细设计。
数据结构:
()总数据库
数据成员:
<>员工链表
成员函数:
();搜索员工
();员工注册
();返回员工链表
();返回员工总数
()单个员工信息
数据成员:
;基本信息
;考勤信息
;账户信息
成员函数:
();返回基本信息
();返回考勤信息
();返回账户信息
()员工基本信息类
数据成员:
;
;
;
<>;
成员函数:
();员工信息修改
();员工部门调动
();返回
();
();
();
();
*();返回部门调动信息
();为链表增加节点
()签到请假等操作
数据成员:
<>;签到信息链表
;迟到次数
;早退次数
;请假次数
<>;迟到时间
成员函数:
();上班签到
();上班签到
();请假
*();
();增加签到信息链表节点
();
();
();
*();
();增加请假时间链表节点
();
();
();
()账户类
数据成员:
;
;
;权限
;上次登录时间
成员函数:
();修改密码
();修改
();密码验证
();
();
();
();
各模块功能
2、欢迎模块
欢迎界面实现了信息从磁盘到内存的转换
关键步骤及其解释:
()("","");
在盘上打开或新建一个文本文档
()*(*)
从文件指针向后顺序抽取字符知道遇到字符并返回该字符串
()(*)
返回文件指针后第个字符
()(,"");
将文件上的信息作为链表的一个节点保存
、注册模块
该模块完成新增员工信息的收集
关键步骤及其解释:
()();
将编辑框内的数据赋值给相关联变量
()()
("不得为!
");
()
("请选择您的权限!
");
()
("请选择您的性别!
");
("")
("请输入您的姓名!
");
("")
("请输入您的密码!
");
("")
("请输入您的部门!
");
检测到数据未填写完整并给予警告
();
("");
("");
("");
("");
;
;
();
如果注册通过则清除编辑框上信息,防止信息泄露
()((>()))
("该账号已被注册!
");
防止注册两个相同的
、登录模块
登录模块完成权限的识别和密码校验
关键步骤及其解释:
()(>())
("没有此");
检验输入的是否存在
()()
检验口令是否匹配
();
();
将号赋值给对话框下的变量,并弹出对话框
、用户具体操作界面
*由于管理者用户界面是普通员工用户界面的超集,所以这里只介绍管理者用户界面。
*管理者用户界面分为以下六大模块,并一一介绍
()参数修改模块
()考勤信息显示模块
()考勤请假操作模块
()基本信息显示模块
()统计信息显示模块
()账号注销模块
()参数修改模块
主要完成对更新后的信息的保存
关键步骤及其解释:
(1)();
给编辑框赋初值,给数据修改提供参考
()(>(*))()(>(>(*))()()[>(>(*))()()]());
修改信息
()考勤信息显示模块
主要用于显示上下班的时间和部门调动信息
关键步骤及其解释:
()();
清除列表中的信息
()();
确定列表的长度
()();
增加类表项
()考勤请假操作模块
主要完成时间的记录
关键步骤及其解释:
()()
防止连续进行上班签到
()((()));
显示签到的时间
()();
将时间信息记录到链表中
()基本信息显示模块
关键步骤及其解释:
()(,*);
从链表中查找相关信息并显示在文本框中
()统计信息显示模块
该模块完成种功能的查询
、所有月份、所有部门的迟到情况查询
、所有月份、制定部门的迟到情况查询
、指定月份、制定部门的迟到情况查询
、所有月份、所有部门的请假情况查询
、所有月份、制定部门的请假情况查询
、指定月份、制定部门的请假情况查询
、所有员工调职情况查询
、指定员工调职情况查询
、所有员工基本信息情况查询
、指定员工基本信息情况查询
关键步骤及其解释:
()();
数据收集
()();
清空列表
()();
清空列表项
()();
设置类表样式
()(,(""));
设置列表标题
()();
设置列表宽度
()("")
("")
("")
("")
(>())
(>())
判断查询条件
()(<>())
根据链表长度确定循环次数
()();
为列表插入列表项
()账号注销模块
关键步骤及其解释:
()(>())
("没有此!
");
判断是否存在
()(*)
("不得删除正在使用的!
");
判断是否删除正在使用的
()>[>()];
("删除成功!
");
删除账号
、退出模块
完成信息从内存到磁盘的转换
关键步骤及其解释:
(1)("","");
重写文本文件
(2)();
设置文件指针
(3)>();
;
;
;
;
设置和循环计数器
(4)("{");
写入链表头标记
(5)("");
写入字段分隔符
()>();
清空数据库
()();
刷新数据缓冲区,并释放文件指针
4.调试分析
(一)数据库设计
数据库是软件运行的基础,对员工信息的插入、删除、修改、统计等操作都与数据库有密切的关系。
我把所有的员工信息包含在一个类中,它包括基本身份信息、考勤信息、账号信息、考勤信息。
在这个类中设置了一个保存员工权限的字段(),以此将所有的员工分为普通员工()和管理者(),并为两种不同的员工设置不同操作界面以完成不同的功能。
在考勤信息和调至信息中都涉及到对事件的处理。
由此我在数据库中增加相对应的型字段,并定义型的链表以保存一连串的时间序列。
在对时间信息进行查询或是比对时将型转化为型,对时间信息进行显示的时候,把型转为*型可以高效的对时间进行处理。
(二)数据库在多个对话框之间共享
人事管理系统是一个基于数据库的应用程序。
数据库至关重要,我认为保存数据库的类至少具备两个必要条件。
一它的生命周期全局的也就是说从程序开始运行到退出数据库始终存在于内存中,二他对所有的对话框可见。
为了满足第一个条件,我将数据库类的实例定义在类下以满足它对生命周期的要求。
为了是数据库可见我将所有的对话框定义在以及以下层次的类体中,并在个对话框中定义一个数据库类型的指针指向该数据库以实现数据库的共享。
(三)对数据库的查找
对数据库进行信息查找分析是公司管理层作出决策的重要依据,也是这个程序的核心。
每一个员工的信息都是由多个字段组成,例如姓名,性别,部门,在查询时我们即希望对某个员工进行精确查询,也希望对某一个部门的全体员工进行查询,这就需要复杂的查询条件对信息进行筛选和整理。
我在对查询功能的设计中,使用了大量的判断语句和循环语句,并将两者进行嵌套完成查询功能。
.小结
(一)系统中的问题
在设计这个系统的数据库时,为了减少函数的数量,我把数据库的各字段均设置为型,虽然对数据的读取和改写大大简化了但是破坏了数据库的安全性。
增加返回数据的函数便可以解决这个问题。
员工权限修改问题。
在员工权限的对话框中有一项功能是改变员工账号的权限,使得员工可以自行把自己的账号升级为管理员账号进行管理员权限的操作,这不符合实际。
考勤模块不够灵活。
在点击“上班”、“下班”或是“请假”按钮时系统只能记录下此时的系统时间,不能记录其他的时间也不能对其进行修改,这不能满足实际使用的功能。
例如请假的时间和作出请求的时间不是同一天。
但可以设计一个函数通过型结构体修改型变量,一道修改时间的功能。
(二)程序改进及设想。
一、为该系统设计一个设置系统参数的功能模块。
该模块的将在程序首次运行时被调用。
主要功能包括设置确定所有部门的个数及名称,迟到及早退的判定标准,等基本设置。
二、为该系统添加一个数据还原的模块。
每个员工的信息中有两个字段用于保存号,一个用于查询另一个用于数据的恢复。
在点击删除按钮后,程序将其中一个号改为特殊的数字即将其标记为无效记录,另一个号不变。
在数据恢复时可通过第二个号的值恢复第一个号将数据还原。
参考文献
[]孙鑫,《深入详解》,电子工业出版社,。