版權(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 互聯(lián)網(wǎng)公司實習(xí)生協(xié)議
- 歐式酒店羅馬柱施工合同
- 照明工程人工費施工合同
- 會計實習(xí)生聘用合同
- 企業(yè)社會責(zé)任績效
- 糖尿病的健康管理方案設(shè)計
- 工程項目合同質(zhì)量管理情況記錄
- 電子產(chǎn)品測試顧問協(xié)議
- 工程施工轉(zhuǎn)讓合同協(xié)議
- 2022年大學(xué)工程力學(xué)專業(yè)大學(xué)物理下冊期中考試試題B卷-附解析
- 人教版中職數(shù)學(xué)基礎(chǔ)模塊上冊--第二章不等式教案
- 上海市初級中學(xué)英語學(xué)科教學(xué)基本要求
- 開展修舊利廢活動方案
- 交流高壓架空輸電線路跨越石油天然氣管道的相關(guān)規(guī)定
- 初三全一冊單詞表漢語部分
- 中國畫PPT精選課件
- 《幼兒教師口語訓(xùn)練》課程實訓(xùn)手冊
- 大學(xué)小組成員介紹動態(tài)PPT
- 紡織服裝制造行業(yè)納稅評估模型案例
- 關(guān)于“釣魚執(zhí)法”現(xiàn)象的法律思考
- 廣告牌拆除施工方案
評論
0/150
提交評論