數(shù)據(jù)庫課程設(shè)計(jì)實(shí)驗(yàn)報告_第1頁
數(shù)據(jù)庫課程設(shè)計(jì)實(shí)驗(yàn)報告_第2頁
數(shù)據(jù)庫課程設(shè)計(jì)實(shí)驗(yàn)報告_第3頁
數(shù)據(jù)庫課程設(shè)計(jì)實(shí)驗(yàn)報告_第4頁
數(shù)據(jù)庫課程設(shè)計(jì)實(shí)驗(yàn)報告_第5頁
已閱讀5頁,還剩47頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、精品數(shù)據(jù)庫系統(tǒng)課程設(shè)計(jì)題目:考勤管理系統(tǒng)專業(yè):計(jì)算機(jī)科學(xué)與技術(shù)年級:太二班級:學(xué)號:姓名:指導(dǎo)老師:感謝下載載完成時間:2017年6月8號目錄一、實(shí)驗(yàn)?zāi)康?二、實(shí)驗(yàn)平臺3三、實(shí)驗(yàn)內(nèi)容3四、實(shí)驗(yàn)要求4五、實(shí)驗(yàn)步驟41. 系統(tǒng)需求分析41.1 系統(tǒng)功能分析41.2 系統(tǒng)功能模塊設(shè)計(jì)(劃分)51.3 與其它系統(tǒng)的關(guān)系51.4 數(shù)據(jù)流程圖52. 數(shù)據(jù)庫設(shè)計(jì)52.1 數(shù)據(jù)庫需求分析52.2 數(shù)據(jù)庫概念結(jié)構(gòu)設(shè)計(jì)62.3 數(shù)據(jù)庫邏輯結(jié)構(gòu)設(shè)計(jì)62.4 使用PowerDesigner16進(jìn)行數(shù)據(jù)庫的設(shè)計(jì)與建立102.5 使用AxureRP8進(jìn)行界面的設(shè)計(jì)1.23. 各功能模塊的設(shè)計(jì)與實(shí)現(xiàn)1.23.1 功能說明1

2、.23.2 用戶界面設(shè)計(jì)1.33.3 各功能模塊的實(shí)現(xiàn)1.94. 系統(tǒng)實(shí)現(xiàn) 系統(tǒng)總體設(shè)計(jì)2.14.2 ODBC連接方式的實(shí)現(xiàn)2.14.3 登陸界面的實(shí)現(xiàn)2.54.4 注冊界面的實(shí)現(xiàn)2.74.5 找回密碼的實(shí)現(xiàn)2.84.6 主界面的實(shí)現(xiàn)2.94.7 上下班時間設(shè)置的實(shí)現(xiàn)3.04.8 考勤修改的實(shí)現(xiàn)3.14.9 出勤記錄的實(shí)現(xiàn)3.44.10 加班記錄的實(shí)現(xiàn)3.54.11 請假記錄的實(shí)現(xiàn)3.64.12 出差記錄的實(shí)現(xiàn)3.74.13 考勤統(tǒng)計(jì)和記錄刪除的實(shí)現(xiàn)3.8六、實(shí)驗(yàn)心得3.9.七、部分代碼展示1一、實(shí)驗(yàn)?zāi)康臄?shù)據(jù)庫系統(tǒng)課程設(shè)計(jì)是為了配合數(shù)據(jù)庫原理及應(yīng)用開發(fā)而設(shè)置的,是計(jì)算機(jī)科學(xué)與技術(shù)

3、、網(wǎng)絡(luò)工程、信息安全、物聯(lián)網(wǎng)工程、軟件工程等專業(yè)集中實(shí)踐的教學(xué)環(huán)節(jié),是將關(guān)系數(shù)據(jù)庫理論知識轉(zhuǎn)化為解決實(shí)際問題能力的重要環(huán)節(jié)。數(shù)據(jù)庫系統(tǒng)課程設(shè)計(jì)目的在于加深對關(guān)系數(shù)據(jù)庫理論知識的理解,通過使用具體的DBMS,掌握一種實(shí)際的數(shù)據(jù)庫管理系統(tǒng)并掌握其操作技術(shù),熟練掌握使用數(shù)據(jù)庫前端開發(fā)工具(如VB、C+、Java、Delphi、PowerBuilder等),進(jìn)一步提高同學(xué)們運(yùn)用數(shù)據(jù)庫技術(shù)解決實(shí)際問題的能力。二、實(shí)驗(yàn)平臺PowerDesignerAxureSqlsever2005QT5.6三、實(shí)驗(yàn)內(nèi)容目前市面上流行的后臺數(shù)據(jù)庫管理系統(tǒng)有:適合大型企業(yè)的Oracle,適合中小型企業(yè)的SQLSERVER,以

4、及開源的MySQL??紤]到數(shù)據(jù)庫管理系統(tǒng)的易操作性以及實(shí)驗(yàn)室的實(shí)際情況,本次課程設(shè)計(jì)推薦使用SQLSERVER作為課程設(shè)計(jì)的后臺數(shù)據(jù)庫管理系統(tǒng),也可以使用MySQL或Oracle等。前臺數(shù)據(jù)庫應(yīng)用開發(fā)工具有VB、PB、Delphi、VC、Java,以及廣泛流行于互聯(lián)網(wǎng)上的.NET、J2EE技術(shù)等。.NET、J2EE技術(shù)采用的是典型的B/S計(jì)算模式,是大學(xué)后續(xù)課程涉及到的開發(fā)技術(shù),目前不適合本次課程設(shè)計(jì)實(shí)踐教學(xué)開發(fā)環(huán)境。經(jīng)典的桌面數(shù)據(jù)庫應(yīng)用開發(fā)是典型的C/S計(jì)算模式,即應(yīng)用數(shù)據(jù)庫前端開發(fā)工具編寫客戶端程序,通過客戶端程序來連接和訪問后臺數(shù)據(jù)庫??紤]到同學(xué)們都學(xué)習(xí)過C/C+,因此,本次選用VC+作

