總體設(shè)計(jì)、詳細(xì)設(shè)計(jì)_第1頁
總體設(shè)計(jì)、詳細(xì)設(shè)計(jì)_第2頁
總體設(shè)計(jì)、詳細(xì)設(shè)計(jì)_第3頁
總體設(shè)計(jì)、詳細(xì)設(shè)計(jì)_第4頁
總體設(shè)計(jì)、詳細(xì)設(shè)計(jì)_第5頁
已閱讀5頁,還剩40頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、裝訂線xxx大學(xué) 畢業(yè)設(shè)計(jì)(論文)報(bào)告紙摘要科學(xué)技術(shù)日新月異的進(jìn)步,讓人類生活發(fā)生了巨大的變化,計(jì)算機(jī)技術(shù)的飛速發(fā)展,使各行各業(yè)在計(jì)算機(jī)技術(shù)應(yīng)用方面得到了廣泛的普及和使用。信息化時(shí)代的到來成為不可抗拒的潮流,人類文明正在進(jìn)入一個(gè)嶄新的時(shí)代。人事管理系統(tǒng)是使用Visual C+ 6.0開發(fā)的面向?qū)ο蟮臄?shù)據(jù)庫信息管理系統(tǒng),該系統(tǒng)主要用于中小型企業(yè)單位的日常管理。該系統(tǒng)界面友好,操作簡單,易學(xué)易用,從總體方案上力求達(dá)到該軟件所需的目標(biāo)要求。關(guān)鍵詞:人事管理數(shù)據(jù)庫Visual C+ 6.0 Abstract The advance of the science technique continuous

2、 changes and improvements, let mankind the life took place the enormous variety, the calculatorflies technically to develop soon, making the every trade get the extensive universality with use in the aspects of calculator technique applying.The information turns the ages comes the current that becom

3、e cant resist,human civilization enter a brand-new ages.Therefore, Marketing personnelthemanagementsystemisapersonneldatabasethat usewhatVisual C+ 6.0developtofacetotheobjecttheinformation managementthesystem,thatsystemtoprimarilyusedfortheusual managementinMarketing personnel.Thesystemsinterfacethe

4、amity, operationissimple,easytolearneasilyuse,andtryhardforthetargetrequestforneedingofthesoftwaresfromthetotalproject.Keyphrase:Marketing personnelmanagementdatabase Visual C+ 6.0目錄1.引言 .11.1課題開發(fā)背景.21.2國內(nèi)外研究現(xiàn)狀.22 企業(yè)人事管理系統(tǒng)開發(fā)基礎(chǔ).32.1管理系統(tǒng)簡介3 2.1.1管理信息系統(tǒng).32.1.2 企業(yè)人事管理系統(tǒng)的開發(fā)方法.33.概述 .3 3.1.1 VC+特點(diǎn).3 3.1.2

5、本程序中使用的VC+控件及其屬性簡介.33.1.3系統(tǒng)數(shù)據(jù)訪問接口的選擇.33.1.4 SQL2000介紹.44.需求分析.54.1需求調(diào)查.54.2人事管理系統(tǒng)層次圖.55.數(shù)據(jù)庫設(shè)計(jì).75.1數(shù)據(jù)庫選擇.75.2概念模型.75.數(shù)據(jù)表的建立.9 5.數(shù)據(jù)庫的實(shí)現(xiàn).106.總體設(shè)計(jì).136.1模塊的設(shè)計(jì)13 6.2系統(tǒng)總體流程圖137.詳細(xì)設(shè)計(jì).147.詳細(xì)設(shè)計(jì)的意義.147.各模塊及界面的詳細(xì)設(shè)計(jì).157.2.權(quán)限驗(yàn)證模塊的界面設(shè)計(jì).157.2.用戶權(quán)限控制模塊及界面詳細(xì)設(shè)計(jì).177.2.3 主窗體.217.2.人事檔案管理模塊及界面設(shè)計(jì).237.2.考勤信息模信息窗體的設(shè)計(jì).287.2.

