2023年全國碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩37頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、<p><b>  前言</b></p><p>  本次軟件工程的課程設(shè)計(jì)我們完成了一個(gè)人事管理系統(tǒng)。通過這次課程設(shè)計(jì),我們掌握了Microsoft Visual Studio2005和Microsoft Office Access 2003的使用方法和軟件設(shè)計(jì)的方法。這次的課程設(shè)計(jì)我們實(shí)現(xiàn)了人事管理系統(tǒng)的基本數(shù)據(jù)管理,人事檔案管理,數(shù)據(jù)庫管理和系統(tǒng)管理的功能。其中基本數(shù)據(jù)管理可

2、分為民族檔案設(shè)置,職工類型設(shè)置,文化程度設(shè)置,政治面貌設(shè)置,部門類別設(shè)置,工資類別設(shè)置,職稱類別設(shè)置,職務(wù)類別設(shè)置這8個(gè)部分,人事檔案管理可分為人事檔案瀏覽,人事資料查詢,人事資料統(tǒng)計(jì)這三部分,數(shù)據(jù)庫管理可分為數(shù)據(jù)庫備份和恢復(fù)。系統(tǒng)管理可分為用戶設(shè)置和系統(tǒng)退出。由于時(shí)間緊促,還有很多功能沒有完成,譬如考試管理和職工的通信錄等。通過這次的課程設(shè)計(jì),在界面設(shè)計(jì)上也收獲不少,學(xué)會了skinplusplus的使用,這使界面的美化變得更容易。我們

3、將繼續(xù)改進(jìn)這系統(tǒng)。 </p><p>  本次課程設(shè)計(jì)的需求分析和數(shù)據(jù)庫設(shè)計(jì)是2個(gè)人共同完成的。</p><p>  葉偉平(3105007360)完成了基本數(shù)據(jù)的管理(民族檔案設(shè)置,職工類型設(shè)置,文化程度設(shè)置,政治面貌設(shè)置,部門類別設(shè)置,工資類別設(shè)置,職稱類別設(shè)置,職務(wù)類別設(shè)置)的功能和系統(tǒng)管理。</p><p>  葉丙坤(3105007359)主要完成

4、了數(shù)據(jù)庫備份與恢復(fù)的功能,人事檔案管理(人事檔案瀏覽,人事資料查詢,人事資料統(tǒng)計(jì))和用戶設(shè)置和系統(tǒng)退出的功能和報(bào)告的撰寫。</p><p><b>  一、課程設(shè)計(jì)的內(nèi)容</b></p><p>  這次課程設(shè)計(jì)采用Microsoft Visual Studio2005作為前臺應(yīng)用程序的設(shè)計(jì)工具,用Microsoft Office Access 2003作為后臺數(shù)據(jù)庫

5、,完成一個(gè)人事管理系統(tǒng)。實(shí)現(xiàn)的主要功能有基礎(chǔ)數(shù)據(jù)管理(民族檔案設(shè)置,職工類型設(shè)置,文化程度設(shè)置,政治面貌設(shè)置,部門類別設(shè)置,工資類別設(shè)置,職稱類別設(shè)置,職務(wù)類別設(shè)置),人事檔案管理(人事檔案瀏覽,人事資料查詢,人事資料統(tǒng)計(jì)),數(shù)據(jù)庫管理(數(shù)據(jù)庫的備份與恢復(fù))系統(tǒng)管理(設(shè)置用戶和退出系統(tǒng))。</p><p>  二、課程設(shè)計(jì)的要求與數(shù)據(jù)</p><p>  使用 Microsoft Visu

6、al Studio 2005和 Microsoft Office Access 2003完成一個(gè)人事管理系統(tǒng)。按照一個(gè)企業(yè)實(shí)際管理中的實(shí)際需要實(shí)際數(shù)據(jù)庫,選定數(shù)據(jù)。 </p><p>  三、課程設(shè)計(jì)應(yīng)完成的工作</p><p>  1. 獨(dú)立完成系統(tǒng)的分析、設(shè)計(jì)、編碼、測試工作。</p><p>  2.完成設(shè)計(jì)報(bào)告的撰寫。</p><p&g

7、t;  四、課程設(shè)計(jì)進(jìn)程安排</p><p>  五、應(yīng)收集的資料及主要參考文獻(xiàn)</p><p>  [1].鄭阿奇/丁有和. Visual Studio2005教程,北京:機(jī)械工業(yè)出版社,2006.9</p><p>  [2].李代平.軟件工程.第二版.北京:冶金工業(yè)出版社,2006.11</p><p>  [3].王珊/薩師煊.數(shù)據(jù)

8、庫系統(tǒng)概論.第四版.-北京:高等教育出版社,2006.5</p><p>  [4].李春葆/曾平.數(shù)據(jù)庫原理與應(yīng)用,北京:清華大學(xué)出版社,2005.</p><p>  發(fā)出任務(wù)書日期:2007年6月10日 指導(dǎo)教師簽名:</p><p>  計(jì)劃完成日期: 2007年6月29日 基層教學(xué)單位責(zé)任人簽章:</p><p>&l

