沈阳理工大学高等职业技术学院学士学位论文
员工工资信息表:用于保存员工工资的详细信息,内容如表3.5所示。
表3.5 员工工资信息表
字段名
ID YID YName YSex Ydep YBasePay YJintie Yjiangli YFK Yquanqin Yjiaban Yyingfa Ypay YMonth
类型
int varchar varchar varchar varchar decimal decimal decimal decimal decimal decimal decimal decimal varchar
长度
4 10 10 2 10 9 9 9 9 9 9 9 9 50
主键否
主键 否 否 否 否 否 否 否 否 否 否 否 否 否
描述
系统编号 员工编号 员工姓名 员工性别 员工部门 基本工资 职务津贴 奖励金额 罚款金额 全勤奖金 加班工资 应发工资 员工工资 工资月份
奖罚管理信息表:用于保存奖罚管理信息,内容如表3.6所示。
表3.6 奖罚管理信息表
字段名
id UserID UserName UserJF UserJFcontent UserJLMoney UserFKMoney UserJFDate UserCXDate
类型
int varchar varchar varchar varchar decimal decimal varchar varchar
长度
4 10 10 10 10 9 9 50 50
主键否
主键 否 否 否 否 否 否 否 否
描述
系统编号 员工编号 员工姓名 奖罚类型 奖罚内容 奖励金额 罚款金额 奖罚日期 撤销日期
21
沈阳理工大学高等职业技术学院学士学位论文
调动管理信息表:用于保存员工的调动管理信息,内容如表3.7所示。
表3.7 调动管理信息表
字段名
id UID UName URemoveDate UOldDep UNewDep UOldJob UNewJob UOldPay UNewPay UPayExplain
类型
int varchar varchar varchar varchar varchar varchar varchar decimal decimal varchar
长度
4 10 10 10 10 10 10 10 9 9 10
主键否
主键 否 否 否 否 否 否 否 否 否 否
备注
系统编号 员工编号 员工姓名 调动日期 原部门 现部门 原职务 现职务 原工资 现工资 工资说明
3.4 系统详细设计
系统开发人员根据PAD图写出可运行的代码。所以过程设计的结果决定了程序代码的质量。过程设计的任务不是编写代码,是要设计出程序的“蓝图”,在软件的生命周期中,对长期使用的软件来说,人阅读程序的时间可能比写程序的时间要长。故,衡量程序的质量不仅要看它的逻辑是否正确,性能是否能够满足要求,更主要的是看它是否容易阅读。过程设计的目标不仅是逻辑上正确地实现每个模块的功能,更重要的是设计出的处理过程是尽可能简明易懂的。
PAD 是问题分析图(Problem Analysis Diagram)的英文缩写,它用二维树形结构的图来表示程序的控制流,是一种用结构化程序设计思想表现程序逻辑结构的图形工具,将这种图翻译成程序代码比较容易。 3.4.1 系统登录PAD图
用户经过登录模块验证成功后可以进行系统,在用户进行人事查询时要输入查询员工的信息,系统对库存中的记录进行遍历,找到后显示给用户否则无查询结果,系统登录的PAD图如图3.6所示。
22
沈阳理工大学高等职业技术学院学士学位论文
图3.3 系统登录PAD图
3.4.2 档案管理PAD图
用户进行档案管理操作时,首先要找到要员工的信息,修改、删除、添加等操作,档案管理的PAD图如图3.7所示。
图3.4 档案管理PAD图
3.4.3 修改口令PAD图
用户进行修改口令时,首先要输入原始密码,在输入新的密码,密码验证成功时,则显示修改成功,反之显示错误信息,修改口令PAD图如图3.8所示。
23
沈阳理工大学高等职业技术学院学士学位论文
图3.5 修改口令PAD图
24
沈阳理工大学高等职业技术学院学士学位论文
4 系统实现
4.1 语言选择原因
本系统在实现系统功能时使用的是C#语言。C#语言具有许多先进的特性,也正是因为其有这些特性所以才选择用C#语言来开发本系统,C#的特点如下:
一、简洁的语法
在缺省的情况下,C#的代码在.NET框架提供的“可操纵”环境下运行,不允许直接地内存操作。它所带来的最大的特色是没有了指针。与此相关的是,那些在C++中被疯狂使用的操作符(例如:“::”、“->”和“.,”)已经不再出现。C#只支持一个“.”,对于我们来说,现在需要理解的一切仅仅是名字的嵌套而已。
C#用真正的关键字换掉了那些把活动模板库(Active Template Library,ALT)和COM搞得乱糟糟的伪关键字,如OLE_COLOR、BOOL、VARIANT_BOOL、DISPID_XXXXX等等。每种C#操作符在.NET类库中都有了新名字。
语法中的冗余是C++中的常见的问题,比如“const”和“#define“、各种各样的字符类型等等。C#对此进行了简化,只保留了常见的形式,而别的冗余形式从它的语法结构中被清除了出去。
二、精心地面向对象设计
也许,从Smalltalk开始,面向对象的话题就始终缠绕着任何一种现代程序设计语言。的确,C#具有面向对象的语言所应有的一切特性:封装、继承与多态性,这并不出奇。然而,通过精心地面向对象设计,从高级商业对象到系统级应用,C#建造广泛组件的绝对选择。
在C#的类型系统中,每种类型都可以看作一个对象。C#提供了一个叫做装箱(boxing)与拆箱(unboxing)的机制来完成这种操作,而不给使用者带来麻烦,这在以后的章节中将进行更为详细的介绍。
C#只允许单继承,即一个类不会有多个基类,从而避免了类型定义的混乱。在后面的学习中你很快会发现,C#中没有了全局函数,没有了全局变量,也没有了全局常数。一切的一切,都必须封装在一个类之中。你的代码将具有更好的可读性,并且减少了发生命名冲突的可能。
25