6、幫助窗口的設(shè)計(jì).418.測試.438.軟件測試的重要性.438.2 測試方法.438.2.1Manage主窗體模塊的測試.43 小結(jié).44致謝.45參考文獻(xiàn).46 1引言1.1課題開發(fā)背景在企業(yè)中,人事管理工作是非常重要的一項(xiàng)工作,它負(fù)責(zé)整個(gè)企業(yè)的日常人事安排,人員的人事管理等。以前都是人工進(jìn)行操作。隨著企業(yè)規(guī)模的擴(kuò)大,人事管理的工作量也大大地加重。隨著計(jì)算機(jī)應(yīng)用的發(fā)展,人事工作者急切希望能夠?qū)⒋蟛糠譄┈嵉墓ぷ鹘唤o計(jì)算機(jī)處理,以減輕人工的壓力并提高工作效率 。而計(jì)算機(jī)的普及加快人事管理系統(tǒng)的產(chǎn)生。人事管理的主要任務(wù)是為實(shí)現(xiàn)企業(yè)的整體目標(biāo)提供合適可用的人才,這就要求人事部門進(jìn)一步加大人事制度改革

7、的力度,建立好人才檔案,為企業(yè)選拔賢能創(chuàng)造一個(gè)良好的工作環(huán)境,使員工用其所長、人盡其才;關(guān)心和改善員工的生活條件,使員工無后顧之憂,充分發(fā)揮自己的內(nèi)在潛力。1.2國內(nèi)外研究現(xiàn)狀企業(yè)人事管理的根本目的就是通過使用人才去達(dá)到最大利益。企業(yè)人事管理工作的好壞對企業(yè)的發(fā)展有較大的影響,企業(yè)對人事管理都較為重視。通過互聯(lián)網(wǎng)查詢的資料來看,國內(nèi)目前類似的系統(tǒng)大多是針對企業(yè)員工管理,而對企業(yè)引進(jìn)人才方面以及與員工交流平臺方面所做的工作不多。2 企業(yè)人事管理系統(tǒng)開發(fā)基礎(chǔ)2.1管理系統(tǒng)簡介 2.1.1管理信息系統(tǒng)管理信息系統(tǒng)(MIS)是一個(gè)由人、計(jì)算機(jī)等組成的能進(jìn)行信息收集、傳遞、存儲、維護(hù)和使用的系統(tǒng)。管理信

8、息系統(tǒng)是信息系統(tǒng)的一個(gè)分支之一,經(jīng)過30多年的發(fā)展,已經(jīng)成為一個(gè)具有自身概念、理論、結(jié)構(gòu)、體系和開發(fā)方法的集管理科學(xué)、信息科學(xué)、系統(tǒng)科學(xué)及計(jì)算機(jī)科學(xué)等覆蓋多學(xué)科的綜合性學(xué)科。管理信息系統(tǒng)的結(jié)構(gòu)通常由四個(gè)部分組成:信息源、信息處理器、信息用戶和信息管理者。管理信息系統(tǒng)的主要任務(wù)一般要實(shí)現(xiàn)對基礎(chǔ)數(shù)據(jù)的嚴(yán)格管理,確定信息處理過程的標(biāo)準(zhǔn)化,高效的完成日常處理業(yè)務(wù)、優(yōu)化分配各種資源,包括人力、物力、財(cái)力等。MIS是一個(gè)人機(jī)結(jié)合的輔助管理系統(tǒng),管理和決策的主題是人,計(jì)算機(jī)只是輔助的設(shè)備。目前國內(nèi)使用和發(fā)展的MIS平臺模式大體上分為兩種:客戶機(jī)/服務(wù)器(Client/Server,簡稱C/S)模式和Web瀏

9、覽器/服務(wù)器(Browser/Server,簡稱B/S)模式。當(dāng)前企業(yè)信息管理系統(tǒng)正在從C/S結(jié)構(gòu)向B/S結(jié)構(gòu)轉(zhuǎn)移.B/S結(jié)構(gòu),即Browser/Server(瀏覽器/服務(wù)器)結(jié)構(gòu),是隨著Internet技術(shù)的興起,對C/S結(jié)構(gòu)的一種變化或者改進(jìn)的結(jié)構(gòu)。在這種結(jié)構(gòu)下,用戶界面完全通過WWW瀏覽器實(shí)現(xiàn),一部分事務(wù)邏輯在前端實(shí)現(xiàn),但是主要事務(wù)邏輯在服務(wù)器端實(shí)現(xiàn),形成所謂3-tier結(jié)構(gòu)。B/S結(jié)構(gòu),主要是利用了不斷成熟的WWW瀏覽器技術(shù),結(jié)合瀏覽器的多種Script語言(VBScript、JavaScript等)和ActiveX技術(shù),用通用瀏覽器就實(shí)現(xiàn)了原來需要復(fù)雜專用軟件才能實(shí)現(xiàn)的強(qiáng)大功能,并節(jié)