5、為前臺數(shù)據(jù)庫開發(fā)工具(也可以選用VB、Delphi、Java等)。兩周的課程設(shè)計(jì)要求同學(xué)們開發(fā)一個小型數(shù)據(jù)庫管理信息系統(tǒng)。所設(shè)計(jì)的小型管理信息系統(tǒng)應(yīng)包含查詢、插入、刪除、修改、統(tǒng)計(jì)、用戶權(quán)限管理等基本功能,界面采用菜單或?qū)υ捒虻男问健8鶕?jù)同學(xué)們所選的設(shè)計(jì)課題,給出系統(tǒng)需求分析,設(shè)計(jì)出系統(tǒng)的概念模型、邏輯模型,用SQL語言實(shí)現(xiàn)數(shù)據(jù)庫的建立、應(yīng)用和維護(hù),最后寫出詳細(xì)的設(shè)計(jì)說明書。四、實(shí)驗(yàn)要求考勤制度是每個企事業(yè)單位所必需的,計(jì)算機(jī)的出現(xiàn)使員工出勤情況的記錄和統(tǒng)計(jì)變得十分簡單??记诠芾硐到y(tǒng)的主要功能如下:上下班時間的設(shè)定。上下班時間相對固定,可保存在客戶端的設(shè)置文件中。員工出入單位的情況記錄。出入情

6、況主要由考勤機(jī)來記錄,但是需要設(shè)置人工添加的功能,以針對特殊情況的處理。請假、加班和出差情況的記錄。每個月底進(jìn)行整個月的出勤情況統(tǒng)計(jì)。考勤系統(tǒng)記錄了員工上下班的情況,為工資管理直接提供每個月工作時間的統(tǒng)計(jì)結(jié)果,用以計(jì)算工資。同時考勤系統(tǒng)也需要其它系統(tǒng)提供的員工、部門等信息。五、實(shí)驗(yàn)步驟1. 系統(tǒng)需求分析1.1 系統(tǒng)功能分析考勤管理系統(tǒng)的主要功能如下:上下班時間的設(shè)定。上下班時間相對固定,可保存在客戶端的設(shè)置文件中。員工出入單位的情況記錄。出入情況主要由考勤機(jī)來記錄,但是需要設(shè)置人工添加的功能,以針對特殊情況的處理。請假、加班和出差情況的記錄。每個月底進(jìn)行整個月的出勤情況統(tǒng)計(jì)。1.2 系統(tǒng)功能模

7、塊設(shè)計(jì)(劃分)本系統(tǒng)功能模塊如圖1所示??记诠芾硐到y(tǒng)一王1上7一圣時|工體胃況話新緯3+間設(shè)總記錄與斯次什【_:.I11手藕計(jì)加班記錄請假記錄出差記錄圖I.考勤管理管理系統(tǒng)功能模塊圖1.3 與其它系統(tǒng)的關(guān)系考勤系統(tǒng)記錄了員工上下班的情況,為工資管理直接提供每個月工作時間的統(tǒng)計(jì)結(jié)果,用以計(jì)算工資。同時考勤系統(tǒng)也需要其它系統(tǒng)提供的員工、部門等信息。1.4 數(shù)據(jù)流程圖系統(tǒng)的數(shù)據(jù)流程如圖2所示。出勤的原始時間記錄主要來源于考勤機(jī),并且以固定格式保存的數(shù)據(jù)庫中??记诠芾硐到y(tǒng)的任務(wù)是如何處理這些數(shù)據(jù)。產(chǎn)蠹3H上蠲2間,工圖2、考勤管理系統(tǒng)數(shù)據(jù)流程圖2.數(shù)據(jù)庫設(shè)計(jì)2.1 數(shù)據(jù)庫需求分析根據(jù)數(shù)據(jù)流程,可以列出

8、以下管理系統(tǒng)所需的數(shù)據(jù)項(xiàng)和數(shù)據(jù)結(jié)構(gòu)出勤記錄:記錄號、員工、出入情況、出入時間。請假記錄:記錄號、員工、假期起始時間、假期結(jié)束時間、請假緣由。加班記錄:記錄號、員工、加班時間長度、日期。出差記錄:記錄號、員工、出差起始時間、出差結(jié)束時間、具體描述。月度考勤統(tǒng)計(jì):記錄號、員工、年月、累計(jì)正常工作時間、累計(jì)請假時間、累計(jì)加班時間、累計(jì)出差時間、遲到次數(shù)、早退次數(shù)、曠工次數(shù)所需的外部數(shù)據(jù)支持:人員信息:員工號、密碼、權(quán)限、姓名、部門、當(dāng)前狀態(tài)等部門設(shè)置:部門編號、名稱等2.2 數(shù)據(jù)庫概念結(jié)構(gòu)設(shè)計(jì)圖3是本系統(tǒng)所需數(shù)據(jù)的E-R模型圖。出捫憶錄PK記錄號FKI出入狀態(tài) 出入而問 貿(mào)工總1度考的統(tǒng)計(jì)H.記錄號

9、加班記錄PK記錄心FK1加垃時回E期員工號I潔暇記錄員工PK員工號理碼段僅姓名當(dāng)前狀困八R 日R -日 仲曜卿數(shù)數(shù)數(shù) H清in出次次次號 月計(jì)計(jì)計(jì)計(jì)到退工工 年累累累累迅不r員FR1始束由工起結(jié)緣員.問.同出差足錄PK空.號FKI起始時回 結(jié)束時間 具色須述圖3、考勤管理系統(tǒng)的ER圖2.3 數(shù)據(jù)庫邏輯結(jié)構(gòu)設(shè)計(jì)根據(jù)系統(tǒng)的E-R圖,總共需要8個數(shù)據(jù)表的數(shù)據(jù)支持。其中人員信息和部門設(shè)置可以使用人事管理系統(tǒng)中已有的數(shù)據(jù)表,而出勤記錄、月度考勤統(tǒng)計(jì)、請假、加班、出差表和上下班時間表需要獨(dú)立設(shè)計(jì)。這8個數(shù)據(jù)表的結(jié)構(gòu)如表1到表8所示。表1ATTENDANCE出勤記錄表名稱代碼數(shù)據(jù)類型記錄編號IDNumber

