高校工资管理系统课程设计.doc

上传人:仙人指路1688 文档编号:3786565 上传时间:2023-03-21 格式:DOC 页数:32 大小:508KB
返回 下载 相关 举报
高校工资管理系统课程设计.doc_第1页
第1页 / 共32页
高校工资管理系统课程设计.doc_第2页
第2页 / 共32页
高校工资管理系统课程设计.doc_第3页
第3页 / 共32页
高校工资管理系统课程设计.doc_第4页
第4页 / 共32页
高校工资管理系统课程设计.doc_第5页
第5页 / 共32页
点击查看更多>>
资源描述

《高校工资管理系统课程设计.doc》由会员分享,可在线阅读,更多相关《高校工资管理系统课程设计.doc(32页珍藏版)》请在三一办公上搜索。

1、高校工资管理系统数据库原理课程设计组 员: 张 智 20091602310117 (A) 黎海靖 20091602310100 (B) 张洪荣 20091602310116 (A)学 院: 信 息 学 院 专 业: 计算机科学与技术 指导老师: 杨 雄、陈 静 完成日期: 2011年6月16日 目 录1.概述31.1项目背景31.2编写目的31.3软件定义31.4开发环境32.需求分析42.1需求分析说明42.2数据库需求分析42.2.1 系统功能基本要求42.2.2 数据库要求42.3数据流图52.3.1顶层数据流图52.3.21 层数据流图52.3.32层数据流图_1验证账号6 2.3.4

2、2层数据流图_2系统用户管理62.3.52层数据流图_3员工信息管理72.3.62层数据流图_4工资设立标准72.3.72层数据流图_5工资信息管理83.数据库概念结构设计93.1 E-R模型图93.2 关系模型103.2.1由E-R图转换的关系模型103.2.2工资部分实体属性图103.2.3教职工部分实体属性图113.2.4出勤状况实体属性图113.2.5用户实体属性图114.数据库逻辑结构设计124.1数据表关系图124.2教职工信息表124.3工资信息表124.4工资结算方表134.5工作情况信息表144.6用户信息表145.程序结构图155.1系统架构图155.2程序功能图156.程

3、序源代码及其说明166.1登陆界面实现代码和截图166.1.1核心代码166.1.2登陆界面166.2工资查询实现代码及截图176.2.1核心代码 176.2.2查询界面206.3出勤功能实现代码及截图216.3.1核心代码216.3.2考勤情况界面236.4教职工基本信息添加实现代码及截236.4.1核心代码236.4.2 教职工信息查询界面256.5系统设置实现代码和截图266.5.1确定修改系统设置实现代码266.5.1删除教职工信息功能实现代码27总结29参考文献291. 概 述1.1项目背景随着高等学校的快速发展,高校规模越来越大,教职工的数量也越来越多,高校工资管理更加的复杂,而工

4、资管理是一项琐碎、复杂而又十分细致的工作,工资计算、发放、核算的工作量很大,一般不允许出错,如果实行手工操作,每月发放工资须手工填制大量的表格,这就会耗费工作人员大量的时间和精力,计算机进行工资发放工作,不仅能够保证工资核算准确无误、快速输出,而且还可以利用计算机对有关工资的各种信息进行统计,服务于财务部门其他方面的核算和财务处理,同时计算机具有着手工管理所无法比拟的优点.例如:检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。这些优点能够极大地提高人事工资资管理的效率,也是企业的科学化、正规化管理,与世界接轨的重要条件。这就对高校工资管理提出了新的要求,用计算机管理系统来管

5、理高校工资已经成为目前的趋势,使用计算机可以高速,快捷地完成以上工作。在计算机联网后,数据在网上传递,可以实现数据共享,避免重复劳动,规范数据管理行为,从而提高了管理效率和水平。高校工资管理系统便是以计算机为工具,通过对工资管理所需的信息管理,不仅把管理人员从繁琐的数据计算处理中解脱出来,而且优化了管理体系,使其高效化,简易化,智能化,也提高了透明度和互动性。1.2编写目的为了分析人工管理高校工资的流程,把人工模式抽象为可在计算机上处理的自动模式,对高校工资的科学管理进行分析与总结,便于开发小组成员对系统整体功能的认识,通过该文档,确定了系统的目的和功能,以及管理的流程和方法,同时也为使用者提

