freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

vc的企業(yè)人事管理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)(編輯修改稿)

2025-02-25 20:42 本頁(yè)面
 

【文章內(nèi)容簡(jiǎn)介】 當(dāng)前可見(jiàn)的 文檔部分圖 圖( 6) 文檔與視圖之間的關(guān)系 文檔與視圖的這種操作分離是編程的高級(jí)思想。所有對(duì)數(shù)據(jù)的修改由文檔對(duì)象來(lái)完成。視圖調(diào)用這個(gè)對(duì)象的方法來(lái)訪(fǎng)問(wèn)和更新數(shù)據(jù)。它大大簡(jiǎn)化了多數(shù)應(yīng)用程序的設(shè)計(jì)開(kāi)發(fā)過(guò)程。采用文檔視圖結(jié)構(gòu)的意義有: ( 1) 先是將數(shù)據(jù)操作和數(shù)據(jù)顯示,用戶(hù)界面分離開(kāi); ( 2) MFC 在文檔 /視圖結(jié)構(gòu)上提供了許多標(biāo)準(zhǔn)操作界面; ( 3) 支持打印預(yù)覽和電子郵件發(fā)送功能; 本系統(tǒng)說(shuō)明了文檔 /視圖結(jié)構(gòu)的原理及應(yīng)用,因?yàn)橄到y(tǒng)是基于單文檔的應(yīng)用程序,系統(tǒng) 本身是由文檔組成,在其視圖區(qū)中實(shí)現(xiàn)了對(duì)文體顯示與圖像的加載并顯示。 具體函數(shù)體:在視圖類(lèi) CManagerView 類(lèi)的 OnPaint()成員函數(shù)中添加如下代碼: //對(duì)文本的輸出 //CFont 類(lèi)是一種窗體圖形設(shè)備接口,它是 CGdiObject 類(lèi)的派生類(lèi),它封裝了 Windows 中的 //字體實(shí)體(以句柄標(biāo)識(shí)),字體也可看成是一種繪圖工具,要使用字體,必須先創(chuàng)建字體, //然后將其選進(jìn)要進(jìn)行文本輸出的 DC,就可以利用文本輸出函數(shù)顯示該字體的內(nèi)容了。 CFont myFont。 CFont *pOldFont。 (? ? ? )。 pOldFont=pDCSelectObject(amp。myFont)。 pDCTextOut(25,602,str)。//str 為成員變量,保存要輸出的文本 pDCSelectObject(pOldFont)。//將 DC 中原來(lái)的字體選入,恢復(fù) DC 原狀態(tài) //對(duì)圖形的加載核心代碼 int b = (IDB_BITMAP_BG)。 //將位圖取出; (pDC)。 //創(chuàng)建兼容設(shè)備上下文。 14 (amp。bmp)。 //用設(shè)備上下文選擇位圖; (pDCGetMapMode())。 //設(shè)置映射方式; GetObject(, sizeof(BITMAP), (LPSTR)amp。bm)。 //映射位圖; 權(quán)限驗(yàn)證模塊設(shè)計(jì) 根據(jù)需求分析和總體設(shè)計(jì),此模塊主要是根據(jù)用戶(hù)輸入的用 戶(hù)名,驗(yàn)證用戶(hù)身份并決定其操作權(quán)限。 ( 1)權(quán)限驗(yàn)證 IPO 圖 輸入:用戶(hù)名和密碼 處理過(guò)程: 用戶(hù)登錄對(duì)話(huà)框; 從系統(tǒng)用戶(hù)表中讀取用戶(hù)和名稱(chēng)信息,并寫(xiě)入用戶(hù)名下拉框中,以方便登錄; 用戶(hù)選擇用戶(hù)名并輸入密碼; 從操作人員表中檢查是否有相應(yīng)的用戶(hù)名和密碼; 如果用戶(hù)名或密碼錯(cuò)誤,進(jìn)行提示; 如果輸入和用戶(hù)名和相應(yīng)密碼正確,則根據(jù)該用戶(hù)和權(quán)限類(lèi)別進(jìn)行權(quán)限設(shè)置; 進(jìn)入主界面; 輸出:主界面 ( 2)權(quán)限驗(yàn)證模塊的界面設(shè)計(jì) 該模塊通過(guò)登錄對(duì)話(huà)框?yàn)橛脩?hù)提供操作界面,界面的設(shè)計(jì)如圖: 圖( 7) 權(quán)限驗(yàn)證模塊的界面設(shè)計(jì) ( 3)權(quán)限驗(yàn)證模塊的實(shí)現(xiàn) 根據(jù)權(quán)限驗(yàn)證的 IPO 圖,通過(guò)定義 CLoginDlg 類(lèi)來(lái)實(shí)現(xiàn)權(quán)限驗(yàn)證模塊的功能。 處理過(guò)程:從數(shù)據(jù)庫(kù)中讀取可以登錄的用戶(hù)名稱(chēng),并全部添加到用戶(hù)名列表中。 登錄對(duì)話(huà)框主初始化與用戶(hù)權(quán)限驗(yàn)證核心代碼: // 對(duì)話(huà)框創(chuàng)建時(shí),讀取信息 // 查詢(xún)用戶(hù)表取出所有用戶(hù)名信息 strSQL=select * from password。 15 if(!(AFX_DB_USE_DEFAULT_TYPE,strSQL)) { MessageBox(打開(kāi)數(shù)據(jù)庫(kù)失敗 !,數(shù)據(jù)庫(kù)錯(cuò)誤 ,MB_OK)。 return FALSE。 } // 向用戶(hù)列表中添加用戶(hù)名 while(!()) { ()。 ()。 } // 在登錄按鈕被點(diǎn)擊后,進(jìn)行權(quán)限驗(yàn)證 if(()) { AfxMessageBox(請(qǐng)輸入用戶(hù)名! )。 ()。//定位到用戶(hù)名控件處 return。 } // 從用戶(hù)表中檢查用戶(hù)名密碼是否正確 (select * from password where user=39。%s39。 AND passwd=39。%s39。,m_strUser,m_strPass)。 if(!(AFX_DB_USE_DEFAULT_TYPE,strSQL)) { MessageBox(打開(kāi)數(shù)據(jù)庫(kù)失敗 !,數(shù)據(jù)庫(kù)錯(cuò)誤 ,MB_OK)。 return 。 } //判斷當(dāng)前得到的記錄數(shù) if(()==0) { //密碼錯(cuò)誤處理 ()。 MessageBox(密碼錯(cuò)誤,請(qǐng)重新輸入! )。 m_strPass=。 ()。 UpdateData(FALSE)。 } else { //登錄成功分配用戶(hù)權(quán)限 16 ptheAppm_bIsAdmin = 。 ()。 CDialog::OnOK()。 } 人事檔案管理模塊 根據(jù)需求分析和總體設(shè)計(jì),人事檔案管理模塊主要實(shí)現(xiàn)對(duì)員工信息和錄入工作,包括員工基本檔案、員工工作經(jīng)歷、員工家庭成員、員工和獎(jiǎng)懲記錄、員工的培訓(xùn)經(jīng)歷的錄入,以及提供對(duì)這些數(shù)據(jù)進(jìn)行編輯和刪除功能,同時(shí)實(shí)現(xiàn)對(duì)員工信息進(jìn)行瀏覽和查詢(xún)功能。 這一部分是本系統(tǒng)和主要核心功能之一,主要?jiǎng)澐殖扇齻€(gè)子模塊:人事檔案瀏覽子模塊、人事檔案查詢(xún)子模塊和人事檔案統(tǒng)計(jì)模塊。其中人事檔案子模塊主要提供員工檔案的錄入、修改、 刪除和瀏覽功能,它是人事檔案管理模塊和核心。下面按照子模塊的劃分來(lái)介紹本模塊的設(shè)計(jì)和實(shí)現(xiàn)。 ( 1)人事檔案瀏覽子模塊設(shè)計(jì) 人事檔案瀏覽子模塊和 IPO 圖 功能:從人事檔案數(shù)據(jù)信息表中讀取數(shù)據(jù)并顯示在員工列表中,同時(shí)實(shí)現(xiàn)人事檔案數(shù)據(jù)和添加、修改和刪除功能,并根據(jù)用戶(hù)選擇和類(lèi)別信息,實(shí)現(xiàn)分類(lèi)瀏覽。 輸入:?jiǎn)T工檔案數(shù)據(jù) 處理:人事檔案瀏覽對(duì)話(huà)框; 從人事檔案數(shù)據(jù)信息表中讀取全部數(shù)據(jù)并顯示在員工列表中; 如果用戶(hù)選擇分類(lèi)瀏覽,根據(jù)用戶(hù)選擇的類(lèi)別信息分類(lèi)顯示在員工列表中; 如果用戶(hù)在列表中選擇某一員工 ,則顯示與員工相關(guān)的全部檔案信息; 根據(jù)用戶(hù)和選擇完成要人事檔案數(shù)據(jù)的添加、修改和刪除功能; 輸出:更新的人事基本信息數(shù)據(jù)表、家庭成員數(shù)據(jù)表、工作經(jīng)歷表、獎(jiǎng)懲記錄數(shù)據(jù)表、培訓(xùn)記錄數(shù)據(jù)表 ( 2)人事檔案瀏覽子模塊和設(shè)計(jì) 該子模塊通過(guò)對(duì)話(huà)框提供用戶(hù)操作界面,設(shè)計(jì)效果如圖: 17 圖( 8)人事檔案瀏覽模塊子界面 ( 3)人事檔案瀏覽子模塊的實(shí)現(xiàn) 根據(jù)人事檔案瀏覽子模塊的 IPO 圖,通過(guò)定義 CBrowseDlg 類(lèi)來(lái)實(shí)現(xiàn)該子 模塊和主體功能,主要是員工基本檔案信息和瀏覽、添加、修改和刪除。另外,通過(guò) CBaseInfoDlg 來(lái)實(shí)現(xiàn)基本檔案屬性頁(yè)功能,通過(guò) CFamilyDlg來(lái)實(shí)現(xiàn)家庭成員屬性頁(yè)功能,通過(guò) CHistoryDlg 來(lái)實(shí)現(xiàn)工作經(jīng)歷屬性頁(yè)功能,通過(guò) CHonorDlg 來(lái)實(shí)現(xiàn)獎(jiǎng)懲紀(jì)錄屬性頁(yè)功能,通過(guò) CQualificationDlg 類(lèi)來(lái)實(shí)現(xiàn)職稱(chēng)評(píng)定屬性頁(yè)功能,以及通過(guò) CTrainDlg 來(lái)實(shí)現(xiàn)培訓(xùn)屬性頁(yè)功能。 1) 相關(guān)的記錄集: CPersonSet,CFamilySet,CHistorySet,CHonorSet,CQualificationSet,Class Wizard 根據(jù)數(shù)據(jù)庫(kù)結(jié)構(gòu)自動(dòng)創(chuàng)建。 2)人事檔案瀏覽: 處理過(guò)程:根據(jù)用戶(hù)在員工列表中選擇的員工號(hào),調(diào)用相應(yīng)的屬性頁(yè)類(lèi)從數(shù)據(jù)庫(kù)中獲取相應(yīng)的數(shù)據(jù),并顯示在列表中。 其核心代碼: void CBrowseDlg::OnClickList1(NMHDR* pNMHDR, LRESULT* pResult) { //得到當(dāng)前記錄信息,將其主碼賦給相應(yīng)對(duì)話(huà)框,由它去更新 m_strName = (i,0)。 m_strCode = (i,1)。 = m_strCode。 ()。 18 UpdateData(FALSE)。 //更新各屬性頁(yè)信息 (m_strCode)。 (m_strCode)。 (m_strCode)。 (m_strCode)。 (m_strCode)。 *pResult = 0。 } ( 4) 檔案信息的分類(lèi)查詢(xún): 處理過(guò)程:根據(jù)用戶(hù)選擇的查詢(xún)條件和查詢(xún)內(nèi)容,從員工表中獲取滿(mǎn)足條件的員工名和員工號(hào),顯示在員工列表中。 其核心代碼: void CBrowseDlg::OnButtonSearch() { UpdateData(TRUE)。 ? ? ? if(0==m_nCondition) {//按部門(mén)查詢(xún) (select * from person where dept=39。%s39。,m_strContent)。 RefreshData(strSQL)。 } else if(1==m_nCondition) {//按職工職務(wù)查詢(xún) (select * from person where duty=39。%s39。,m_strContent)。 RefreshData(strSQL)。 } else if(2==m_nCondition) {//按職工職稱(chēng)查詢(xún) (select * from person where technical=39。%s39。,m_strContent)。 RefreshData(strSQL)。 } ? ? ? //設(shè)置按鈕狀態(tài) ? ? ? ( 5)添加新員工檔案 19 處理過(guò)程:選擇基本檔案屬性頁(yè),并清空,等待用戶(hù)輸入基本檔案數(shù)據(jù)后,判斷輸入的檔案是否惟一,然后保存到數(shù)據(jù)庫(kù)基本檔案表中。 其核心代碼: void CBrowseDlg::OnButtonNew() { //選擇 基本檔案信息屬性頁(yè) (0)。 //清空基本檔案信息屬性頁(yè)中數(shù)據(jù) ()。 //設(shè)置基本檔案信息屬性頁(yè)狀態(tài) ()。 //設(shè)置按鈕狀態(tài) ? ? ? } // 用戶(hù)選擇保存后的處理 void CBrowseDlg::OnButtonSave() { //保存數(shù)據(jù)到數(shù)據(jù)庫(kù)中 if(!()) return。 ()。 (FALSE)。 //設(shè)置按鈕狀態(tài) ? ? ? //更新對(duì)話(huà)框上當(dāng)前記錄信息 m_strName = 。 m_strCode = 。 //更新列表信息 strSQL=select * from person。 RefreshData(strSQL)。 //通過(guò) m_strCode 更 新各屬性頁(yè)信息 (m_strCode)。 (m_strCode)。 (m_strCode)。 (m_strCode)。 (m_strCode)。 } ( 6)修改新員工檔案: 20 處理過(guò)程:將用戶(hù)輸入的員工檔案信息更新數(shù)據(jù)庫(kù)中。 其核心代碼: void CBrowseDlg::OnButtonModify() { //保存數(shù)據(jù)到數(shù)據(jù)庫(kù)中 if(!()) return。 ()。 //更新對(duì)話(huà)框上當(dāng)前記錄信息 m_strName = 。 m_strCode = 。 //更新列表信息 strSQL=select * from person。 RefreshData(strSQL)。 //更新各屬性頁(yè)信息 ? ? ? } ( 6) 刪除員工檔案信息: 處理過(guò)程:根據(jù)用戶(hù)選擇的員工號(hào),從數(shù)據(jù)庫(kù)中刪除該員工的檔案信息。 其核心代碼: void CBrowseDlg::OnButtonDelete() { ? ? ? (select * from person where ID=39。%s39。,(i,1))。 if(!(AFX_DB_USE_DEFAULT_TYPE,strSQL)) { MessageBox(打開(kāi)數(shù)據(jù)庫(kù)失敗 !,數(shù)據(jù)庫(kù)錯(cuò)誤 ,MB_OK)。 return 。 } //刪除該用戶(hù) ()。 ()。 //更新用戶(hù)列表 strSQL = select * from person。 RefreshData(strSQL)。 //更新對(duì)話(huà)框上當(dāng)前記錄信息 m_strCode = 。 m_strName = 。 21 UpdateData(FALSE)。 ()。 //更新各屬性頁(yè)信息 ? ? ? } ( 7) 撤銷(xiāo)操作 處理過(guò)程:將輸入的信息清空。 其核心代碼: void CBrowseDlg::OnButtonCancel() { //設(shè)置按鈕狀態(tài) (TRUE)。 (TRUE)。 (FALSE)。 (FALSE)。 (TRUE)。 m_bNew = FALS
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評(píng)公示相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1