9、t;b>  主管院長簽章:</b></p><p><b>  目 錄</b></p><p>  課程設(shè)計(jì)(論文)1</p><p>  1.開發(fā)環(huán)境和相關(guān)技術(shù)介紹7</p><p><b>  1.1開發(fā)環(huán)境7</b></p><p>  1.

10、2相關(guān)技術(shù)介紹7</p><p><b>  2.需求分析7</b></p><p>  2.1系統(tǒng)需求和功能7</p><p><b>  2.2數(shù)據(jù)字典7</b></p><p>  2.2.1數(shù)據(jù)項(xiàng)7</p><p>  2.2.2數(shù)據(jù)結(jié)構(gòu)8</p&g

11、t;<p>  2.3安全性要求9</p><p>  3.概念結(jié)構(gòu)設(shè)計(jì)9</p><p>  3.1設(shè)計(jì)方法和步驟9</p><p>  3.2概念結(jié)構(gòu)E-R圖9</p><p>  3.2 E-R圖的有關(guān)實(shí)體和聯(lián)系的說明11</p><p><b>  4.邏輯設(shè)計(jì)11</

12、b></p><p>  4.1 關(guān)系模式11</p><p><b>  5.邏輯設(shè)計(jì)11</b></p><p>  5.1建立數(shù)據(jù)庫11</p><p><b>  5.2建立表11</b></p><p>  6 應(yīng)用程序設(shè)置和代碼分析14</p

13、><p>  6.1.配置ODBC數(shù)據(jù)源和添加skin++皮膚14</p><p>  6.2人事檔案瀏覽15</p><p>  6.3人事檔案查詢19</p><p>  6.4人事資料統(tǒng)計(jì)24</p><p>  6.5數(shù)據(jù)庫備份以及恢復(fù)33</p><p>  6.6設(shè)置用戶35

14、</p><p>  7. 測試方案和測試報(bào)告37</p><p>  7.1白盒測試37</p><p>  7.2黑盒測試37</p><p>  7.2.1登陸測試38</p><p>  7.2.2人事查詢功能測試39</p><p>  8.安裝說明和使用說明40</

15、p><p>  8.1運(yùn)行條件40</p><p>  8.2使用方法40</p><p><b>  9.結(jié) 論40</b></p><p>  10.參考文獻(xiàn)40</p><p>  1.開發(fā)環(huán)境和相關(guān)技術(shù)介紹</p><p><b>  1.1開發(fā)環(huán)境

16、</b></p><p>  系統(tǒng)結(jié)構(gòu):C/S結(jié)構(gòu)</p><p>  數(shù)據(jù)庫系統(tǒng):Microsoft Office Access 2003</p><p>  數(shù)據(jù)庫連接方式:ODBC連接方式</p><p>  開發(fā)工具:Microsoft Visual Studio2005</p><p><b

17、>  1.2相關(guān)技術(shù)介紹</b></p><p>  Visual Studio是微軟公司推出的開發(fā)環(huán)境。是目前最流行的Windows 平臺應(yīng)用程序開發(fā)環(huán)境。目前已經(jīng)開發(fā)到9.0版本,也就是Visual Studio 2008。 Visual Studio可以用來創(chuàng)建 Windows平臺下的Windows應(yīng)用程序和網(wǎng)絡(luò)應(yīng)用程序,也可以用來創(chuàng)建網(wǎng)絡(luò)服務(wù)、智能設(shè)備應(yīng)用程序和Office 插件。使用

18、Visual Studio 2005, 專業(yè)開發(fā)人員能夠:使用改進(jìn)后的可視化設(shè)計(jì)工具、編程語言和代碼編輯器,享受高效率的開發(fā)環(huán)境;使用集成的可視化數(shù)據(jù)庫設(shè)計(jì)和報(bào)告工具,創(chuàng)建SQL Server 2005解決方案;使用Visual Studio SDK創(chuàng)建可以擴(kuò)展Visual Studio IDE的工具;專業(yè)開發(fā)人員喜歡自由的使用.NET Framework 2.0,它是一種穩(wěn)健的、功能齊備的開發(fā)環(huán)境,支持創(chuàng)建擴(kuò)展Visual Studi

19、o集成開發(fā)環(huán)境的工具。</p><p><b>  2.需求分析</b></p><p>  2.1系統(tǒng)需求和功能</p><p>  設(shè)計(jì)一個(gè)人事管理系統(tǒng),使系統(tǒng)滿足以下需求和功能</p><p>  1)根據(jù)企業(yè)人事管理的需要,對企業(yè)以及企業(yè)中員工的信息進(jìn)行添假刪除等操作,并能對人事檔案進(jìn)行瀏覽,對人事資料進(jìn)行查詢,

20、對人事資料進(jìn)行統(tǒng)計(jì)。為企業(yè)的人事管理提供一個(gè)便利的管理系統(tǒng)。</p><p>  2)、系統(tǒng)功能包括:</p><p>  a系統(tǒng)管理(設(shè)置用戶和退出系統(tǒng))。</p><p>  b基礎(chǔ)數(shù)據(jù)管理(民族檔案設(shè)置,職工類型設(shè)置,文化程度設(shè)置,政治面貌設(shè)置,部門類別設(shè)置,工資類別設(shè)置,職稱類別設(shè)置,職務(wù)類別設(shè)置)。</p><p>  c人事檔案管