6、供参考。1.3软件定义 (1)员工基本信息的录入,修改,删除。 (2)工资标准设定功能。具体包括职务工资,职称工资以及其他工资标准的设定。 (3)工资信息查询。 (4)员工工资表创建。 (5)工资调整管理。 (6)工资统计。为完善系统管理功能,增加工资系统用户管理功能,包括系统用户数据的添加,修改和删除。教职员工为系统普通用户,只能运行系统个人工资查询功能;系统管理员则能运行系统所有功能,从而有效保证系统数据的安全性。1.4开发环境Windows7 + Visual C+6.0 + SQL Server 20052. 需求分析2.1 需求分析说明2.2.1 系统功能的基本要求:l 教职工各个职

7、位和职称所确定的基本工资的设定l 加班津贴管理,根据加班时间和类型给予不同的加班津贴;l 按照不同职位和职称的基本工资情况、教职工的考勤情况产生教职工的每月的月工资;l 教职工年终奖金的生成,教职工的年终奖金计算公式(教职工本年度的工资总和津贴的总和)/12;l 教职工工资报表。能够查询单个教职工的工资情况、每个部门的工资情况、按月的工资统计,并能够打印;2.2.2 数据库要求:在数据库中至少应该包含下列数据表:l 教职工考勤情况表;l 教职工情况表,反映教职工的职位、职称,基本工资等信息;l 教职工津贴信息表,反映教职工的加班时间,科研贡献以及其他津贴情况等;l 教职工基本信息表;l 教职工

8、月工资表。2.2 数据流图2.2.1 顶层数据流图控制面板高校工资管理系统显示器数据库存取数据用户命令显示信息 2.2.2 1层数据流图2.2.3 2层数据流图_1验证帐号2.2.4 2层数据流图_2系统用户管理2.2.5 2层数据流图_3员工信息管理2.2.6 2层数据流图_4工资标准设立2.2.7 2层数据流图_5工资信息管理3. 数据库概念结构设计3.1 ER模型图3.2 关系模型3.2.1由E-R图转换的关系模型(1) 员工信息表(教职工号,姓名,院系,职位,职称,电话号码)此为联系“员工信息管理”对应的关系模式(2) 工资表(教职工号,姓名,基本工资,奖金,津贴,扣除工资,年份,月份

9、)此为联系“工资信息管理”对应的关系模式(3) 工资结算方案表(方案号,基本工资设置,奖金设置,津贴设置,缺勤减分设置,迟到早退减分设置,请假减分设置,课时不足减分设置,工作完成量减分设置)此为工资实体对应的关系模式,该关系模式已包含了联系“工资信息管理”所对应的关系模式。(4) 工作情况表(教职工号,月份,缺勤次数,迟到早退次数,请假次数,缺少课时,工作完成量)此为考勤信息对应的关系模式。(5) 用户信息(帐号,密码)此为用户实体对应的关系模式。3.2.2 工资部分实体属性图3.2.3 教职工部分实体属性图3.2.4 出勤状况实体属性图3.2.5 用户实体属性图4. 数据库逻辑结构设计4.1

10、数据表关系图4.2教职工信息表字段名称字段描述类型主键备注ID教职工号Varchar(10)是非空Name姓名Varchar(10)否非空Dept院系Varchar(30)否非空Position职位Varchar(10)否非空Title职称Varchar(6)否非空Phone电话号码Varchar(11)否4.3工资信息表字段名称字段描述类型主键备注ID教职工号Varchar(10)是非空Name姓名Varchar(10)否非空Bsalary基本工资Float(6)否非空Reward奖金Float(6)否非空Allowance津贴Float(6)否Deduction扣除工资Float(6)否Y

11、ear年份Smallint否非空Month月份Smallint否非空4.4工资结算方案表字段名称字段描述类型主键备注PID方案号Smallint(4)是非空Basic_salary基本工资设置Smallint(6)否非空Reward奖金设置Smallint否非空Allowance津贴设置Smallint否Absenteeism缺勤减分设置Smallint(4)否Eary_later迟到早退减分设置Smallint(4)否Ask_for_leaver请假减分设置Smallint(4)否Amount_of_class课时不足减分设置Smallint(4)否Work_finished工作完成量减分设

12、置Smallint(4)否4.5工作情况信息表字段名称字段描述类型主键备注ID教职工号Varchar(10)是非空Date月份Varchar(4)否非空Absenteeism缺勤次数Smallint(4)否Early_late迟到早退次数Smallint(4)否Ask_for_leave请假次数Smallint(4)否Amount_of_class缺少课时Smallint(4)否Work_finished工作完成量Smallint(4)否非空4.6 用户信息表字段名称字段描述类型主键备注PID帐号Varchar(20 )是非空Password密码Varchar( 20)否非空5. 程序结构图5