10、約了開發(fā)成本,是一種全新的軟件系統(tǒng)構(gòu)造技術(shù)。隨著Windows 98/Windows 2000將瀏覽器技術(shù)植入操作系統(tǒng)內(nèi)部,這種結(jié)構(gòu)更成為當(dāng)今應(yīng)用軟件的首選體系結(jié)構(gòu)。顯然B/S結(jié)構(gòu)應(yīng)用程序相對于傳統(tǒng)的C/S結(jié)構(gòu)應(yīng)用程序是巨大的進(jìn)步。2.1.2 企業(yè)人事管理系統(tǒng)的開發(fā)方法企業(yè)人事管理系統(tǒng)的開發(fā)是一個(gè)復(fù)雜的工程,它涉及到計(jì)算機(jī)處理技術(shù)、系統(tǒng)理論、組織結(jié)構(gòu)、管理功能、管理知識等各方面的問題,至今沒有一種統(tǒng)一完備的開發(fā)方法。但是每一種開發(fā)方法都要遵循相應(yīng)的開發(fā)策略:1.系統(tǒng)要解決的問題。2.系統(tǒng)可行性研究,確定系統(tǒng)要實(shí)現(xiàn)的目標(biāo)。3.系統(tǒng)開發(fā)原則。4.系統(tǒng)開發(fā)前的準(zhǔn)備工作。5.系統(tǒng)開發(fā)方法的選擇和開發(fā)計(jì)

11、劃的定制。4. 需求分析4.1需求調(diào)查 人事管理是企業(yè)管理的一個(gè)重要內(nèi)容。隨著時(shí)代的進(jìn)步,企業(yè)也逐漸變的龐大起來。如何管理好企業(yè)內(nèi)部員工的信息,成為企業(yè)管理中的一個(gè)重要問題。在這種情況下,一個(gè)可以規(guī)范化,自動化的企業(yè)人事管理系統(tǒng)就顯的非常重要。 最初的人事管理,都是靠人力來完成。當(dāng)企業(yè)規(guī)模比較小的時(shí)候,人力可以完成。隨著企業(yè)規(guī)模越來越大,企業(yè)員工的人數(shù)越來越多,依然維持著人力進(jìn)管理必然會造成工作效率底,工作錯(cuò)誤曾高等問題。 人事管理系統(tǒng)就是把分散的企業(yè)單位的職工信息實(shí)行統(tǒng)一,集中,規(guī)范的收集管理。建立分類編號管理,電腦存貯查詢以及防火,防潮,防盜等現(xiàn)代化,專業(yè)化的管理系統(tǒng)。為企事業(yè)單位和職工解

12、除后顧之憂。4.2人事管理系統(tǒng)層次圖其模塊如下:1:系統(tǒng)管理系統(tǒng)啟動的時(shí)候有一個(gè)管理員用戶,使用這個(gè)用戶登陸以后,可以添加其他用戶,而且每個(gè)用戶都可以更改自己的密碼。2:基礎(chǔ)數(shù)據(jù)管理 1) 添加員工信息:系統(tǒng)自動生成員工的編號。管理員可以添加員工的基本信息。包括姓名,性別,籍貫,年齡,生日,住址,E-mail,學(xué)歷,專業(yè),進(jìn)入本公司的時(shí)間等。2) 修改員工信息:選擇一個(gè)員工,可以修改這個(gè)員工的基本信息。3) 查詢員工的基本信息:可以根據(jù)員工的編號,姓名或是進(jìn)入本公司的時(shí)間進(jìn)行查詢員工的基本信息,并且可以針對查詢結(jié)果進(jìn)行修改和冊除等工作。4) 冊除員工信息:直接從列表中選中要冊除的員工信息,然后

13、進(jìn)行冊除操作,或者首先查詢要冊除的員工信息,然后在冊除。3:人事檔案管理信息1) 添加員工考勤信息:主要分為上下班信息和其他考勤信息。上下班信息主要記錄每個(gè)員工上下班時(shí)間,而其他考勤信息包括有請假,加班,出差等信息。2) 修改考勤信息:當(dāng)考勤信息出現(xiàn)錯(cuò)誤的時(shí)候,需要修改??梢詮倪@里修改相應(yīng)的記錄。3) 查詢考勤信息:根據(jù)員工的編號或者時(shí)間進(jìn)行查詢。得到所有的考勤信息,包括上下班,請假,加班,出差信息,但是不能對信息進(jìn)行任何操作。4) 冊除考勤信息:分為冊除上下班信息和冊除其他考勤信息。5) 設(shè)置上下班時(shí)間:設(shè)置公司的上下班的時(shí)間。4:考勤管理.1) 考勤設(shè)置信息:主要對員工的的基本上下班時(shí)間,

