ImageVerifierCode 换一换
格式:DOCX , 页数:26 ,大小:234.67KB ,
资源ID:12457326      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/12457326.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(工资管理系统课程设计报告.docx)为本站会员(b****0)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

工资管理系统课程设计报告.docx

1、工资管理系统课程设计报告1:课程设计介绍设计题目:工资管理系统设计介绍:利用所学知识,开发小型应用系统,使学生掌握运用可视化编程技术编写调试应用系统程序,训练学生独立开发应用系统、进行数据处理的综合能力,理解工程的概念和头文件的使用,熟悉封装、继承和多态性等这些面向对象编程的特点。2:开发环境 系统环境:操作系统需要Windows Xp以上版本;开发工具Microsoft Visual c+6.0;数据库使用Microsoft office Access2003;3:设计目的(1)、进一步巩固、加深学生所学专业课程可视化程序设计的基本理论知识,理论联系实际。(2)、利用所学知识,开发小型应用系

2、统,掌握运用VC+语言编写调试应用系统程序。(3)、熟练掌握C+语言的基本语法,灵活运用各种数据类型。(4)、进一步掌握在集成环境下如何调试程序(单步调试,设置断点、观察表达式,分块调试)和修改程序。4:设计要求:(1)、创建类并使用类对象完成相应的任务。(2)、深入理解封装、继承和多态这的等面向对象的编程的特点。(3)、设计的小型工资管理系统可以收集、处理、存储信息,拥有查阅、增添、删除、修改等功能。5:流程图和模块图设计步骤:模块图:主模块:工资信息模块:统计模块:查阅模块:增删操作模块:6:设计内容:6.1.数据库与数据表的设计作为工资管理系统,它是数据库应用系统数据处理的典范,数据库应

3、用系统开发的前提是首先开发数据库和数据库中的数据表。因此在本案例中,我们采用Microsoft Access 2003创建数据库和数据表。为此我们先定义一个“职工工资数据表”的结构,如表所示。 “职工工资数据表”结构字段名称字段类型字段大小小数位数索引必须填写年份数字整型是月份数字整型是职位文本整形是职工编号数字整型是职工姓名文本16是部门文本20是基本工资数字长整型自动是业绩工资数字长整型自动是奖金数字长整型自动是津贴数字长整型自动是各种补助数字长整型自动是应发数数字长整型自动是水电费数字长整型自动是房租数字长整型自动是储蓄数字长整型自动是会费数字长整型自动是保险数字长整型自动是扣除总计数字

4、长整型自动是实发工资数字长整型自动是6.2.创建工资管理系统基本框架在前面我们已经创建了“工资管理数据库”、“职工工资数据表”。它可为应用程序提供一个数据源。应用程序就是对该数据源的记录进行访问、增加、删除以及数据管理的一切操作。有了这一切的工作,我们就可以着手进行应用系统的构建了。我们先要用ODBC驱动将我们建好的数据库。在Microsoft Visual c+6.0中建立工程,在选择数据源的时候选择开放式数据源连接的驱动程序类型作为系统的数据源也就是ODBC。6.3.开发工资处理界面应用系统向导只能生成一个应用程序基本框架,该框架还不具备任何功能,我们在框架的基础上进行系统各种功能的制作。

5、通常一个应用程序框架生成两个对话框,一个是IDD_ABOUTBOX对话框,它是一个说明该系统的对话框,是由向导自动完成该对话框仍然是基本的。在基本框架中另外一个对话框就是主对话框IDD_MY_FORM,而它就是我们加工制作的主要内容,数据源也是专门为该对话框引入的。6.4.主对话框IDD_MY_FORM中控件的加入与布局在工资管理系统中,主对话框主要用于处理工资管理的一切内容。根据自己设计和功能的需要在此窗口上添加需要的控件,如图。为各个控件修改属性,具体属性如下表。标签对象的基本属性ID标题内容IDC_STATICCAPTION职工工资管理系统IDC_STATICNE年份IDC_STATIC

6、YF月份IDC_STATICZGBH职工编号IDC_STATICZGXM职工姓名IDC_STATICZGBM部门IDC_STATICJBGZ基本工资IDC_STATICJJ奖金IDC_STATICYJGZ业绩工资IDC_STATICJT津贴IDC_STATICGZBZ各种补助IDC_STATICRDF水电费IDC_STATICFZOU房租IDC_STATICCX储蓄IDC_STATICHF会费IDC_STATICBX保险IDC_STATICYFHJ应发合计IDC_STATICKCHJ扣除合计IDC_STATICSFGZ实发工资 编辑框控件的基本属性和编辑内容ID编辑内容IDC_EDITNF年份

7、IDC_EDITYF月份IDC_EDITZGBH职工编号IDC_EDITZGBM所在部门IDC_EDITZGXM职工姓名IDC_EDITJBGZ基本工资IDC_EDITJJ奖金IDC_EDITYJGZ业绩工资IDC_EDITJT津贴IDC_EDITGZBZ各种补助IDC_EDITRDF水电费IDC_EDITFZOU房租IDC_EDITCX储蓄IDC_EDITHF会费IDC_EDITBX保险IDC_EDITYFHJ应发合计IDC_EDITKCHJ扣除合计IDC_EDITSFGZ实发工资命令按钮对象的基本属性ID标题内容IDC_BUTIONFIRST第一条IDC_BUTIONNEXT下一条IDC_

