




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、设计题目 系统环境 设计内容 3.1数据库的设计 3.2 创建数据库及其数据表 3.3 开放数据源。 3.4 创建工资管理系统基本框架 3.5 3.6 3.7 四、 4,1 目录 主对话框 IDD_MY_FORM 中控件的加入与布局。 为编辑框控件建立数据字段映射 为命令按钮增加函数并编制过程代码 流程图及模块图 系统的总体设计 4.2 工资数据处理模块 4.3 工资数据浏览模块 11 13 17 17 18 18 4.4 增加与删除模块 19 4.5 统计模块 19 五、 程序清单 19 六、 程序中遇到的问题及解决方法 38 七、 心得体会 38 八、 参考文献 39 5 、设计题目 工资
2、管理系统设计与实现。 二、系统环境 wi ndowsX P VC+ 三、设计内容 3.1数据库的设计 作为工资管理系统,它主要是数据库应用系统数据处理,数据库应用系 统开发的前提是首先开发数据库和数据库中的数据表。因此在本案例中,我 采用Microsoft Access 2007创建数据库和数据表。为此我们先定义一个职工 工资数据表”的结构,如下表所示。 职工工资数据表 字段名称 字段类型 字段大小 小数位数 索引 必须填写 年份 数字 整型 是 月份 数字 整型 是 输入日期 日期/时间 默认 是 职工编号 数字 整型 是 姓名 文本 16 是 部门 文本 20 是 基本工资 数字 长整型
3、自动 是 业绩工资 数字 长整型 自动 是 奖金 数字 长整型 自动 是 津贴 数字 长整型 自动 是 各种补助 数字 长整型 自动 是 应发数 数字 长整型 自动 是 水电费 数字 长整型 自动 是 房租 数字 长整型 自动 是 储蓄 数字 长整型 自动 是 会费 数字 长整型 自动 是 保险 数字 长整型 自动 是 扣除总计 数字 长整型 自动 是 实发工资 数字 长整 型 自动 是 3.2创建数据库及其数据表 出现下 囲皆匸7二_ . *3 n r Y, (2)在创建里头单击“表设计”,用户可以在其中设计一个新的数据表结 构。如下图所示。 时- HS 七托 SSST= :广 OK U門B
4、孑2岂嚏S 丁 -,-. gj B;T:气卑.邓右书悸沪巴 屮 HR 时SKDEi网,MnA hT 2 MS if (in p Set - IsBOFO) MessRgeBox (“ H录己经在第一最厂) rnjjSet - MoveNexi 0: UjidateData (FALSE); RcQiriK UpdatcData CFALSE); 这样,第一条记录”命令按钮的过程代码就编辑完成了。 采用同样的方法,我们可以编辑其他命令按钮的过程代码。 3.7.2 “下一条记录 ”命令按钮的过程代码 void CMyView:OnButionnext() / TODO: Add your cont
5、rol notification handler code here m_pSet-MoveNext(); if(m_pSet-IsEOF() MessageBox( 已经是最后了! ); m_pSet-MovePrev(); UpdateData(FALSE); return; UpdateData(FALSE); 3.7.3“上一条记录 ”命令按钮的过程代码 void CMyView:OnButionprev() / TODO: Add your control notification handler code here m_pSet-MovePrev(); if(m_pSet-IsBO
6、F() MessageBox(已经是第一条了!); m_pSet-MoveNext(); UpdateData(FALSE); return; UpdateData(FALSE); 3.7.4“最后一条记录 ”命令按钮的过程代码 void CMyView:OnButionlast() / TODO: Add your control notification handler code here m_pSet-MoveLast(); if(m_pSet-IsEOF() MessageBox(已经是最后了!); m_pSet-MovePrev(); UpdateData(FALSE); retur
7、n; UpdateData(FALSE); 3.7.5 “增加记录 ”选项按钮的过程代码 void CMyView : : OnRadiodd () /TODO: Add your control notification handler code here m_pSet - AddNew (); UpdateData (FALSE); 3.7.6“删除记录 ”选项按钮的过程代码 void CMyView:OnRadiodelete() / TODO: Add your control notification handler code here 17 m_pSet-Delete(); m_p
8、Set-MoveNext(); if(m_pSet-IsEOF() m_pSet-MoveLast(); if(m_pSet-IsBOF() m_pSet-SetFieldNull(NULL); UpdateData(FALSE); 3.7.7“刷新记录 ”选项按钮的过程代码 void CMyView:OnRadioupdate() / TODO: Add your control notification handler code here m_pSet-Edit(); UpdateData(); m_pSet-Update(); m_pSet-Requery(); m_pSet-Cance
9、lUpdate(); 3.7.8 执行统计 ”命令按钮的过程代码 void CMyView:OnButionsum() / TODO: Add your control notification handler code here m_pSet-Edit(); m_pSet-m_YJGZ=m_pSet-m_JBGZ+m_pSet-m_JJ+m_pSet-m_YJ GZ+m_pSet-m_JT+m_pSet-m_GZBZ; m_pSet-m_KCZJ=m_pSet-m_CX+m_pSet-m_HF+m_pSet-m_FZO U+m_pSet-m_RDF+m_pSet-m_BX; m_pSet-m
10、_SFGZ=m_pSet-m_YJGZ-m_pSet-m_KCZJ; Up dateData(FALSE); m_p Set-Requery(); m_pSet-U pdate(); 最后编译执行,结果如下图: 59 XSfili .MyiJ L一-.- I D 5W通甸 m_pMainWnd = pMainFrame; / Parse command line for standard shell commands, DDE, file open CCommandLineInfo cmdInfo; ParseCommandLine(cmdInfo); / Dispatch commands
11、specified on the command line if (!ProcessShellCommand(cmdInfo) return FALSE; / The main window has been initialized, so show and update it. pMainFrame-ShowWindow(m_nCmdShow); pMainFrame-UpdateWindow(); return TRUE; / / CAboutDlg dialog used for App About class CAboutDlg : public CDialog public: CAb
12、outDlg(); / Dialog Data /AFX_DATA(CAboutDlg) enum IDD = IDD_ABOUTBOX ; /AFX_DATA / ClassWizard generated virtual function overrides /AFX_VIRTUAL(CAboutDlg) protected: virtual void DoDataExchange(CDataExchange* pDX); / DDX/DDV support /AFX_VIRTUAL / Implementation protected: /AFX_MSG(CAboutDlg) / No
13、message handlers /AFX_MSG DECLARE_MESSAGE_MAP() ; CAboutDlg:CAboutDlg() : CDialog(CAboutDlg:IDD) /AFX_DATA_INIT(CAboutDlg) /AFX_DATA_INIT void CAboutDlg:DoDataExchange(CDataExchange* pDX) CDialog:DoDataExchange(pDX); /AFX_DATA_MAP(CAboutDlg) /AFX_DATA_MAP BEGIN_MESSAGE_MAP(CAboutDlg, CDialog) /AFX_M
14、SG_MAP(CAboutDlg) / No message handlers /AFX_MSG_MAP END_MESSAGE_MAP() / App command to run the dialog void CMyApp:OnAppAbout() CAboutDlg aboutDlg; aboutDlg.DoModal(); / / CMyApp message handlers 5,2 / 工资管理 Doc.cpp : implementation of the CMyDoc class / #include stdafx.h #include 工资管理 .h #include 工资
15、管理 Set.h #include 工资管理 Doc.h #ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE = _FILE #endif / / CMyDoc IMPLEMENT_DYNCREATE(CMyDoc, CDocument) BEGIN_MESSAGE_MAP(CMyDoc, CDocument) /AFX_MSG_MAP(CMyDoc) / NOTE - the ClassWizard will add and remove mapping macros here. / DO NO
16、T EDIT what you see in these blocks of generated code! /AFX_MSG_MAP END_MESSAGE_MAP() / / CMyDoc construction/destruction CMyDoc:CMyDoc() / TODO: add one-time construction code here CMyDoc:CMyDoc() BOOL CMyDoc:OnNewDocument() if (!CDocument:OnNewDocument() return FALSE; / TODO: add reinitialization
17、code here / (SDI documents will reuse this document) return TRUE; / / CMyDoc serialization void CMyDoc:Serialize(CArchive void CMyDoc:Dump(CDumpContext m_BM = _T(); m_CX = 0; m_FZOU = 0; m_GZBZ = 0; m_HF = 0; m_JBGZ = 0; m_JJ = 0; m_JT = 0; m_KCZJ = 0; m_NF = 0; m_SFGZ = 0; m_RDF = 0; m_ZGXM = _T();
18、 m_YJGZ = 0; m_YFHJ = 0; m_YF = 0; m_ZGBH = 0; m_nFields = 18; /AFX_FIELD_INIT m_nDefaultType = snapshot; CString CMySet:GetDefaultConnect() return _T(ODBC;DSN= 工资管理 ); CString CMySet:GetDefaultSQL() return _T(工资管理); void CMySet:DoFieldExchange(CFieldExchange* pFX) /AFX_FIELD_MAP(CMySet) pFX-SetFiel
19、dType(CFieldExchange:outputColumn); RFX_Long(pFX, _T( 保险), m_BX); RFX_Text(pFX, _T( 部门), m_BM); RFX_Long(pFX, _T( 储蓄), m_CX); RFX_Long(pFX, _T( 房租), m_FZOU); RFX_Long(pFX, _T( 各种补助 ), m_GZBZ); RFX_Long(pFX, _T( 会费), m_HF); 33 RFXILOng(PFX ITU 一) mlJBGZh RFXILOng(PFX RFXILOng(PFX RFXILOng(PFX RFXILOn
20、g(PFX RFXILOng(PFX RFXILOng(PFX RFXITexf(PFX RFXILOng(PFX RFXILOng(PFX RFXILOng(PFX ITU #昌一)mlJTh ITU吉那砥寸一)mlKCZJh ITU 书序一)mlNC ITU 丹渝H潯 一)mlsFGZh ITU - mlRDC ITU 笄笊一)mlzGXMX ITU W熾H潯 一)mlYJGZh ITU 冃渝達一)mlYFHJh ITU mYD RFXILOng(PFX ITU 一) mlzGBHX AFXF 一 ELDIMAP CMySef diagnostics 芸def DEBUG void CMy
21、seTASSertva=d() consf CRecordseTASSertva-ido- 33 void CMySet:Dump(CDumpContext #endif /_DEBUG 5.4/ / 工资管理 Set.cpp : implementation of the CMySet class / #include stdafx.h #include 工资管理 .h #include 工资管理 Set.h #ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE = _FILE #endif /
22、/ CMySet implementation IMPLEMENT_DYNAMIC(CMySet, CRecordset) CMySet:CMySet(CDatabase* pdb) : CRecordset(pdb) /AFX_FIELD_INIT(CMySet) m_BX = 0; m_BM = _T(); m_CX = 0; m_FZOU = 0; m_GZBZ = 0; m_HF = 0; m_JBGZ = 0; m_JJ = 0; m_JT = 0; m_KCZJ = 0; m_NF = 0; m_SFGZ = 0; m_RDF = 0; m_ZGXM = _T(); m_YJGZ
23、= 0; m_YFHJ = 0; m_YF = 0; m_ZGBH = 0; m_nFields = 18; /AFX_FIELD_INIT 35 mlnDefau_frype H snapshot CSfring CMyseTGefDefau_fconnecf() refum TVODBGDSN;書輻) CSfring CMyseTGesefau_fsQL() void CMysepDOFie-dExchange(CFie-dExchange* PFX) 二宀宀AFXF一ELDIMAP(CMyseo PFXvsefFie-dType(CFie-dExchang3oufpufco-umn)-
24、RFXILOng(PFX ITU 帝耶一)mlBxh RFXITexf(PFX ITU a a 3 - mlBMh RFXILOng(PFX ITU 離一) mlcxh RFXILOng(PFX ITU 刊盛三 mlFzouh RFXILOng(PFX ITU 前寻手s 一) mlGZBZh RFXILOng(PFX ITU mlHU RFXILOng(PFX ITU 一) mlJBGZh 36 RFX_Long(pFX, _T( 奖金), m_JJ); RFX_Long(pFX, _T( 津贴), m_JT); RFX_Long(pFX, _T( 扣除总计 ), m_KCZJ); RFX_L
25、ong(pFX, _T( 年份), m_NF); RFX_Long(pFX, _T( 实发工资), m_SFGZ); RFX_Long(pFX, _T( 水电费), m_RDF); RFX_Text(pFX, _T( 姓名), m_ZGXM); RFX_Long(pFX, _T( 业绩工资 ), m_YJGZ); RFX_Long(pFX, _T( 应发数), m_YFHJ); RFX_Long(pFX, _T( 月份), m_YF); RFX_Long(pFX, _T( 职工编号 ), m_ZGBH); /AFX_FIELD_MAP / / CMySet diagnostics #ifdef
26、 _DEBUG void CMySet:AssertValid() const CRecordset:AssertValid(); void CMySet:Dump(CDumpContext #endif /_DEBUG 六、程序中遇到的问题及解决方法 在这次课程设计过程中我遇到了很多的问题: 首先是数据库的建立与加载, 由于是首次接触数据库, 而且书上也没有 太详细的讲这部分的内容,所以在一开始就遇到了困难。最后通过我不断地 摸索和练习掌握了这部分的内容。 其次就是数据库的设计, 第一次做这种系统, 本来想着挺简单, 但深入 以后才发现难度还是有的。数据库要包括各个方面的信息,还要考虑它们之 间的逻辑关系,所以在数据库设计的时候我修改了很多次,并且联系实际, 不断完善,最终完成了数据库的设计。 还有就是平时联系比较少, 修改属性,添加代码等操作都遇到一些困难, 即就是不懂得套路,手太生。于是我借了好多参考书,不但摸索,仔细联系, 就越来越熟练。 调试 最后就是调试, 所有的部分都完成后出现了很多预想不到的错误, 了好多次才出现结果。 七、心得体会 通过本次的课程设计, 我发现自己专业知识方面存在很多不足, 但是也 得到了很多的收获。 本次课程设计,我巩固了在 C+.方面所学的知识,并能较为熟练地以 VC 为工具设计开发一些简单的常用的程序。而且,数据库方面的知识也同 样得到
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025能源控股集团所属辽能股份招聘考前自测高频考点模拟试题及答案详解(有一套)
- 2025湖南株洲市行政审批服务局招聘中级雇员2考前自测高频考点模拟试题及答案详解一套
- 2025年东营市东营区高层次及急需紧缺招聘教师(40人)考前自测高频考点模拟试题参考答案详解
- 2025贵州六枝特区科学技术协会招聘公益性岗位人员1人模拟试卷及答案详解(新)
- 2025广西钦州市浦北县县直中学(职校)教师专场招聘55人考前自测高频考点模拟试题完整答案详解
- 2025年汉中市中心医院第二批备案制工作人员招聘(19人)模拟试卷附答案详解(完整版)
- 2025年西藏民族大学人才招聘(33人)模拟试卷附答案详解(完整版)
- 2025江苏南通海润城市发展集团有限公司下属子公司招聘管理人员1人考前自测高频考点模拟试题及1套参考答案详解
- 2025广西崇左凭祥市国防动员办公室公开招聘工作人员1人模拟试卷及答案详解1套
- 2025内蒙古巴彦淖尔市能源(集团)有限公司招聘48人(第一批)考前自测高频考点模拟试题及答案详解(名校卷)
- 2025年浙江高考数学试题及答案详解
- 国旗国歌国徽的课件
- 中小学学生心理健康测评工具汇编
- 2025中新社(北京)国际传播集团有限公司新疆分公司招聘6人考试参考题库及答案解析
- 2025至2030中国海带胶行业发展趋势分析与未来投资战略咨询研究报告
- 2025年中国航空发动机整体叶盘零件市场调查研究报告
- 孕产妇全程保健指南
- 航空理论教学课件
- 【MOOC答案】《VLSI设计基础(数字集成电路设计基础)》(东南大学)章节作业慕课答案
- 县级医院医保管理办法
- 2024年河南省淮滨县人民医院公开招聘护理工作人员试题带答案详解
评论
0/150
提交评论