14、部門,請假等情況的設(shè)置.2) 考勤記錄信息:記錄當(dāng)天員工的出勤情況.3) 考勤查詢信息:調(diào)用數(shù)據(jù)庫來查詢員工的出勤情況.5:數(shù)據(jù)庫管理信息1) 添加調(diào)動信息:添加企業(yè)員工的原由部門,原由職務(wù),新部門,新職務(wù)等信息2) 修改調(diào)動信息:相應(yīng)的員工調(diào)動信息的修改。3) 查詢調(diào)動信息:查詢某個(gè)員工的調(diào)動信息或者某段時(shí)間內(nèi)企業(yè)內(nèi)部的調(diào)動情況。4) 冊除調(diào)動信息:冊除那些不需要的信息。6:備忘錄.日常記事信息:記錄一些在廠里面的會議,領(lǐng)導(dǎo)視查,交接班等等事情的事情。也可對記錄的事情進(jìn)行查詢。7:幫助幫助信息:顯示本管理系統(tǒng)的版本,及設(shè)計(jì)者情況。5.數(shù)據(jù)庫設(shè)計(jì)5.1數(shù)據(jù)庫選擇憑證管理系統(tǒng)面向的對象是企業(yè)內(nèi)部

15、的各部門,由于各個(gè)部門間的財(cái)務(wù)關(guān)系相對獨(dú)立,因此需要安全、方便的本地?cái)?shù)據(jù)庫。因此,我采用Microsoft公司的Access文件數(shù)據(jù)庫來存放數(shù)據(jù)。5.2概念模型軟件系統(tǒng)本質(zhì)上是信息處理系統(tǒng),因此在軟件系統(tǒng)的整個(gè)開發(fā)過程中都必考慮到兩方面的問題“數(shù)據(jù)”及對數(shù)據(jù)的“處理”。在需求分析階段即要分析用戶的數(shù)據(jù)要求又要分析用戶的處理要求。為了把用戶的數(shù)據(jù)要求清晰明確地表達(dá)出來,現(xiàn)采用最常用的表示概念性數(shù)據(jù)模型的方法(實(shí)體-聯(lián)系方法)。由此方法作出的E-R模型如下:員工調(diào)動信息ER圖:員工新職務(wù)調(diào)出時(shí)間員工姓名員工編號原部門記錄編號新部門調(diào)人時(shí)間原職務(wù)員工考勤ER圖:遲到次數(shù)員工早退次數(shù)員工編號員工姓名當(dāng)

16、前日期上班時(shí)間出入標(biāo)志下班時(shí)間員工基本信息ER圖員工進(jìn)入公司時(shí)間生日年齡學(xué)歷電話住宅地址專業(yè)員工姓名籍貫性別員工請假信息ER圖:員工員工編號假期開始時(shí)間病假天數(shù)事假天數(shù)5.3數(shù)據(jù)庫分析調(diào)查有關(guān)企業(yè)人事信息的需求,仔細(xì)分析都得到如圖(1-2)所示的這個(gè)系統(tǒng)數(shù)據(jù)庫圖。管理員登錄9員工調(diào)動信息管理員工基本信息管理員工考勤信息管理調(diào)動管理添加基本信息考勤管理 針對企業(yè)人事管理系統(tǒng)的需求,通過對員工工作過程的內(nèi)容和數(shù)據(jù)流程分析,為本系統(tǒng)設(shè)計(jì)如下的數(shù)據(jù)項(xiàng)和數(shù)據(jù)結(jié)構(gòu): 基本的員工信息:包括員工編號,員工姓名,性別,出生日期,籍貫,學(xué)歷,專業(yè),進(jìn)入本公司時(shí)間所在部門,參加工作時(shí)間,職稱備注等. 員工調(diào)動信 息