8、BUTIONPREV前一条IDC_BUTIONLAST最后一条IDC_BUTIONSUM执行统计IDC_RADIOADD增加记录IDC_RADIODELETE删除记录IDC_RADIOUPDATE刷新记录分组控件对象的基本属性ID标题IDC_STATICDATA工资信息IDC_STATICBROWSE查阅浏览IDC_STATICADDDELETUPD增删操作IDC_STATICCOUNT统计6.5.为编辑框控件建立数据字段映射在对话框中的一切编辑框控件,均是用于进行数据处理和数据显示的,我们为它们建立字段映射,即将创建的数据集中的每一个字段与一个编辑框进行“数据绑定”,如图。6.6.为命令按钮

9、增加函数并编制过程代码在此我们需要用一些命令来完成对数据的操作,需要为命令按钮建立函数和编制过程代码。(1).“第一条记录”命令按钮代码void CMyView:OnBUTTONfirst() / TODO: Add your control notification handler code here m_pSet-MoveFirst(); if(m_pSet-IsBOF() MessageBox(记录已在第一条); m_pSet-MoveNext(); UpdateData(FALSE); return; UpdateData(FALSE);(2)、上一条按钮命令的代码void CMyVi

10、ew:OnBUTTONprev() / TODO: Add your control notification handler code here m_pSet-MovePrev(); if(m_pSet-IsBOF() MessageBox(记录已在第一条); m_pSet-MoveNext(); UpdateData(FALSE); return; UpdateData(FALSE);(3)、下一条按钮命令的代码void CMyView:OnBUTTONnext() / TODO: Add your control notification handler code here m_pSet

11、-MoveNext(); if(m_pSet-IsEOF() MessageBox(记录已是最后一条!); m_pSet-MovePrev(); UpdateData(FALSE); return; UpdateData(FALSE);(4)、最后一条按钮的代码void CMyView:OnBUTTONlast() / TODO: Add your control notification handler code here m_pSet-MoveLast(); if(m_pSet-IsEOF() MessageBox(记录已是最后一条!); m_pSet-MovePrev; UpdateDa

12、ta(FALSE); return; UpdateData(FALSE);(5)、增加记录的代码void CMyView:OnRADIOzjjl() / TODO: Add your control notification handler code here m_pSet-AddNew(); UpdateData (FALSE);(6)、删除记录的代码void CMyView:OnRADIOsxjl() / TODO: Add your control notification handler code here m_pSet-Edit(); UpdateData(); m_pSet-Upd

13、ate(); m_pSet-Requery(); m_pSet-CancelUpdate();(7)修改记录的代码void CMyView:OnRADIOscjl() / TODO: Add your control notification handler code here m_pSet-Delete(); m_pSet-MoveNext(); if(m_pSet-IsEOF() m_pSet-MoveLast(); if(m_pSet-IsBOF() m_pSet-SetFieldNull(NULL); UpdateData(FALSE);(8)、统计的代码void CMyView:On

14、BUTTONtongji() / TODO: Add your control notification handler code here m_pSet-Edit(); m_pSet-m_ydgz=m_pSet-m_jbgz+m_pSet-m_jj+m_pSet-m_yj+m_pSet-m_jt+m_pSet-m_gzbz; m_pSet-m_ykgz=m_pSet-m_cx+m_pSet-m_hf+m_pSet-m_bx+m_pSet-m_fz+m_pSet-m_sdf; m_pSet-m_sdgz=m_pSet-m_ydgz-m_pSet-m_ykgz; UpdateData(FALSE

15、); m_pSet-Requery(); 7:调试1. 主界面:2. 统计3. 下一条4. 上一条5.最后一条6.第一条7.删除操作8修改操作8程序清单#include stdafx.h#include 工资管理系统.h#include 工资管理系统Set.h#include 工资管理系统Doc.h#include 工资管理系统View.h#ifdef _DEBUG#define new DEBUG_NEW#undef THIS_FILEstatic char THIS_FILE = _FILE_;#endif/ CMyViewBOOL m_Add=false;IMPLEMENT_DYNCRE

16、ATE(CMyView, CRecordView)BEGIN_MESSAGE_MAP(CMyView, CRecordView) /AFX_MSG_MAP(CMyView) ON_BN_CLICKED(IDC_BUTTON_first, OnBUTTONfirst) ON_BN_CLICKED(IDC_BUTTON_prev, OnBUTTONprev) ON_BN_CLICKED(IDC_BUTTON_next, OnBUTTONnext) ON_BN_CLICKED(IDC_BUTTON_last, OnBUTTONlast) ON_BN_CLICKED(IDC_RADIO_zjjl, O

17、nRADIOzjjl) ON_BN_CLICKED(IDC_RADIO_sxjl, OnRADIOsxjl) ON_BN_CLICKED(IDC_RADIO_scjl, OnRADIOscjl) ON_BN_CLICKED(IDC_BUTTON_tongji, OnBUTTONtongji) /AFX_MSG_MAP / Standard printing commands ON_COMMAND(ID_FILE_PRINT, CRecordView:OnFilePrint) ON_COMMAND(ID_FILE_PRINT_DIRECT, CRecordView:OnFilePrint) ON

18、_COMMAND(ID_FILE_PRINT_PREVIEW, CRecordView:OnFilePrintPreview)END_MESSAGE_MAP()/ CMyView construction/destructionCMyView:CMyView() : CRecordView(CMyView:IDD) /AFX_DATA_INIT(CMyView) m_pSet = NULL; /AFX_DATA_INIT / TODO: add construction code hereCMyView:CMyView()void CMyView:DoDataExchange(CDataExc

19、hange* pDX) CRecordView:DoDataExchange(pDX); /AFX_DATA_MAP(CMyView) DDX_FieldText(pDX, IDC_EDIT_bm, m_pSet-m_bm, m_pSet); DDX_FieldText(pDX, IDC_EDIT_cx, m_pSet-m_cx, m_pSet); DDX_FieldText(pDX, IDC_EDIT_gzbz, m_pSet-m_gzbz, m_pSet); DDX_FieldText(pDX, IDC_EDIT_hf, m_pSet-m_hf, m_pSet); DDX_FieldTex

20、t(pDX, IDC_EDIT_jbgz, m_pSet-m_jbgz, m_pSet); DDX_FieldText(pDX, IDC_EDIT_jj, m_pSet-m_jj, m_pSet); DDX_FieldText(pDX, IDC_EDIT_jt, m_pSet-m_jt, m_pSet); DDX_FieldText(pDX, IDC_EDIT_sdf, m_pSet-m_sdf, m_pSet); DDX_FieldText(pDX, IDC_EDIT_nf, m_pSet-m_nf, m_pSet); DDX_FieldText(pDX, IDC_EDIT_yf, m_pS

21、et-m_yf, m_pSet); DDX_FieldText(pDX, IDC_EDIT_yj, m_pSet-m_yj, m_pSet); DDX_FieldText(pDX, IDC_EDIT_zgbh, m_pSet-m_zgbh, m_pSet); DDX_FieldText(pDX, IDC_EDIT_zgxm, m_pSet-m_zgxm, m_pSet); DDX_FieldText(pDX, IDC_EDIT_zw, m_pSet-m_zw, m_pSet); DDX_FieldText(pDX, IDC_EDIT1_bx, m_pSet-m_bx, m_pSet); DDX

22、_FieldText(pDX, IDC_EDIT_sdgz, m_pSet-m_sdgz, m_pSet); DDX_FieldText(pDX, IDC_EDIT_ydgz, m_pSet-m_ydgz, m_pSet); DDX_FieldText(pDX, IDC_EDIT_ykgz, m_pSet-m_ykgz, m_pSet); DDX_FieldText(pDX, IDC_EDIT1_fz, m_pSet-m_fz, m_pSet); /AFX_DATA_MAPBOOL CMyView:PreCreateWindow(CREATESTRUCT& cs) / TODO: Modify

23、 the Window class or styles here by modifying / the CREATESTRUCT cs return CRecordView:PreCreateWindow(cs);void CMyView:OnInitialUpdate() m_pSet = &GetDocument()-m_mySet; CRecordView:OnInitialUpdate(); GetParentFrame()-RecalcLayout(); ResizeParentToFit();/ CMyView printingBOOL CMyView:OnPreparePrint

24、ing(CPrintInfo* pInfo) / default preparation return DoPreparePrinting(pInfo);void CMyView:OnBeginPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/) / TODO: add extra initialization before printingvoid CMyView:OnEndPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/) / TODO: add cleanup after printing/ CMyView d

25、iagnostics#ifdef _DEBUGvoid CMyView:AssertValid() const CRecordView:AssertValid();void CMyView:Dump(CDumpContext& dc) const CRecordView:Dump(dc);CMyDoc* CMyView:GetDocument() / non-debug version is inline ASSERT(m_pDocument-IsKindOf(RUNTIME_CLASS(CMyDoc); return (CMyDoc*)m_pDocument;#endif /_DEBUG/

26、CMyView database supportCRecordset* CMyView:OnGetRecordset() return m_pSet;/ CMyView message handlersvoid CMyView:OnBUTTONfirst() / TODO: Add your control notification handler code here m_pSet-MoveFirst(); if(m_pSet-IsBOF() MessageBox(记录已经在第一条); m_pSet-MoveNext(); UpdateData(FALSE); return; UpdateData(FALSE);void CMyView:OnBUTTONprev() / TODO: Add your control notification handler code here m_pSet-MovePrev(); if(m_pSet-IsBOF() MessageBox(记录已经在第一条); m_pSet-MoveNext(); UpdateData(FALSE); return; UpdateData(FALSE);void CMyView:OnBUTTONnext() / TODO

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1