21、理(人事檔案瀏覽,人事資料查詢,人事資料統(tǒng)計(jì))。</p><p>  數(shù)據(jù)庫管理(數(shù)據(jù)庫的備份與恢復(fù))。</p><p><b>  2.2數(shù)據(jù)字典</b></p><p><b>  2.2.1數(shù)據(jù)項(xiàng)</b></p><p>  1)數(shù)據(jù)項(xiàng)名稱: 用戶名</p><p> 

22、 簡述:用戶的名字,沒有重復(fù),可以唯一標(biāo)識每一用戶</p><p><b>  類型:文本</b></p><p><b>  長度:50</b></p><p>  2)數(shù)據(jù)項(xiàng)名稱:用戶密碼</p><p>  簡述:用戶的密碼,用來證驗(yàn)登陸的用戶是否合法。</p><p>

23、;<b>  類型:文本</b></p><p><b>  長度:50</b></p><p>  3)數(shù)據(jù)項(xiàng)名稱:是否管理員</p><p>  簡述:描述是否系統(tǒng)管理員</p><p><b>  類型:是/否</b></p><p><b&

24、gt;  取值范圍:真/假</b></p><p><b>  ……</b></p><p><b>  2.2.2數(shù)據(jù)結(jié)構(gòu)</b></p><p>  1)數(shù)據(jù)結(jié)構(gòu)名稱:用戶名和密碼信息 </p><p>  組成:用戶名,密碼,是否管理員</p><p>  

25、2)數(shù)據(jù)結(jié)構(gòu)名稱:民族檔案設(shè)置</p><p>  組成:民族編號,民族名稱</p><p>  3)數(shù)據(jù)結(jié)構(gòu)名稱:職工類型設(shè)置</p><p>  組成:職工類型編號,職工類型名稱</p><p>  4)數(shù)據(jù)結(jié)構(gòu)名稱:文化程度設(shè)置</p><p>  組成:文化程度編號,文化程度名稱。</p><

26、;p>  5)數(shù)據(jù)結(jié)構(gòu)名稱:政治面貌設(shè)置</p><p>  組成:政治面貌編號,政治面貌名稱</p><p>  6)數(shù)據(jù)結(jié)構(gòu)名稱:部門類別設(shè)置</p><p>  組成:部門類別編號,部門類別名稱</p><p>  7)數(shù)據(jù)結(jié)構(gòu)名稱:工資類型設(shè)置</p><p>  組成:工資類型編號,工資類型名稱<

27、/p><p>  8)數(shù)據(jù)結(jié)構(gòu)名稱:職稱類別設(shè)置</p><p>  組成:職稱類別編號,職稱類別名稱。</p><p>  9)數(shù)據(jù)結(jié)構(gòu)名稱:職務(wù)類別設(shè)置</p><p>  組成:職務(wù)類別編號,職務(wù)類別名稱</p><p>  10)數(shù)據(jù)結(jié)構(gòu)名稱:職工信息</p><p>  組成:職工編號,職

28、工性別,職工年齡,民族,婚姻狀況,家庭電話,電子郵箱,手機(jī),籍貫,地址,畢業(yè)學(xué)校,職稱,入職時(shí)間,職稱類別,部門類別,職務(wù)類別。</p><p>  11)數(shù)據(jù)結(jié)構(gòu)名稱:職工的家庭成員</p><p>  組成:編號,員工號,成員姓名,關(guān)系,出生日期,工作單位,擔(dān)任職務(wù),政治面貌</p><p><b>  2.3安全性要求</b></p

29、><p>  訪問數(shù)據(jù)庫時(shí)需要輸入登陸帳號和密碼。在數(shù)據(jù)庫內(nèi)設(shè)有用戶表,登陸系統(tǒng)時(shí)會要求輸入用戶帳號和密碼。登陸模塊根據(jù)輸入帳號和密碼查用戶表,查到匹配記錄則允許其登陸系統(tǒng)。用戶帳號和密碼可以在系統(tǒng)中添加和刪除。</p><p><b>  3.概念結(jié)構(gòu)設(shè)計(jì)</b></p><p>  3.1設(shè)計(jì)方法和步驟</p><p>

30、  采用自底而上的設(shè)計(jì)方法。先自頂向下地進(jìn)行需求分析,對人事管理系統(tǒng)的需求進(jìn)行逐步細(xì)化;然后再自底而上地設(shè)計(jì)概念結(jié)構(gòu),最終將各個(gè)局部應(yīng)用的概念結(jié)構(gòu)集合成為全局概念結(jié)構(gòu)。</p><p>  3.2概念結(jié)構(gòu)E-R圖</p><p>  通過對局部應(yīng)用的選擇,逐一設(shè)計(jì)出分E-R圖,并對各個(gè)分E-R圖進(jìn)行合并,生成初步E-R圖,消除不必要的系統(tǒng)冗余,可以得出以下人事管理系統(tǒng)E-R圖。</p

