南京邮电大学软件设计.doc
《南京邮电大学软件设计.doc》由会员分享,可在线阅读,更多相关《南京邮电大学软件设计.doc(27页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、软件设计题 目: 公司计薪系统 专 业计算机科学与技术学 生 姓 名班 级 学 号指 导 教 师指 导 单 位计算机学院软件工程系日 期2008.3.103.21教师评语 教师签名: 年 月 日成绩评定备 注一、 课题名称公司记薪系统功能内容:计算不同员工的薪水且不同的工作范围就会有不同的税收,可以设置员工的基本信息,在登录时用户需要密码。二、 课程内容和要求因为本课程的要求的功能对于一个公司是在过于简单,所以我自己的任务和目标如下:1任务和目标:(1). 三种员工的记薪方式:总经理的工资 = 基本工资 + 加班获得的津贴 - 缺勤的扣除 - 个人所得税;时薪人员的工资 = 工作小时数 * 每
2、小时工资 + 加班获得的津贴 - 缺勤的扣除 - 个人所得税;销售人员的工资 =工作小时数 * 每小时工资 + 佣金 * 销售额 + 加班获得的津贴 - 缺勤的扣除 - 个人所得税。(2)员工基本信息的录入和修改:能够添加员工的基本信息,修改以及删除。用Access来保存员工的基本信息且能够在窗体上立即显示,而且如果员工的编号重复时能够包出错误信息。(3)员工的考勤和加班以及用户的添加员工工资的基本设置:在有关的窗体上添加的时候即时的把更新的内容存到数据库中。(4)查询工资:员工只能查询关于本人的工资信息,换个角度也就是关于权限的问题。(5). 关于年终奖金:能够间接地体现员工本身的敬业态度核
3、对公司的贡献多少。(6)退出时的数据保存:对于数据库的操作问题,在上述的功能中已经实现。2. 个人进一步想要扩展的功能:工资信息用Excel的文件输出的报表功能,以及软件信息的帮助功能。3各功能的模块:基本模块如下:工资设置的模块,员工信息的模块,加班信息的模块,考勤信息的模块,医疗保险的模块,登陆信息的模块。三、 算法分析和流程图1开发环境: 开发工具Dephi 7.0,数据源文件Access。 2总体设计: 主要窗体:一个主窗体frmMain,一个登陆的窗体frmLogin,一个修改和增加登陆信息的窗体frmAdminLogin,一个增加用户的窗体frmAdminLoginAdd,一个修改
4、用户密码的窗体frmAdminLoginModify,一个修改工种的窗体frmGz,一个修改加班类别的窗体frmJblb,一个修改缺勤类别的窗口frmQqlb,一个修改员工基本信息的窗体frmYgxx,一个修改考勤信息的窗体frmKqxx,一个修改医疗保险的窗体frmYlbx, 3数据设计:工种的数据表的设置:字段名称数据类型说明gz_id自动编号主键gz文本工种jbgz货币基本月工资津贴信息的数据表设置:字段名称数据类型说明jt_id自动编号主键yg_id数字jbsj日期/时间加班时间jbts数字加班天数jblb_id数字加班类别考勤信息的数据表设置:字段名称数据类型说明kq_id自动编号主
5、键yg_id数字kqsj日期/时间考勤时间qqts数字缺勤天数qqlb_id数字缺勤类别年终奖金的数据表设置:字段名称数据类型说明nzjj_id自动编号主键yg_id数字员工编号nian数字年zj货币总计医疗保险的数据表设置字段名称数据类型说明ylbx_id自动编号主键yg_id数字ylfy货币医疗报销费bxfy货币保险费sj日期/时间时间缺勤类别的数据表的设置:字段名称数据类型说明qqlb_id自动编号主键qqlb文本缺勤类别jbgz货币扣除月工资ndxs数字扣除年度分红系数加班类别的数据表的设置:加班类别数据类型说明jblb_id自动编号主键jblb文本加班类别jbgz货币增加月工资ndx
6、s数字增加年度分红系数年度效益的数据表的设置:字段名称数据类型说明ndxy_id自动编号主键ndxy货币年度效益nian数字年月工资信息数据表的设置:字段名称数据类型说明ygz_id自动编号主键yg_id数字员工编号nian数字年yue数字月jbgz货币原本工资gs数字工时sgz货币元/时jt货币津贴kc货币扣除bx货币医疗保险zj货币总计yj数字佣金xse数字销售额员工基本信息的数据表设置:字段名称数据类型说明yg_id自动编号主键ygh文本员工号、主键xm文本姓名gz_id数字工种bm文本部门gzsj日期/时间工作时间gs数字每月工时sgz数字元/时yj数字佣金xse数字销售额用户信息的数
7、据表设置:字段名称数据类型说明uid文本用户名、主键Pwd文本用户密码Pwd_level文本用户权限界面的主要流程是这样的:然后主界面的各个子页面通过一些按钮来弹出各自所需的窗体。4 详细设计主界面的设计如下:主界面的组件主要是一个TpageControl,然后在这个TpageControl上一个个的添加页面,如上图所示,总共有9个页面,在工资标准设定的界面上有如下组件:TradioGroup,TDBGrid还有几个TspeedButton.里面有四个TDBGrid,每个都有三个TspeedButton,然后不同的TspeedButton对应不同的窗体显示,比如说在选中TradioGroup中
8、的工种,然后按下其界面下的添加就会显示下面的窗体如果选其他的选项的话就会出现与之想对应的界面。其他与之相同的界面设计,这里就不多介绍了。在主界面的定义的组件有:TapplicationEvents,Tlabel,Timage,TbitBtn,Tbutton,TspeedButton,TDBGrid,Tsplitter,Tedit,TcomboBox,Tpanel,TtabSheet主界面里面定义的函数主要有以下: procedure showGzbz(Index: Integer);/工资标准设定窗体显示内容不同的函数 function AddDbData(frm: TfrmPBase): B
9、oolean;/往数据库里面写数据的函数 function ModifyDbData(frm: TfrmPBase; ds: TDataSet): Boolean;/修改数据库 function DelDbData(ds: TDataSet): Boolean;/删除数据库里面的数据function IsHaveRelation(ds: TDataSet; field1, table2, field2: string):Boolean; /两个内容的比较 procedure CalcYgz();/计算月工资的函数procedure CalcNzjj();/计算年终奖金的函数还有一个比较不一样的
10、是DataModule的建立,也就是实现各个窗体之间的数据连接。其里面包括ADO里面的组件:TADOConnection,TADOQuery,TdataSource。其最主要的功能就是用起连接数据库。TADOQuery用于使用SQL语句查询数据 ,TADOConnection用与联接数据库使用,然后每一个TADOQuery都有一个TdataSource与之相连接,且要把数据表中的各个属性给添加进TADOQuery的fields里面。四 主要部分源程序工资标准设定也面不同显示的代码 procedure TfrmMain.showGzbz(Index: Integer); procedure sh
11、owcontrol(Index: Integer; show: Boolean); begin case Index of 0:begin /选不同选相时显示界面的不同,按钮和页面与之相对应 dbgrd1.Visible := show; btn1.Visible := show; btn2.Visible := show; btn3.Visible := show; end; 1:begin /选择加班时显示的页面 dbgrd2.Visible := show; btn4.Visible := show; btn5.Visible := show; btn6.Visible := show;
12、 end; 2:begin /选择缺勤时显示的页面 dbgrd3.Visible := show; btn7.Visible := show; btn8.Visible := show; btn9.Visible := show; end; 3:begin /选择年度效益时显示的页面 dbgrd4.Visible := show; btn10.Visible := show; btn11.Visible := show; btn12.Visible := show; end; end; end;begin case Index of 0:begin/显示工种设置的信息,其他屏蔽,其他类似 sh
13、owcontrol(1, False); showcontrol(2, False); showcontrol(3, False); showcontrol(0, True); end; 1:begin showcontrol(0, False); showcontrol(2, False); showcontrol(3, False); showcontrol(1, True); end; 2:begin showcontrol(0, False); showcontrol(1, False); showcontrol(3, False); showcontrol(2, True); end
14、; 3:begin showcontrol(0, False); showcontrol(1, False); showcontrol(2, False); showcontrol(3, True); btn10.Visible := False; / 不能更改企业年度效益 btn11.Visible := False; btn12.Visible := False; end; end;end;/ 添加资料的函数function TfrmMain.AddDbData(frm: TfrmPBase): Boolean;begin frm.strState := N; / 这几个函数都是继承了另外
15、一个窗体TPBase上的信息 if mrOk = frm.ShowModal then Result := True else Result := False;end;/ 修改资料的函数function TfrmMain.ModifyDbData(frm: TfrmPBase; ds: TDataSet): Boolean;begin Result := False; if ds.RecordCount 0 then begin /当数据库中有内容可以修改的时候 frm.strState := M; if mrOk = frm.ShowModal then /是否按下确定 Result :=
16、True; end else Application.MessageBox(没有可以修改的信息。, PChar(Application.Title),MB_OK + MB_ICONINFORMATION); /没有可以提供修改消息的时候出现提示对话框end;/ 删除资料function TfrmMain.DelDbData(ds: TDataSet): Boolean;begin Result := False; if ds.RecordCount 0 then begin /看数据库中是否还有信息 if Application.MessageBox(是否要删除此信息?, PChar(Appl
17、ication.Title), MB_YESNO + MB_ICONQUESTION) = IDYES then /提示是否删除数据 begin ds.Delete;/删除数据 Result := True; end; end else Application.MessageBox(没有可以删除的信息。, PChar(Application.Title), MB_OK + MB_ICONINFORMATION); /没有可以删除的信息时应该有报错end;/IsHaveRelation函数functionTfrmMain.IsHaveRelation(ds: TDataSet; field1,
18、table2, field2: string):Boolean;var v: Variant; q: TADOQuery;begin Result := False; if ds.RecordCount 0 then begin /判断数据库中是否为空 if dsfield1 null then begin/判断数据库中的第一个属性是否为空 v := dsfield1; q := TADOQuery.Create(nil); q.Connection := dm.con1; /进行数据库的链接 q.SQL.Text := select+field2+from+table2+where+fiel
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 南京 邮电大学 软件设计
限制150内