人事管理系統(tǒng)課程設(shè)計(jì)報(bào)告_第1頁
已閱讀1頁,還剩16頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、<p><b>  人事管理系統(tǒng)</b></p><p>  《面向?qū)ο蟮木幊碳夹g(shù)》</p><p><b>  課程設(shè)計(jì)實(shí)驗(yàn)報(bào)告</b></p><p>  應(yīng)用程序的名稱:人事管理系統(tǒng)</p><p>  2.應(yīng)用程序的主題和目的:制作能用于創(chuàng)建人事信息管理的系統(tǒng),</p>

2、<p>  創(chuàng)建人事管理數(shù)據(jù)表,反映職工的基本信息。其中含有,“職工編號(hào)”,“職工姓名”,“職工性別”,“職工年齡”,“基本工資”,“所在部門”?!肮ぷ鲿r(shí)間”,“簡(jiǎn)歷”,“職稱”等字段??梢詫?duì)人員信息進(jìn)行適當(dāng)?shù)奶幚?,以滿足單位或企業(yè)需要。</p><p>  能夠執(zhí)行以下四種操作:</p><p>  可以輸入職工的完整信息以增加新成員</p><p>

3、;  可以選擇性的刪除職工的信息</p><p>  可以實(shí)現(xiàn)對(duì)職工人員進(jìn)行排序</p><p>  可以實(shí)現(xiàn)對(duì)某個(gè)職工進(jìn)行篩選</p><p>  3.應(yīng)用程序的簡(jiǎn)介:</p><p>  設(shè)計(jì)目的:創(chuàng)建人事管理數(shù)據(jù)表,該表反映職工的基本信息,其中包含職工編號(hào)、職工姓名、職工性別、所在部門、職工年齡、工作日期、基本工資、職稱、職務(wù)和簡(jiǎn)歷等字

4、段。應(yīng)用系統(tǒng)主控界面應(yīng)包括記錄編輯和記錄查詢等功能模塊。記錄編輯功能完成職工記錄編輯的“增加記錄”、“刪除記錄”、“篩選記錄”和“排序記錄”等功能。</p><p>  功能介紹:“增加記錄”功能可以彈出提示信息對(duì)話框,對(duì)話框含有九個(gè)分別對(duì)應(yīng)人員信息的靜態(tài)控件,和九個(gè)編輯框,用于用戶輸入要增加的人員的九條信息。</p><p>  “刪除記錄”功能可以用來刪除某個(gè)人員或某些人員的信息。系統(tǒng)

5、中會(huì)顯示該信息已被刪除。該信息也會(huì)從數(shù)據(jù)庫中刪除。</p><p>  “篩選記錄”功能可以用來提供給用戶篩選出需要查看的人員的信息,該人事管理系統(tǒng)會(huì)彈出一個(gè)對(duì)話框,提示用戶輸入要篩選的人員的職工編號(hào),從而篩選出該人員的信息。此時(shí)系統(tǒng)會(huì)彈出被篩選出的人員的全部信息。</p><p>  “排序記錄”功能可以用來用戶對(duì)數(shù)據(jù)庫中的所有人員根據(jù)職工編號(hào)進(jìn)行排序。使用該功能后按下一個(gè)記錄鍵,可以看

6、到所有的人員已按照職工編號(hào)排好順序了。</p><p><b>  基本內(nèi)容:</b></p><p>  每一個(gè)界面都是一個(gè)類,類上的選擇按鈕由該類的成員函數(shù)實(shí)現(xiàn),而職工信息則是數(shù)據(jù)成員。主界面的類是:CMyView,成員函數(shù)有OnButtonAdd( )(增加記錄);OnButtonDel( )(刪除記錄);OnButtonPaiXu( )(排序記錄); O

7、nButtonSort( )(篩選記錄)</p><p>  CMySet,定義指針為:m_pSet調(diào)用數(shù)據(jù)成員。</p><p> ?。?1)所有的人員信息都存在Access數(shù)據(jù)庫中。用Office中的Access軟件創(chuàng)建數(shù)據(jù)庫,創(chuàng)建“人事管理數(shù)據(jù)表”輸入所有的人員信息,然后配置ODBC數(shù)據(jù)源。</p><p>  (2)用VC++創(chuàng)建人事管理應(yīng)用程序框架。在V