17、:包括員工編號 員工姓名 原部門 新部門 調(diào)出的時(shí)間 調(diào)人的時(shí)間 原職務(wù) 新職務(wù) 備注等. 員工考勤信 息:包括員工編號 員工姓名 所在部門 出勤時(shí)間 礦工時(shí)間 請假時(shí)間早退時(shí)間 遲到時(shí)間 加班時(shí)間 出差時(shí)間.5.4數(shù)據(jù)庫的實(shí)現(xiàn)使用設(shè)計(jì)器創(chuàng)建這個(gè)系統(tǒng)需要的所有表格.如圖所示.為用戶管理模塊進(jìn)行錄入: 字段名稱類型主鍵非空user文本YesYespasswd文本NoYesisAdmin是否NoYes民族檔案表字段名稱類型主鍵非空ID自動編號YesYesfolk文本NoYes文化程度表字段名稱類型主鍵非空ID自動編號YesYeseducation文本NoYes 圖1-5為員工培訓(xùn)經(jīng)歷表字段名稱數(shù)據(jù)

18、類型主鍵非空ID自動編號yewyescode文本noyesmode文本noYesdate1時(shí)間日期noyesdate2時(shí)間日期noNoterm文本noNosubject文本NoNodept文本NoNocontent文本NoNooutlay文本NoNoresult文本NoNo 圖1-6為獎懲記錄表字段名稱類型主鍵非空ID自動編號yesYescode文本NoYessort文本NoNodate1日期時(shí)間NoNo season1文本NoNodept文本NoNodate2日期時(shí)間NoNoreason文本NoNo部門類別設(shè)置字段名稱數(shù)據(jù)類型主鍵非空ID自動編號YesYesdept文本NoYes職稱類別設(shè)置

19、表字段名稱數(shù)據(jù)類型主鍵非空ID自動編號YewYestechnical文本NoYes職務(wù)類別設(shè)置表字段名稱數(shù)據(jù)類型主鍵非空ID自動編號YesYesduty文本NoYes工瘓 fas asfaffa工 工工資類別設(shè)置表字段名稱類型主鍵非空ID自動編號YesYessalary文本NoYes工gh 政漢面貌設(shè)置表字段名稱類型主鍵非空ID自動編號YesYespolitical文本NoYes職工基本信息設(shè)置表字段名稱數(shù)據(jù)類型主鍵非空ID文本YesYesName文本NoYesSex文本NoYesBirth日期/時(shí)間NoNoFolk文本NoNoIsmarry文本NoNoCardID文本NoNoPhone文本N

20、oNoEmail文本NoNoMphone文本NoNonative文本NoNoaddr文本NoNoschool文本NoNosubject文本NoNogdate日期/時(shí)間NoNodept文本NoNodept-1文本NoNodept-2文本NoNoisworker文本NoNoaboutpay文本NoNodate1日期/時(shí)間NoNodate2日期/時(shí)間NoNoeducation文本NoNoworkage數(shù)字NoNoherworkage數(shù)字NoNopolitical文本NoNotechnical文本NoNoduty文本NoNocomments文本NoNo1-7為職類型設(shè)置表字段名稱類型主鍵非空ID自動編

21、號YesYesworkstatus文本NoYes 圖1-9為基本檔案信息表字段名稱類型主鍵非空ID自動編號yesYescode文本NoYessort文本NoNodate1文本NoNo Company文本NoNoDept文本NoNoDuty文本NoNolevel文本NoNo 6. 總體設(shè)計(jì)對第三章需求分析所得出的系統(tǒng)流程圖,具體功能說明進(jìn)行歸類總結(jié),并依據(jù)模塊的特征以及獨(dú)立性原則對系統(tǒng)進(jìn)行分析后,不難得出系統(tǒng)的模塊結(jié)構(gòu)組成,以及各個(gè)模塊之間的關(guān)系。6.1模塊的設(shè)計(jì)用模塊化原理進(jìn)行軟件設(shè)計(jì)時(shí);為了得到一組最好的模塊集合,應(yīng)該根據(jù)信息隱蔽原理對軟件進(jìn)行分解。也就是應(yīng)該這樣來設(shè)計(jì)和確定模塊,使得一個(gè)模

22、塊內(nèi)包含的信息(數(shù)據(jù)和過程)對手不需要這些信息的模塊是不能訪問的。模塊獨(dú)立的概念,是模塊化、抽象和信息隱蔽的直接結(jié)果。模塊獨(dú)立是指該模塊能完成一個(gè)相對獨(dú)立的特定子功能,并且與其他模塊之間的接口很簡單。模塊獨(dú)立有兩個(gè)優(yōu)勢:一是具有獨(dú)立模塊的軟件比較容易開發(fā)出來,這是因?yàn)槟軌蚍指罟δ埽涌诳梢院喕?,并且有利于團(tuán)隊(duì)合作;二是獨(dú)立的模塊比較容易測試和維護(hù),這是因?yàn)殄e(cuò)誤傳播范圍小。所以,提高模塊獨(dú)立性是設(shè)計(jì)模塊的根本目標(biāo)。本系統(tǒng)為數(shù)據(jù)庫應(yīng)用程序,主要是對數(shù)據(jù)庫中記錄的增加、修改、刪除等操作,模塊內(nèi)部的各個(gè)組成部分的處理動作全都為數(shù)據(jù)庫的操作功能存在。因此,系統(tǒng)中模塊的聚合種類應(yīng)為功能聚合。功能聚合模塊具