10、(20)出入狀態(tài)IN_OUTCharacters(2)出入時間IO_TIMEDate&Time表2ATTENDANCE_STAT月度考勤統(tǒng)計(jì)表名稱代碼數(shù)據(jù)類型記錄編號IDNumber(20)統(tǒng)計(jì)年月YEAR_MONTHDate&Time累計(jì)工作時間WORK_HOURInteger累計(jì)請假時間LEAVE_HDAYInteger累計(jì)加班時間OVER_HOURInteger累計(jì)出差時間ERRAND_HDAYInteger遲到次數(shù)LATE_TIMESInteger早退次數(shù)EARLY_TIMESInteger曠工次數(shù)ABSENT_TIMESInteger表3LEAVE請假記錄表名稱代碼數(shù)

11、據(jù)類型記錄編號IDNumber(20)起始時間START_TIMEDate&Time結(jié)束時間END_TIMEDate&Time緣由REASONText表4OVERTIME加班記錄表名稱代碼數(shù)據(jù)類型記錄編號IDNumber(20)加班時間WORK_HOURSInteger日期WORK_DATEDate&Time表5ERRAND出差記錄表名稱代碼數(shù)據(jù)類型記錄編號IDNumber(20)起始時間START_TIMEDate&Time結(jié)束時間END_TIMEDate&Time具體描述DESCRIPSIONText表6PERSON員工個人信息表名稱代碼數(shù)據(jù)類型員工

12、號PERSON_IDNumber(20)密碼PERSONVariablecharacters(20)權(quán)限AUTHORITYText姓名NAMEVariablecharacters(20)性別SEXCharacters(2)生日BIRTHDAYDate&Time所在部門DEPARTMENTVariablecharacters(20)職務(wù)JOBVariablecharacters(20)受教育程度EDU_LEVELVariablecharacters(20)專業(yè)技能SPECIATYText家庭住址ADDRESSText聯(lián)系電話TELNumber(20)電子信箱EMAILText當(dāng)前狀態(tài)ST

13、ATECharacters(2)備注REMARKText表7DEPARTMENT部門信息表名稱代碼數(shù)據(jù)類型部門編號IDNumber(20)部門名稱NAMEText部門經(jīng)理MANAGERVariablecharacters(20)簡介INTROText表8Commutingschedule上下班時間表名稱代碼數(shù)據(jù)類型季節(jié)SeasonVariablecharacters(20)上班Go_to_workDate&Time下班Go_off_workDate&Time2.4使用PowerDesigner16進(jìn)行數(shù)據(jù)庫的設(shè)計(jì)與建立PowerDesigner是Sybase公司的CASE工具集

14、,使用它可以方便地對管理信息系統(tǒng)進(jìn)行分析設(shè)計(jì),他幾乎包括了數(shù)據(jù)庫模型設(shè)計(jì)的全過程。利用PowerDesigner可以制作數(shù)據(jù)流程圖、概念數(shù)據(jù)模型、物理數(shù)據(jù)模型,還可以為數(shù)據(jù)倉庫制作結(jié)構(gòu)模型,也能對團(tuán)隊(duì)設(shè)計(jì)模型進(jìn)行控制。SQLServer是Microsoft公司推出的關(guān)系型數(shù)據(jù)庫管理系統(tǒng)。數(shù)據(jù)庫引擎為關(guān)系型數(shù)據(jù)和結(jié)構(gòu)化數(shù)據(jù)提供了更安全可靠的存儲功能,使您可以構(gòu)建和管理用于業(yè)務(wù)的高可用和高性能的數(shù)據(jù)應(yīng)用程序。具體過程如下:打開PowerDesigner16,新建一個概念模型項(xiàng)目,將上面進(jìn)行需求分析和數(shù)據(jù)庫設(shè)計(jì)所得的表在軟件中表示出來,同時將各個表之間的聯(lián)系給關(guān)聯(lián)好。概念模型設(shè)計(jì)好之后,選擇Tool

15、s->GeneratePhysicalDateModel,在DBMS選項(xiàng)中選擇想要生成腳本的對應(yīng)的數(shù)據(jù)庫,我這里選擇的是對應(yīng)的MicrosoftSQLServer2005,點(diǎn)擊確定即可生成對應(yīng)數(shù)據(jù)庫的物理模型。生成物理模型之后,再檢查下實(shí)體之間是不是有一些和預(yù)計(jì)的不同的地方,有的話則是概念模型的設(shè)計(jì)不正確,需要重復(fù)第一步,沒有的話就可以繼續(xù)下一步。檢查完物理模型之后,就可以將建立的模型以SQL腳本的形式導(dǎo)出來,具體操作是Datebase->GenerateDatebase,再點(diǎn)確定就可以將腳本導(dǎo)出來。打開SQLServerManagementStudio,在自己的數(shù)據(jù)庫位置單擊右鍵

16、,選擇新建查詢,然后導(dǎo)入上一步生成的SQL腳本,選擇執(zhí)行即可將在PowerDesigner16中設(shè)計(jì)好的物理模型生成在SQLServerManagemenatStudio中,至此,數(shù)據(jù)庫的設(shè)計(jì)與建立工作完成。in 斌匚亙電丁門Iw QQ二藝評卡3 _e W .Xfi& PC |5QL aner ICLKLlfiOO - ui me 王 j Rc portS erwr9 J fcporrtcrwr-ipnipDBUI mcq»M1EanrE io洞專曙曲 I JI w田6 HM,可6把StRVlCti ftidUM1*二X± J*叁性>Cdl KdM舊舊以/,/