13、.1 系统架构图数据或命令处理高校工资管理系统操作界面(数据或命令请求)发送数据或命令请求客户端返回命令执行得到的结果集数据库服务器端5.2 程序功能图工资信息管理工资结算工资修改工资创建工资统计工资标准设立其他工资标准设立职称工资标准设立职务工资标准设立员工信息管理员工信息删除员工信息修改员工信息添加系统用户管理用户数据添加用户数据修改修改用户口令高校工资管理系统 高校工资管理系统功能模块结构图6. 程序源代码及其说明6.1 登陆界面实现代码及截图 6.1.1核心代码void CLogInDlg:OnOK() / TODO: Add extra validation hereUpdateDa

14、ta(TRUE);if(m_usrName = )AfxMessageBox(用户账号不能为空!);return;if(m_usrPasswd = )AfxMessageBox(用户密码不能为空!);return;CDatabase db;CString sql;db.Open(NULL,FALSE,FALSE,ODBC;DSN=salaryDB;UID=zhang,PWD=NULL);ClogInSet* pset = new ClogInSet(&db);sql.Format(select * from login where ID=%s and passwd=%s,m_usrName,m

15、_usrPasswd);pset-Open(AFX_DB_USE_DEFAULT_TYPE,sql);if(m_usrName != pset-m_ID | m_usrPasswd != pset-m_passwd)AfxMessageBox(用户账号或密码错误!);return;CDialog:OnOK();6.1.2 登陆界面6.2 工资查询实现代码及截图 6.2.1 核心代码void CpaySearch:OnQuery() / TODO: Add your control notification handler code hereCDatabase db;CString sql;db

