当前位置:文档之家› 职工工资管理系统设计与实现

职工工资管理系统设计与实现

《程序设计》课程设计报告设计题目:职工工资管理系统设计与实现学院名称:专业班级:姓名:学号:目录一需求分析。

3二概要设计。

3 三详细设计。

53.1 数据库设计。

33.2 模块及窗体设计。

33.2.1 数据库模块设计。

53.2.2 用户登录识别模块。

63.2.3管理员模块。

8职工基本信息管理。

9职工工资管理。

203.2.4 普通用户模块。

28职工信息。

283.2.5 系统管理模块。

153.2.5 主窗体菜单设计。

15四软件测试。

36 五总结。

36 参考资料:....................................................。

..17一需求分析本系统的主要目的就是实现职工工资管理系统设计与实现,使职工工资管理工作更加容易, 高效地管理企业职工工资,从而提高工作效率,降低管理成本.二概要设计/************************************************************************ 概要设计阶段主要是粗略描述整个软件的框架,并从业务的角度描述软件的模块、工作流程等。

项目的成功取决于设计的好坏,而概要设计则是整个设计的关键部分。

概要设计的主要任务是将用户的需求划分为不同的功能,然后将这些功能细分成模块,并给模块一些规则约束,以达到各个模块之间可以相互交流的目的。

概要设计关乎到系统的整体架构,因此想做好一个概要设计,不仅仅要熟悉用户的业务流程,还要具备相当丰富的设计经验。

2.1 概要设计的原则概要设计是根据系统分析的需求和工作环境的情况对整个软件的总体结构进行大致的设计。

概要设计要坚持以下几个原则。

(1)细分原则:软件系统都是由很多不同的模块组成,当设计一套软件时,要先将所有的功能分解。

解决复杂问题的方法是将其分解成几个小问题,一个个来解决。

(2)提高代码重用性:在面向对象设计中,首先考虑的就是代码的重用,一个好的设计,将来在升级换代时不需要太大的改动,节省了人力物力。

(3)从上而下层层分析:概要设计要从整体出发,逐个剖析软件的功能,从上而下,先分析系统总的功能,然后一步步细分,直到最小的功能模块。

(4)一致性原则:概要设计要求所有功能模块在定义时使用统一的规范。

(5)提高独立性,减少耦合:各个模块与模块之间尽量减少关联,否则修改一个地方就会引起其他多处的变动,不符合面向对象的原则。

一般情况下,对类封装后,只允许对类进行扩展,而不能修改,而封装的类必须具有单一职责,既理论情况下不允许两个类共同完成一个功能。

(6)模块的大小要尽量适中:不是结构算法越复杂的模块越好,模块的大小要根据实际工作目标和其他类的耦合紧密程度来决定。

经验表明,一个模块的规模不应过大,模块的总行数应控制在10~100行的范围内,最好为30~60行,这样理解和阅读都较方便。

过长的模块往往是分解不充分的表现,会增加阅读理解的难度;但小规模太多也会使模块之间联系变得复杂,增大系统在模块调用时传递信息所花费的开销。

由于概要设计是整个设计的重中之重,牵一发而动全身,所以要努力做一个好的概要设计,才能在今后软件开发过程中不再反复。

现在软件行业流行模式化驱动设计,将一些市场上比较成功的模式拿来用在自己的设计中。

2.2 将用户需求模块化根据概要设计的原则来分析一下本项目的用户需求,并最终转化成用程序语言描述的模块。

什么样的需求才是一个模块?模块应该具备如下3个特征。

(1)输入和输出:模块必须能被调用并且正确的返回调用,而且调用都是相对一个对象而言,这是模块独立性的一个体现。

(2)处理功能:模块必须可以对调用的输入数据进行灵活的处理,并为输出准备好处理结果。

(3)程序代码:用来实现模块功能的源代码。

2.3 确定系统最终模块概要设计中最重要的就是确定此项目包括哪些模块。

根据上两节讲述的设计原则和模块特征,将用户需求转化为下面的模块。

**************************************************************************/ (1)流程图设计2.2 模块设计1 数据库设计模块2 用户登录识别模块3 用户信息管理模块4 职工信息管理模块2.2.1 程序功能描述1.程序运行之后首先弹出欢迎窗口,继而进入登陆界面2.登陆界面的通过用户密码验证进入操作3.密码输入正确后转入管理员主菜单,就可以选择对职工基本信息和工资进行计算、修改、添加或者查询或退出后回到主菜单。

