版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、<p><b> 前言</b></p><p> 本次軟件工程的課程設(shè)計我們完成了一個人事管理系統(tǒng)。通過這次課程設(shè)計,我們掌握了Microsoft Visual Studio2005和Microsoft Office Access 2003的使用方法和軟件設(shè)計的方法。這次的課程設(shè)計我們實現(xiàn)了人事管理系統(tǒng)的基本數(shù)據(jù)管理,人事檔案管理,數(shù)據(jù)庫管理和系統(tǒng)管理的功能。其中基本數(shù)據(jù)管理可
2、分為民族檔案設(shè)置,職工類型設(shè)置,文化程度設(shè)置,政治面貌設(shè)置,部門類別設(shè)置,工資類別設(shè)置,職稱類別設(shè)置,職務(wù)類別設(shè)置這8個部分,人事檔案管理可分為人事檔案瀏覽,人事資料查詢,人事資料統(tǒng)計這三部分,數(shù)據(jù)庫管理可分為數(shù)據(jù)庫備份和恢復(fù)。系統(tǒng)管理可分為用戶設(shè)置和系統(tǒng)退出。由于時間緊促,還有很多功能沒有完成,譬如考試管理和職工的通信錄等。通過這次的課程設(shè)計,在界面設(shè)計上也收獲不少,學(xué)會了skinplusplus的使用,這使界面的美化變得更容易。我們
3、將繼續(xù)改進這系統(tǒng)。 </p><p> 本次課程設(shè)計的需求分析和數(shù)據(jù)庫設(shè)計是2個人共同完成的。</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)計)和用戶設(shè)置和系統(tǒng)退出的功能和報告的撰寫。</p><p><b> 一、課程設(shè)計的內(nèi)容</b></p><p> 這次課程設(shè)計采用Microsoft Visual Studio2005作為前臺應(yīng)用程序的設(shè)計工具,用Microsoft Office Access 2003作為后臺數(shù)據(jù)庫
5、,完成一個人事管理系統(tǒng)。實現(xiàn)的主要功能有基礎(chǔ)數(shù)據(jù)管理(民族檔案設(shè)置,職工類型設(shè)置,文化程度設(shè)置,政治面貌設(shè)置,部門類別設(shè)置,工資類別設(shè)置,職稱類別設(shè)置,職務(wù)類別設(shè)置),人事檔案管理(人事檔案瀏覽,人事資料查詢,人事資料統(tǒng)計),數(shù)據(jù)庫管理(數(shù)據(jù)庫的備份與恢復(fù))系統(tǒng)管理(設(shè)置用戶和退出系統(tǒng))。</p><p> 二、課程設(shè)計的要求與數(shù)據(jù)</p><p> 使用 Microsoft Visu
6、al Studio 2005和 Microsoft Office Access 2003完成一個人事管理系統(tǒng)。按照一個企業(yè)實際管理中的實際需要實際數(shù)據(jù)庫,選定數(shù)據(jù)。 </p><p> 三、課程設(shè)計應(yīng)完成的工作</p><p> 1. 獨立完成系統(tǒng)的分析、設(shè)計、編碼、測試工作。</p><p> 2.完成設(shè)計報告的撰寫。</p><p&g
7、t; 四、課程設(shè)計進程安排</p><p> 五、應(yīng)收集的資料及主要參考文獻</p><p> [1].鄭阿奇/丁有和. Visual Studio2005教程,北京:機械工業(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> 計劃完成日期: 2007年6月29日 基層教學(xué)單位責(zé)任人簽章:</p><p>&l
9、t;b> 主管院長簽章:</b></p><p><b> 目 錄</b></p><p> 課程設(shè)計(論文)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ù)項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è)計9</p><p> 3.1設(shè)計方法和步驟9</p><p> 3.2概念結(jié)構(gòu)E-R圖9</p><p> 3.2 E-R圖的有關(guān)實體和聯(lián)系的說明11</p><p><b> 4.邏輯設(shè)計11</
12、b></p><p> 4.1 關(guān)系模式11</p><p><b> 5.邏輯設(shè)計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)計24</p><p> 6.5數(shù)據(jù)庫備份以及恢復(fù)33</p><p> 6.6設(shè)置用戶35
14、</p><p> 7. 測試方案和測試報告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運行條件40</p><p> 8.2使用方法40</p><p><b> 9.結(jié) 論40</b></p><p> 10.參考文獻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ā)人員能夠:使用改進后的可視化設(shè)計工具、編程語言和代碼編輯器,享受高效率的開發(fā)環(huán)境;使用集成的可視化數(shù)據(jù)庫設(shè)計和報告工具,創(chuàng)建SQL Server 2005解決方案;使用Visual Studio SDK創(chuàng)建可以擴展Visual Studio IDE的工具;專業(yè)開發(fā)人員喜歡自由的使用.NET Framework 2.0,它是一種穩(wěn)健的、功能齊備的開發(fā)環(huán)境,支持創(chuàng)建擴展Visual Studi
19、o集成開發(fā)環(huán)境的工具。</p><p><b> 2.需求分析</b></p><p> 2.1系統(tǒng)需求和功能</p><p> 設(shè)計一個人事管理系統(tǒng),使系統(tǒng)滿足以下需求和功能</p><p> 1)根據(jù)企業(yè)人事管理的需要,對企業(yè)以及企業(yè)中員工的信息進行添假刪除等操作,并能對人事檔案進行瀏覽,對人事資料進行查詢,
20、對人事資料進行統(tǒng)計。為企業(yè)的人事管理提供一個便利的管理系統(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)計)。</p><p> 數(shù)據(jù)庫管理(數(shù)據(jù)庫的備份與恢復(fù))。</p><p><b> 2.2數(shù)據(jù)字典</b></p><p><b> 2.2.1數(shù)據(jù)項</b></p><p> 1)數(shù)據(jù)項名稱: 用戶名</p><p>
22、 簡述:用戶的名字,沒有重復(fù),可以唯一標(biāo)識每一用戶</p><p><b> 類型:文本</b></p><p><b> 長度:50</b></p><p> 2)數(shù)據(jù)項名稱:用戶密碼</p><p> 簡述:用戶的密碼,用來證驗登陸的用戶是否合法。</p><p>
23、;<b> 類型:文本</b></p><p><b> 長度:50</b></p><p> 3)數(shù)據(jù)項名稱:是否管理員</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、工性別,職工年齡,民族,婚姻狀況,家庭電話,電子郵箱,手機,籍貫,地址,畢業(yè)學(xué)校,職稱,入職時間,職稱類別,部門類別,職務(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ù)據(jù)庫內(nèi)設(shè)有用戶表,登陸系統(tǒng)時會要求輸入用戶帳號和密碼。登陸模塊根據(jù)輸入帳號和密碼查用戶表,查到匹配記錄則允許其登陸系統(tǒng)。用戶帳號和密碼可以在系統(tǒng)中添加和刪除。</p><p><b> 3.概念結(jié)構(gòu)設(shè)計</b></p><p> 3.1設(shè)計方法和步驟</p><p>
30、 采用自底而上的設(shè)計方法。先自頂向下地進行需求分析,對人事管理系統(tǒng)的需求進行逐步細化;然后再自底而上地設(shè)計概念結(jié)構(gòu),最終將各個局部應(yīng)用的概念結(jié)構(gòu)集合成為全局概念結(jié)構(gòu)。</p><p> 3.2概念結(jié)構(gòu)E-R圖</p><p> 通過對局部應(yīng)用的選擇,逐一設(shè)計出分E-R圖,并對各個分E-R圖進行合并,生成初步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)實體和聯(lián)系的說明</p><p> 說明:對于人事管理系統(tǒng)的 E-R 圖1,一個用戶可以設(shè)置多個民族的情況,一個民族檔案能被多個用戶設(shè)置。一個用戶可以設(shè)置多個職工類型,一個職工類型能被多個用
32、戶設(shè)置。其他的類似。</p><p> 對于圖3.12人事管理系統(tǒng)的 E-R 圖2,一個用戶可以瀏覽,查詢多個職工的檔案,一個職工的檔案能被多個用戶瀏覽。</p><p><b> 4.邏輯設(shè)計</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、族,婚姻狀況,身份證,家庭電話,電子郵箱,手機,籍貫,地址,畢業(yè)學(xué)校,所在部門,政治面貌,職稱類別,職務(wù)類別,工資類別,文化程度)</p><p> 職工家庭情況(編號,員工工號,成員姓名,關(guān)系,出生日期,所在部門,擔(dān)任職務(wù),政治面貌,手機)</p><p><b> 5.邏輯設(shè)計</b></p><p><b> 5.1建立數(shù)
36、據(jù)庫</b></p><p> 本設(shè)計用Microsoft Office Access 2003作為后臺數(shù)據(jù)庫,在MS SQL Server 2000中創(chuàng)建一個名為Manager1的數(shù)據(jù)庫,并在其中建立邏輯設(shè)計中涉及的表. </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)程序運行時自動配置數(shù)據(jù)源的方法。實現(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> 添加代碼實現(xiàn)人事檔案瀏覽功能</p><p> 實現(xiàn)這個功能的主要代碼如下:</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> //選擇是否進行模糊查詢</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ù)庫錯誤",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)計</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)計類型</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)計</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ù)庫錯誤",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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 公司人事管理系統(tǒng)畢業(yè)設(shè)計
- 畢業(yè)設(shè)計---公司人事管理系統(tǒng)
- 人事管理畢業(yè)設(shè)計---人事管理系統(tǒng)設(shè)計
- 畢業(yè)設(shè)計---vf公司人事管理系統(tǒng)
- 人事管理系統(tǒng)畢業(yè)設(shè)計
- 人事管理系統(tǒng)畢業(yè)設(shè)計
- 畢業(yè)設(shè)計(人事管理系統(tǒng))
- 畢業(yè)設(shè)計----人事管理系統(tǒng)
- vf公司人事管理系統(tǒng)畢業(yè)設(shè)計論文
- 人事管理系統(tǒng)畢業(yè)設(shè)計----人事管理系統(tǒng)的設(shè)計與實現(xiàn)
- 企業(yè)人事管理系統(tǒng)畢業(yè)設(shè)計
- 畢業(yè)設(shè)計----企業(yè)人事管理系統(tǒng)
- 畢業(yè)設(shè)計---企業(yè)人事管理系統(tǒng)
- 畢業(yè)設(shè)計----企業(yè)人事管理系統(tǒng)
- 畢業(yè)設(shè)計----企業(yè)人事管理系統(tǒng)畢業(yè)設(shè)計
- 軟件畢業(yè)設(shè)計--人事管理系統(tǒng)
- 畢業(yè)設(shè)計論文-人事管理系統(tǒng)
- delphi人事管理系統(tǒng)畢業(yè)設(shè)計
- 畢業(yè)設(shè)計---企業(yè)人事管理系統(tǒng)
- 人事管理系統(tǒng)畢業(yè)設(shè)計4
評論
0/150
提交評論