16、.Open(NULL,FALSE,FALSE,ODBC;DSN=salaryDB;UID=zhang,PWD=NULL);Csalaryset* pset = new Csalaryset(&db);int i=0;CString str;CString ty,tm,td;m_years.GetWindowText(ty);m_months.GetWindowText(tm);m_departments.GetWindowText(td);/str.Format(%d,m_years.GetCurSel();/AfxMessageBox(str);if(radioSel = 0)待添加的隐藏文

17、字内容1if(m_years.GetCurSel() = 0)if(m_months.GetCurSel() = 0 & m_departments.GetCurSel() != 0)sql.Format(select * from searchSalary where dept=%s,td);elseif(m_months.GetCurSel() != 0 & m_departments.GetCurSel() = 0)sql.Format(select * from searchSalary where month=%s,tm);elseif(m_months.GetCurSel() !=

18、 0 & m_departments.GetCurSel() != 0)sql.Format(select * from searchSalary where dept=%s and month=%s,td,tm);elsesql.Format(select * from searchSalary);else/if(m_years.GetCurSel() != 0)if(m_months.GetCurSel() = 0 & m_departments.GetCurSel() != 0)sql.Format(select * from searchSalary where dept=%s and

19、 year=%s,td,ty);elseif(m_months.GetCurSel() != 0 & m_departments.GetCurSel() = 0)sql.Format(select * from searchSalary where month=%s and year=%s,tm,ty);elseif(m_months.GetCurSel() != 0 & m_departments.GetCurSel() != 0)sql.Format( select * from searchSalary where year=%s and month=%s and dept=%s, ty

20、,tm,td );elsesql.Format(select * from searchSalary where year=%s,ty);elseUpdateData(TRUE);if(m_years.GetCurSel() = 0)if(m_months.GetCurSel() = 0 & m_departments.GetCurSel() != 0)sql.Format(select * from searchSalary where ID=%s and dept=%s,m_ID,td);elseif(m_months.GetCurSel() != 0 & m_departments.Ge

21、tCurSel() = 0)sql.Format(select * from searchSalary where ID=%s and month=%s,m_ID,tm);elseif(m_months.GetCurSel() != 0 & m_departments.GetCurSel() != 0)sql.Format(select * from searchSalary where ID=%s and dept=%s and month=%s,m_ID,td,tm);elsesql.Format(select * from searchSalary where ID=%s,m_ID);e

22、lse/if(m_years.GetCurSel() != 0)if(m_months.GetCurSel() = 0 & m_departments.GetCurSel() != 0)sql.Format(select * from searchSalary where ID=%s and dept=%s and year=%s,m_ID,td,ty);elseif(m_months.GetCurSel() != 0 & m_departments.GetCurSel() = 0)sql.Format(select * from searchSalary where ID=%s and mo

23、nth=%s and year=%s,m_ID,tm,ty);elseif(m_months.GetCurSel() != 0 & m_departments.GetCurSel() != 0)sql.Format( select * from searchSalary where ID=%s and year=%s and month=%s and dept=%s, m_ID,ty,tm,td );elsesql.Format(select * from searchSalary where ID=%s and year=%s,m_ID,ty);UpdateData(FALSE);/sql.

24、Format(select * from searchSalary);AfxMessageBox(sql);m_printList.DeleteAllItems();pset-Open(AFX_DB_USE_DEFAULT_TYPE,sql);if(pset-GetRecordCount() = 0)delete pset;return;while(!pset-IsEOF()str.Format(%s,pset-m_ID);m_printList.InsertItem(i,str);str.Format(%s,pset-m_name);m_printList.SetItemText(i,nam

25、e,str);str.Format(%s,pset-m_dept);m_printList.SetItemText(i,department,str);str.Format(%s,pset-m_position);m_printList.SetItemText(i,position,str);str.Format(%.2f,pset-m_allowance);m_printList.SetItemText(i,allowance,str);str.Format(%.2f,pset-m_salary);m_printList.SetItemText(i,salary,str);str.Forma

26、t(%.2f,pset-m_reward);m_printList.SetItemText(i,reward,str);str.Format(%d,pset-m_year);m_printList.SetItemText(i,year,str);str.Format(%d,pset-m_month);m_printList.SetItemText(i,month,str);i+;pset-MoveNext();db.Close();delete pset;6.2.2 查询界面6.3出勤功能实现代码及截图 6.3.1核心代码void CcheckOn:OnRefresh() / TODO: Ad

27、d your control notification handler code hereUpdateData(TRUE);CDatabase db;CString sql,str;db.Open(NULL,FALSE,FALSE,ODBC;DSN=salaryDB;UID=zhang,PWD=NULL);CcheckOnSet *pset = new CcheckOnSet(&db);if(m_isAttend.GetCurSel() = 0)sql.Format(UPDATE attend SET attendedTime=attendedTime+1 WHERE ID=%s,m_numb

28、er);if(m_addedTimes !=0)sql.Format(update attend set attendedTime=attendedTime+1,extraHours=extraHours+%.1f where ID=%s,m_addedTimes,m_number);AfxMessageBox(sql);db.ExecuteSQL(sql);sql.Format(select * from attend where ID=%s,m_number);/int count = m_list.GetItemCount();pset-Open(AFX_DB_USE_DEFAULT_T

29、YPE,sql);/*if(pset-GetRecordCount() = 0)delete pset;return;int flag=0;int i=0;if(count != 0)for(i;im_ID);m_list.InsertItem(0,str);str.Format(%s,pset-m_name);m_list.SetItemText(0,name,str);str.Format(%d,pset-m_attendedTime);m_list.SetItemText(0,attend,str);str.Format(%d,pset-m_extraHours);m_list.SetI

30、temText(0,atime,str);6.3.2 考勤情况界面6.4教职工基本信息添加实现代码及截图 6.4.1核心代码void CWorkersInfo:OnModify() / TODO: Add your control notification handler code hereint count = m_wkrsInfo.GetItemCount();tryCDatabase db;CString sql;db.Open(NULL,FALSE,FALSE,ODBC;DSN=salaryDB;UID=zhang,PWD=NULL);CsysSet *sset = new CsysS

31、et(&db);double al = 0;double sal = 0;/CcheckOnSet *cset = new CcheckOnSet(&db);CTime times = CTime:GetCurrentTime();int year=times.GetYear();int month=times.GetMonth();/*sql.Format(%d,count);AfxMessageBox(sql);sql.Format(%d-%d,year,month);AfxMessageBox(sql);*/CString ID,Name,Pos,Title,Dept,Phone;for

32、(int i = 0;i count;i+)ID = m_wkrsInfo.GetItemText(i,id);Name = m_wkrsInfo.GetItemText(i,name);Pos = m_wkrsInfo.GetItemText(i,position);Title = m_wkrsInfo.GetItemText(i,title);Dept = m_wkrsInfo.GetItemText(i,department);Phone = m_wkrsInfo.GetItemText(i,phone);/*sql.Format(%s,%s,%s,%s,%s,%s,ID,Name,Po

33、s,Title,Dept,Phone);AfxMessageBox(sql);/ Print the sql statement for check.*/-Add to baseInfo table.-sql.Format(insert into baseInfo (ID,name,position,title,dept,phone) values (%s,%s,%s,%s,%s,%s),ID,Name,Pos,Title,Dept,Phone);db.ExecuteSQL(sql);/-Add to attend table.-sql.Format(insert into attend (ID,name,attendedTime,extraHours) values (%s,%s,0,0),ID,Name);db.ExecuteSQL(sql);/-Add to searchSalary table.-/*Get position default sal

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 办公文档 > 其他范文


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号