17、 ,MnaMic« riA mm1TELiuiemeIc 120 inull 8iMAlltrail zhar 30iihj.1,TFATtfellIWLLBEMM=XVB 工工 EBD SChnullrCjQii3UaTit DKSccr IPMR口白器 ID|RgTCT*T7白add constraint FF_ATErr2knN_ATTEKZiST_FER.SC3I2 foreign ky £1 4上<WSi的西(PE#3UH_10|9°«lt«r 匕的f KTTIB姐iUiE_EbT add c«ai:ralnc FF_

18、A?EMiJihi jhriEKjAJvr FEASCjW toieign tey口叱白用1PL無 (工£J>En_ l口 i2.5使用AxureRP8進(jìn)行界面的設(shè)計(jì)AxureRP是美國AxureSoftwareSolution公司旗艦產(chǎn)品,是一個專業(yè)的快速原型設(shè)計(jì)工具,讓負(fù)責(zé)定義需求和規(guī)格、設(shè)計(jì)功能和界面的專家能夠快速創(chuàng)建應(yīng)用軟件或Web網(wǎng)站的線框圖、流程圖、原型和規(guī)格說明文檔。具體過程如下:(以登陸界面為例)首先明確登錄界面需要多少的輸入框和標(biāo)簽以及按鈕,需要多少就拖多少到中間的空白處去。為了能夠更好地理解各個控件是干什么用的,最好把對象名給改成自己能夠理解的。按照自己喜歡

19、的風(fēng)格擺放各個控件的位置,調(diào)整屬性。具體教程可以參考百度。3.各功能模塊的設(shè)計(jì)與實(shí)現(xiàn)3.1功能說明a)上下班時間設(shè)置系統(tǒng)默認(rèn)采用每個季節(jié)八點(diǎn)上班,晚上十點(diǎn)下班,在上下班時間設(shè)置模塊中能夠更改選中季節(jié)的上下班時間。b)添加修改出勤記錄通過系統(tǒng)選用上班(I)或者下班(O)進(jìn)行出勤記錄的添加,如果上班記錄添加的時間晚于當(dāng)個季節(jié)的上班時間,則會在遲到記錄中加一,下班也是同樣的道理。c) 加班記錄通過系統(tǒng)可以選擇添加加班小時數(shù),同時添加加班記錄的時刻會被記錄在記錄表中。d) 請假記錄通過系統(tǒng)可以添加請假記錄,選擇請假的起始時間和結(jié)束時間后,系統(tǒng)會自動將請假的時間記錄到記錄表中。e) 出差記錄通過系統(tǒng)可以

20、添加出差記錄,選擇出差的起始時間和結(jié)束時間后,系統(tǒng)會自動將出差的時間記錄到記錄表中。f) 考勤統(tǒng)計(jì)系統(tǒng)可以自動匯總出勤表、加班表、請假表、出差表的數(shù)據(jù),計(jì)算出每個員工的考勤情況如加班小時數(shù)和遲到次數(shù)等等。3.2用戶界面設(shè)計(jì)完成數(shù)據(jù)庫創(chuàng)建和功能說明以后,我們可以進(jìn)行下一步工作,即設(shè)計(jì)用戶界面。a)登錄認(rèn)證窗口登錄認(rèn)證采用兩種身份驗(yàn)證方式,管理員方式和員工方式。b)主窗體主窗體用來選擇所要執(zhí)行的功能。c)上下班時間設(shè)置窗體上下班時間窗體用來設(shè)置選中季節(jié)的對應(yīng)上下班時間。d)考勤修改窗體考勤修改窗體用來記錄每次的上下班時間。e)添加修改出勤記錄界面出勤修改界面用來修改出勤記錄,如遲到次數(shù)和早退次數(shù)等

21、等。f)加班記錄界面加班記錄界面用來記錄加班信息。g)請假記錄界面請假記錄界面用來記錄請假信息。h)出差記錄界面出差記錄界面用來記錄出差信息。i)考勤統(tǒng)計(jì)窗口考勤統(tǒng)計(jì)窗口用來顯示或者全部刪除或者指定刪除統(tǒng)計(jì)信息。/計(jì)一JkIDTHCF出Erei)qiy1£和1UDAT呻M?UEM11123i35.5?Q0"QQk2就L-i:355TGa0D5即?DLT-5-6«355TQ0nnq112DL7H5-BB:355Ti>u001s5ZQLT-6-6.碧9TQl0QLIT12e:35.5T00007HZOLT-fi-E«其ST0n1gIB?譏了與中3.35

22、51J1"IuU1'1是中*J_L1工»:.l_史_j)注冊窗口注冊窗口用來注冊新員工信息。k)忘記密碼窗口忘記密碼窗口用來重置密碼。l)提交成功窗口提交成功窗口用來顯示提交是否成功。3.3各功能模塊的實(shí)現(xiàn)a)數(shù)據(jù)模塊的創(chuàng)建數(shù)據(jù)模塊的創(chuàng)建通過導(dǎo)入PowerDesignr16生成的腳本文件生成,導(dǎo)入的是數(shù)據(jù)的結(jié)構(gòu),也可以和腳本一起導(dǎo)入數(shù)據(jù),但是我選擇的是手動輸入數(shù)據(jù)。b)上下班時間設(shè)置上下班時間的設(shè)置在與數(shù)據(jù)庫連通之后,首先通過select語句查找出當(dāng)前選擇的季節(jié)的上下班時間,然后通過update進(jìn)行上下班時間的更新。c)添加修改出勤記錄出勤記錄的修改首先通過sele