8、C++中 創(chuàng)建一個(gè)MFC。</p><p> ?。?)制作人事管理主窗口,放入九個(gè)靜態(tài)標(biāo)簽控件和九個(gè)編輯框控件,分別在九個(gè)靜態(tài)控件屬性中設(shè)置名稱分別與“職工編號(hào) ”,“職工姓名”,“職工性別”,“工作時(shí)間”等九條信息對(duì)應(yīng)。加完控件后設(shè)置完屬性。最后為每個(gè)編輯框綁定數(shù)據(jù)源字段。</p><p> ?。?)錯(cuò)誤分析與排除:在綁定后唯獨(dú)“工作時(shí)間”無法綁定,用方法二進(jìn)行排除錯(cuò)誤哦。不用Cstri

9、ng定義工作時(shí)間,刪掉原有編輯框控件,添加“日期時(shí)間選取器”控件。并與m_gzsj綁定。此時(shí)便有唯一映射,然后修改函數(shù)DoDateExchange();編譯運(yùn)行并按下一條記錄。</p><p> ?。?)為系統(tǒng)實(shí)現(xiàn)“增加記錄”,“刪除記錄”,“篩選記錄”,“排序記錄”功能,添加四個(gè)功能按鈕。為“增加記錄”,和“篩選記錄”創(chuàng)建新的對(duì)話框和創(chuàng)建新類及類成員變量,再分別綁定。創(chuàng)建“增加記錄”功能對(duì)話框用于提醒用戶輸入人

10、員信息。雙擊四個(gè)按鈕分別輸入四段代碼以實(shí)現(xiàn)四個(gè)人事管理功能。</p><p> ?。?)最后的運(yùn)行,分別測(cè)試四個(gè)功能。并保存。</p><p>  主要技術(shù):面向?qū)ο笤O(shè)計(jì)與MFC,數(shù)據(jù)庫</p><p>  運(yùn)行環(huán)境:此設(shè)計(jì)采用VC++編譯,并能在WIN7下運(yùn)行</p><p><b>  。</b></p>

11、<p>  4.運(yùn)行程序總體設(shè)計(jì)結(jié)構(gòu)圖,類層次圖,主要運(yùn)行界面介紹</p><p><b>  總體設(shè)計(jì)結(jié)構(gòu)圖:</b></p><p><b>  類層次圖</b></p><p><b>  運(yùn)行界面</b></p><p><b>  5.創(chuàng)新和難

12、點(diǎn)</b></p><p>  如果完全按照課程設(shè)計(jì)指導(dǎo)書模板的進(jìn)行,當(dāng)進(jìn)行到“增加記錄”功能時(shí)便出現(xiàn)問題??偸禽敳贿M(jìn)去,增加不了新成員,而且還會(huì)突然跳到最后一個(gè)人員信息。即覆蓋了之前的信息。最初運(yùn)行到此處時(shí),不知如何是好。編譯有無錯(cuò),卻運(yùn)行不出來,經(jīng)過搜書,百度等方式明白關(guān)鍵所在,需要新建資源對(duì)話框,并新建類和類成員變量以實(shí)現(xiàn)信息的錄入。于是我添加了一的Dialog對(duì)話框并添加九個(gè) 靜態(tài)控件 和九個(gè)

13、 編輯框控件 然后綁定此類變量。并在void CMyView::OnBUTTONAdd( )中添加相應(yīng)代碼把新建立的類對(duì)象a對(duì)應(yīng)的數(shù)據(jù)成員值賦值給m-pSet,最終得以實(shí)現(xiàn)添加功能。并且在點(diǎn)擊“增加記錄”功能按鈕時(shí)會(huì)彈出:“請(qǐng)輸入要增加的人員信息”對(duì)話框,用戶可直接在編輯框中輸入要增加的人員信息即可把該成員添加到人事管理系統(tǒng)中去??瓷先ジ烙^,明白。</p><p>  有關(guān)數(shù)據(jù)源的問題,當(dāng)再次打開或放到別的機(jī)子

