




版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、. . . 數(shù)據(jù)庫(kù)系統(tǒng)課程設(shè)計(jì)題 目: 考勤管理系統(tǒng) 專(zhuān) 業(yè): 計(jì)算機(jī)科學(xué)與技術(shù) 年 級(jí): 大二 班 級(jí):學(xué) 號(hào):姓 名:指導(dǎo)老師 :完成時(shí)間 : 2017年6月8號(hào) 4 / 31目錄一、實(shí)驗(yàn)?zāi)康?二、實(shí)驗(yàn)平臺(tái)2三、實(shí)驗(yàn)容2四、實(shí)驗(yàn)要求2五、實(shí)驗(yàn)步驟31.系統(tǒng)需求分析31.1系統(tǒng)功能分析31.2系統(tǒng)功能模塊設(shè)計(jì)(劃分)31.3與其它系統(tǒng)的關(guān)系31.4數(shù)據(jù)流程圖32.數(shù)據(jù)庫(kù)設(shè)計(jì)32.1數(shù)據(jù)庫(kù)需求分析42.2數(shù)據(jù)庫(kù)概念結(jié)構(gòu)設(shè)計(jì)42.3數(shù)據(jù)庫(kù)邏輯結(jié)構(gòu)設(shè)計(jì)42.4使用PowerDesigner16進(jìn)行數(shù)據(jù)庫(kù)的設(shè)計(jì)與建立62.5使用Axure RP 8 進(jìn)行界面的設(shè)計(jì)73.各功能模塊的設(shè)計(jì)與實(shí)現(xiàn)73.1
2、功能說(shuō)明73.2用戶(hù)界面設(shè)計(jì)83.3各功能模塊的實(shí)現(xiàn)134.系統(tǒng)實(shí)現(xiàn)144.1系統(tǒng)總體設(shè)計(jì)144.2ODBC連接方式的實(shí)現(xiàn)144.3登陸界面的實(shí)現(xiàn)174.4注冊(cè)界面的實(shí)現(xiàn)184.5找回密碼的實(shí)現(xiàn)194.6主界面的實(shí)現(xiàn)204.7上下班時(shí)間設(shè)置的實(shí)現(xiàn)204.8考勤修改的實(shí)現(xiàn)214.9出勤記錄的實(shí)現(xiàn)224.10加班記錄的實(shí)現(xiàn)234.11請(qǐng)假記錄的實(shí)現(xiàn)244.12出差記錄的實(shí)現(xiàn)244.13考勤統(tǒng)計(jì)和記錄刪除的實(shí)現(xiàn)25六、實(shí)驗(yàn)心得26七、部分代碼展示26一、實(shí)驗(yàn)?zāi)康?數(shù)據(jù)庫(kù)系統(tǒng)課程設(shè)計(jì)是為了配合數(shù)據(jù)庫(kù)原理與應(yīng)用開(kāi)發(fā)而設(shè)置的,是計(jì)算機(jī)科學(xué)與技術(shù)、網(wǎng)絡(luò)工程、信息安全、物聯(lián)網(wǎng)工程、軟件工程等專(zhuān)業(yè)集中實(shí)踐的教學(xué)
3、環(huán)節(jié),是將關(guān)系數(shù)據(jù)庫(kù)理論知識(shí)轉(zhuǎn)化為解決實(shí)際問(wèn)題能力的重要環(huán)節(jié)。數(shù)據(jù)庫(kù)系統(tǒng)課程設(shè)計(jì)目的在于加深對(duì)關(guān)系數(shù)據(jù)庫(kù)理論知識(shí)的理解,通過(guò)使用具體的 DBMS,掌握一種實(shí)際的數(shù)據(jù)庫(kù)管理系統(tǒng)并掌握其操作技術(shù),熟練掌握使用數(shù)據(jù)庫(kù)前端開(kāi)發(fā)工具(如 VB、 C+、 Java、 Delphi、 PowerBuilder等),進(jìn)一步提高同學(xué)們運(yùn)用數(shù)據(jù)庫(kù)技術(shù)解決實(shí)際問(wèn)題的能力。二、實(shí)驗(yàn)平臺(tái)l PowerDesignerl Axure l Sqlsever2005l QT 5.6三、實(shí)驗(yàn)容目前市面上流行的后臺(tái)數(shù)據(jù)庫(kù)管理系統(tǒng)有:適合大型企業(yè)的Oracle,適合中小型企業(yè)的SQL SERVER,以與開(kāi)源的 MySQL??紤]到數(shù)
4、據(jù)庫(kù)管理系統(tǒng)的易操作性以與實(shí)驗(yàn)室的實(shí)際情況,本次課程設(shè)計(jì)推薦使用 SQL SERVER 作為課程設(shè)計(jì)的后臺(tái)數(shù)據(jù)庫(kù)管理系統(tǒng),也可以使用MySQL或 Oracle 等。前臺(tái)數(shù)據(jù)庫(kù)應(yīng)用開(kāi)發(fā)工具有 VB、PB、Delphi、VC、Java,以與廣泛流行于互聯(lián)網(wǎng)上的.NET、J2EE 技術(shù)等。.NET、J2EE 技術(shù)采用的是典型的 B/S 計(jì)算模式,是大學(xué)后續(xù)課程涉與到的開(kāi)發(fā)技術(shù),目前不適合本次課程設(shè)計(jì)實(shí)踐教學(xué)開(kāi)發(fā)環(huán)境。經(jīng)典的桌面數(shù)據(jù)庫(kù)應(yīng)用開(kāi)發(fā)是典型的 C/S計(jì)算模式,即應(yīng)用數(shù)據(jù)庫(kù)前端開(kāi)發(fā)工具編寫(xiě)客戶(hù)端程序,通過(guò)客戶(hù)端程序來(lái)連接和訪問(wèn)后臺(tái)數(shù)據(jù)庫(kù)。考慮到同學(xué)們都學(xué)習(xí)過(guò)C/C+,因此,本次選用VC+作為前臺(tái)
5、數(shù)據(jù)庫(kù)開(kāi)發(fā)工具(也可以選用VB、Delphi、Java 等)。兩周的課程設(shè)計(jì)要求同學(xué)們開(kāi)發(fā)一個(gè)小型數(shù)據(jù)庫(kù)管理信息系統(tǒng)。所設(shè)計(jì)的小型管理信息系統(tǒng)應(yīng)包含查詢(xún)、插入、刪除、修改、統(tǒng)計(jì)、用戶(hù)權(quán)限管理等基本功能,界面采用菜單或?qū)υ?huà)框的形式。根據(jù)同學(xué)們所選的設(shè)計(jì)課題,給出系統(tǒng)需求分析,設(shè)計(jì)出系統(tǒng)的概念模型、邏輯模型,用SQL語(yǔ)言實(shí)現(xiàn)數(shù)據(jù)庫(kù)的建立、應(yīng)用和維護(hù),最后寫(xiě)出詳細(xì)的設(shè)計(jì)說(shuō)明書(shū)。四、實(shí)驗(yàn)要求考勤制度是每個(gè)企事業(yè)單位所必需的,計(jì)算機(jī)的出現(xiàn)使員工出勤情況的記錄和統(tǒng)計(jì)變得十分簡(jiǎn)單。考勤管理系統(tǒng)的主要功能如下:l 上下班時(shí)間的設(shè)定。上下班時(shí)間相對(duì)固定,可保存在客戶(hù)端的設(shè)置文件中。l 員工出入單位的情況記錄。出
6、入情況主要由考勤機(jī)來(lái)記錄,但是需要設(shè)置人工添加的功能,以針對(duì)特殊情況的處理。l 請(qǐng)假、加班和出差情況的記錄。l 每個(gè)月底進(jìn)行整個(gè)月的出勤情況統(tǒng)計(jì)??记谙到y(tǒng)記錄了員工上下班的情況,為工資管理直接提供每個(gè)月工作時(shí)間的統(tǒng)計(jì)結(jié)果,用以計(jì)算工資。同時(shí)考勤系統(tǒng)也需要其它系統(tǒng)提供的員工、部門(mén)等信息。五、實(shí)驗(yàn)步驟1. 系統(tǒng)需求分析1.1 系統(tǒng)功能分析考勤管理系統(tǒng)的主要功能如下:l 上下班時(shí)間的設(shè)定。上下班時(shí)間相對(duì)固定,可保存在客戶(hù)端的設(shè)置文件中。l 員工出入單位的情況記錄。出入情況主要由考勤機(jī)來(lái)記錄,但是需要設(shè)置人工添加的功能,以針對(duì)特殊情況的處理。l 請(qǐng)假、加班和出差情況的記錄。l 每個(gè)月底進(jìn)行整個(gè)月的出勤
7、情況統(tǒng)計(jì)。1.2 系統(tǒng)功能模塊設(shè)計(jì)(劃分)本系統(tǒng)功能模塊如圖 1所示。1.3 與其它系統(tǒng)的關(guān)系考勤系統(tǒng)記錄了員工上下班的情況,為工資管理直接提供每個(gè)月工作時(shí)間的統(tǒng)計(jì)結(jié)果,用以計(jì)算工資。同時(shí)考勤系統(tǒng)也需要其它系統(tǒng)提供的員工、部門(mén)等信息。1.4 數(shù)據(jù)流程圖系統(tǒng)的數(shù)據(jù)流程如圖 2所示。出勤的原始時(shí)間記錄主要來(lái)源于考勤機(jī),并且以固定格式保存的數(shù)據(jù)庫(kù)中。考勤管理系統(tǒng)的任務(wù)是如何處理這些數(shù)據(jù)。2. 數(shù)據(jù)庫(kù)設(shè)計(jì)2.1 數(shù)據(jù)庫(kù)需求分析根據(jù)數(shù)據(jù)流程,可以列出以下管理系統(tǒng)所需的數(shù)據(jù)項(xiàng)和數(shù)據(jù)結(jié)構(gòu)l 出勤記錄:記錄號(hào)、員工、出入情況、出入時(shí)間。l 請(qǐng)假記錄:記錄號(hào)、員工、假期起始時(shí)間、假期結(jié)束時(shí)間、請(qǐng)假緣由。l 加班
8、記錄:記錄號(hào)、員工、加班時(shí)間長(zhǎng)度、日期。l 出差記錄:記錄號(hào)、員工、出差起始時(shí)間、出差結(jié)束時(shí)間、具體描述。l 月度考勤統(tǒng)計(jì):記錄號(hào)、員工、年月、累計(jì)正常工作時(shí)間、累計(jì)請(qǐng)假時(shí)間、累計(jì)加班時(shí)間、累計(jì)出差時(shí)間、遲到次數(shù)、早退次數(shù)、曠工次數(shù)所需的外部數(shù)據(jù)支持:l 人員信息:?jiǎn)T工號(hào)、密碼、權(quán)限、部門(mén)、當(dāng)前狀態(tài)等l 部門(mén)設(shè)置:部門(mén)編號(hào)、名稱(chēng)等2.2 數(shù)據(jù)庫(kù)概念結(jié)構(gòu)設(shè)計(jì)圖 3是本系統(tǒng)所需數(shù)據(jù)的E-R 模型圖。2.3 數(shù)據(jù)庫(kù)邏輯結(jié)構(gòu)設(shè)計(jì)根據(jù)系統(tǒng)的 E-R 圖,總共需要 8 個(gè)數(shù)據(jù)表的數(shù)據(jù)支持。其中人員信息和部門(mén)設(shè)置可以使用人事管理系統(tǒng)中已有的數(shù)據(jù)表,而出勤記錄、月度考勤統(tǒng)計(jì)、請(qǐng)假、加班、出差表和上下班時(shí)間表需
9、要獨(dú)立設(shè)計(jì)。這8個(gè)數(shù)據(jù)表的結(jié)構(gòu)如表 1到表 8所示。表1 ATTENDANCE出勤記錄表名稱(chēng)代碼數(shù)據(jù)類(lèi)型記錄編號(hào)IDNumber (20)出入狀態(tài)IN_OUTCharacters (2)出入時(shí)間IO_TIMEDate & Time表2 ATTENDANCE_STAT月度考勤統(tǒng)計(jì)表名稱(chēng)代碼數(shù)據(jù)類(lèi)型記錄編號(hào)IDNumber (20)統(tǒng)計(jì)年月YEAR_MONTHDate & Time累計(jì)工作時(shí)間WORK_HOURInteger累計(jì)請(qǐng)假時(shí)間LEAVE_HDAYInteger累計(jì)加班時(shí)間OVER_HOURInteger累計(jì)出差時(shí)間ERRAND_HDAYInteger遲到次數(shù)LATE_TIMESInteg
10、er早退次數(shù)EARLY_TIMESInteger曠工次數(shù)ABSENT_TIMESInteger表3 LEAVE請(qǐng)假記錄表名稱(chēng)代碼數(shù)據(jù)類(lèi)型記錄編號(hào)IDNumber (20)起始時(shí)間START_TIMEDate & Time結(jié)束時(shí)間END_TIMEDate & Time緣由REASONText表4 OVERTIME加班記錄表名稱(chēng)代碼數(shù)據(jù)類(lèi)型記錄編號(hào)IDNumber (20)加班時(shí)間WORK_HOURSInteger日期WORK_DATEDate & Time表5 ERRAND出差記錄表名稱(chēng)代碼數(shù)據(jù)類(lèi)型記錄編號(hào)IDNumber (20)起始時(shí)間START_TIMEDate & Time結(jié)束時(shí)間END
11、_TIMEDate & Time具體描述DESCRIPSIONText表6 PERSON員工個(gè)人信息表名稱(chēng)代碼數(shù)據(jù)類(lèi)型員工號(hào)PERSON_IDNumber (20)密碼PERSONVariable characters (20)權(quán)限AUTHORITYTextNAMEVariable characters (20)性別SEXCharacters (2)生日BIRTHDAYDate & Time所在部門(mén)DEPARTMENTVariable characters (20)職務(wù)JOBVariable characters (20)受教育程度EDU_LEVELVariable characters (2
12、0)專(zhuān)業(yè)技能SPECIATYText家庭住址ADDRESSText聯(lián)系TELNumber (20)電子信箱EMAILText當(dāng)前狀態(tài)STATECharacters (2)備注REMARKText表7 DEPARTMENT部門(mén)信息表名稱(chēng)代碼數(shù)據(jù)類(lèi)型部門(mén)編號(hào)IDNumber (20)部門(mén)名稱(chēng)NAMEText部門(mén)經(jīng)理MANAGERVariable characters (20)簡(jiǎn)介INTROText表8 Commuting schedule上下班時(shí)間表名稱(chēng)代碼數(shù)據(jù)類(lèi)型季節(jié)SeasonVariable characters (20)上班Go_to_workDate & Time下班Go_off_wor
13、kDate & Time2.4 使用PowerDesigner16進(jìn)行數(shù)據(jù)庫(kù)的設(shè)計(jì)與建立Power Designer 是Sybase公司的CASE工具集,使用它可以方便地對(duì)管理信息系統(tǒng)進(jìn)行分析設(shè)計(jì),他幾乎包括了數(shù)據(jù)庫(kù)模型設(shè)計(jì)的全過(guò)程。利用Power Designer可以制作數(shù)據(jù)流程圖、概念數(shù)據(jù)模型、物理數(shù)據(jù)模型,還可以為數(shù)據(jù)倉(cāng)庫(kù)制作結(jié)構(gòu)模型,也能對(duì)團(tuán)隊(duì)設(shè)計(jì)模型進(jìn)行控制。SQL Server 是Microsoft 公司推出的關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng)。數(shù)據(jù)庫(kù)引擎為關(guān)系型數(shù)據(jù)和結(jié)構(gòu)化數(shù)據(jù)提供了更安全可靠的存儲(chǔ)功能,使您可以構(gòu)建和管理用于業(yè)務(wù)的高可用和高性能的數(shù)據(jù)應(yīng)用程序。具體過(guò)程如下:l 打開(kāi)Power
14、Designer16,新建一個(gè)概念模型項(xiàng)目,將上面進(jìn)行需求分析和數(shù)據(jù)庫(kù)設(shè)計(jì)所得的表在軟件中表示出來(lái),同時(shí)將各個(gè)表之間的聯(lián)系給關(guān)聯(lián)好。l 概念模型設(shè)計(jì)好之后,選擇 Tools - Generate Physical Date Model ,在 DBMS 選項(xiàng)中選擇想要生成腳本的對(duì)應(yīng)的數(shù)據(jù)庫(kù),我這里選擇的是對(duì)應(yīng)的 Microsoft SQL Server 2005 ,點(diǎn)擊確定即可生成對(duì)應(yīng)數(shù)據(jù)庫(kù)的物理模型。l 生成物理模型之后,再檢查下實(shí)體之間是不是有一些和預(yù)計(jì)的不同的地方,有的話(huà)則是概念模型的設(shè)計(jì)不正確,需要重復(fù)第一步,沒(méi)有的話(huà)就可以繼續(xù)下一步。l 檢查完物理模型之后,就可以將建立的模型以SQL腳
15、本的形式導(dǎo)出來(lái),具體操作是 Datebase - Generate Datebase ,再點(diǎn)確定就可以將腳本導(dǎo)出來(lái)。l 打開(kāi)SQL Server Management Studio ,在自己的數(shù)據(jù)庫(kù)位置單擊右鍵,選擇 新建查詢(xún) ,然后導(dǎo)入上一步生成的SQL腳本,選擇 執(zhí)行 即可將在PowerDesigner16中設(shè)計(jì)好的物理模型生成在SQL Server Managemenat Studio中,至此,數(shù)據(jù)庫(kù)的設(shè)計(jì)與建立工作完成。2.5 使用Axure RP 8 進(jìn)行界面的設(shè)計(jì)Axure RP是美國(guó)Axure Software Solution公司旗艦產(chǎn)品,是一個(gè)專(zhuān)業(yè)的快速原型設(shè)計(jì)工具,讓負(fù)責(zé)定
16、義需求和規(guī)格、設(shè)計(jì)功能和界面的專(zhuān)家能夠快速創(chuàng)建應(yīng)用軟件或Web的線(xiàn)框圖、流程圖、原型和規(guī)格說(shuō)明文檔。具體過(guò)程如下:(以登陸界面為例)l 首先明確登錄界面需要多少的輸入框和標(biāo)簽以與按鈕,需要多少就拖多少到中間的空白處去。l 為了能夠更好地理解各個(gè)控件是干什么用的,最好把對(duì)象名給改成自己能夠理解的。l 按照自己喜歡的風(fēng)格擺放各個(gè)控件的位置,調(diào)整屬性。l 具體教程可以參考百度。3. 各功能模塊的設(shè)計(jì)與實(shí)現(xiàn)3.1 功能說(shuō)明a) 上下班時(shí)間設(shè)置系統(tǒng)默認(rèn)采用每個(gè)季節(jié)八點(diǎn)上班,晚上十點(diǎn)下班,在上下班時(shí)間設(shè)置模塊中能夠更改選中季節(jié)的上下班時(shí)間。b) 添加修改出勤記錄通過(guò)系統(tǒng)選用上班(I)或者下班(O)進(jìn)行出勤
17、記錄的添加,如果上班記錄添加的時(shí)間晚于當(dāng)個(gè)季節(jié)的上班時(shí)間,則會(huì)在遲到記錄中加一,下班也是同樣的道理。c) 加班記錄通過(guò)系統(tǒng)可以選擇添加加班小時(shí)數(shù),同時(shí)添加加班記錄的時(shí)刻會(huì)被記錄在記錄表中。d) 請(qǐng)假記錄通過(guò)系統(tǒng)可以添加請(qǐng)假記錄,選擇請(qǐng)假的起始時(shí)間和結(jié)束時(shí)間后,系統(tǒng)會(huì)自動(dòng)將請(qǐng)假的時(shí)間記錄到記錄表中。e) 出差記錄通過(guò)系統(tǒng)可以添加出差記錄,選擇出差的起始時(shí)間和結(jié)束時(shí)間后,系統(tǒng)會(huì)自動(dòng)將出差的時(shí)間記錄到記錄表中。f) 考勤統(tǒng)計(jì)系統(tǒng)可以自動(dòng)匯總出勤表、加班表、請(qǐng)假表、出差表的數(shù)據(jù),計(jì)算出每個(gè)員工的考勤情況如加班小時(shí)數(shù)和遲到次數(shù)等等。3.2 用戶(hù)界面設(shè)計(jì)完成數(shù)據(jù)庫(kù)創(chuàng)建和功能說(shuō)明以后,我們可以進(jìn)行下一步工作
18、,即設(shè)計(jì)用戶(hù)界面。a) 登錄認(rèn)證窗口登錄認(rèn)證采用兩種身份驗(yàn)證方式,管理員方式和員工方式。b) 主窗體主窗體用來(lái)選擇所要執(zhí)行的功能。c) 上下班時(shí)間設(shè)置窗體上下班時(shí)間窗體用來(lái)設(shè)置選中季節(jié)的對(duì)應(yīng)上下班時(shí)間。d) 考勤修改窗體考勤修改窗體用來(lái)記錄每次的上下班時(shí)間。e) 添加修改出勤記錄界面出勤修改界面用來(lái)修改出勤記錄,如遲到次數(shù)和早退次數(shù)等等。f) 加班記錄界面加班記錄界面用來(lái)記錄加班信息。g) 請(qǐng)假記錄界面請(qǐng)假記錄界面用來(lái)記錄請(qǐng)假信息。h) 出差記錄界面出差記錄界面用來(lái)記錄出差信息。i) 考勤統(tǒng)計(jì)窗口考勤統(tǒng)計(jì)窗口用來(lái)顯示或者全部刪除或者指定刪除統(tǒng)計(jì)信息。j) 注冊(cè)窗口注冊(cè)窗口用來(lái)注冊(cè)新員工信息。k
19、) 忘記密碼窗口忘記密碼窗口用來(lái)重置密碼。l) 提交成功窗口提交成功窗口用來(lái)顯示提交是否成功。3.3 各功能模塊的實(shí)現(xiàn)a) 數(shù)據(jù)模塊的創(chuàng)建數(shù)據(jù)模塊的創(chuàng)建通過(guò)導(dǎo)入PowerDesignr16生成的腳本文件生成,導(dǎo)入的是數(shù)據(jù)的結(jié)構(gòu),也可以和腳本一起導(dǎo)入數(shù)據(jù),但是我選擇的是手動(dòng)輸入數(shù)據(jù)。b) 上下班時(shí)間設(shè)置上下班時(shí)間的設(shè)置在與數(shù)據(jù)庫(kù)連通之后,首先通過(guò)select語(yǔ)句查找出當(dāng)前選擇的季節(jié)的上下班時(shí)間,然后通過(guò)update進(jìn)行上下班時(shí)間的更新。c) 添加修改出勤記錄出勤記錄的修改首先通過(guò)select查詢(xún)到對(duì)應(yīng)員工號(hào),如果沒(méi)有對(duì)應(yīng)員工號(hào)則詢(xún)問(wèn)是否要添加到員工表中,如果添加的話(huà),順便也會(huì)給統(tǒng)計(jì)表中插入一條新
20、員工的記錄。查詢(xún)成功后即可選擇遲到次數(shù)和早退次數(shù)等等,輸入相應(yīng)的值再按下提交(update)后即可將出勤信息修改。d) 加班記錄加班記錄的增加首先通過(guò)select查詢(xún)到對(duì)應(yīng)員工號(hào),如果沒(méi)有對(duì)應(yīng)員工號(hào)則詢(xún)問(wèn)是否要添加到員工表中,如果添加的話(huà),順便也會(huì)給統(tǒng)計(jì)表中插入一條新員工的記錄。查詢(xún)成功后即可增加加班信息,加班信息包括加班時(shí)長(zhǎng)和加班日期,按下提交(insert)后即可將加班記錄增加到加班記錄表中。e) 請(qǐng)假記錄請(qǐng)假記錄的增加首先通過(guò)select查詢(xún)到對(duì)應(yīng)員工號(hào),如果沒(méi)有對(duì)應(yīng)員工號(hào)則詢(xún)問(wèn)是否要添加到員工表中,如果添加的話(huà),順便也會(huì)給統(tǒng)計(jì)表中插入一條新員工的記錄。查詢(xún)成功后即可增加請(qǐng)假信息,請(qǐng)假信
21、息包括請(qǐng)假的起始時(shí)間和結(jié)束時(shí)間以與請(qǐng)假的緣由,按下提交(insert)后即可將請(qǐng)假記錄增加到請(qǐng)假記錄中。f) 出差記錄出差記錄的增加首先通過(guò)select查詢(xún)到對(duì)應(yīng)員工號(hào),如果沒(méi)有對(duì)應(yīng)員工號(hào)則詢(xún)問(wèn)是否要添加到員工表中,如果添加的話(huà),順便也會(huì)給統(tǒng)計(jì)表中插入一條新員工的記錄。查詢(xún)成功后即可增加出差信息,出差信息包括出差的起始時(shí)間和結(jié)束時(shí)間以與出差的緣由,按下提交(insert)后即可將出差記錄增加到出差記錄中。g) 考勤統(tǒng)計(jì)考勤統(tǒng)計(jì)通過(guò)將各個(gè)分表如出勤表、請(qǐng)假表等表進(jìn)行匯總,匯總出的數(shù)據(jù)存入考勤統(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ì)開(kāi)發(fā)。對(duì)象指的是類(lèi)的實(shí)例。
22、它將對(duì)象作為程序的基本單元,將程序和數(shù)據(jù)封裝其中,以提高軟件的重用性、靈活性和擴(kuò)展性。加上QT所采用的就是C+的編程方法,選用面向?qū)ο缶幊谭绞匠蔀榱艘环N必然。從以上對(duì)數(shù)據(jù)庫(kù)和功能的分析總結(jié)出本系統(tǒng)需要一個(gè)登錄模塊,一個(gè)注冊(cè)模塊,一個(gè)找回密碼模塊,一個(gè)功能選擇模塊,一個(gè)上下班時(shí)間設(shè)置模塊,一個(gè)出勤登記模塊,一個(gè)考勤修改模塊,一個(gè)請(qǐng)假登記模塊,一個(gè)出差登記模塊,一共是九個(gè)模塊。ODBC數(shù)據(jù)庫(kù)訪問(wèn)技術(shù)只適用于windows系統(tǒng),因?yàn)樾枰贠DBC驅(qū)動(dòng)程序管理器中進(jìn)行數(shù)據(jù)源注冊(cè),而只有windows才集成了ODBC驅(qū)動(dòng)程序管理器(“控制面板/管理工具/數(shù)據(jù)源”)。ADO(ActiveX Data Ob
23、ject)具有跨系統(tǒng)平臺(tái)特性,它直接對(duì)DBMS數(shù)據(jù)庫(kù)進(jìn)行操作,即系統(tǒng)中必須有DBMS,但不需要驅(qū)動(dòng)程序,不需要注冊(cè)數(shù)據(jù)源,所以具有很好的可移植性。由于開(kāi)發(fā)環(huán)境選在Windows XP,使用的數(shù)據(jù)庫(kù)為Microsoft SQL Server 2005,因此采用ODBC的連接方式而不是ADO方式。得益于采用面向?qū)ο蟮姆绞介_(kāi)發(fā),軟件在開(kāi)發(fā)過(guò)程中的測(cè)試可以采用單元測(cè)試方法,獨(dú)立測(cè)試每個(gè)模塊即可,最后再組裝到一起進(jìn)行集成測(cè)試,這樣可以盡可能地節(jié)省時(shí)間。4.2 ODBC連接方式的實(shí)現(xiàn)開(kāi)放數(shù)據(jù)庫(kù)連接(Open Database Connectivity,ODBC)是微軟公司開(kāi)放服務(wù)結(jié)構(gòu)(WOSA,Windo
24、ws Open Services Architecture)中有關(guān)數(shù)據(jù)庫(kù)的一個(gè)組成部分,它建立了一組規(guī),并提供了一組對(duì)數(shù)據(jù)庫(kù)訪問(wèn)的標(biāo)準(zhǔn)API(應(yīng)用程序編程接口)。這些API利用SQL來(lái)完成其大部分任務(wù)。ODBC本身也提供了對(duì)SQL語(yǔ)言的支持,用戶(hù)可以直接將SQL語(yǔ)句送給ODBC。這里我們只需要知道基本的ODBC連接方式和配制方法即可。Windows已經(jīng)包含了應(yīng)用程序、驅(qū)動(dòng)管理器、驅(qū)動(dòng)程序以與數(shù)據(jù)源,我們所要做的就是配置好數(shù)據(jù)源,具體配置方法如下:l 打開(kāi) 控制面板 - 管理工具 - 數(shù)據(jù)源(ODBC)。l 單擊 添加 按鈕,準(zhǔn)備添加一個(gè)新的數(shù)據(jù)源,這個(gè)數(shù)據(jù)源是與自己所寫(xiě)的程序相關(guān)的。填寫(xiě)好名稱(chēng)
25、,這個(gè)名稱(chēng)和后面程序進(jìn)行ODBC連接有至關(guān)重要的聯(lián)系,服務(wù)器選擇數(shù)據(jù)庫(kù)所在的服務(wù)器,完畢之后選擇下一步。l 如圖所示選擇連接方式,輸入正確的賬號(hào)密碼,單擊下一步。l 默認(rèn)的數(shù)據(jù)庫(kù)更改為要操作的數(shù)據(jù)庫(kù),點(diǎn)擊下一步。l 一直按下一步直到完成,然后單擊 測(cè)試數(shù)據(jù)源 ,如果測(cè)試成功則ODBC配置成功,可以進(jìn)行接下來(lái)的工作。接下來(lái)就是在QT中實(shí)現(xiàn)使用ODBC方式連接數(shù)據(jù)庫(kù):l 在QT中使用數(shù)據(jù)庫(kù)操作需要添加對(duì)應(yīng)的頭文件,以與在工程文件中添加對(duì)SQL的支持。l 添加完成后即可通過(guò)代碼進(jìn)行數(shù)據(jù)庫(kù)的連接l 其中,QSqlDatebase:addDatebase(“QODBC”) 為添加ODBC的驅(qū)動(dòng)到QT程序
26、中,沒(méi)有驅(qū)動(dòng)的話(huà)也就無(wú)確連接數(shù)據(jù)庫(kù)。setHostName(416-12) 為設(shè)置想要連接的主機(jī)的名字,如果是遠(yuǎn)程服務(wù)器的話(huà)也可以直接輸入IP地址。setDatabaseName(sqlserver) 為設(shè)置數(shù)據(jù)庫(kù)的連接名,這里就用到了之前設(shè)置數(shù)據(jù)源時(shí)的名稱(chēng),這個(gè)連接名需要和數(shù)據(jù)源里面的名稱(chēng)一樣才能連接。setUserName(sa) 和 setPassword(sa520) 分別為設(shè)置登陸賬號(hào)和密碼,如果采用的是Windows賬戶(hù)登陸的話(huà)就不需要設(shè)置這兩項(xiàng),不是的話(huà)就需要設(shè)置。最后的那個(gè)open() 是用來(lái)判斷是不是已經(jīng)打開(kāi)對(duì)應(yīng)的數(shù)據(jù)庫(kù),成功的話(huà)會(huì)返回true ,否則就是false ,表示不
27、成功,需要重新設(shè)置。此外,在Microsoft SQL Server Management Studio中可以直接導(dǎo)出對(duì)應(yīng)表的增、刪、查、改腳本,具體方法如下:l 到這里也就結(jié)束了ODBC連接方式的實(shí)現(xiàn),接下來(lái)可以根據(jù)對(duì)應(yīng)的功能寫(xiě)代碼了。4.3 登陸界面的實(shí)現(xiàn)登錄界面所需要的東西主要是用戶(hù)和管理員單選框、賬號(hào)和密碼輸入框、登錄按鈕、注冊(cè)賬號(hào)按鈕和找回密碼按鈕,這里列出我的一些主要的控件:控件類(lèi)型控件名用途說(shuō)明QLabelTitleLabel標(biāo)題QPushButtonRegisterButton注冊(cè)ForgetPushButton忘記密碼LandButton登陸pushButton重置輸入框QR
28、adioButtonuser_radioButton用戶(hù)按鈕admin_radioButton管理員按鈕QLineEditAccountEdit賬戶(hù)輸入PasswordEdit密碼輸入在QT設(shè)計(jì)師模式中我設(shè)計(jì)完成的界面是這樣的:需要注意的是:l 四周的彈簧是用來(lái)固定比例的,這樣可以在改變窗口大小的時(shí)候動(dòng)態(tài)改變各個(gè)控件的大小。l 背景的改變放在該類(lèi)的構(gòu)造函數(shù)中,使用自動(dòng)填充全部。l 密碼輸入時(shí)顯示為加密模式,使用ui-PasswordEdit-setEchoMode(QLineEdit:Password); l 回車(chē)的焦點(diǎn)設(shè)置為登陸按鈕l 按下登陸或注冊(cè)或忘記密碼時(shí)會(huì)將當(dāng)前窗口隱藏,同時(shí)打開(kāi)對(duì)應(yīng)
29、的窗口。4.4 注冊(cè)界面的實(shí)現(xiàn)用戶(hù)注冊(cè)界面主要用到的是兩個(gè)按鈕,一個(gè)提交,一個(gè)返回,其他的均為輸入框,主要控件如下:控件類(lèi)型控件名用途說(shuō)明QPushButtonSubmitButton提交ReturnButton返回QLineEditPersonNumberLineEdit輸入用戶(hù)名PasswordLineEdit輸入密碼NameLineEdit輸入TELLineEdit輸入手機(jī)QDateBirthdayDateEdit選擇生日在QT設(shè)計(jì)師模式中我設(shè)計(jì)完成的界面是這樣的:需要注意的是:l 必須輸入的為員工號(hào),其他可以填也可以不填,不填的話(huà)就找不回密碼。4.5 找回密碼的實(shí)現(xiàn)找回密碼界面主要使用
30、三個(gè)按鈕,四個(gè)輸入框,部分主要控件如下:控件類(lèi)型控件名用途說(shuō)明QPushButtonPasswordPushButton確認(rèn)用戶(hù)名SubmitPushButton提交ReturnPushButton返回QLineEditPersonNumberLineEdit輸入用戶(hù)名NameLineEdit輸入密碼TELLineEdit輸入手機(jī)號(hào)NewPasswordLineEdit輸入新密碼在QT設(shè)計(jì)師模式中我設(shè)計(jì)完成的界面是這樣的:需要注意的是:l 如果注冊(cè)時(shí)沒(méi)有輸入和手機(jī)號(hào),在這里是找不回密碼的,只有聯(lián)系管理員在數(shù)據(jù)庫(kù)中修改。4.6 主界面的實(shí)現(xiàn)主界面主要使用七個(gè)按鈕,部分主要控件如下:控件類(lèi)型控件名
31、用途說(shuō)明QPushButtonWorkSetButton上下班時(shí)間WorkAttendanceButton考勤修改AttendanceButton出勤管理OverTimeButton加班管理LeaveButton請(qǐng)假管理ErrandButton出差管理WorkAttendanceStatisticsButton考勤統(tǒng)計(jì)在QT設(shè)計(jì)師模式中我設(shè)計(jì)完成的界面是這樣的:需要注意的是:l 四周的彈簧和之前的一樣,都是為了維持固定比例不變形。l 每個(gè)按鈕是交叉分布的,所以有圖的部分是點(diǎn)不了的。4.7 上下班時(shí)間設(shè)置的實(shí)現(xiàn)上下班時(shí)間設(shè)置界面主要使用兩個(gè)顯示標(biāo)簽,四個(gè)按鈕,兩個(gè)下拉框和兩個(gè)時(shí)間設(shè)置框,部分主要
32、控件如下:控件類(lèi)型控件名用途說(shuō)明QLabelCurrentUpTimeShowLable顯示當(dāng)前上班時(shí)間CurrentDownTimeShowLable顯示當(dāng)前下班時(shí)間QPushButtonUpSubmitButton提交上班時(shí)間更改DownSubmitButton提交下班時(shí)間更改InitializationButton初始化上下班時(shí)間BackButton返回QComboBoxup_season_comboBox上班季節(jié)下拉框down_season_comboBox下班季節(jié)下拉框QTimeEditDown_timeEdit下班時(shí)間設(shè)置框Up_timeEdit上班時(shí)間設(shè)置框在QT設(shè)計(jì)師模式中我設(shè)
33、計(jì)完成的界面是這樣的:需要注意的是:l 重置為初值只能重置當(dāng)前頁(yè)面的,而不是重置全部。l 系統(tǒng)默認(rèn)上班時(shí)間上午八點(diǎn),下班時(shí)間晚上十點(diǎn)。l 上下班時(shí)間表是存在數(shù)據(jù)庫(kù)中的,而不是存在程序之中。4.8 考勤修改的實(shí)現(xiàn)考勤修改界面主要使用九個(gè)按鈕,八個(gè)輸入框和七個(gè)顯示標(biāo)簽,部分主要控件如下:控件類(lèi)型控件名用途說(shuō)明QPushButtonPersonSubmitButton提交員工號(hào)returnButton返回ChangeWorkSubmitButton工作時(shí)間修改提交ChangeOvertimeSubmitButton加班時(shí)間修改提交ChangeLeaveSubmitButton請(qǐng)假時(shí)間修改提交Chan
34、geErrandSubmitButton出差時(shí)間修改提交ChangeLateSubmitButton遲到次數(shù)修改提交ChangeLeaveearlySubmitButton早退次數(shù)修改提交ChangeAbsenteeismSubmitButton曠工次數(shù)修改提交QLineEditPersonlineEdit員工號(hào)輸入WorkTimeChange_lineEdit改變的工作時(shí)間OverTimeChange_lineEdit改變的加班時(shí)間LeaveTimeChange_lineEdit改變的請(qǐng)假時(shí)間ErrandTimeChange_lineEdit改變的出差時(shí)間LateTimesChange_li
35、neEdit改變的遲到次數(shù)LeaveEarlyTimesChange_lineEdit改變的早退次數(shù)AbsenteeismTimesChange_lineEdit改變的曠工次數(shù)QLabelCurrentWorkTimeNumberLabel顯示當(dāng)前工作時(shí)間CurrentOvertimeTimeNumberLabel顯示當(dāng)前加班時(shí)間CurrentLeaveTimeNumberLabel顯示當(dāng)前請(qǐng)假時(shí)間CurrentErrandTimeNumberLabel顯示當(dāng)前出差時(shí)間CurrentLateTimesNumberLabel顯示當(dāng)前遲到次數(shù)CurrentLeaveearlyTimesNumber
36、Label顯示當(dāng)前早退次數(shù)CurrentAbsenteeismTimesNumberLabel顯示當(dāng)前曠工次數(shù)在QT設(shè)計(jì)師模式中我設(shè)計(jì)完成的界面是這樣的:需要注意的是:l 只有輸入了員工表中已有的員工號(hào)才能進(jìn)行更改。l 如果輸入的員工號(hào)不存在,可以選擇新建一個(gè)員工信息,4.9 出勤記錄的實(shí)現(xiàn)出勤記錄界面主要使用三個(gè)按鈕,一個(gè)輸入框,兩個(gè)單選框和一個(gè)時(shí)間設(shè)置框,部分主要控件如下:控件類(lèi)型控件名用途說(shuō)明QPushButtonPersonNumberSubmitButton提交員工號(hào)SubmitButton提交出勤信息ReturnButton返回QLineEditPersonNumberEditLi
37、ne輸入員工號(hào)QRadioButtonIN_radioButton選擇上班OUT_radioButton_2選擇下班QDateTimeEditIN_OUT_dateTimeEdit上下班時(shí)間記錄在QT設(shè)計(jì)師模式中我設(shè)計(jì)完成的界面是這樣的:需要注意的是:l 只有輸入了員工表中已有的員工號(hào)才能進(jìn)行信息記錄。l 必須選擇上班或者是下班,否則會(huì)提示錯(cuò)誤無(wú)法提交信息。4.10 加班記錄的實(shí)現(xiàn)加班記錄界面主要使用三個(gè)按鈕,一個(gè)輸入框,一個(gè)雙精度自旋框和一個(gè)時(shí)間設(shè)置框,部分主要控件如下:控件類(lèi)型控件名用途說(shuō)明QPushButtonPersonNumberSubmitButton提交員工號(hào)SubmitButt
38、on提交信息ReturnButton返回QLineEditPersonNumberlineEdit輸入員工號(hào)QDoubleSpinBoxOvertimeLengthdoubleSpinBox輸入加班時(shí)長(zhǎng)QDateTimeEditOvertimeDatedateEdit加班記錄日期在QT設(shè)計(jì)師模式中我設(shè)計(jì)完成的界面是這樣的:需要注意的是:l 只有輸入了員工表中已有的員工號(hào)才能進(jìn)行信息記錄。l 這里的加班日期是指加班的那天而不是進(jìn)行記錄的那天。4.11 請(qǐng)假記錄的實(shí)現(xiàn)請(qǐng)假記錄界面主要使用三個(gè)按鈕,兩個(gè)輸入框和兩個(gè)時(shí)間選擇框,部分主要控件如下:控件類(lèi)型控件名用途說(shuō)明QPushButtonPerson
39、SubmitButton提交用戶(hù)名SubmitButton提交信息ReturnButton返回QLineEditPersonEditLine輸入員工號(hào)QTextEditReasontextEdit輸入請(qǐng)假備注QDateTimeEditLeaveBegin_dateTimeEdit請(qǐng)假起始時(shí)間LeaveEnd_dateTimeEdit請(qǐng)假結(jié)束時(shí)間在QT設(shè)計(jì)師模式中我設(shè)計(jì)完成的界面是這樣的:需要注意的是:l 只有輸入了員工表中已有的員工號(hào)才能進(jìn)行信息記錄。l 請(qǐng)假緣由字?jǐn)?shù)沒(méi)有限制。4.12 出差記錄的實(shí)現(xiàn)出差記錄界面主要使用三個(gè)按鈕,兩個(gè)輸入框和兩個(gè)時(shí)間設(shè)置框,部分主要控件如下:控件類(lèi)型控件名用途
40、說(shuō)明QPushButtonPersonSubmitButton提交員工號(hào)SubmitButton提交信息ReturnButton返回QLineEditPersonEditLine輸入員工號(hào)QTextEditDescription_textEdit輸入出差備注QDateTimeEditErrandBegin_dateTimeEdit出差起始時(shí)間ErrandEnd_dateTimeEdit出差結(jié)束時(shí)間在QT設(shè)計(jì)師模式中我設(shè)計(jì)完成的界面是這樣的:需要注意的是:l 只有輸入了員工表中已有的員工號(hào)才能進(jìn)行信息記錄。l 具體描述部分沒(méi)有字?jǐn)?shù)限制。4.13 考勤統(tǒng)計(jì)和記錄刪除的實(shí)現(xiàn)考勤統(tǒng)計(jì)和記錄刪除界面主要
41、使用四個(gè)按鈕和一個(gè)表格顯示視圖,部分主要控件如下:控件類(lèi)型控件名用途說(shuō)明QPushButtonChooseDeleteButton選中行刪除AllClearButton全部刪除ShowStatisticButton顯示統(tǒng)計(jì)信息ReturnButton返回QTableViewshowTableView顯示表格在QT設(shè)計(jì)師模式中我設(shè)計(jì)完成的界面是這樣的:需要注意的是:l 這里說(shuō)的刪除不是刪除當(dāng)前行,而是刪除與當(dāng)前表格相關(guān)的員工的信息,如加班表、出勤表中的相關(guān)信息全部刪除。l 選中刪除必須選中一行,否則會(huì)直接刪除第一行的員工相關(guān)信息。六、 實(shí)驗(yàn)心得本實(shí)驗(yàn)如果采用的是實(shí)驗(yàn)指導(dǎo)書(shū)中的方法去做的話(huà),過(guò)程會(huì)
42、稍顯復(fù)雜,于是我選擇了我比較熟悉的QT來(lái)做,能夠節(jié)約時(shí)間,實(shí)驗(yàn)期間主要心得與收獲如下:1. 實(shí)驗(yàn)本身并不是很難,因?yàn)榇蠖嗟膶?shí)現(xiàn)方法就是增、刪、查、改四項(xiàng),真正有問(wèn)題的是實(shí)現(xiàn)部分,因?yàn)橐紤]到各個(gè)組件和界面的交互操作。2. 代碼本身不難寫(xiě),難的是數(shù)據(jù)庫(kù)的設(shè)計(jì)和界面的美工,這兩個(gè)方面是這么久一直沒(méi)有涉與過(guò)的,尤其是界面的美工,對(duì)于我這種審美有點(diǎn)不對(duì)勁的人來(lái)說(shuō),別人覺(jué)得好看的我不一定覺(jué)得好看,我覺(jué)得好看的別人覺(jué)得很難看。數(shù)據(jù)庫(kù)的設(shè)計(jì)也是,要詳細(xì)分析好各個(gè)數(shù)據(jù)項(xiàng)的數(shù)據(jù)類(lèi)型,否則編寫(xiě)代碼的時(shí)候會(huì)出現(xiàn)很?chē)?yán)重的類(lèi)型匹配錯(cuò)誤。3. 好的開(kāi)發(fā)工具很重要。像VC+ 6.0這個(gè)軟件年代太久遠(yuǎn)了,但是機(jī)房的電腦又裝不
43、了我另一個(gè)比較熟悉的VS2015,所以只能鎖定在QT。而且QT的版本選擇也是很重要,之前花了一天的時(shí)間下了又刪,從QT5.9開(kāi)始一直試到了QT5.6才能在XP系統(tǒng)上用,但是磨刀不誤砍柴工,這點(diǎn)時(shí)間上的花費(fèi)是值得的。4. 完成題目所要求的功能大概只花了兩天時(shí)間,但是剩下的時(shí)間也不能玩,我剛好可以把最近學(xué)的 重構(gòu) 改善既有代碼的設(shè)計(jì)這本書(shū)上的東西運(yùn)用到實(shí)際上來(lái),對(duì)我的代碼進(jìn)行重構(gòu),這個(gè)過(guò)程很痛苦,因?yàn)橛行┑胤礁牧酥缶蜁?huì)報(bào)錯(cuò),花費(fèi)很多時(shí)間來(lái)?yè)Q條路進(jìn)行重構(gòu)。但是結(jié)局是開(kāi)心的,因?yàn)樽詈笸瓿闪宋业哪繕?biāo),使得代碼的整潔度、可讀性和魯棒度都得到了不小的提升。七、部分代碼展示/attendance_chang
44、e.cppvoid Attendance_Change:on_PersonNumberSubmitButton_clicked() /確定按鈕 exist = false; /判斷員工號(hào)是否存在 personNumber = ui-PersonNumberEditLine-text(); QSqlQuery sqlquery; sqlquery.exec(SELECT PERSON FROM TYX_DB_Attendance.dbo.PERSON); while(sqlquery.next() QString tempPersonID = sqlquery.value(0).toString
45、(); if(tempPersonID pare(personNumber) = 0) / 如果存在和輸入的一樣的員工號(hào),則可以直接使用 exist = true; if(exist) QMessageBox:warning(this,Query was successful,Query was successful); ui-groupBox_2-show(); ui-groupBox_3-show(); ui-SubmitButton-show(); else /不存在輸入的員工號(hào),選擇新建或者不新建返回 int ret = QMessageBox:question(this,Query
46、failed,Do you want to create a new employee record?,QMessageBox:Yes | QMessageBox:No,QMessageBox:Yes); if(ret = QMessageBox:Yes) sqlquery.prepare(INSERT INTO TYX_DB_Attendance.dbo.PERSON(PERSON,PASSWORD) VALUES (:PERSON,:PASSWORD); sqlquery.bindValue(:PERSON,personNumber); sqlquery.bindValue(:PASSWO
47、RD,personNumber); sqlquery.exec(); /插入新員工到考勤表 stat_insert(); ui-groupBox_2-show(); ui-groupBox_3-show(); ui-SubmitButton-show(); /獲取記錄條數(shù) QSqlQuery sqlqueryID; sqlqueryID.exec(SELECT ID FROM TYX_DB_Attendance.dbo.ATTENDANCE); if(sqlqueryID.last() IDNumber = sqlqueryID.value(0).toInt() + 1 ; void Atte
48、ndance_Change:on_SubmitButton_clicked() /提交按鈕 QString IO_radio; bool io_ok = false; if(ui-IN_radioButton-isChecked() IO_radio = I; io_ok = true; else if(ui-OUT_radioButton_2-isChecked() IO_radio = O; io_ok = true; else QMessageBox:warning(this,No choice,Please select one!); if(io_ok) QSqlQuery sqlqu
49、ery; sqlquery.prepare(INSERT INTO TYX_DB_Attendance.dbo.ATTENDANCE(ID,PERSON,IN_OUT,IO_TIME) VALUES (:ID ,:PERSON ,:IN_OUT ,:IO_TIME); sqlquery.bindValue(:ID,IDNumber); sqlquery.bindValue(:PERSON,personNumber); sqlquery.bindValue(:IN_OUT,IO_radio); sqlquery.bindValue(:IO_TIME,ui-IN_OUT_dateTimeEdit-dateTime(); if(sqlquery.exec() QMessageBox:information(this,Submit successfully!,Submit successfully!); else QMessageBox:warning(this,Submit failu
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 室內(nèi)設(shè)計(jì)量房標(biāo)準(zhǔn)流程
- 醫(yī)護(hù)聯(lián)動(dòng):溝通與協(xié)作
- Acid-PEG4-NHS-ester-生命科學(xué)試劑-MCE
- 2025年人工智能法律政策圖景研究報(bào)告
- 新能源汽車(chē)充電設(shè)施布局優(yōu)化與2025年運(yùn)營(yíng)效率提升風(fēng)險(xiǎn)控制策略
- 智能家居系統(tǒng)互聯(lián)互通標(biāo)準(zhǔn)下的智能家居行業(yè)市場(chǎng)細(xì)分及競(jìng)爭(zhēng)格局報(bào)告
- 2025年醫(yī)藥行業(yè)CRO模式下的臨床試驗(yàn)數(shù)據(jù)監(jiān)查員培訓(xùn)與認(rèn)證報(bào)告
- 紡織服裝制造業(yè)智能化生產(chǎn)智能化生產(chǎn)設(shè)備技術(shù)升級(jí)項(xiàng)目報(bào)告
- 教育游戲化在虛擬現(xiàn)實(shí)教育中的應(yīng)用與教學(xué)創(chuàng)新報(bào)告
- 2025年土壤污染修復(fù)技術(shù)產(chǎn)業(yè)現(xiàn)狀與發(fā)展趨勢(shì)研究報(bào)告
- 油田安全生產(chǎn)管理培訓(xùn)課件
- 2025年度文化創(chuàng)意產(chǎn)業(yè)園區(qū)委托代建與運(yùn)營(yíng)協(xié)議
- 山東省東營(yíng)市2023-2024學(xué)年高二下學(xué)期7月期末考試 歷史 含解析
- 《慢性阻塞性肺疾病的健康宣教》課件
- 課題申報(bào)參考:新時(shí)代高?!靶凶叩乃颊n”教學(xué)模式創(chuàng)新與保障機(jī)制研究
- 2023-2024學(xué)年北京市朝陽(yáng)區(qū)八年級(jí)下學(xué)期期末英語(yǔ)試卷(含答案)
- 《瑞幸咖啡財(cái)務(wù)舞弊案例分析》11000字(論文)
- 學(xué)校消防報(bào)警系統(tǒng)安裝施工方案
- 品管圈PDCA獲獎(jiǎng)案例呼吸科提高患者吸入劑規(guī)范使用達(dá)標(biāo)率
- 電池安全管理
- 住宿安全檢查清單
評(píng)論
0/150
提交評(píng)論