23、ct查詢到對應(yīng)員工號,如果沒有對應(yīng)員工號則詢問是否要添加到員工表中,如果添加的話,順便也會給統(tǒng)計(jì)表中插入一條新員工的記錄。查詢成功后即可選擇遲到次數(shù)和早退次數(shù)等等,輸入相應(yīng)的值再按下提交(update)后即可將出勤信息修改。d) 加班記錄加班記錄的增加首先通過select查詢到對應(yīng)員工號,如果沒有對應(yīng)員工號則詢問是否要添加到員工表中,如果添加的話,順便也會給統(tǒng)計(jì)表中插入一條新員工的記錄。查詢成功后即可增加加班信息,加班信息包括加班時長和加班日期,按下提交(insert)后即可將加班記錄增加到加班記錄表中。e) 請假記錄請假記錄的增加首先通過select查詢到對應(yīng)員工號,如果沒有對應(yīng)員工號則詢問

24、是否要添加到員工表中,如果添加的話,順便也會給統(tǒng)計(jì)表中插入一條新員工的記錄。查詢成功后即可增加請假信息,請假信息包括請假的起始時間和結(jié)束時間以及請假的緣由,按下提交(insert)后即可將請假記錄增加到請假記錄中。f) 出差記錄出差記錄的增加首先通過select查詢到對應(yīng)員工號,如果沒有對應(yīng)員工號則詢問是否要添加到員工表中,如果添加的話,順便也會給統(tǒng)計(jì)表中插入一條新員工的記錄。查詢成功后即可增加出差信息,出差信息包括出差的起始時間和結(jié)束時間以及出差的緣由,按下提交(insert)后即可將出差記錄增加到出差記錄中。g) 考勤統(tǒng)計(jì)考勤統(tǒng)計(jì)通過將各個分表如出勤表、請假表等表進(jìn)行匯總,匯總出的數(shù)據(jù)存入

25、考勤統(tǒng)計(jì)表中。4.系統(tǒng)實(shí)現(xiàn)4.1 系統(tǒng)總體設(shè)計(jì)系統(tǒng)總體采用面向?qū)ο笤O(shè)計(jì)方法進(jìn)行設(shè)計(jì)開發(fā)。對象指的是類的實(shí)例。它將對象作為程序的基本單元,將程序和數(shù)據(jù)封裝其中,以提高軟件的重用性、靈活性和擴(kuò)展性。加上QT所采用的就是C+的編程方法,選用面向?qū)ο缶幊谭绞匠蔀榱艘环N必然。從以上對數(shù)據(jù)庫和功能的分析總結(jié)出本系統(tǒng)需要一個登錄模塊,一個注冊模塊,一個找回密碼模塊,一個功能選擇模塊,一個上下班時間設(shè)置模塊,一個出勤登記模塊,一個考勤修改模塊,一個請假登記模塊,一個出差登記模塊,一共是九個模塊。ODBC數(shù)據(jù)庫訪問技術(shù)只適用于windows系統(tǒng),因?yàn)樾枰贠DBC驅(qū)動程序管理器中進(jìn)行數(shù)據(jù)源注冊,而只有windo

26、ws才集成了ODBC驅(qū)動程序管理器(控制面板/管理工具/數(shù)據(jù)源”)。ADO(ActiveXDataObject)具有跨系統(tǒng)平臺特性,它直接對DBMS數(shù)據(jù)庫進(jìn)行操作,即系統(tǒng)中必須有DBMS,但不需要驅(qū)動程序,不需要注冊數(shù)據(jù)源,所以具有很好的可移植性。由于開發(fā)環(huán)境選在WindowsXP,使用的數(shù)據(jù)庫為MicrosoftSQLServer2005,因此采用ODBC的連接方式而不是ADO方式。得益于采用面向?qū)ο蟮姆绞介_發(fā),軟件在開發(fā)過程中的測試可以采用單元測試方法,獨(dú)立測試每個模塊即可,最后再組裝到一起進(jìn)行集成測試,這樣可以盡可能地節(jié)省時間。4.2 ODBC連接方式的實(shí)現(xiàn)開放數(shù)據(jù)庫連接(OpenDat

27、abaseConnectivity,ODBC)是微軟公司開放服務(wù)結(jié)構(gòu)(WOSA,WindowsOpenServicesArchitecture)中有關(guān)數(shù)據(jù)庫的一個組成部分,它建立了一組規(guī)范,并提供了一組對數(shù)據(jù)庫訪問的標(biāo)準(zhǔn)API(應(yīng)用程序編程接口)。這些API利用SQL來完成其大部分任務(wù)。ODBC本身也提供了對SQL語言的支持,用戶可以直接將SQL語句送給ODBC。這里我們只需要知道基本的ODBC連接方式和配制方法即可。Windows已經(jīng)包含了應(yīng)用程序、驅(qū)動管理器、驅(qū)動程序以及數(shù)據(jù)源,我們所要做的就是配置好數(shù)據(jù)源,具體配置方法如下:打開控制面板->管理工具->數(shù)據(jù)源(ODBC)。Jn