14、上運(yùn)行時(shí)老是會(huì)出現(xiàn)LINK2001,2011等問題。</p><p>  6.課程設(shè)計(jì)中目前存在的問題</p><p>  “篩選記錄”功能實(shí)現(xiàn)一次后,無法恢復(fù),必須再次運(yùn)行后才可以實(shí)現(xiàn)其他功能。否則如果先運(yùn)行“篩選記錄”那么無法返回運(yùn)行其他三個(gè)功能。</p><p>  7.設(shè)計(jì)實(shí)踐過程中的心得體會(huì)。</p><p>  通過這次的課程設(shè)計(jì)

15、,我對(duì)與MFC有了初步了解,在調(diào)試,編譯,運(yùn)行的過程中,加深了對(duì)面向?qū)ο蟮睦斫狻W畛鮿?chuàng)建MFC做這個(gè)人事管理系統(tǒng)時(shí),C++面向?qū)ο蟮目梢暬屛覍?duì)此產(chǎn)生了興趣,但慢慢的當(dāng)我在做“增加記錄”功能時(shí),由于老是出現(xiàn)問題 ,我開始沒了耐心。心里浮躁了起來,越是浮躁就越找不出錯(cuò)誤原因所在。于是在整個(gè)過程中,我明白,編程過程一定要有耐心,要多嘗試,多思考。還有在學(xué)習(xí)編程的過程中培養(yǎng)自學(xué)能力很重要。以這種可視化的方式可以讓我們講理論與實(shí)踐結(jié)合起來,培養(yǎng)

16、起興趣。</p><p><b>  附 錄</b></p><p><b>  安裝使用說明:</b></p><p>  雙擊.exe文件后,就會(huì)彈出一個(gè)人事管理系統(tǒng)的對(duì)話框。此對(duì)話框中上面四分之三空間是職工的九條信息名稱和對(duì)應(yīng)的信息,底部是四個(gè)功能按鈕,分別是:“增加記錄”,“刪除記錄”,“排序記錄”,“篩選記錄”

17、。</p><p>  點(diǎn)擊“增加記錄”后會(huì)彈出新的窗口,此窗口和主窗口類似,用戶輸入要增加的職工信息后,點(diǎn)擊“確定”鍵即可將該成員信息增加到人事管理系統(tǒng)中。</p><p>  點(diǎn)擊“刪除記錄”后,系統(tǒng)會(huì)刪除當(dāng)前的成員信息,并在主窗口顯示已刪除。</p><p>  點(diǎn)擊“排序記錄”按鈕后,所有的人員按“職工編號(hào)”進(jìn)行有小到大的排序。按左右轉(zhuǎn)換記錄鍵即可觀察到。&

18、lt;/p><p>  點(diǎn)擊“篩選記錄”按鈕后,彈出一個(gè)對(duì)話框,提醒用戶輸入要篩選的成員“職工編號(hào)”,系統(tǒng)會(huì)篩選出該成員,并顯示該成員的所有信息。</p><p><b>  源代碼</b></p><p>  // 人事管理系統(tǒng)View.cpp : implementation of the CMyView class</p>&l

19、t;p>  #include "stdafx.h"</p><p>  #include "人事管理系統(tǒng).h"</p><p>  #include"Add.h"</p><p>  #include "Dguolv.h"</p><p>  #includ

20、e "人事管理系統(tǒng)Set.h"</p><p>  #include "人事管理系統(tǒng)Doc.h"</p><p>  #include "人事管理系統(tǒng)View.h"</p><p>  #ifdef _DEBUG</p><p>  #define new DEBUG_NEW<

21、/p><p>  #undef THIS_FILE</p><p>  static char THIS_FILE[] = __FILE__;</p><p><b>  #endif</b></p><p>  ////////////////////</p><p>  // CMyView<

22、;/p><p>  IMPLEMENT_DYNCREATE(CMyView, CRecordView)</p><p>  BEGIN_MESSAGE_MAP(CMyView, CRecordView)</p><p>  //{{AFX_MSG_MAP(CMyView)</p><p>  ON_BN_CLICKED(IDC_BUTTON_Ad

23、d, OnBUTTONAdd)</p><p>  ON_BN_CLICKED(IDC_BUTTON_Del, OnBUTTONDel)</p><p>  ON_BN_CLICKED(IDC_BUTTON_Find, OnBUTTONFind)</p><p>  ON_BN_CLICKED(IDC_BUTTON_Sort, OnBUTTONSort)</p