31、><p>  圖3.1 人事管理系統(tǒng)的 E-R 圖1</p><p>  圖3.12人事管理系統(tǒng)的 E-R 圖2</p><p>  3.2 E-R圖的有關(guān)實(shí)體和聯(lián)系的說明</p><p>  說明:對于人事管理系統(tǒng)的 E-R 圖1,一個(gè)用戶可以設(shè)置多個(gè)民族的情況,一個(gè)民族檔案能被多個(gè)用戶設(shè)置。一個(gè)用戶可以設(shè)置多個(gè)職工類型,一個(gè)職工類型能被多個(gè)用

32、戶設(shè)置。其他的類似。</p><p>  對于圖3.12人事管理系統(tǒng)的 E-R 圖2,一個(gè)用戶可以瀏覽,查詢多個(gè)職工的檔案,一個(gè)職工的檔案能被多個(gè)用戶瀏覽。</p><p><b>  4.邏輯設(shè)計(jì)</b></p><p><b>  4.1 關(guān)系模式</b></p><p>  由E-R圖轉(zhuǎn)換得到

33、的關(guān)系模式如下:</p><p>  用戶(用戶名,密碼,是否管理員)</p><p>  民族檔案設(shè)置(民族編號,民族名稱)</p><p>  職工類型設(shè)置(職工類型號,職工類型名稱)</p><p>  文化程度設(shè)置(文化程度編號,文化程度名稱)</p><p>  政治面貌設(shè)置(政治面貌編號,政治面貌名稱)&l

34、t;/p><p>  部門類別設(shè)置(部門類別編號,部門類別名稱)</p><p>  工資類別設(shè)置(工資類別編號,工資類別名稱)</p><p>  職稱類別設(shè)置( 職稱類別編號,職稱類別名稱)</p><p>  職務(wù)類別設(shè)置(職務(wù)類別編號,職務(wù)類別名稱)</p><p>  職工表(職工編號,職工名,出生日期,年齡,民

35、族,婚姻狀況,身份證,家庭電話,電子郵箱,手機(jī),籍貫,地址,畢業(yè)學(xué)校,所在部門,政治面貌,職稱類別,職務(wù)類別,工資類別,文化程度)</p><p>  職工家庭情況(編號,員工工號,成員姓名,關(guān)系,出生日期,所在部門,擔(dān)任職務(wù),政治面貌,手機(jī))</p><p><b>  5.邏輯設(shè)計(jì)</b></p><p><b>  5.1建立數(shù)

36、據(jù)庫</b></p><p>  本設(shè)計(jì)用Microsoft Office Access 2003作為后臺數(shù)據(jù)庫,在MS SQL Server 2000中創(chuàng)建一個(gè)名為Manager1的數(shù)據(jù)庫,并在其中建立邏輯設(shè)計(jì)中涉及的表. </p><p><b>  5.2建立表</b></p><p>  在Access中,可以查看所建立的表

37、,并添加適當(dāng)測試數(shù)據(jù)</p><p><b>  5.2.1 用戶表</b></p><p><b>  表 5.1</b></p><p>  5.2.2 民族擋案表</p><p><b>  表 5.2</b></p><p>  5.2.3職工類

38、型表</p><p><b>  表 5.3</b></p><p>  5.2.4文化程度表</p><p><b>  表 5.4</b></p><p>  5.2.5政治面貌表</p><p><b>  表 5.5</b></p>

39、<p>  5.2.6部門類別設(shè)置表</p><p><b>  表 5.6</b></p><p>  5.2.7工資類別表 </p><p><b>  表 5.7</b></p><p>  5.2.8職稱類別表</p><p><b>  表

40、5.8</b></p><p>  5.2.9職務(wù)類別表</p><p><b>  5.2.10職工表</b></p><p>  5.2.11 職工家庭情況表</p><p>  6 應(yīng)用程序設(shè)置和代碼分析</p><p>  6.1.配置ODBC數(shù)據(jù)源和添加skin++皮膚<

41、;/p><p>  本系統(tǒng)使用的是當(dāng)程序運(yùn)行時(shí)自動配置數(shù)據(jù)源的方法。實(shí)現(xiàn)方法如下:</p><p>  首先在stdafx.h文件中添加 頭文件 afxdb.h , #include <afxdb.h></p><p>  和數(shù)據(jù)庫API頭文件, #include <odbcinst.h>//ODBC數(shù)據(jù)庫API頭文件。</

42、p><p>  然后在manager.cpp 的BOOL CManagerApp::InitInstance() 函數(shù)中添加如下代碼</p><p>  SQLConfigDataSource(NULL,ODBC_ADD_DSN,</p><p>  "Microsoft Access Driver (*.mdb)",</p><

43、p>  "DSN=Manager1\0"</p><p>  "Description=Hotel\0"</p><p>  "FileType=Access\0"</p><p>  "DBQ=.\\Manager1.mdb\0"</p><p><

44、b>  );</b></p><p><b>  添加皮膚 </b></p><p>  在manager.cpp中添加 #include ".\skins\SkinPlusPlus.h"</p><p>  在BOOL CManagerApp::InitInstance() 函數(shù)中添加</p>