28、Eemrt 電二ODBC (12 松14工二 WiiidEhlLdHsr wg A* rsm r 餐久冷>wi的Be件3把* L4A.* H a了 WfF:卜區(qū)曲曲m口修竟 J WaJ mt-* HU叫課T M «! %if Uu*單擊添加按鈕,準(zhǔn)備添加一個新的數(shù)據(jù)源,這個數(shù)據(jù)源是與自己所寫的程序相關(guān)的。填寫好名稱,這個名稱和后面程序進(jìn)行ODBC連接有至關(guān)重要的聯(lián)系,服務(wù)器選擇數(shù)據(jù)庫所在的服務(wù)器,完畢之后選擇下一步。如圖所示選擇連接方式,輸入正確的賬號密碼,單擊下一步。默認(rèn)的數(shù)據(jù)庫更改為要操作的數(shù)據(jù)庫,點(diǎn)擊下一步。一直按下一步直到完成,然后單擊測試數(shù)據(jù)源,如果測試成功則ODBC

29、配置成功,可以進(jìn)行接下來的工作。.川忒玄L1!碉定.“止節(jié)1迷前停學(xué)建,'?fl i net ude #i ncl iidp 時incl udoncludc #"include 身"iculutlc UH ndudemiPTOFoftSOLScrrar3DE;酷動程序Kf本0&.01.7601正在后行連走潴試.,.接下來就是在QT中實(shí)現(xiàn)使用ODBC方式連接數(shù)據(jù)庫:在QT中使用數(shù)據(jù)庫操作需要添加對應(yīng)的頭文件,以及在工程文件中添加對SQL的支持。coreguijigl1p.i-,tf7,iQTHA1ORVFRSIONsfl):QT*=widgetsTARGET=

30、MyDBShowTEMPLATE=app<QWidet><QTSql>W一-<QSqlDnTnbnsp>"*<QiMessngcBox>,QSqTQuery>|,<QtCore><CJInme>添加完成后即可通過代碼進(jìn)行數(shù)據(jù)庫的連接,件裾龍標(biāo)蕭dh=Q$qlDrah.a>e:jdb-.«tostNane(,416-12");Jb-jmtiDatabaseWafle(''sqIaerwt;d'b,);db.»fciPass»rdl(!;f(

31、!dbEop«n()QHe鼻弓白:&r"nqngXttiG白"口®tE&aBeopenifailed!.*p"Pleasech»«kyourOBseltirxEiJ;其中,QSqlDatebase:addDatebase(QODBC')為添力口ODBC的驅(qū)動到QT程序中,沒有驅(qū)動的話也就無法正確連接數(shù)據(jù)庫。setHostName("416-12")為設(shè)置想要連接的主機(jī)的名字,如果是遠(yuǎn)程服務(wù)器的話也可以直接輸入IP地址。setDatabaseName("sqlserver&

32、quot;)為設(shè)置數(shù)據(jù)庫的連接名,這里就用到了之前設(shè)置數(shù)據(jù)源時的名稱,這個連接名需要和數(shù)據(jù)源里面的名稱一樣才能連接。setUserName("sa")和setPassword("sa520")分別為設(shè)置登陸賬號和密碼,如果采用的是Windows賬戶登陸的話就不需要設(shè)置這兩項(xiàng),不是的話就需要設(shè)置。最后的那個open()是用來判斷是不是已經(jīng)打開對應(yīng)的數(shù)據(jù)庫,成功的話會返回true,否則就是false,表示不成功,需要重新設(shè)置。中可以直接導(dǎo)出對應(yīng)此夕卜,在MicrosoftSQLServerManagementStudio表的增、刪、查、改腳本,具體方法如下:

33、到這里也就結(jié)束了ODBC連接方式的實(shí)現(xiàn),接下來可以根據(jù)對應(yīng)的功能寫代碼了。4.3 登陸界面的實(shí)現(xiàn)登錄界面所需要的東西主要是用戶和管理員單選框、賬號和密碼輸入框、登錄按鈕、注冊賬號按鈕和找回密碼按鈕,這里列出我的一些主要的控件:控件類型控件名用途說明QLabelTitleLabel標(biāo)題QPushButtonRegisterButton注冊ForgetPushButton忘記密碼LandButton登陸pushButton重置輸入框QRadioButtonuser_radioButton用戶按鈕admin_radioButton管理員按鈕QLineEditAccountEdit賬戶輸入Passwo

