工資管理系統(tǒng)課程設(shè)計報告_第1頁
工資管理系統(tǒng)課程設(shè)計報告_第2頁
工資管理系統(tǒng)課程設(shè)計報告_第3頁
工資管理系統(tǒng)課程設(shè)計報告_第4頁
工資管理系統(tǒng)課程設(shè)計報告_第5頁
已閱讀5頁,還剩20頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、 目錄 TOC o 1-3 h z u HYPERLINK l _Toc376107965 1:課程設(shè)計介紹 PAGEREF _Toc376107965 h 1 HYPERLINK l _Toc376107966 2:開發(fā)環(huán)境 PAGEREF _Toc376107966 h 1 HYPERLINK l _Toc376107967 3:設(shè)計目的 PAGEREF _Toc376107967 h 1 HYPERLINK l _Toc376107968 4:設(shè)計要求: PAGEREF _Toc376107968 h 1 HYPERLINK l _Toc376107969 5:流程圖和模塊圖 PAGER

2、EF _Toc376107969 h 2 HYPERLINK l _Toc376107970 6:設(shè)計內(nèi)容: PAGEREF _Toc376107970 h 4 HYPERLINK l _Toc376107971 6.1.數(shù)據(jù)庫與數(shù)據(jù)表的設(shè)計 PAGEREF _Toc376107971 h 4 HYPERLINK l _Toc376107972 6.2.創(chuàng)建工資管理系統(tǒng)基本框架 PAGEREF _Toc376107972 h 5 HYPERLINK l _Toc376107973 6.3.開發(fā)工資處理界面 PAGEREF _Toc376107973 h 5 HYPERLINK l _Toc37

3、6107974 6.4.主對話框IDD_MY_FORM中控件的加入與布局 PAGEREF _Toc376107974 h 6 HYPERLINK l _Toc376107975 6.5.為編輯框控件建立數(shù)據(jù)字段映射 PAGEREF _Toc376107975 h 8 HYPERLINK l _Toc376107976 6.6.為命令按鈕增加函數(shù)并編制過程代碼 PAGEREF _Toc376107976 h 9 HYPERLINK l _Toc376107977 7:調(diào)試 PAGEREF _Toc376107977 h 12 HYPERLINK l _Toc376107978 8程序清單 PAG

4、EREF _Toc376107978 h 16 HYPERLINK l _Toc376107979 9心得體會 PAGEREF _Toc376107979 h 23 HYPERLINK l _Toc376107980 參考文獻 PAGEREF _Toc376107980 h 231:課程設(shè)計介紹設(shè)計題目:工資管理系統(tǒng)設(shè)計介紹:利用所學(xué)知識,開發(fā)小型應(yīng)用系統(tǒng),使學(xué)生掌握運用可視化編程技術(shù)編寫調(diào)試應(yīng)用系統(tǒng)程序,訓(xùn)練學(xué)生獨立開發(fā)應(yīng)用系統(tǒng)、進行數(shù)據(jù)處理的綜合能力,理解工程的概念和頭文件的使用,熟悉封裝、繼承和多態(tài)性等這些面向?qū)ο缶幊痰奶攸c。2:開發(fā)環(huán)境系統(tǒng)環(huán)境:操作系統(tǒng)需要Windows Xp以上版本

5、;開發(fā)工具Microsoft Visual c+6.0;數(shù)據(jù)庫使用Microsoft office Access2003;3:設(shè)計目的(1)、進一步鞏固、加深學(xué)生所學(xué)專業(yè)課程可視化程序設(shè)計的基本理論知識,理論聯(lián)系實際。(2)、利用所學(xué)知識,開發(fā)小型應(yīng)用系統(tǒng),掌握運用VC+語言編寫調(diào)試應(yīng)用系統(tǒng)程序。(3)、熟練掌握C+語言的基本語法,靈活運用各種數(shù)據(jù)類型。(4)、進一步掌握在集成環(huán)境下如何調(diào)試程序(單步調(diào)試,設(shè)置斷點、觀察表達式,分塊調(diào)試)和修改程序。4:設(shè)計要求:(1)、創(chuàng)建類并使用類對象完成相應(yīng)的任務(wù)。(2)、深入理解封裝、繼承和多態(tài)這的等面向?qū)ο蟮木幊痰奶攸c。(3)、設(shè)計的小型工資管理系統(tǒng)