45、<p>  InitializeSkin(_T("XPCorona.ssk"));</p><p><b>  6.2人事檔案瀏覽</b></p><p>  先建立IDD_PAGE_BASEINFO對話框,之后為此對話框的部分控件建立關(guān)聯(lián)變量,之后再建立IDD_DIALOG_BROWSE對話框,之后為此對話框的部分控件建立關(guān)聯(lián)變量。

46、</p><p>  添加代碼實(shí)現(xiàn)人事檔案瀏覽功能</p><p>  實(shí)現(xiàn)這個(gè)功能的主要代碼如下:</p><p>  void CBrowseDlg::OnButtonSearch() </p><p><b>  {</b></p><p>  // TODO: Add your contr

47、ol notification handler code here</p><p>  UpdateData(TRUE);</p><p>  if(m_nCondition<0)</p><p><b>  {</b></p><p>  MessageBox("請選擇查詢條件!");<

48、/p><p>  m_ctrCondition.SetFocus();</p><p><b>  return;</b></p><p><b>  }</b></p><p>  if(m_strContent=="")</p><p><b>

49、  {</b></p><p>  MessageBox("請輸入查詢內(nèi)容!");</p><p>  m_ctrContent.SetFocus();</p><p><b>  return;</b></p><p><b>  }</b></p>

50、<p>  CString strSQL;</p><p>  if(0==m_nCondition)</p><p><b>  {//按部門查詢</b></p><p>  strSQL.Format("select * from person where dept='%s'",m_strCon

51、tent);</p><p>  RefreshData(strSQL);</p><p><b>  }</b></p><p>  else if(1==m_nCondition)</p><p>  {//按職工職務(wù)查詢</p><p>  strSQL.Format("selec

52、t * from person where duty='%s'",m_strContent);</p><p>  RefreshData(strSQL);</p><p><b>  }</b></p><p>  else if(2==m_nCondition)</p><p>  {//按

53、職工職稱查詢</p><p>  strSQL.Format("select * from person where technical='%s'",m_strContent);</p><p>  RefreshData(strSQL);</p><p><b>  }</b></p><

54、;p>  else if(3==m_nCondition)</p><p>  {//按職工類型查詢</p><p>  strSQL.Format("select * from person where isworker='%s'",m_strContent);</p><p>  RefreshData(strSQL);

55、</p><p><b>  }</b></p><p>  else if(4==m_nCondition)</p><p>  {//按工資類別查詢</p><p>  strSQL.Format("select * from person where aboutpay='%s'"

56、,m_strContent);</p><p>  RefreshData(strSQL);</p><p><b>  }</b></p><p>  else if(5==m_nCondition)</p><p>  {//按職工性別查詢</p><p>  strSQL.Format(&q

57、uot;select * from person where sex='%s'",m_strContent);</p><p>  RefreshData(strSQL);</p><p><b>  }</b></p><p>  else if(6==m_nCondition)</p><p&g

58、t;  {//按婚姻狀況查詢</p><p>  strSQL.Format("select * from person where ismarry='%s'",m_strContent);</p><p>  RefreshData(strSQL);</p><p><b>  }</b></p>

59、;<p>  else if(7==m_nCondition)</p><p>  {//按職工民族查詢</p><p>  strSQL.Format("select * from person where folk='%s'",m_strContent);</p><p>  RefreshData(strSQL

60、);</p><p><b>  }</b></p><p>  else if(8==m_nCondition)</p><p>  {//按政治面貌查詢</p><p>  strSQL.Format("select * from person where political='%s'&qu

61、ot;,m_strContent);</p><p>  RefreshData(strSQL);</p><p><b>  }</b></p><p>  else if(9==m_nCondition)</p><p>  {//按文化程度查詢</p><p>  strSQL.Format

62、("select * from person where education='%s'",m_strContent);</p><p>  RefreshData(strSQL);</p><p><b>  }</b></p><p><b>  //設(shè)置按鈕狀態(tài)</b></p&

63、gt;<p>  m_ctrNewBnt.EnableWindow(TRUE);</p><p>  m_ctrDelBnt.EnableWindow(TRUE);</p><p>  m_ctrSaveBnt.EnableWindow(FALSE);</p><p>  m_ctrCancelBnt.EnableWindow(FALSE);</

64、p><p>  m_bNew = FALSE;</p><p>  m_ctrModify.EnableWindow(TRUE);</p><p>  m_BaseInfoDlg.m_ctrID.EnableWindow(FALSE);</p><p><b>  }</b></p><p>  vo

65、id CBrowseDlg::OnButtonSearch() </p><p><b>  {</b></p><p>  // TODO: Add your control notification handler code here</p><p>  UpdateData(TRUE);</p><p>  if(

66、m_nCondition<0)</p><p><b>  {</b></p><p>  MessageBox("請選擇查詢條件!");</p><p>  m_ctrCondition.SetFocus();</p><p><b>  return;</b></

67、p><p><b>  }</b></p><p>  if(m_strContent=="")</p><p><b>  {</b></p><p>  MessageBox("請輸入查詢內(nèi)容!");</p><p>  m_ctrCo

68、ntent.SetFocus();</p><p><b>  return;</b></p><p><b>  }</b></p><p>  CString strSQL;</p><p>  if(0==m_nCondition)</p><p><b> 