34、rdEdit密碼輸入在QT設(shè)計(jì)師模式中我設(shè)計(jì)完成的界面是這樣的:I,利加一代及糧用專ibtt理家縉:用心立不需要注意的是:四周的彈簧是用來固定比例的,這樣可以在改變窗口大小的時候動態(tài)改變各個控件的大小。背景的改變放在該類的構(gòu)造函數(shù)中,使用自動填充全部。門設(shè)置當(dāng)景國:hi>|»utoFi11Sackground();QPalettepalette;palette*setBrush(QPalettc:XBackgroLindl>QBiushCQPixinap(ri:/n<?w/prefixl/img/backgroundhipe,11);/QPixnMppimehp(r

35、i:/new/prefixl/img/b5ckgrQund巾jpg'11)li''.*>etPalette(p31ettP);密碼輸入時顯示為加密模式,使用ui->PasswordEdit->setEchoMode(QLineEdit:Password);回車的焦點(diǎn)設(shè)置為登陸按鈕/回車焦點(diǎn)設(shè)置QStiQrtcut*key=newQShortcutfQKeySequenceCQt;:Key_Enter)fthis);<.'Lj:connect(T-La仁七5vmted()J;十h1jn_LandEutton_cLteked();按下登陸或注

36、冊或忘記密碼時會將當(dāng)前窗口隱藏,同時打開對應(yīng)的窗口。4.4 注冊界面的實(shí)現(xiàn)用戶注冊界面主要用到的是兩個按鈕,一個提交,一個返回,其他的均為輸入框,主要控件如下:控件類型控件名用途說明QPushButtonSubmitButton提交ReturnButton返回QLineEditPersonNumberLineEdit輸入用戶名PasswordLineEdit輸入密碼NameLineEdit輸入姓名TELLineEdit輸入手機(jī)號碼QDateBirthdayDateEdit選擇生日在QT設(shè)計(jì)師模式中我設(shè)計(jì)完成的界面是這樣的:需要注意的是:必須輸入的為員工號,其他可以填也可以不填,不填的話就找不回

37、密碼。4.5 找回密碼的實(shí)現(xiàn)找回密碼界面主要使用三個按鈕,四個輸入框,部分主要控件如下:控件類型控件名用途說明QPushButtonPasswordPushButton確認(rèn)用戶名SubmitPushButton提交ReturnPushButton返回QLineEditPersonNumberLineEdit輸入用戶名NameLineEdit輸入密碼TELLineEdit輸入手機(jī)號NewPasswordLineEdit輸入新密碼在QT設(shè)計(jì)師模式中我設(shè)計(jì)完成的界面是這樣的:需要注意的是:如果注冊時沒有輸入姓名和手機(jī)號,在這里是找不回密碼的,只有聯(lián)系管理員在數(shù)據(jù)庫中修改。4.6 主界面的實(shí)現(xiàn)主界面主

38、要使用七個按鈕,部分主要控件如下:控件類型控件名用途說明QPushButtonWorkSetButton上下班時間WorkAttendanceButton考勤修改AttendanceButton出勤管理OverTimeButton加班管理LeaveButton請假管理ErrandButton出差管理WorkAttendanceStatisticsButton考勤統(tǒng)計(jì)在QT設(shè)計(jì)師模式中我設(shè)計(jì)完成的界面是這樣的:詰選鋒想要避桁的操作工匕干城對向宜縣老黜理上1W理WWS才借,理匕全理口券勁那計(jì)0.1:J.;r«1上T吃詈些年勤道理日朝管室加班雷厘清閩董理出里審理鮑.什需要注意的是:四周的彈

39、簧和之前的一樣,都是為了維持固定比例不變形。每個按鈕是交叉分布的,所以有圖的部分是點(diǎn)不了的。4.7 上下班時間設(shè)置的實(shí)現(xiàn)上下班時間設(shè)置界面主要使用兩個顯示標(biāo)簽,四個按鈕,兩個下拉框和兩個時間設(shè)置框,部分主要控件如下:控件類型控件名用途說明QLabelCurrentUpTimeShowLable顯示當(dāng)前上班時間CurrentDownTimeShowLable顯示當(dāng)前卜班時間QPushButtonUpSubmitButton提交上班時間更改DownSubmitButton提父卜班時間更改InitializationButton初始化上下班時間BackButton返回QComboBoxup_seas

40、on_comboBox上班季節(jié)卜拉框down_season_comboBox下班季節(jié)卜拉框QTimeEditDown_timeEdit下班時間設(shè)置框Up_timeEdit上班時間設(shè)置框在QT設(shè)計(jì)師模式中我設(shè)計(jì)完成的界面是這樣的:上下班忖舶營:上劃不證當(dāng)前上班時間;TertLabel更r工f卜 fjjTu"" jja'i jwXu iJUw.jTiaAii j'iTujwuUaj uwi«j需要注意的是:重置為初值只能重置當(dāng)前頁面的,而不是重置全部。系統(tǒng)默認(rèn)上班時間上午八點(diǎn),下班時間晚上十點(diǎn)。上下班時間表是存在數(shù)據(jù)庫中的,而不是存在程序之中。4.8

41、考勤修改的實(shí)現(xiàn)考勤修改界面主要使用九個按鈕,八個輸入框和七個顯示標(biāo)簽,部分主要控件如下:控件類型控件名用途說明QPushButtonPersonSubmitButton提交員工號returnButton返回ChangeWorkSubmitButton工作時間修改提交ChangeOvertimeSubmitButton加班時間修改提交ChangeLeaveSubmitButton請假時間修改提交ChangeErrandSubmitButton出差時間修改提交ChangeLateSubmitButton遲到次數(shù)修改提交ChangeLeaveearlySubmitButton早退次數(shù)修改提交Chan

42、geAbsenteeismSubmitButton曠工次數(shù)修改提交QLineEditPersonlineEdit員工號輸入WorkTimeChange_lineEdit改變的工作時間OverTimeChange_lineEdit改變的加班時間LeaveTimeChange_lineEdit改變的請假時間ErrandTimeChange_lineEdit改變的出差時間LateTimesChange_lineEdit改變的遲到次數(shù)LeaveEarlyTimesChange_lineEdit改變的早退次數(shù)AbsenteeismTimesChange_lineEdit改變的曠工次數(shù)QLabelCurr

43、entWorkTimeNumberLabel顯示當(dāng)前工作時間CurrentOvertimeTimeNumberLabel顯示當(dāng)前加班時間CurrentLeaveTimeNumberLabel顯示當(dāng)前請假時間CurrentErrandTimeNumberLabel顯示當(dāng)前出差時間CurrentLateTimesNumberLabel顯示當(dāng)前遲到次數(shù)CurrentLeaveearlyTimesNumberLabel顯示當(dāng)前早退次數(shù)CurrentAbsenteeismTimesNumberLabel顯示當(dāng)前曠工次數(shù)在QT設(shè)計(jì)師模式中我設(shè)計(jì)完成的界面是這樣的:需要注意的是:只有輸入了員工表中已有的員工

44、號才能進(jìn)行更改。如果輸入的員工號不存在,可以選擇新建一個員工信息,4.9 出勤記錄的實(shí)現(xiàn)出勤記錄界面主要使用三個按鈕,一個輸入框,兩個單選框和一個時間設(shè)置框,部分主要控件如下:控件類型控件名用途說明QPushButtonPersonNumberSubmitButton提交員工號SubmitButton提交出勤信息ReturnButton返回QLineEditPersonNumberEditLine輸入員工號QRadioButtonIN_radioButton選擇上班OUT_radioButton_2選擇下班QDateTimeEditIN_OUT_dateTimeEdit上下班時間記錄在QT設(shè)計(jì)

45、師模式中我設(shè)計(jì)完成的界面是這樣的:土耨營可用工W輛入局工號士福定員一出1A情況出人身沉JINOCT同工出九時間出A時間:F2C00/1/1"WLWLNftCMSfJifff。我提交需要注意的是:只有輸入了員工表中已有的員工號才能進(jìn)行信息記錄。必須選擇上班或者是下班,否則會提示錯誤無法提交信息。4.10 加班記錄的實(shí)現(xiàn)加班記錄界面主要使用三個按鈕,一個輸入框,一個雙精度自旋框和一個時間設(shè)置框,部分主要控件如下:控件類型控件名用途說明QPushButtonPersonNumberSubmitButton提交員工號SubmitButton提交信息ReturnButton返回QLineEdi

46、tPersonNumberlineEdit輸入員工號QDoubleSpinBoxOvertimeLengthdoubleSpinBox輸入加班時長QDateTimeEditOvertimeDatedateEdit加班記錄日期在QT設(shè)計(jì)師模式中我設(shè)計(jì)完成的界面是這樣的:需要注意的是:只有輸入了員工表中已有的員工號才能進(jìn)行信息記錄。這里的加班日期是指加班的那天而不是進(jìn)行記錄的那天。4.11 請假記錄的實(shí)現(xiàn)請假記錄界面主要使用三個按鈕,兩個輸入框和兩個時間選擇框,部分主要控件如下:控件類型控件名用途說明QPushButtonPersonSubmitButton提交用戶名SubmitButton提交信

47、息ReturnButton返回QLineEditPersonEditLine輸入員工號QTextEditReasontextEdit輸入請假備注QDateTimeEditLeaveBegin_dateTimeEdit請假起始時間LeaveEnd_dateTimeEdit請假結(jié)束時間在QT設(shè)計(jì)師模式中我設(shè)計(jì)完成的界面是這樣的:Mix黃理員工考聃人歸工號二情小不看二聞時叨CK件的時間,2Q(Ki/t/l0:110才TJ虐親時間OM/L/l0:0('53:*F一三闔Mt卜WJLUM-'A<(t)MIJLWJ.M.¥l.1L¥lUVWWJ.Wfl.RLRLV1

48、E,:需要注意的是:只有輸入了員工表中已有的員工號才能進(jìn)行信息記錄。請假緣由字?jǐn)?shù)沒有限制。4.12出差記錄的實(shí)現(xiàn)出差記錄界面主要使用三個按鈕,兩個輸入框和兩個時間設(shè)置框,部分主要控件類型控件名用途說明QPushButtonPersonSubmitButton提交員工號SubmitButton提交信息ReturnButton返回QLineEditPersonEditLine輸入員工號控件如下:QTextEditDescription_textEdit輸入出差備注QDateTimeEditErrandBegin_dateTimeEdit出差起始時間ErrandEnd_dateTimeEdit出差結(jié)

49、束時間在QT設(shè)計(jì)師模式中我設(shè)計(jì)完成的界面是這樣的:需要注意的是:只有輸入了員工表中已有的員工號才能進(jìn)行信息記錄。具體描述部分沒有字?jǐn)?shù)限制。4.13考勤統(tǒng)計(jì)和記錄刪除的實(shí)現(xiàn)考勤統(tǒng)計(jì)和記錄刪除界面主要使用四個按鈕和一個表格顯示視圖,部分主要控件如下:控件類型控件名用途說明QPushButtonChooseDeleteButton選中行刪除AllClearButton全部刪除ShowStatisticButton顯示統(tǒng)計(jì)信息ReturnButton返回QTableViewshowTableView顯小表格在QT設(shè)計(jì)師模式中我設(shè)計(jì)完成的界面是這樣的:需要注意的是:這里說的刪除不是刪除當(dāng)前行,而是刪除與

50、當(dāng)前表格相關(guān)的員工的信息,如加班表、出勤表中的相關(guān)信息全部刪除。選中刪除必須選中一行,否則會直接刪除第一行的員工相關(guān)信息。六、實(shí)驗(yàn)心得本實(shí)驗(yàn)如果采用的是實(shí)驗(yàn)指導(dǎo)書中的方法去做的話,過程會稍顯復(fù)雜,于是我選擇了我比較熟悉的QT來做,能夠節(jié)約時間,實(shí)驗(yàn)期間主要心得與收獲如下:1 .實(shí)驗(yàn)本身并不是很難,因?yàn)榇蠖嗟膶?shí)現(xiàn)方法就是增、刪、查、改四項(xiàng),真正有問題的是實(shí)現(xiàn)部分,因?yàn)橐紤]到各個組件和界面的交互操作。2 .代碼本身不難寫,難的是數(shù)據(jù)庫的設(shè)計(jì)和界面的美工,這兩個方面是這么久一直沒有涉及過的,尤其是界面的美工,對于我這種審美有點(diǎn)不對勁的人來說,別人覺得好看的我不一定覺得好看,我覺得好看的別人覺得很難