6、可以收集、處理、存儲信息,擁有查閱、增添、刪除、修改等功能。5:流程圖和模塊圖設(shè)計步驟:數(shù)據(jù)庫設(shè)計數(shù)據(jù)庫驅(qū)動工程的建立界面的布局數(shù)據(jù)庫的連接代碼的添加工程調(diào)試模塊圖:主模塊:工資管理系統(tǒng)工資信息統(tǒng)計查閱預(yù)覽增刪操作工資信息模塊:工資信息年份月份房租水電費統(tǒng)計模塊:統(tǒng)計應(yīng)得工資實得工資應(yīng)扣工資查閱模塊:查閱第一條上一條下一條最后一條增刪操作模塊:增刪操作增加記錄刪除記錄修改記錄6:設(shè)計內(nèi)容:6.1.數(shù)據(jù)庫與數(shù)據(jù)表的設(shè)計作為工資管理系統(tǒng),它是數(shù)據(jù)庫應(yīng)用系統(tǒng)數(shù)據(jù)處理的典范,數(shù)據(jù)庫應(yīng)用系統(tǒng)開發(fā)的前提是首先開發(fā)數(shù)據(jù)庫和數(shù)據(jù)庫中的數(shù)據(jù)表。因此在本案例中,我們采用Microsoft Access 2003創(chuàng)

7、建數(shù)據(jù)庫和數(shù)據(jù)表。為此我們先定義一個“職工工資數(shù)據(jù)表”的結(jié)構(gòu),如表所示。 “職工工資數(shù)據(jù)表”結(jié)構(gòu)字段名稱字段類型字段大小小數(shù)位數(shù)索引必須填寫年份數(shù)字整型是月份數(shù)字整型是職位文本整形是職工編號數(shù)字整型是職工姓名文本16是部門文本20是基本工資數(shù)字長整型自動是業(yè)績工資數(shù)字長整型自動是獎金數(shù)字長整型自動是津貼數(shù)字長整型自動是各種補助數(shù)字長整型自動是應(yīng)發(fā)數(shù)數(shù)字長整型自動是水電費數(shù)字長整型自動是房租數(shù)字長整型自動是儲蓄數(shù)字長整型自動是會費數(shù)字長整型自動是保險數(shù)字長整型自動是扣除總計數(shù)字長整型自動是實發(fā)工資數(shù)字長整型自動是6.2.創(chuàng)建工資管理系統(tǒng)基本框架在前面我們已經(jīng)創(chuàng)建了“工資管理數(shù)據(jù)庫”、“職工工資數(shù)

8、據(jù)表”。它可為應(yīng)用程序提供一個數(shù)據(jù)源。應(yīng)用程序就是對該數(shù)據(jù)源的記錄進行訪問、增加、刪除以及數(shù)據(jù)管理的一切操作。有了這一切的工作,我們就可以著手進行應(yīng)用系統(tǒng)的構(gòu)建了。我們先要用ODBC驅(qū)動將我們建好的數(shù)據(jù)庫。在Microsoft Visual c+6.0中建立工程,在選擇數(shù)據(jù)源的時候選擇開放式數(shù)據(jù)源連接的驅(qū)動程序類型作為系統(tǒng)的數(shù)據(jù)源也就是ODBC。6.3.開發(fā)工資處理界面應(yīng)用系統(tǒng)向?qū)е荒苌梢粋€應(yīng)用程序基本框架,該框架還不具備任何功能,我們在框架的基礎(chǔ)上進行系統(tǒng)各種功能的制作。通常一個應(yīng)用程序框架生成兩個對話框,一個是IDD_ABOUTBOX對話框,它是一個說明該系統(tǒng)的對話框,是由向?qū)ё詣油瓿稍?/p>

9、對話框仍然是基本的。在基本框架中另外一個對話框就是主對話框IDD_MY_FORM,而它就是我們加工制作的主要內(nèi)容,數(shù)據(jù)源也是專門為該對話框引入的。6.4.主對話框IDD_MY_FORM中控件的加入與布局在工資管理系統(tǒng)中,主對話框主要用于處理工資管理的一切內(nèi)容。根據(jù)自己設(shè)計和功能的需要在此窗口上添加需要的控件,如圖。為各個控件修改屬性,具體屬性如下表。標簽對象的基本屬性ID標題內(nèi)容IDC_STATICCAPTION職工工資管理系統(tǒng)IDC_STATICNE年份IDC_STATICYF月份IDC_STATICZGBH職工編號IDC_STATICZGXM職工姓名IDC_STATICZGBM部門IDC_

10、STATICJBGZ基本工資IDC_STATICJJ獎金IDC_STATICYJGZ業(yè)績工資IDC_STATICJT津貼IDC_STATICGZBZ各種補助IDC_STATICRDF水電費IDC_STATICFZOU房租IDC_STATICCX儲蓄I(lǐng)DC_STATICHF會費IDC_STATICBX保險IDC_STATICYFHJ應(yīng)發(fā)合計IDC_STATICKCHJ扣除合計IDC_STATICSFGZ實發(fā)工資 編輯框控件的基本屬性和編輯內(nèi)容ID編輯內(nèi)容IDC_EDITNF年份IDC_EDITYF月份IDC_EDITZGBH職工編號IDC_EDITZGBM所在部門IDC_EDITZGXM職工姓名