4.密码输入正确后转入普通用户主菜单,就可以选择对自身基本信息和工资进行计算或者查询或退出后回到主菜单。

5.每个功能模块都有退出的功能,回到主菜单。

6.点击主菜单的退出按钮,退出系统。

三详细设计3.1 数据库设计数据库名称:表名:, ,表:存放登陆用户的用户名和密码表:存放职工基本信息3.2 模块及窗体设计3.2.1 数据库模块设计将数据库的连接包装在一个类中,以便其他模块能够轻松调用,避免每次重写数据库连接代码。

下表是他的基本属性代码如下:创建数据库连接类;.*;{静态方法提高数据库的连接效率(){加载驱动("");(":1433;" +"","","1");}关闭连接( ){( ){{();} ( e) {();} } }关闭执行对象( ){( ){{ ();} ( e) {();} } }关闭结果集( ){( ){{ (); }( e) {(); } } }}3.2.2 用户登录识别模块下表其他的基本属性文件名成员变量成员方法12 ("用户:");3 ("密码:");1 = ();1() {}{( e){1();(()1){(1()()("") 2()()("")){(,"信息不能为空!");}{1(" * '"1()+"'");(1() ){1("")();(2()(1("")())){(()){(1("")()("管理员")){();1 = (1("")());1();} (,"非管理员!");} (()){普通用户();1 = (1("")()1("")());1();}} (1," !");} (1,"登录超时!没有这个用户!");}( ){利用消息对话框提示失败(1,"登录超时!没有这个用户!");1("");2("");}}(()2){1(" ");2(" ");}(()1){上页();();();}(()4){退出(0);}}}3.2.3 管理员模块文件名成员变量成员方法0 ("系统_管理员界面")菜单1 ("主页")子菜单= ("");{( e){(()1){主页}} ( ){}代码:( ){传过来管理员的;(" ") 设置窗体标题(800, 600);(100, 100, 550, 340) 设置窗体位置();();() 设置窗体内容面板()为组件注册监听器= () 创建背景面板(()( ()("3"))) 设置面板背景图片( (5, 5, 5, 5));( (0, 0))是用东西南北和中央1("查看所有职工资料")用来设置鼠标停留时显示提示信息的1( (("5")));("增添职员")用来设置鼠标停留时显示提示信息的( (("")));();("删除资料");( (("")));();("修改信息");( (("")));();("查找职员");( (("1")));();1(0);0(1)主页0(3)退出0(2)帮助(1);(()("4"));(, );(1);();1(h)2(h)3(h);1(h)(h)(h);(h)(h);}{( e){(()1){主页();();();();}(()2){帮助0;();h1= (,"")姓名权限编号h1();}(()3){退出(0);}(()1){();();();}(()){ 增();1= ();1();}(()){删();();();} (()){改();();();} (()){查();2 2();();} }}3.2.3.1文件名成员变量成员方法2 ("回到主页")子菜单1 ("添加职工基本信息");2 ("<——返回上页");2 ("编号:");{( e){(()1){主页}} ( N){}代码:( N){;(" ") 设置窗体标题(100, 100, 450, 350) 设置窗体位置() 设置窗体内容面板( (0, 0));= () 创建背景面板(()( ()("666"))) 设置面板背景图片1(1020,300,120);2(30,65,80,60); 1(80,80,120,30);3(220,65,80,60); (270,80,60,30)(325,80,60,30);7(30,105,80,60); 7(80,120,120,30)姓名8(220,105,80,60); 8(270,120,120,30)年龄4(30,145,80,60); 3(80,160,120,30)住址5(220,145,80,60); 4(270,160,120,30)联系电话6(30,190,80,60); 2(80,205,120,30)部门10(220,190,80,60); 10(270,205,120,30);9(30,235,80,60); 9(80,245,120,30)职务2(355,10,70,30)2("返回上页!");1(270,245,120,30);1( ("",30));2( ("",20));3( ("",20));4( ("",20));5( ("",20));6( ("",20));7( ("",20));8( ("",20));9( ("",20));10( ("",20));1(h);2(h); 4(h);(1);(2);(3);(4);(5);(6);(7);(8);(9);(2);(1);(2);(3);(4);(7);(8);(9);(10);()();()();(1);() 把背景面板添加到窗体内容面板()(4);{调用初始化方法();}( ){();}}{( e){(()1){获取用户输入的信息1();7();"";(())"男";(())"女";8();4();2();10();3();9();11 (1());设置日期格式(" ");利用对象执行语句,进行插入操作(" ('""','""','""','""','""','""','""','""','""')");();(11());();}( ){利用消息对话框提示异常的信息(,"职工添加失败!");();}}(()2){;();();();}下表其他的基本属性文件名成员变量成员方法22 ("回到主页")子菜单1 ("添加职工基本信息");2 ("<——返回上页");2 ("编号:");{( e){(()1){主页}}2( N){}2 {声明连接数据库对象声明语句对象;1 ()菜单条()为组件注册监听器0 ("系统")菜单1 ("回到上页")子菜单2 ("回到主页")子菜单3 ("帮助")子菜单4 ("退出")子菜单;();1 = ();1 = ();2 = ();3 = ();;();("个人信息");("薪水");1 = ("输入查找信息");[]={"职工编号","姓名","职务","薪水"};1 = ();2( s1){1;(" ") 设置窗体标题();(100, 100, 690, 400) 设置窗体位置= () 创建内容面板() 设置窗体内容面板( (0, 0));( (5, 5, 5, 5));( (3, 1, 5, 5));();(4);(0);( ());(300, 20);();();1( (0, 0));2( (0, 0));1( (2, 2, 5, 5));1 = ("职工基本资料表");1( ("微软雅黑", , 16));( ("微软雅黑", , 20));("查找信息");( (("14")));1(1)1();1()1();1(2, );2(1, );1();1(20);1();1();1(1);2(1, );1(0);0(1)子菜单0(2)子菜单0(3)子菜单0(4)子菜单(1);1(h)2(h);3(h)4(h);(h);(1); (2);();();{调用初始化方法();}( ){();}}() {();();}{( e){(() ){[()];}}}{( e){(()1){上页();();();}(()2){主页();();();}(()3){帮助0;();1= ("");1();}(()4){退出(0);}(()){ 显示数据查询数据库{(()){= ;1 = ;(("职工编号")){(" * '"1()+"'");}(("姓名")){(" * '"1()+"'");}(("职务")){(" * '"1()+"'");}(("薪水")){1(" * '"1()+"'");(1()){(" * '"1("")+"'");}}(()){[] = { "编号", "姓名","性别","年龄","部门","住址","职务","电话","密码"};= (, 9);1() 设置表格数据模型1((""),0,0);1((""),0,1);1((""),0,2);1((""),0,3);1((""),0,4);1((""),0,5);1((""),0,6);1((""),0,7);1((""),0,8);}(, "查找失败");}(()){= ;1 = ;[] = { "编号", "基本薪水","奖金","罚金","工资卡","总工资"};= (, 6);1() 设置表格数据模型(("薪水")){(" * '"1()+"'");}(("编号")){(" * '"1()+"'");}(("姓名")){1(" * '"1()+"'");(1()){(" * '"1("")+"'");}} (("职务")){1(" * '"1()+"'");(1()){ (" * '"1("")+"'");} }(()){1((""),0,0);1((""),0,1);1((""),0,2);1((""),0,3);1((""),0,4);1((""),0,5);} (, "查找失败");} (, "薪水查找失败");}( ){}}} }下表其他的基本属性文件名成员变量成员方法1 1 ("职工基本信息修改");2 ("输入更改后信息:");1 = ();1 ("提交");{( e){(()1){主页}}1( ){}; ;;;;;;;;;;;;1 {声明连接数据库对象声明语句对象[] [15];= () 创建内容面板0;1 ("职工基本信息修改");2 ("输入更改后信息:"); 1 = ();1 ("提交");;() {();();}1( ){(" ") 设置窗体标题();(100, 100, 450, 350) 设置窗体位置;() 设置窗体内容面板( (0, 0));= () 创建背景面板(()( ()("666"))) 设置面板背景图片;0 ();0(1020,300,120);1(9020,300,120);2(30,65,180,60); 1(125,120,120,30);1(270,245,120,30);1( ("",30));()为组件注册监听器1(h);(1);(2);(1);(1);() 把背景面板添加到窗体内容面板();{调用初始化方法();}( ){();}}{( e){(()1){获取用户输入的信息1();{设置日期格式(" ");利用对象执行语句,进行插入操作(("")){(" '"1()+"' '""'");} (("")){(" '"1()+"' '""'");} (("")){(" '"1()+"' '""'");} (("")){(" '"1()+"' '""'");} (("")){(" '"1()+"' '""'");} (("")){(" '"1()+"' '""'");}(" '"1()+"' '""'");利用消息对话框提示职工添加成功清空文本行的内容1("");(1,"职工修改成功!");();();();}( ){利用消息对话框提示异常的信息(1,"职工修改失败!");();}}} }}文件名成员变量成员方法1 ()菜单条()组件0 ("系统");1 ("回到上页")子菜单{( e){(()1){主页}} 1( ){}; ; ; ; ; ; ; ; ; ; ;;;;;;;;;;;;;;;;;;{声明连接数据库对象声明语句对象;传值1 ()菜单条()为组件注册监听器0 ("系统")菜单1 ("回到上页")子菜单2 ("回到主页")子菜单3 ("帮助")子菜单4 ("退出")子菜单;("查找");();1 = ();1 = ();2 = ()3 = ();复选框1 = ("输入查找信息");[]={"职工编号","姓名","职务"};;1 = ();( s){;(" ") 设置窗体标题();(100, 100, 550, 400) 设置窗体位置= () 创建内容面板() 设置窗体内容面板( (0, 0));( (5, 5, 5, 5));( (3, 1, 5, 5));();(4);(0);( ());(300, 20);(40, 30);2( (0, 0));1( (2, 2, 5, 5));1 = ("职工基本资料表");1( ("微软雅黑", , 16));( ("微软雅黑", , 20));("查找信息");( (("10")));1(1)1();1( (" "))1();2(1, );[][] ={{"13144" , "李三","女","21","","3#404","经理","120",""},{"" , "","","","","","","",""},{"" , "","","","","","","",""},{"" , "","","","","","","",""}};[] = { "编号", "姓名","性别","年龄","部门","住址","职务","电话","密码"};1 = (, );1();1(20);1(); 1();1(1);2(1, );1(0);0(1)子菜单0(2)子菜单0(3)子菜单0(4)子菜单(1); 1(h)2(h)3(h)4(h);(h)(h);(1); (2);();{调用初始化方法();}( ){();}}() {();(); }{( e){(() ){[()];}}}{( e){(()1){上页();();();}(()2){主页();();();}(()3){帮助0;();1= (,"");1();}(()4){退出(0);}(()){ 显示数据查询数据库{= ;(("职工编号")){(" * '"1()+"'");}(("姓名")){(" * '"1()+"'");}(("职务")){(" * '"1()+"'");}(, "查找失败");(()){[] = { "编号", "姓名","性别","年龄","部门","住址","职务","电话","密码"};= (, 9);1() 设置表格数据模型1((""),0,0);1((""),0,1);1((""),0,2);1((""),0,3);1((""),0,4);1((""),0,5);1((""),0,6);1((""),0,7);1((""),0,8);1(1);}(, "查找失败");}( ){}}(()){ 删除员工{(("职工编号")){((,"确认要删除吗?")){{利用对象执行删除操作(" '"1()+"'");利用消息对话框提示删除操作成功(,"职工删除操作,执行成功!");清空输入学号的文本行}( ){利用消息对话框提示不能删除(,"职工删除操作,执行失败!"); } }}(("姓名")){((,"确认要删除吗?")){{利用对象执行删除操作(" '"1()+"'");利用消息对话框提示删除操作成功(,"职工删除操作,执行成功!");清空输入学号的文本行}( ){利用消息对话框提示不能删除(,"职工删除操作,执行失败!");}} }(("职务")){((,"确认要删除吗?")){{利用对象执行删除操作(" '"1()+"'");利用消息对话框提示删除操作成功(,"职工删除操作,执行成功!");}( ){}}}1("");}( ){(, "职工删除操作,执行失败!");}}}}}3.2.4 普通用户模块下表其他的基本属性代码如下:{声明连接数据库对象声明语句对象[] [15];= () 创建内容面板1 ()菜单条0 ("系统")菜单2 ("回到主页")子菜单1 ("退出")子菜单= ();= ("更新信息");3 ("姓名")子菜单4 ("性别")子菜单5 ("年龄")子菜单6 ("住址")子菜单7 ("电话号")子菜单16 ("密码")子菜单= ("薪水单");8 ("基本工资")子菜单9 ("奖金")子菜单10 ("罚金")子菜单11 ("工资卡")子菜单= ("查看");12 ("基本信息")子菜单13 ("薪水")子菜单= ("帮助");14 ("")子菜单15 ("退出")子菜单1 = ();1;;( ){姓名编号;;(" ") 设置窗体标题();(100, 100, 550, 340) 设置窗体位置() 设置窗体内容面板= () 创建背景面板(()( ()("6"))) 设置面板背景图( (5, 5, 5, 5));( (0, 0));( (, ));(3) 菜单项添加(4);(5);(6);(7)(16);(8);(9);(10);(11);(12);(13);(14);(15);( ("微软雅黑", , 16));( ("微软雅黑", , 16));( ("微软雅黑", , 16));( ("微软雅黑", , 16));();();();();1(0);0(1);0(2);(1);()为组件注册监听1(h)2(h)3(h);4(h)5(h)6(h); 7(h)8(h)9(h); 10(h)11(h)12(h); 13(h)14(h)15(h);1("");1( ("微软雅黑", , 16));(, );(1);();{调用初始化方法();}( ){();}}() {();();}{( e){(()1){(0);}(()2){1(" ");();();();();}(()3){姓名1(" ");"姓名"3姓名4性别5年龄6住址7电话号16密码();3 3();();}(()4){性别1(" ");();2 2();();}(()5){1(" ")年龄"年龄";();3 3();();}(()6){1(" "); 住址"住址";();3 3();();}(()7){1(" ");();电话号"电话";();3 3();();} (()16){1(" "); 电话号"密码";();3 3();();}(()8){1(" ");基本工资{(" '""'");(() ){1("的基本工资:"("")+"元");}}( ){利用消息对话框提示查询失败(,"职工查询失败!");}}(()9){1(" ");奖金{(" '""' ");(() ){1("的奖金:"("")+"元");}}( ){利用消息对话框提示查询失败(,"职工查询失败!");}}(()10){1(" ");罚金{(" '""'");(() ){1("罚"" "("")+"元");}}( ){利用消息对话框提示查询失败(,"职工查询失败!");}}(()11){1(" ");工资卡{(" '""'");(() ){1("的工资卡号:"(""));}}( ){利用消息对话框提示查询失败(,"职工查询失败!");}}(()12){1(" ");职工全部资料{(" * '""'");(() ){("的全部资料:编号:"("")+"姓名:"("")+"性别:"("")+"年龄:"("")+"部门:"("")+"住址:"("")+"职务:"("")+"电话号:"(""));}}( ){利用消息对话框提示查询失败(,"职工查询失败!");}}(()13){1(" ");职工工资单{(" * '""'");(() ){("的全部资料: "+" "+"{基本工资:"("")+"奖金:"("")+" "+"罚金:"("")+" "+"工资卡:"("")+" "+"实发工资:"("")+"}");}}( ){利用消息对话框提示查询失败(,"职工查询失败!");}}(()14){();();();}(()15){(0);} } }}3.2.5主窗体菜单设计分为2个主窗体:管理员、普通用户;管理员管理分为:对职工的信息管理(增删改查)、对职工工资的管理(基本工资、奖金、罚金、总工资)及自身信息的管理;普通用户管理:对自己的有关信息进行修改、添加、删除、查看;四软件测试测试数据截图,将数据存储在数据库中:五、测试的方法软件测试的方法和技术是多种多样的,网路上也提供了很多免费的工具。

相关主题