51、看。數(shù)據(jù)庫的設(shè)計(jì)也是,要詳細(xì)分析好各個數(shù)據(jù)項(xiàng)的數(shù)據(jù)類型,否則編寫代碼的時候會出現(xiàn)很嚴(yán)重的類型匹配錯誤。3 .好的開發(fā)工具很重要。像VC+6.0這個軟件年代太久遠(yuǎn)了,但是機(jī)房的電腦又裝不了我另一個比較熟悉的VS2015,所以只能鎖定在QT。而且QT的版本選擇也是很重要,之前花了一天的時間下了又刪,從QT5.9開始一直試到了QT5.6才能在XP系統(tǒng)上用,但是磨刀不誤砍柴工,這點(diǎn)時間上的花費(fèi)是值得的。4 .完成題目所要求的功能大概只花了兩天時間,但是剩下的時間也不能玩,我剛好可以把最近學(xué)的重構(gòu)改善既有代碼的設(shè)計(jì)這本書上的東西運(yùn)用到實(shí)際上來,對我的代碼進(jìn)行重構(gòu),這個過程很痛苦,因?yàn)橛行┑胤礁牧酥缶蜁?/p>

52、報錯,花費(fèi)很多時間來換條路進(jìn)行重構(gòu)。但是結(jié)局是開心的,因?yàn)樽詈笸瓿闪宋业哪繕?biāo),使得代碼的整潔度、可讀性和魯棒度都得到了不小的提升。七、部分代碼展示/attendance_change.cppvoidAttendance_Change:on_PersonNumberSubmitButton_clicked()/確定按鈕exist=false;/判斷員工號是否存在personNumber=ui->PersonNumberEditLine->text();QSqlQuerysqlquery;sqlquery.exec("SELECTPERSON""FROMTYX_DB_Attendance.dbo.PERSON");while(sqlquery.next()QStringtempPersonID=sqlquery.value(0).toString();if(tempPersonID.compare(personNumber)=0)/如果存在和輸入的相同的員工號,

溫馨提示

  • 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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論