11、IDC_EDITJBGZ基本工資IDC_EDITJJ獎金IDC_EDITYJGZ業(yè)績工資IDC_EDITJT津貼IDC_EDITGZBZ各種補助IDC_EDITRDF水電費IDC_EDITFZOU房租IDC_EDITCX儲蓄I(lǐng)DC_EDITHF會費IDC_EDITBX保險IDC_EDITYFHJ應(yīng)發(fā)合計IDC_EDITKCHJ扣除合計IDC_EDITSFGZ實發(fā)工資命令按鈕對象的基本屬性ID標題內(nèi)容IDC_BUTIONFIRST第一條IDC_BUTIONNEXT下一條IDC_BUTIONPREV前一條IDC_BUTIONLAST最后一條IDC_BUTIONSUM執(zhí)行統(tǒng)計IDC_RADIOADD

12、增加記錄IDC_RADIODELETE刪除記錄IDC_RADIOUPDATE刷新記錄分組控件對象的基本屬性ID標題IDC_STATICDATA工資信息IDC_STATICBROWSE查閱瀏覽IDC_STATICADDDELETUPD增刪操作IDC_STATICCOUNT統(tǒng)計6.5.為編輯框控件建立數(shù)據(jù)字段映射在對話框中的一切編輯框控件,均是用于進行數(shù)據(jù)處理和數(shù)據(jù)顯示的,我們?yōu)樗鼈兘⒆侄斡成洌磳?chuàng)建的數(shù)據(jù)集中的每一個字段與一個編輯框進行“數(shù)據(jù)綁定”,如圖。6.6.為命令按鈕增加函數(shù)并編制過程代碼在此我們需要用一些命令來完成對數(shù)據(jù)的操作,需要為命令按鈕建立函數(shù)和編制過程代碼。(1).“第一條記