69、 {//按部門查詢</b></p><p>  strSQL.Format("select * from person where dept='%s'",m_strContent);</p><p>  RefreshData(strSQL);</p><p><b>  }</b></p&

70、gt;<p>  else if(1==m_nCondition)</p><p>  {//按職工職務(wù)查詢</p><p>  strSQL.Format("select * from person where duty='%s'",m_strContent);</p><p>  RefreshData(strS

71、QL);</p><p><b>  }</b></p><p>  else if(2==m_nCondition)</p><p>  {//按職工職稱查詢</p><p>  strSQL.Format("select * from person where technical='%s'&

72、quot;,m_strContent);</p><p>  RefreshData(strSQL);</p><p><b>  }</b></p><p>  else if(3==m_nCondition)</p><p>  {//按職工類型查詢</p><p>  strSQL.Form

73、at("select * from person where isworker='%s'",m_strContent);</p><p>  RefreshData(strSQL);</p><p><b>  }</b></p><p>  else if(4==m_nCondition)</p>

74、;<p>  {//按工資類別查詢</p><p>  strSQL.Format("select * from person where aboutpay='%s'",m_strContent);</p><p>  RefreshData(strSQL);</p><p><b>  }</b&g

75、t;</p><p>  else if(5==m_nCondition)</p><p>  {//按職工性別查詢</p><p>  strSQL.Format("select * from person where sex='%s'",m_strContent);</p><p>  RefreshD

76、ata(strSQL);</p><p><b>  }</b></p><p>  else if(6==m_nCondition)</p><p>  {//按婚姻狀況查詢</p><p>  strSQL.Format("select * from person where ismarry='%s

77、'",m_strContent);</p><p>  RefreshData(strSQL);</p><p><b>  }</b></p><p>  else if(7==m_nCondition)</p><p>  {//按職工民族查詢</p><p>  strSQ

78、L.Format("select * from person where folk='%s'",m_strContent);</p><p>  RefreshData(strSQL);</p><p><b>  }</b></p><p>  else if(8==m_nCondition)</p&

79、gt;<p>  {//按政治面貌查詢</p><p>  strSQL.Format("select * from person where political='%s'",m_strContent);</p><p>  RefreshData(strSQL);</p><p><b>  }</

80、b></p><p>  else if(9==m_nCondition)</p><p>  {//按文化程度查詢</p><p>  strSQL.Format("select * from person where education='%s'",m_strContent);</p><p> 

81、 RefreshData(strSQL);</p><p><b>  }</b></p><p><b>  //設(shè)置按鈕狀態(tài)</b></p><p>  m_ctrNewBnt.EnableWindow(TRUE);</p><p>  m_ctrDelBnt.EnableWindow(TRUE

82、);</p><p>  m_ctrSaveBnt.EnableWindow(FALSE);</p><p>  m_ctrCancelBnt.EnableWindow(FALSE);</p><p>  m_bNew = FALSE;</p><p>  m_ctrModify.EnableWindow(TRUE);</p>

83、<p>  m_BaseInfoDlg.m_ctrID.EnableWindow(FALSE);</p><p><b>  }</b></p><p><b>  6.3人事檔案查詢</b></p><p>  void CSearchDlg::OnButtonSearch() </p><

84、p><b>  {</b></p><p>  // TODO: Add your control notification handler code here</p><p>  UpdateData();</p><p>  CString strSQL;</p><p>  CString strTemp;&

85、lt;/p><p>  CString strType;</p><p>  BOOLbNoCondition = TRUE;</p><p>  //選擇是否進(jìn)行模糊查詢</p><p>  if(m_bType)</p><p>  strType = " = ";</p><

86、p><b>  else</b></p><p>  strType = " like ";</p><p>  //根據(jù)查詢條件構(gòu)造SQL語句///////////////////////////////////////////////</p><p>  strSQL = "select * from p

87、erson where ";</p><p>  if(m_strAboutPay!="")</p><p><b>  {</b></p><p>  strTemp.Format(" aboutpay %s '%s' ",strType,m_strAboutPay);<

88、/p><p>  if(!bNoCondition)</p><p>  strSQL += " and ";</p><p>  strSQL += strTemp;</p><p>  bNoCondition = FALSE;</p><p><b>  }</b></

