工资管理系统课程设计报告.docx
《工资管理系统课程设计报告.docx》由会员分享,可在线阅读,更多相关《工资管理系统课程设计报告.docx(16页珍藏版)》请在冰豆网上搜索。
![工资管理系统课程设计报告.docx](https://file1.bdocx.com/fileroot1/2023-4/28/67e494ba-7314-4d02-a428-78cf0b638a99/67e494ba-7314-4d02-a428-78cf0b638a991.gif)
工资管理系统课程设计报告
目录
第1章系统分析1
1.1系统背景1
1.2开发工具1
1.3业务流程分析2
1.4数据字典3
第2章系统设计4
2.1系统框架4
2.2系统模块功能图4
2.3模块分析5
2.4系统数据库设计5
第3章系统实现6
第4章系统测试12
4.1测试目的12
4.2测试过程12
4.3系统改进13
结论14
参考文献15
第1章系统分析
1.1系统背景
随着社会的进步和计算机技术的发展,特别是微型计算机的大范围普及,计算机的应用逐渐由科学计算、实时控制等方面向非数值处理的各个领域中渗透。
尤其是以微型计算机为处理核心,以数据库管理系统为开发环境的管理系统在办公室自动化以及商业信息管理等方面的应用,日益受到人们的关注。
随着社会信息量的迅速增长,计算机处理的数据量不断增加。
文件管理系统采用的一次最多存取一个记录的访问方式,以及在不同文件之间缺乏相互联系的结构,越来越不能适应管理大量数据的需要,于是数据库管理系统便应运而生。
数据库管理系统是用来控制建立数据库中的数据、数据的存取,并维护数据库的数据。
从文件管理到数据库管理,代表了两代不同的数据管理技术。
今天,数据库管理已成为计算机信息管理的主要方式。
数据库的应用非常广泛,可应用于各行各业。
尤其目前电脑发展神速,运用广泛,甚至每个公司、每户都有电脑,只要是稍复杂的数据,都可制作成数据库,交由电脑来管理。
用电脑管理数据,可免除人为的疏忽,并且运算速度快,可靠性提高。
在我国,管理信息系统是计算机应用最广泛的领域之一。
随着我国经济建设突飞猛进,管理科学化与管理手段的现代化已经提到非常重要的地位。
企、事业单位为了提高自身的管理水平和竞争能力,纷纷投入人力物力,开发适合本单位需求的管理信息系统。
中小企业与行政事业单位建立的管理信息系统尤如雨后春笋,一个新的开发和管理信息系统的热潮正在掀起,为此我计划设计:
某公司工资管理系统。
它可以大大减少人力,使人们摆脱了原有系统的局限性,只要在电脑上轻轻地点几下就可以完成查询、输入、修改、输出等功能。
非计算机专业的人员也可以熟练地进行操作。
1.2开发工具
VisualC++6.0,简称VC或者VC6.0,是微软推出的一款C++编译器,将“高级语言”翻译为“机器语言(低级语言)”的程序。
VisualC++6.0是微软公司最新出品的功能最为强大的可视化开发工具[1]。
C++是一种大型的编程语言[2]。
VisualC++6.0由Microsoft开发,它不仅是一个C++编译器,而且是一个基于Windows操作系统的可视化集成开发环境(integrateddevelopmentenvironment,IDE)。
VisualC++6.0由许多组件组成,包括编辑器、调试器以及程序向导AppWizard、类向导ClassWizard等开发工具。
这些组件通过一个名为DeveloperStudio的组件集成为和谐的开发环境。
Microsoft的主力软件产品。
VisualC++是一个功能强大的可视化软件开发工具。
自1993年Microsoft公司推出VisualC++1.0后,随着其新版本的不断问世,VisualC++已成为专业程序员进行软件开发的首选工具。
虽然微软公司推出了VisualC++.NET(VisualC++7.0),但它的应用的很大的局限性,只适用于Windows2000,WindowsXP和WindowsNT4.0。
所以实际中,更多的是以VisualC++6.0为平台。
VisualC++6.0不仅是一个C++编译器,而且是一个基于Windows操作系统的可视化集成开发环境(integrateddevelopmentenvironment,IDE)。
VisualC++6.0由许多组件组成,包括编辑器、调试器以及程序向导AppWizard、类向导ClassWizard等开发工具。
这些组件通过一个名为DeveloperStudio的组件集成为和谐的开发环境。
MicrosoftOfficeAccess是由微软发布的关联式数据库管理系统。
它结合了MicrosoftJetDatabaseEngine和图形用户界面两项特点,是MicrosoftOffice的系统程式之一。
MicrosoftAccess在很多地方得到广泛使用,例如小型企业,大公司的部门,和喜爱编程的开发人员专门利用它来制作处理数据的桌面系统。
它也常被用来开发简单的WEB应用程序。
这些应用程序都利用ASP技术在InternetInformationServices运行。
比较复杂的WEB应用程序则使用PHP/MySQL或者ASP/MicrosoftSQLServer。
Access数据库以文件形式保存,文件的扩展名是mdb[3]。
本案例将用VC++制作一个工资管理系统,可以基本实现工资管理的大部分功能。
本案例将采用简化的过程代码和完整的系统集成技术,并采用ODBC方式连接数据源。
1.3业务流程分析
工资管理是任何企事业单位都需要进行的一项工作,因此,开发制作工资管理系统具有较大的社会现实意义,同时工资管理系统的最大特征是数据处理,它是数据库应用系统的典范,它具有一切数据库应用系统的特征,如数据录入,数据统计和数据报表等,其系统结构与现实生活紧密结合,具体直观。
在本系统的设计中,将主要实现如下的一些功能:
数据库管理:
对工资的基本信息进行管理,使工资管理信息增删、编辑更为简便。
工资数据浏览功能:
通过第一条,下一条,前一条,最后一条等按钮可以根据用户的需求浏览工资管理信息。
增加记录功能:
通过增加记录按钮和刷新记录按钮增加新的工资管理信息。
删除记录功能:
通过删除记录按钮删除原有的工资管理信息。
刷新记录功能:
通过刷新记录按钮刷新工资管理信息。
统计计算功能:
通过执行统计按钮实现统计计算,并更新在数据库内。
1.4数据字典
数据字典(Datadictionary)是一种用户可以访问的记录数据库和应用程序源数据的目录。
数据字典是系统的中各类数据描述的集合,是进行详细的数据收集和数据分析所获得的主要成果[4]。
主动数据字典是指在对数据库或应用程序结构进行修改时,其内容可以由DBMS自动更新的数据字典。
被动数据字典是指修改时必须手工更新其内容的数据字典。
数据字典在数据库设计中占有很重要的地位。
表1-1为开发软件过程所用到的数据结构:
表1-1职工工资基本信息
名称:
职工工资数据表
描述:
记录职工工资基本信息的表
定义:
职工工资数据表=职工编号+姓名+部门+年份+月份+输入日期+基本工资+业绩工资+奖金+津贴+各种补助+应发数+水电费+房租+储蓄+会费+保险+扣除总计+实发工资
第2章系统设计
2.1系统框架
工资管理系统的主要任务是用计算机对各种工资信息进行日常的管理,如修改、增加、删除、刷新以及存储等,迅速准确地完成各种工资信息的统计计算和汇总工作,针对系统服务对象的具体要求,设计了工资管理系统。
工资管理系统主要功能有:
对职工的工资进行计算、增加、修改、删除、刷新。
可以对职工的工资档案进行个别、部分和批量修改,同时,能对各职工的工资进行计算,即计算应发金额、应扣金额及实发金额等。
2.2系统模块功能图
工资管理系统主要根据工资管理的要求进行设计,并了解工资管理的工作流程,系统模块如图2-1所示。
图2-1系统模块功能图
2.3模块分析
“工资管理”模块包括职工工资资料的入库,查询等功能。
可以查询职工编号,姓名,部门,年份,月份,输入日期,基本工资,业绩工资,奖金,津贴,各种补助,应发数,水电费,房租,储蓄,会费,保险,扣除总计,实发工资等。
2.4系统数据库设计
根据以上功能分析,需要建立以下的表:
职工工资数据表:
用于存储职工工资的基本信息。
图2-2职工工资数据表设计视图
图2-3职工工资数据表
第3章系统实现
工资管理系统是利用现有的软硬件环境,充分的利用资源制订的。
系统符合对工资信息管理的需求,采用模块化的程序设计的方法,便于系统功能的各种组合和修改。
采用模块化的原理进行程序设计,可以使结构变得清晰,不仅容易设计实现,也容易阅读和理解,更容易进行维护和升级[5]。
在前面我们已经创建了“工资管理数据库”、“职工工资数据表”。
它可为应用程序提供一个数据源。
应用程序就是对该数据源的记录进行访问、增加、删除以及数据管理的一切操作。
在这里我们选择ODBC数据源类型,即选择一种开放式数据源连接的驱动程序类型作为系统的数据源。
往往在单击OK按钮后会出现找不到该数据库文件的信息提示,因为作为ODBC数据源,必须先创建一个数据源名并进行数据源登录。
这里我们将采用一种通用的方法,即在MicrosoftWindows98(MicrosoftWindows2000/Me/XP中也一样)中,利用开放式数据源创建与连接的公用程序ODBC进行数据源名称的创建与连接。
图3-1职工工资管理系统主界面
职工工资管理界面中分为工资数据处理,工资数据浏览,增加与删除和个人工资统计四部分。
工资数据处理与数据库相连,可直观地浏览职工工资的信息。
职工工资浏览,增加与删除以及个人工资统计通过第一条,上一条,下一条,最后一条,增加,删除,刷新,执行统计等按钮可对职工工资管理系统数据库进行操作。
职工工资管理系统主界面如图3-1所示。
在对话框中的一切编辑框控件,均是用于进行数据处理和数据显示的,但首先我们应该为它们建立字段映射,即将创建的数据集中的每一个字段与一个编辑框进行“数据绑定”。
在主对话框IDD_MYFORM中选取任意编辑框控件。
用鼠标右键单击该对话框,出现一个快捷菜单。
在快捷菜单中单击“建立类向导”,出现类向导对话框。
在类向导对话框中将页面切换至MemberVariables页面并设置类名为CmySet。
该对话框列出了数据集的全部字段名、字段类型和字段的成员
图3-2重新定义的字段变量名称
变量名称,但成员变量名是在创建数据源时自动生成的,往往不便于与编辑框建立映射关系,为此将全部成员变量名称删除,并重新定义字段的成员变量名称,如图3-2所示。
再在类向导对话框中将类名设置为CmyView,出现为编辑框控件与字段成员变量建立消息映射的页面,选中任一编辑框控件资源索引,再单击AddVariable按钮,出现变量选择列表框,如图3-3所示。
在字段选择列表框中选择相应成员变量,单击OK按钮,即完成编辑框与相应字段成员变量的映射。
该职工工资管理系统主界面使用了工资浏览数据的四个按钮和个人工资统计的一个按钮进行操作,在增加与删除里可以选择增加记录、删除记录和刷新纪录这三个对话框。
图3-3编辑框控件与字段变量映射页面
第一条代码如下:
voidCMyView:
:
OnButionfirst()
{
//TODO:
Addyourcontrolnotificationhandlercodehere
m_pSet->MoveFirst();
if(m_pSet->IsBOF())
{
MessageBox("记录已经在第一条!
");
m_pSet->MoveNext();
UpdateData(FALSE);
}
UpdateData(FALSE);
}
下一条代码如下:
voidCMyView:
:
OnButionnext()
{
//TODO:
Addyourcontrolnotificationhandlercodehere
m_pSet->MoveNext();
if(m_pSet->IsEOF()){
MessageBox("记录已经在最后一条!
");
m_pSet->MovePrev();
UpdateData(FALSE);
}
UpdateData(FALSE);
}
前一条代码如下:
voidCMyView:
:
OnButionprev()
{
//TODO:
Addyourcontrolnotificationhandlercodehere
m_pSet->MovePrev();
if(m_pSet->IsBOF()){
MessageBox("记录已经在第一条!
");
m_pSet->MoveNext();
UpdateData(FALSE);
}
UpdateData(FALSE);
}
最后一条代码如下:
voidCMyView:
:
OnButionlast()
{
//TODO:
Addyourcontrolnotificationhandlercodehere
m_pSet->MoveLast();
if(m_pSet->IsEOF())
{
MessageBox("记录已经在最后一条!
");
m_pSet->MovePrev();
UpdateData(FALSE);
}
UpdateData(FALSE);
}
增加记录代码如下:
voidCMyView:
:
OnRadioadd()
{
//TODO:
Addyourcontrolnotificationhandlercodehere
m_pSet->AddNew();
UpdateData(FALSE);
}
删除记录代码如下:
voidCMyView:
:
OnRadiodelete()
{
//TODO:
Addyourcontrolnotificationhandlercodehere
m_pSet->Delete();
m_pSet->MoveNext();
if(m_pSet->IsEOF())
m_pSet->MoveLast();
if(m_pSet->IsBOF())
m_pSet->SetFieldNull(NULL);
UpdateData(FALSE);
}
刷新记录代码如下:
voidCMyView:
:
OnRadioupdate()
{
//TODO:
Addyourcontrolnotificationhandlercodehere
m_pSet->Edit();
UpdateData();
m_pSet->Update();
m_pSet->Requery();
m_pSet->CancelUpdate();
}
voidCMyView:
:
OnButionsum()
{
//TODO:
Addyourcontrolnotificationhandlercodehere
m_pSet->Edit();
m_pSet->m_YFS=m_pSet->m_JBGZ+m_pSet->m_JJ+m_pSet->m_YJGZ+m_pSet->m_JT+m_pSet->m_GZBZ;
m_pSet->m_KCZJ=m_pSet->m_CX+m_pSet->m_HF+m_pSet->m_FZOU+m_pSet->m_RDF+m_pSet->m_BX;
m_pSet->m_SFGZ=m_pSet->m_YFS-m_pSet->m_KCZJ;
UpdateData(FALSE);
m_pSet->Requery();
m_pSet->Update();
}
第4章系统测试
4.1测试目的
软件测试的目的是寻找、纠正软件可能发生的各种错误(包括逻辑错误、编码错误、组装运行错误等)以及检核软件的功能和性能是否达到要求。
设计测试方案时,不仅要包括确定的输入数据,而且应包括从系统功能出发预期的测试结果。
测试用例不仅要包括合理有效的输入数据,还要包括无效的或不合理的输入数据。
不仅要检验程序是否做了该做的事,还要检查程序是否同时做了不该做的事。
软件中仍存在错误的概率和已经发现错误的个数是成正比的。
保留测试用例,作为软件文档的组成部分。
4.2测试过程
采用人工测试方法对以下几个关键的地方进行测试:
图4-1统计计数测试结果
测试职工工资管理系统主界面需分别测试增加记录,删除记录,刷新记录,第一条,上一条,下一条,最后一条,执行统计等按钮是否起作用。
其中增加记录要录入新的职工工资记录后再按刷新记录才能录入数据库。
点击执行统计按钮能对各职工的工资进行计算,即计算应发金额、应扣金额及实发金额等,如图4-1所示。
4.3系统改进
本系统开发时间仓促,本人对软件开发工具认识的水平有限,本软件仍存在一些不如人意的地方,还有待进一步改进,归纳起来主要有以下几点:
1.应该添加一个登录系统,根据用户权限对用户进行数据库管理。
并且此登录系统可以根据不同的操作者进行密码管理,杜绝了无权用户进行恶意登录进行破坏。
2.为了方便用户操作,该系统应该提供部分提示窗口,使用户能够按照提示语句完成各项操作。
3.缺少对职工工资信息的筛选功能。
结论
经过这几天的专心学习和研究,使我受到了一次用专业知识、专业技能分析和解决问题的全面系统的锻炼。
对数据库的知识和MFC的应用都有了一些基本的掌握。
在课程设计的过程中,将所学习的C++知识运用在要做的工资管理系统上。
之所以选择这个课题是因为工资管理是任何企事业单位都需要进行的一项工作,因此,开发制作工资管理系统具有较大的社会现实意义,同时工资管理系统的最大特征是数据处理,它是数据库应用系统的典范,它具有一切数据库应用系统的特征,如数据录入,数据统计等,其系统结构与现实生活紧密结合,具体直观。
在这次的课程设计中,使我在综合知识的选用方面,在应用软件开发的基本思想、方法方面,以及在常用编程设计思路技巧的掌握方面都能向前迈了一大步。
为日后成为合格的应用型人才打下良好的基础。
这次在指导老师的帮助下,在同学的帮助下,利用已有的C++知识和少量的数据库知识,基本上完成了设计任务,在软件的设计方面也有了一定的提高,熟练掌握了VisualC++6.0命令和编程技巧,为今后走上工作岗位打下了专业基础。
通过本次课程设计,我掌握了ACCESS的基本知识以及数据源的概念,我能正确的用所学有关编程的知识,完成本次设计中所提出的任务——工资管理系统的设计,达到综合运用并掌握VisualC++6.0程序语言的目的。
并让我深深地体现到进行软件开发不是一件简单的事情,它需要设计者具有全面的专业知识、缜密的思维、严谨的工作态度以及较高的分析问题、解决问题的能力,而我在很多方面还有欠缺。
最后,我要衷心感谢老师在我的设计过程中给予我的极大帮助,使我能够及时、顺利地完成此次的课程设计。
参考文献
[1]陈元琰,邓宗明,张睿哲,张晓竞.VisualC++6.0编程实用技术与案例[M].北京:
清华大学出版社.2001:
45-69.
[2]StanleyB.Lippman,JoséeLaJoie,BarbaraE.Moo.C++Primer中文版(第4版)[M].北京:
人民邮电出版社.2006:
33-42.
[3]余杨岳.Access2000教程[M].上海:
立信会计出版社.2001:
15-36.
[4]邝孔武,王晓敏.信息系统分析与设计[M].北京:
清华大学出版社.1999:
78-89.
[5]鲍文德.设计规则:
模块化的力量[M].济南:
中信出版社.2006:
89-101.
东北石油大学课程设计成绩评价表
课程名称
可视化编程课程设计
题目名称
工资管理系统的设计与开发
学生姓名
学号
指导教师姓名
职称
序号
评价项目
指标(优秀)
满分
评分
1
选题难度
选题难度较高,或者对原题目进行了相当程度的改进。
10
2
工作量、工作态度和出勤率
工作量饱满,工作努力,遵守纪律,出勤率高,工作作风严谨,善于与他人合作。
10
3
课程设计质量
按期圆满的完成了规定的任务,方案设计合理,思考问题全面,系统功能完善。
40
4
报告质量
问题论述思路清晰,结构严谨,文理通顺,撰写规范,图表完备正确。
30
5
回答问题
在进行课程设计程序系统检查时,能正确回答指导教师所提出的问题。
10
6
创新(加分项)
工作中有创新意识,对前人工作有改进或有应用价值。
在进行系统检查时能对创新性进行说明,并在报告中有相应的论述。
+5
总分
评语:
指导教师:
年月日