13、錄”命令按鈕代碼void CMyView:OnBUTTONfirst() / TODO: Add your control notification handler code herem_pSet-MoveFirst();if(m_pSet-IsBOF()MessageBox(記錄已在第一條);m_pSet-MoveNext();UpdateData(FALSE);return;UpdateData(FALSE);(2)、上一條按鈕命令的代碼void CMyView:OnBUTTONprev() / TODO: Add your control notification handler cod

14、e herem_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 herem_pSet-MoveNext();if(m_pSet-IsEOF()MessageBox(記錄已是最后一條!);m_pSet-MovePrev();Update

15、Data(FALSE);return;UpdateData(FALSE);(4)、最后一條按鈕的代碼void CMyView:OnBUTTONlast() / TODO: Add your control notification handler code herem_pSet-MoveLast();if(m_pSet-IsEOF()MessageBox(記錄已是最后一條!);m_pSet-MovePrev;UpdateData(FALSE);return;UpdateData(FALSE);(5)、增加記錄的代碼void CMyView:OnRADIOzjjl() / TODO: Add y

16、our control notification handler code herem_pSet-AddNew();UpdateData (FALSE);(6)、刪除記錄的代碼void CMyView:OnRADIOsxjl() / TODO: Add your control notification handler code herem_pSet-Edit();UpdateData();m_pSet-Update();m_pSet-Requery();m_pSet-CancelUpdate();(7)修改記錄的代碼void CMyView:OnRADIOscjl() / TODO: Add

17、 your control notification handler code herem_pSet-Delete();m_pSet-MoveNext();if(m_pSet-IsEOF()m_pSet-MoveLast();if(m_pSet-IsBOF()m_pSet-SetFieldNull(NULL);UpdateData(FALSE);(8)、統(tǒng)計的代碼void CMyView:OnBUTTONtongji() / TODO: Add your control notification handler code herem_pSet-Edit();m_pSet-m_ydgz=m_pS

18、et-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);m_pSet-Requery();7:調(diào)試主界面:統(tǒng)計下一條上一條5.最后一條6.第一條7.刪除操作8修改操作8程序清單#include stdafx.h#include 工資管理系統(tǒng).h#include 工資

19、管理系統(tǒng)Set.h#include 工資管理系統(tǒng)Doc.h#include 工資管理系統(tǒng)View.h#ifdef _DEBUG#define new DEBUG_NEW#undef THIS_FILEstatic char THIS_FILE = _FILE_;#endif/ CMyViewBOOL m_Add=false;IMPLEMENT_DYNCREATE(CMyView, CRecordView)BEGIN_MESSAGE_MAP(CMyView, CRecordView)/AFX_MSG_MAP(CMyView)ON_BN_CLICKED(IDC_BUTTON_first, OnBU

20、TTONfirst)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, OnRADIOzjjl)ON_BN_CLICKED(IDC_RADIO_sxjl, OnRADIOsxjl)ON_BN_CLICKED(IDC_RADIO_scjl, OnRADIOscjl)ON_BN_CLICKED(IDC_BUTTON_tongji,

21、 OnBUTTONtongji)/AFX_MSG_MAP/ Standard printing commandsON_COMMAND(ID_FILE_PRINT, CRecordView:OnFilePrint)ON_COMMAND(ID_FILE_PRINT_DIRECT, CRecordView:OnFilePrint)ON_COMMAND(ID_FILE_PRINT_PREVIEW, CRecordView:OnFilePrintPreview)END_MESSAGE_MAP()/ CMyView construction/destructionCMyView:CMyView(): CR

22、ecordView(CMyView:IDD)/AFX_DATA_INIT(CMyView)m_pSet = NULL;/AFX_DATA_INIT/ TODO: add construction code hereCMyView:CMyView()void CMyView:DoDataExchange(CDataExchange* pDX)CRecordView:DoDataExchange(pDX);/AFX_DATA_MAP(CMyView)DDX_FieldText(pDX, IDC_EDIT_bm, m_pSet-m_bm, m_pSet);DDX_FieldText(pDX, IDC

23、_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_FieldText(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_pS

24、et);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_pSet-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_ED

25、IT_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_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

26、, m_pSet);DDX_FieldText(pDX, IDC_EDIT1_fz, m_pSet-m_fz, m_pSet);/AFX_DATA_MAPBOOL CMyView:PreCreateWindow(CREATESTRUCT& cs)/ TODO: Modify the Window class or styles here by modifying/ the CREATESTRUCT csreturn CRecordView:PreCreateWindow(cs);void CMyView:OnInitialUpdate()m_pSet = &GetDocument()-m_my

27、Set;CRecordView:OnInitialUpdate();GetParentFrame()-RecalcLayout();ResizeParentToFit();/ CMyView printingBOOL CMyView:OnPreparePrinting(CPrintInfo* pInfo) / default preparationreturn DoPreparePrinting(pInfo);void CMyView:OnBeginPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)/ TODO: add extra initializa

28、tion before printingvoid CMyView:OnEndPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)/ TODO: add cleanup after printing/ CMyView diagnostics#ifdef _DEBUGvoid CMyView:AssertValid() constCRecordView:AssertValid();void CMyView:Dump(CDumpContext& dc) constCRecordView:Dump(dc);CMyDoc* CMyView:GetDocument()

29、 / non-debug version is inlineASSERT(m_pDocument-IsKindOf(RUNTIME_CLASS(CMyDoc);return (CMyDoc*)m_pDocument;#endif /_DEBUG/ CMyView database supportCRecordset* CMyView:OnGetRecordset()return m_pSet;/ CMyView message handlersvoid CMyView:OnBUTTONfirst() / TODO: Add your control notification handler c

30、ode herem_pSet-MoveFirst();if(m_pSet-IsBOF()MessageBox(記錄已經(jīng)在第一條);m_pSet-MoveNext();UpdateData(FALSE);return;UpdateData(FALSE);void CMyView:OnBUTTONprev() / TODO: Add your control notification handler code herem_pSet-MovePrev();if(m_pSet-IsBOF()MessageBox(記錄已經(jīng)在第一條);m_pSet-MoveNext();UpdateData(FALSE)

31、;return;UpdateData(FALSE);void CMyView:OnBUTTONnext() / TODO: Add your control notification handler code herem_pSet-MoveNext();if(m_pSet-IsEOF()MessageBox(記錄已經(jīng)在最后一條);m_pSet-MovePrev();UpdateData(FALSE);return;UpdateData(FALSE);void CMyView:OnBUTTONlast() / TODO: Add your control notification handler

32、 code herem_pSet-MoveLast();if(m_pSet-IsEOF()MessageBox(記錄已經(jīng)在最后一條!);m_pSet-MovePrev;UpdateData(FALSE);return;UpdateData(FALSE);void CMyView:OnRADIOzjjl() / TODO: Add your control notification handler code herem_pSet-AddNew();UpdateData (FALSE);void CMyView:OnRADIOsxjl() / TODO: Add your control notification handler code herem_pSet-Edit();UpdateData();m_pSet-Update();m_pSet-Requery();m_pSet-CancelUpdate();void CMyView

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論