24、><p>  //}}AFX_MSG_MAP</p><p>  // Standard printing commands</p><p>  ON_COMMAND(ID_FILE_PRINT, CRecordView::OnFilePrint)</p><p>  ON_COMMAND(ID_FILE_PRINT_DIRECT, CRecor

25、dView::OnFilePrint)</p><p>  ON_COMMAND(ID_FILE_PRINT_PREVIEW, CRecordView::OnFilePrintPreview)</p><p>  END_MESSAGE_MAP()</p><p>  /////////////////////////////////////////////////

26、////////</p><p>  // CMyView construction/destruction</p><p>  CMyView::CMyView()</p><p>  : CRecordView(CMyView::IDD)</p><p><b>  {</b></p><p>

27、;  //{{AFX_DATA_INIT(CMyView)</p><p>  m_pSet = NULL;</p><p>  //}}AFX_DATA_INIT</p><p>  // TODO: add construction code here</p><p><b>  }</b></p>&

28、lt;p>  CMyView::~CMyView()</p><p><b>  {</b></p><p><b>  }</b></p><p>  void CMyView::DoDataExchange(CDataExchange* pDX)</p><p><b>  {&

29、lt;/b></p><p>  CRecordView::DoDataExchange(pDX);</p><p>  //{{AFX_DATA_MAP(CMyView)</p><p>  DDX_DateTimeCtrl(pDX,IDC_DATETIMEPICKER_GZSJ, m_pSet->m_gzsj);</p><p&g

30、t;  DDX_FieldText(pDX, IDC_EDIT_JBGZ, m_pSet->m_jbgz, m_pSet);</p><p>  DDX_FieldText(pDX, IDC_EDIT_JL, m_pSet->m_jl, m_pSet);</p><p>  DDX_FieldText(pDX, IDC_EDIT_SZDW, m_pSet->m_szdm,

31、 m_pSet);</p><p>  DDX_FieldText(pDX, IDC_EDIT_ZC, m_pSet->m_zc, m_pSet);</p><p>  DDX_FieldText(pDX, IDC_EDIT_ZGBH, m_pSet->m_zgbh, m_pSet);</p><p>  DDX_FieldText(pDX, IDC_E

32、DIT_ZGNL, m_pSet->m_zgnl, m_pSet);</p><p>  DDX_FieldText(pDX, IDC_EDIT_ZGXB, m_pSet->m_zgxb, m_pSet);</p><p>  DDX_FieldText(pDX, IDC_EDIT_ZGXM, m_pSet->m_zgxm, m_pSet);</p><

33、;p>  //}}AFX_DATA_MAP</p><p><b>  }</b></p><p>  BOOL CMyView::PreCreateWindow(CREATESTRUCT& cs)</p><p><b>  {</b></p><p>  // TODO: Modi

34、fy the Window class or styles here by modifying</p><p>  // the CREATESTRUCT cs</p><p>  return CRecordView::PreCreateWindow(cs);</p><p><b>  }</b></p><p>

35、  void CMyView::OnInitialUpdate()</p><p><b>  {</b></p><p>  m_pSet = &GetDocument()->m_mySet;</p><p>  CRecordView::OnInitialUpdate();</p><p>  GetP

36、arentFrame()->RecalcLayout();</p><p>  ResizeParentToFit();</p><p><b>  }</b></p><p>  ///////////////////////////////////////////////////////// CMyView printing</

37、p><p>  BOOL CMyView::OnPreparePrinting(CPrintInfo* pInfo)</p><p><b>  {</b></p><p>  // default preparation</p><p>  return DoPreparePrinting(pInfo);</p>

38、;<p><b>  }</b></p><p>  void CMyView::OnBeginPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)</p><p><b>  {</b></p><p>  // TODO: add extra initializati

39、on before printing</p><p><b>  }</b></p><p>  void CMyView::OnEndPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)</p><p><b>  {</b></p><p>  // TOD

40、O: add cleanup after printing</p><p><b>  }</b></p><p>  /////////////////////////////////////////////////////////</p><p>  // CMyView diagnostics</p><p>  