89、p><p>  if(m_strDept!="")</p><p><b>  {</b></p><p>  strTemp.Format(" dept %s '%s' ",strType,m_strDept);</p><p>  if(!bNoCondition)

90、</p><p>  strSQL += " and ";</p><p>  strSQL += strTemp;</p><p>  bNoCondition = FALSE;</p><p><b>  }</b></p><p>  if(m_strDuty!=&quo

91、t;")</p><p><b>  {</b></p><p>  strTemp.Format(" duty %s '%s' ",strType,m_strDuty);</p><p>  if(!bNoCondition)</p><p>  strSQL += &qu

92、ot; and ";</p><p>  strSQL += strTemp;</p><p>  bNoCondition = FALSE;</p><p><b>  }</b></p><p>  if(m_strEducation!="")</p><p>&

93、lt;b>  {</b></p><p>  strTemp.Format(" education %s '%s' ",strType,m_strEducation);</p><p>  if(!bNoCondition)</p><p>  strSQL += " and ";</p

94、><p>  strSQL += strTemp;</p><p>  bNoCondition = FALSE;</p><p><b>  }</b></p><p>  if(m_strFolk!="")</p><p><b>  {</b><

95、/p><p>  strTemp.Format(" folk %s '%s' ",strType,m_strFolk);</p><p>  if(!bNoCondition)</p><p>  strSQL += " and ";</p><p>  strSQL += strTemp;

96、</p><p>  bNoCondition = FALSE;</p><p><b>  }</b></p><p>  if(m_strIsWorker!="")</p><p><b>  {</b></p><p>  strTemp.Forma

97、t(" isworker %s '%s' ",strType,m_strIsWorker);</p><p>  if(!bNoCondition)</p><p>  strSQL += " and ";</p><p>  strSQL += strTemp;</p><p>  b

98、NoCondition = FALSE;</p><p><b>  }</b></p><p>  if(m_strMarry!="")</p><p><b>  {</b></p><p>  strTemp.Format(" ismarry %s '%s

99、' ",strType,m_strMarry);</p><p>  if(!bNoCondition)</p><p>  strSQL += " and ";</p><p>  strSQL += strTemp;</p><p>  bNoCondition = FALSE;</p>

100、<p><b>  }</b></p><p>  if(m_strPolitical!="")</p><p><b>  {</b></p><p>  strTemp.Format(" political %s '%s' ",strType,m_st

101、rPolitical);</p><p>  if(!bNoCondition)</p><p>  strSQL += " and ";</p><p>  strSQL += strTemp;</p><p>  bNoCondition = FALSE;</p><p><b>  

102、}</b></p><p>  if(m_strSex!="")</p><p><b>  {</b></p><p>  strTemp.Format(" sex %s '%s' ",strType,m_strSex);</p><p>  if(!

103、bNoCondition)</p><p>  strSQL += " and ";</p><p>  strSQL += strTemp;</p><p>  bNoCondition = FALSE;</p><p><b>  }</b></p><p>  if(m_

104、strTechnical!="")</p><p><b>  {</b></p><p>  strTemp.Format(" technical %s '%s' ",strType,m_strTechnical);</p><p>  if(!bNoCondition)</p&g

105、t;<p>  strSQL += " and ";</p><p>  strSQL += strTemp;</p><p>  bNoCondition = FALSE;</p><p><b>  }</b></p><p>  if(m_nAge>0)</p>

106、<p><b>  {</b></p><p>  strTemp.Format(" age = %d ",strType,m_nAge);</p><p>  if(!bNoCondition)</p><p>  strSQL += " and ";</p><p>

107、;  strSQL += strTemp;</p><p>  bNoCondition = FALSE;</p><p><b>  }</b></p><p>  //MessageBox(strSQL);</p><p>  if(m_strDept2!="")</p><

108、p><b>  {</b></p><p>  strTemp.Format(" dept2 %s '%s' ",strType,m_strDept2);</p><p>  if(!bNoCondition)</p><p>  strSQL += " and ";</p&g

109、t;<p>  strSQL += strTemp;</p><p>  bNoCondition = FALSE;</p><p><b>  }</b></p><p>  if(m_strDept3!="")</p><p><b>  {</b></

110、p><p>  strTemp.Format(" dept3 %s '%s' ",strType,m_strDept3);</p><p>  if(!bNoCondition)</p><p>  strSQL += " and ";</p><p>  strSQL += strTemp

111、;</p><p>  bNoCondition = FALSE;</p><p><b>  }</b></p><p>  if(m_strName!="")</p><p><b>  {</b></p><p>  strTemp.Format(&

112、quot; name %s '%s' ",strType,m_strName);</p><p>  if(!bNoCondition)</p><p>  strSQL += " and ";</p><p>  strSQL += strTemp;</p><p>  bNoCondition

113、 = FALSE;</p><p><b>  }</b></p><p>  if(m_strNative!="")</p><p><b>  {</b></p><p>  strTemp.Format(" native %s '%s' "

114、;,strType,m_strNative);</p><p>  if(!bNoCondition)</p><p>  strSQL += " and ";</p><p>  strSQL += strTemp;</p><p>  bNoCondition = FALSE;</p><p>

115、<b>  }</b></p><p>  if(bNoCondition)</p><p><b>  {</b></p><p>  strSQL = "select * from person";</p><p><b>  }</b></p&g

116、t;<p>  ///////////////////////////////////////////////////////////</p><p>  //MessageBox(strSQL);</p><p>  m_ctrList.DeleteAllItems();</p><p>  m_ctrList.SetRedraw(FALSE);&l

117、t;/p><p>  if(!m_PersonSet.Open(AFX_DB_USE_DEFAULT_TYPE,strSQL))</p><p><b>  {</b></p><p>  MessageBox("打開數(shù)據(jù)庫失敗!","數(shù)據(jù)庫錯(cuò)誤",MB_OK);</p><p>&l

118、t;b>  return ;</b></p><p><b>  }</b></p><p>  char buffer[20];</p><p>  CString strTime;</p><p><b>  int i=0;</b></p><p&g

119、t;  if(m_PersonSet.IsEOF())</p><p><b>  {</b></p><p>  MessageBox("沒有符合條件的記錄!");</p><p><b>  return;</b></p><p><b>  }</b>

120、</p><p>  while(!m_PersonSet.IsEOF())</p><p><b>  {</b></p><p>  m_ctrList.InsertItem(i,m_PersonSet.m_ID);</p><p>  m_ctrList.SetItemText(i,1,m_PersonSet.m_

121、name);</p><p>  m_ctrList.SetItemText(i,2,m_PersonSet.m_sex);</p><p>  strTime.Format("%d-%d-%d",m_PersonSet.m_birth.GetYear(),m_PersonSet.m_birth.GetMonth(),m_PersonSet.m_birth.GetDay

122、());</p><p>  m_ctrList.SetItemText(i,3,strTime);</p><p>  _itoa(m_PersonSet.m_age,buffer,10);</p><p>  m_ctrList.SetItemText(i,4,buffer);</p><p>  m_ctrList.SetItemTex

123、t(i,5,m_PersonSet.m_ismarry);</p><p>  m_ctrList.SetItemText(i,6,m_PersonSet.m_duty);</p><p>  m_ctrList.SetItemText(i,7,m_PersonSet.m_technical);</p><p>  m_ctrList.SetItemText(i,8

124、,m_PersonSet.m_isworker);</p><p>  m_ctrList.SetItemText(i,9,m_PersonSet.m_aboutpay);</p><p>  m_ctrList.SetItemText(i,10,m_PersonSet.m_education);</p><p>  m_ctrList.SetItemText(i,

125、11,m_PersonSet.m_political);</p><p>  strTime.Format("%d-%d-%d",m_PersonSet.m_date2.GetYear(),m_PersonSet.m_date2.GetMonth(),m_PersonSet.m_date2.GetDay());</p><p>  m_ctrList.SetItemTe

126、xt(i,12,strTime);</p><p><b>  i++;</b></p><p>  m_PersonSet.MoveNext();</p><p><b>  }</b></p><p>  m_PersonSet.Close();</p><p>  m_

127、ctrList.SetRedraw(TRUE);</p><p><b>  }</b></p><p><b>  6.4人事資料統(tǒng)計(jì)</b></p><p><b>  主要代碼如下:</b></p><p>  void CStatDlg::OnClickList1(NM

128、HDR* pNMHDR, LRESULT* pResult) </p><p><b>  {</b></p><p>  // TODO: Add your control notification handler code here</p><p>  CString strSQL;</p><p>  CStrin

129、g strValue="0";</p><p>  CDatabase db;</p><p>  db.Open(_T("Manager1"));</p><p>  CRecordset recordset(&db);</p><p>  UpdateData(TRUE);</p>

130、;<p><b>  //獲得統(tǒng)計(jì)類型</b></p><p>  int nType = m_ctrList.GetSelectionMark();</p><p><b>  int i=0;</b></p><p>  switch(nType)</p><p><b>

131、;  {</b></p><p>  case 0://按性別統(tǒng)計(jì)</p><p>  m_ctrResult.DeleteAllItems();</p><p>  m_ctrResult.DeleteColumn(1);</p><p>  m_ctrResult.DeleteColumn(0);</p><

132、;p>  m_ctrResult.InsertColumn(0,"性別");</p><p>  m_ctrResult.InsertColumn(1,"人數(shù)");</p><p>  m_ctrResult.SetColumnWidth(0,100);</p><p>  m_ctrResult.SetColumnWi

133、dth(1,100);</p><p>  strSQL="select count(ID) as num ,sex from person group by sex";</p><p>  //MessageBox(strSQL);</p><p>  if(!recordset.Open(CRecordset::forwardOnly,str

134、SQL))</p><p><b>  {</b></p><p>  MessageBox("打開數(shù)據(jù)庫失敗!","數(shù)據(jù)庫錯(cuò)誤",MB_OK);</p><p><b>  return ;</b></p><p><b>  }</b>

135、;</p><p>  while(!recordset.IsEOF())</p><p><b>  {</b></p><p>  recordset.GetFieldValue("sex",strValue);</p><p>  m_ctrResult.InsertItem(i,strVal

136、ue);</p><p>  recordset.GetFieldValue("num",strValue);</p><p>  //MessageBox(strValue);</p><p>  m_ctrResult.SetItemText(i,1,strValue);</p><p><b>  i++;

137、</b></p><p>  recordset.MoveNext();</p><p><b>  }</b></p><p>  recordset.Close();</p><p><b>  break;</b></p><p>  case 1://按

溫馨提示

  • 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論