23、有定義很清楚的界面,它可以單獨(dú)地被理解,進(jìn)一步設(shè)計(jì),然后再同其他模塊連接起來。從模塊特征以及模塊獨(dú)立性角度出發(fā),得出以下結(jié)論:系統(tǒng)中模塊的獨(dú)立性要高,即耦合程度要低;模塊的聚合程度要高,即盡量采用功能聚合。運(yùn)行Visual C+后,選擇文件 “新建工程”菜單。然后從工程模塊中選擇“標(biāo)準(zhǔn)EXE”項(xiàng)。單擊確定按鈕。Visual C+就會自動生成一個(gè)窗體,這個(gè)窗體的屬性采用的都是默認(rèn)的設(shè)置。在這個(gè)實(shí)例中,先冊初這個(gè)窗體,然后選擇“文件”在選“保存工程”菜單。在出現(xiàn)的“文件另存為”對話框中輸入這個(gè)工程項(xiàng)目的名稱為Manager并且選擇這個(gè)工程的目錄,單擊“保存”按鈕,保存工程。在這個(gè)系統(tǒng)中,每個(gè)功能模

24、塊都要使用數(shù)據(jù)庫,因此可以使用一個(gè)公用的數(shù)據(jù)庫操作函數(shù),來執(zhí)行一系列的SQL語句。 7. 詳細(xì)設(shè)計(jì)7.1詳細(xì)設(shè)計(jì)的意義軟件詳細(xì)設(shè)計(jì)是指對軟件模塊的過程設(shè)計(jì)。其主要任務(wù)是對總體設(shè)計(jì)所產(chǎn)生的功能模塊進(jìn)行過程描述,開發(fā)一個(gè)可以直接轉(zhuǎn)換成程序語言代碼的軟件表示。這種表示應(yīng)當(dāng)是無歧義性并且是高度結(jié)構(gòu)化的。詳細(xì)設(shè)計(jì)階段不是具體地編寫程序,而是設(shè)計(jì)出程序的“藍(lán)圖”,程序員再根據(jù)這些藍(lán)圖進(jìn)行編碼。因此,詳細(xì)設(shè)計(jì)的結(jié)果基本上決定了最終的程序代碼的質(zhì)量。衡量程序的質(zhì)量不僅要看它在邏輯上是否正確地描述每個(gè)模塊的功能,更重要地是要看它是否容易閱讀、測試和維護(hù)。因此,要求詳細(xì)設(shè)計(jì)表示的軟件過程應(yīng)具有高度的結(jié)構(gòu)化構(gòu)造。所

