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