41、#ifdef _DEBUG</p><p>  void CMyView::AssertValid() const</p><p><b>  {</b></p><p>  CRecordView::AssertValid();</p><p><b>  }</b></p><

42、;p>  void CMyView::Dump(CDumpContext& dc) const</p><p><b>  {</b></p><p>  CRecordView::Dump(dc);</p><p><b>  }</b></p><p>  CMyDoc* CMyV

43、iew::GetDocument() // non-debug version is inline</p><p><b>  {</b></p><p>  ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(CMyDoc)));</p><p>  return (CMyDoc*)m_pDocumen

44、t;</p><p><b>  }</b></p><p>  #endif //_DEBUG</p><p>  ////////////////////////////////////////////////////////</p><p>  // CMyView database support</p&g

45、t;<p>  CRecordset* CMyView::OnGetRecordset()</p><p><b>  {</b></p><p>  return m_pSet;</p><p><b>  }</b></p><p>  //////////////////////

46、///////////////////////////////////// CMyView message handlers</p><p>  void CMyView::OnBUTTONAdd() </p><p><b>  {</b></p><p>  // TODO: Add your control notification ha

47、ndler code here</p><p>  Add a;//建立對(duì)話框Add的對(duì)象</p><p>  // CDataExchange *pDX;</p><p>  if (a.DoModal()==IDOK)//打開對(duì)話框Add</p><p><b>  {</b></p><p>

48、;  m_pSet->AddNew();</p><p>  m_pSet->m_zgbh=a.m_zgbh;</p><p>  m_pSet->m_zgxm=a.m_zgxm;</p><p>  m_pSet->m_zgxb=a.m_zgxb;</p><p>  m_pSet->m_zgnl=a.m_zg

49、nl;</p><p>  m_pSet->m_jbgz=a.m_jbgz;</p><p>  m_pSet->m_zc=a.m_zc;</p><p>  m_pSet->m_jl=a.m_jl;</p><p>  m_pSet->m_szdm=a.m_szdw;</p><p>  m_

50、pSet->m_gzsj=a.m_gzsj;</p><p>  //DDX_DateTimeCtrl(pDX,IDC_DATETIMEPICKER_GZSJ, m_pSet->m_gzsj);</p><p>  m_pSet->Update();//更新記錄集</p><p>  m_pSet->Requery();//重新提取數(shù)據(jù)<

51、;/p><p>  m_pSet->MoveLast();//移動(dòng)下一條記錄</p><p>  UpdateData(FALSE);//更新視圖</p><p><b>  }</b></p><p><b>  }</b></p><p>  void CMyView:

52、:OnBUTTONDel() </p><p><b>  {</b></p><p>  // TODO: Add your control notification handler code here</p><p>  m_pSet->Delete();</p><p>  m_pSet->MoveNe

53、xt();</p><p>  if (m_pSet->IsEOF())</p><p>  m_pSet->MoveLast();</p><p>  if (m_pSet->IsBOF())</p><p>  m_pSet->SetFieldNull(NULL);</p><p>  Up

54、dateData(FALSE);</p><p><b>  }</b></p><p>  void CMyView::OnBUTTONFind() </p><p><b>  {</b></p><p>  // TODO: Add your control notification hand

55、ler code here</p><p>  CDguolv Dlgquery;</p><p>  CString value;</p><p>  if (Dlgquery.DoModal()==IDOK)//“模式窗口方式打開,結(jié)束前不能操縱父窗口”</p><p><b>  {</b></p>

56、<p>  value="職工編號(hào)=+"+Dlgquery.m_guol+"";</p><p>  m_pSet->m_strFilter=value;</p><p>  m_pSet->Requery();</p><p>  UpdateData(FALSE);</p><p&

57、gt;<b>  }</b></p><p><b>  }</b></p><p>  void CMyView::OnBUTTONSort() </p><p><b>  {</b></p><p>  // TODO: Add your control notifica

58、tion handler code here</p><p>  m_pSet->m_strSort="職工編號(hào)";</p><p>  m_pSet->Requery();</p><p>  UpdateData(FALSE);</p><p><b>  }</b></p>

溫馨提示

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

評(píng)論

0/150

提交評(píng)論