25、以結(jié)構(gòu)化程序設(shè)計(jì)是完成上述任務(wù)的關(guān)鍵技術(shù)。 7.2各模塊及界面詳細(xì)設(shè)計(jì)7.2.1權(quán)限驗(yàn)證模塊的界面設(shè)計(jì)該模塊通過登錄對話框?yàn)橛脩籼峁┎僮鹘缑?,界面的設(shè)計(jì)效果如下圖:通過定CloginDlg類來實(shí)現(xiàn)權(quán)限驗(yàn)證模塊的功能,其登錄對話框的初始化代碼如下:BOOL CLoginDlg:OnInitDialog() CDialog:OnInitDialog();CPassWord recordset ;CString strSQL;UpdateData(TRUE);/strSQL.Format(select * from password where user=%s AND passwd=%s,m_str

26、User,m_strPass);strSQL=select * from password;if(!recordset.Open(AFX_DB_USE_DEFAULT_TYPE,strSQL)MessageBox(打開數(shù)據(jù)庫失敗!,數(shù)據(jù)庫錯(cuò)誤,MB_OK);return FALSE;while(!recordset.IsEOF()m_ctrUser.AddString(recordset.m_user);recordset.MoveNext();recordset.Close();return TRUE;用戶的權(quán)限驗(yàn)證的處理是從數(shù)據(jù)庫中查找是否有與用戶輸入的用戶名和密碼完全一樣的記錄,如果有根

27、據(jù)數(shù)據(jù)庫中的記錄為該用戶分配權(quán)限,如果不存在則提示登錄不錯(cuò)誤的信息。其代碼如下:void CLoginDlg:OnOK() CPassWord recordset;CString strSQL;CManagerApp* ptheApp = (CManagerApp *) AfxGetApp();UpdateData(TRUE);/檢查用戶名是否輸入if(m_strUser.IsEmpty()AfxMessageBox(請輸入用戶名!);m_ctrUser.SetFocus();return;if(m_strPass.IsEmpty()AfxMessageBox(請輸入密碼!);m_ctrPas

28、s.SetFocus();return;/從用戶表中檢查用戶名密碼是否正確strSQL.Format(select * from password where user=%s AND passwd=%s,m_strUser,m_strPass);if(!recordset.Open(AFX_DB_USE_DEFAULT_TYPE,strSQL)MessageBox(打開數(shù)據(jù)庫失敗!,數(shù)據(jù)庫錯(cuò)誤,MB_OK);return ;if(recordset.GetRecordCount()=0)/密碼錯(cuò)誤處理recordset.Close();MessageBox(密碼錯(cuò)誤,請重新輸入!);m_str

29、Pass=;m_ctrPass.SetFocus();UpdateData(FALSE);else/分配用戶權(quán)限ptheApp-m_bIsAdmin = recordset.m_isadmin;recordset.Close();CDialog:OnOK(); 7.2.2用戶控制模塊及界面詳細(xì)設(shè)計(jì)該模塊通過用戶設(shè)置對話框?yàn)橛脩籼峁┎僮鹘缑?,界面的設(shè)計(jì)效果如下圖:其實(shí)行代碼如下:BOOL CUserDlg:OnInitDialog() CDialog:OnInitDialog();/創(chuàng)建用戶列表m_ctrList.InsertColumn(0,用戶名);m_ctrList.SetExtended

30、Style(LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES);m_ctrList.SetColumnWidth(0,120);/在添加用戶列表中添加用戶名RefreshData();return TRUE; void CUserDlg:RefreshData() m_ctrList.SetFocus();/清空用戶列表m_ctrList.DeleteAllItems();m_ctrList.SetRedraw(FALSE);CString strSQL;UpdateData(TRUE);/打開記錄集strSQL=select * from password;if(!

31、m_recordset.Open(AFX_DB_USE_DEFAULT_TYPE,strSQL)MessageBox(打開數(shù)據(jù)庫失敗!,數(shù)據(jù)庫錯(cuò)誤,MB_OK);return ;/添加用戶名到用戶列表中int i=0;while(!m_recordset.IsEOF()m_ctrList.InsertItem(i+,m_recordset.m_user);m_recordset.MoveNext();m_recordset.Close();m_ctrList.SetRedraw(TRUE);void CUserDlg:OnClickListUsername(NMHDR* pNMHDR, LRE

32、SULT* pResult) CString strSQL;UpdateData(TRUE);/從數(shù)據(jù)庫中獲取選擇用戶名的資料int i = m_ctrList.GetSelectionMark();m_strUser = m_ctrList.GetItemText(i,0);strSQL.Format(select * from password where user=%s,m_strUser);if(!m_recordset.Open(AFX_DB_USE_DEFAULT_TYPE,strSQL)MessageBox(打開數(shù)據(jù)庫失敗!,數(shù)據(jù)庫錯(cuò)誤,MB_OK);return ;/顯示用戶資

33、料m_strPass = m_recordset.m_passwd;m_strRePass = m_strPass;m_bIsAdmin = m_recordset.m_isadmin;m_recordset.Close();UpdateData(FALSE);*pResult = 0;void CUserDlg:OnButtonNew() /清空用戶資料m_strUser = ;m_strPass = ;m_strRePass = ;m_bIsAdmin = FALSE;/設(shè)置用戶名編輯框?yàn)榭捎胢_ctrUser.EnableWindow(TRUE);m_ctrUser.SetFocus()

34、;/更新數(shù)據(jù)到界面UpdateData(FALSE);void CUserDlg:OnButtonDelete() UpdateData(TRUE);/判斷是否指定用戶if(m_strUser=)MessageBox(請選擇一個(gè)用戶!);return;CString strSQL;strSQL.Format(select * from password where user=%s,m_strUser);if(!m_recordset.Open(AFX_DB_USE_DEFAULT_TYPE,strSQL)MessageBox(打開數(shù)據(jù)庫失敗!,數(shù)據(jù)庫錯(cuò)誤,MB_OK);return ;/刪除該

35、用戶m_recordset.Delete();m_recordset.Close();/刷新用戶列表RefreshData();m_strUser = ;m_strPass = ;m_strRePass = ;m_bIsAdmin = FALSE;UpdateData(FALSE);void CUserDlg:OnOK() UpdateData();if(m_ctrUser.IsWindowEnabled()/增加新用戶的輸入檢查if(m_strUser=)MessageBox(請?zhí)顚懹脩裘?;m_ctrUser.SetFocus();return;else/修改用戶信息的輸入檢查if(m_

36、strUser=)MessageBox(請選擇一個(gè)用戶!);return;/限制密碼不能為空if(m_strPass=) MessageBox(密碼不能為空,請輸入密碼!);m_ctrPass.SetFocus();return;/驗(yàn)證密碼與確認(rèn)密碼是否一致if(m_strPass!=m_strRePass) MessageBox(兩次輸入地密碼不一致,請重新輸入密碼!);m_ctrPass.SetFocus();m_strPass = ;m_strRePass = ;UpdateData(FALSE);return;/打開記錄集CString strSQL;strSQL.Format(sel

37、ect * from password where user=%s,m_strUser);if(!m_recordset.Open(AFX_DB_USE_DEFAULT_TYPE,strSQL)MessageBox(打開數(shù)據(jù)庫失敗!,數(shù)據(jù)庫錯(cuò)誤,MB_OK);return ;if(m_ctrUser.IsWindowEnabled()/增加新用戶/判斷用戶是否已經(jīng)存在if(m_recordset.GetRecordCount()!=0)m_recordset.Close();MessageBox(該用戶已經(jīng)存在!);return;m_recordset.AddNew();m_recordset

38、.m_user = m_strUser;m_recordset.m_passwd = m_strPass;m_recordset.m_isadmin = m_bIsAdmin;m_recordset.Update();MessageBox(用戶添加成功!請記住用戶名和密碼!);m_recordset.Close();else/修改用戶信息/判斷用戶是否不存在if(m_recordset.GetRecordCount()=0) m_recordset.Close();MessageBox(該用戶不存在!請更新數(shù)據(jù)庫);return;m_recordset.Edit();m_recordset.m

39、_user = m_strUser;m_recordset.m_passwd = m_strPass;m_recordset.m_isadmin = m_bIsAdmin;m_recordset.Update();MessageBox(用戶修改成功!請記住用戶名和密碼!);m_recordset.Close();m_ctrUser.EnableWindow(FALSE);/更新用戶列表RefreshData();void CUserDlg:OnButtonCancel() / TODO: Add your control notification handler code herem_strU

40、ser = ;m_strPass = ;m_strRePass = ;m_bIsAdmin = FALSE;m_ctrUser.EnableWindow(FALSE);UpdateData(FALSE);7.2.3 主窗體1. 主體框架:使用MFCAppWizard 創(chuàng)建一個(gè)單文檔結(jié)構(gòu)的應(yīng)用程序工程,建立起系統(tǒng)主體框架,生成應(yīng)用程序類(CmanagerApp),文檔類(CmanagerDoc),視圖類(CmanagerView)和主框架類(CmainFram).2. 菜單和工具欄:根據(jù)系統(tǒng)的總體設(shè)計(jì)中功能模塊的劃分,使用資源編輯器創(chuàng)建系統(tǒng)菜單和工具欄。3. 背景圖:通過修改系統(tǒng)的視圖類Pain

41、tg事件處理函數(shù)OnPaint()來實(shí)現(xiàn)加載背景圖,其具體代碼如下:void CManagerView:OnPaint() CPaintDC* pDC=new CPaintDC(this); / device context for paintingCBitmap bmp; RECTRect;RECTRectView;POINTptSize;CDCdcmem;BITMAPbm;int b = bmp.LoadBitmap(IDB_BITMAP_BG); /將位圖取出;dcmem.CreateCompatibleDC(pDC); /創(chuàng)建兼容設(shè)備上下文。dcmem.SelectObject(&bmp); /用設(shè)備上下文選擇位圖;dcmem.SetMapMode(pDC-GetMapMode(

溫馨提示

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

最新文檔

評論

0/150

提交評論