




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、宿遷學院三系綜合性實驗實驗報告課程名稱軟件工程實驗學期 2008 至2009 學年第二學期學生所在系部計算機系年級 2 專業(yè)班級學生姓名 學號任課教師郭紅實驗成績計算機系制實驗題目員工考勤管理系統(tǒng)實驗時間2009年5月31日實驗地點軟件工程實驗室一、實驗目的通過軟件工程綜合實驗, 使學生認識到在軟件系統(tǒng)實際開發(fā)中運用軟件工程方法的意義,加深對軟件工程所學知識的理解,初步掌握進行軟件系統(tǒng)開發(fā)的基本方法,培養(yǎng)學生分析問題、解決實際問題的能力,為畢業(yè)設計以及將來從事軟件項目開發(fā)與管理工作打下一定的基礎。二、設備與環(huán)境操作系統(tǒng):WindowsXP/CE數(shù)據(jù)庫:SQL Server2000。編程工具:D
2、EKPHI 7編程環(huán)境三、實驗內容及分析1需求工程1.1 功能需求考勤管理是企業(yè)管理中非常重要的一環(huán)。作為公司主管考勤的人員能夠通過考勤管理系統(tǒng) 清楚的看到公司員工編號,姓名,部門以及簽到時間、簽離時間以及是否遲到、早退等諸多信 息。還能夠通過所有員工的出勤記錄比較來發(fā)現(xiàn)企業(yè)管理和員工作業(yè)方面的諸多問題。更是員 工工資及福利待遇方面重要的參考依據(jù)。具體操作流程如下:超級用戶登錄本系統(tǒng),輸入用戶名和密碼,系統(tǒng)進行驗證,驗證通過的話進入程序主界面, 在主界面對普通用戶的信息進行錄入, 超級用戶需要輸入普通用戶的部門和編號進行錄入,經過系統(tǒng)驗證通過后該員工簽到成功,下班簽離時超級用戶先輸入該普通用戶
3、的部門和編號,如果該員工今天已經簽到,那樣簽離成功。同時超級用戶可以查詢員工所有信息、某段時間內員工的出勤情況。本系統(tǒng)是一個可靠性高、可用性強的系統(tǒng),能夠處理基本的功能和非功能故障。關于用戶信息的安全性和保密性提供了基本保障。1.2 數(shù)據(jù)流圖用戶的需求具體表現(xiàn)在對個人信息的提供、編輯、處理和查詢上。這就要求數(shù)據(jù)庫能夠滿 足各種信息的輸入、輸出和處理。通過分析考勤管理系統(tǒng)的實際內容和要求,得到一下數(shù)據(jù)流 圖:笊止上為&信總* I. T-'l鈴網(wǎng)內果虺除輔王:,一;.酢證靖果考勤管理系統(tǒng)超級用戶超級用戶1.3 E-R 圖圖2 0層數(shù)據(jù)流圖圖3超級用戶E-R圖圖5部門E-R圖2.軟件
4、設計2.1總體設計本系統(tǒng)的初步結構圖如下所示:超級用戶部門用戶圖6總體E-R考勤管理系統(tǒng)查詢模塊證登 錄信 息輸 A 查 詢 條 件輸入登錄信息箭 A 簽 到 信 息輸A簽離 信 息關于圖中的標號,分別表示為:a、登錄信息 b、不合格登錄信息 c、不合格簽到信息d、簽到信息e、不合格簽離信息f、簽離信息 g、不合格刪除條件 h、刪除條件i、查詢條件k、不合格查詢條件m合格登錄信息n、程序主界面信息l、刪除成功信息j、合格刪除條件o、查詢結果p、合格查詢條件q、合格簽到信息r、簽到成功返回結果 s、簽離成功返回結果t、合格簽離信息優(yōu)化后的結構圖為:其中編號的具體內容為:1、合格的登錄信息2、程序
5、主界面3、簽到成功的返回信息 4、合格的簽到信息5、簽離成功的返回信息 6、合格的簽離信息 7、合格的刪除條件8、刪除成功信息 9、合格的查詢條件 10、查詢結果1.3 數(shù)據(jù)庫設計本系統(tǒng)設計到普通用戶, 也就是員工,和超級用戶兩類用戶。 超級用戶可以管理員工的簽 到簽離操作,也可以查詢員工的個人情況和出勤情況。員工只需要告訴超級員工自己的部門和編號就可以完成簽到和簽離操作。根據(jù)實際應用的需要,最大限度的提高系統(tǒng)的性能,本系統(tǒng)涉及5張表,分別是超級用戶表、普通用戶表、部門表、考勤表和考勤歷史表。1.3.1 表結構分別如下:表1部門表結構"iwnss 類型 為空性 備注部門編號BM_Nu
6、mVarchar(10)含唯一表小部門而名稱BM_NAMEVarchar(20)否部門名稱部門人數(shù)BM_COUNTint是表2超級用戶表結構名稱字段為空性備注用戶名SUserVarchar(10)Not null唯一標識用戶身份密碼MMVarchar(10)Not null每個用戶都啟密碼姓名SNameVarchar(10)Null性別SSexChar(2)Null出生日期SBirDateDatetimeNull籍員SPlaceVarchar(30)null表3普通用戶表結構名稱字段為空性備注編RNumVarchar(10)Not null唯一標識用戶身份部門AparVarchar(10)姓名
7、CNameVarchar(10)性別SexChar(2)出生日期BirdateDatetimePlaceVarchar(30)表4考勤表結構名稱字段為空性備注序列號SeqintNot null唯一標識記錄序列,自增長編RNO.Varchar(10)Not null普通用戶編號簽到時間GtimeVarchar(50)Not null將離時間OtimeVarchar(50)Null表5考勤歷史表名稱字段為空性備注記錄號LSeqintNut null唯一標識記錄序列,自增長編RNumVarchar(10)Not null普通用戶編號日期wDateDatestampNot null簽到時間gtimeV
8、archar(50)Not null將離時間otimeVarchar(50)Not null是否遲到WlateBitNot null1遲到,0未遲到是否早退WearlyBitNot null1早退,0未早退是否缺勤WOutBitNot null1缺勤,0未缺勤worker at t end2.2.2這個表之間一定存在這某種相互制約的關系,下圖為各表之間的關系圖:2.2.3用到的比較重要的存儲過程、觸發(fā)器以及索引。在主界面,當用戶選擇簽到點擊“確定”按鈕后,執(zhí)行將數(shù)據(jù)插入到考勤表中的存儲過程wat_insert 代碼為:use ygkqgocreate proc wat_insertnum va
9、rchar(10),gtime datetime asinsert into worker_attend(num,gtime)values(num,gtime)Go當用戶選擇簽離,并且點擊確認按鈕后,執(zhí)行將該員工的信息插入到考勤表中的存儲過程 otime_insert 代碼為:use ygkqgocreate proc otime_insertnum varchar(10),otime varchar(50)asupdate worker_attendset otime=otimewhere num=numGo2.3詳細設計本系統(tǒng)是用delphi制作完成的。具體實現(xiàn)如下A、超級用戶需要先輸入自
10、己的用戶名和密碼,等待系統(tǒng)驗證通過后才能登錄系統(tǒng)主界面。超級用戶的用戶名和密碼是存放在數(shù)據(jù)庫中的一個表中的。所以運行本程序時要先連接數(shù)據(jù)庫。B、在系統(tǒng)主界面超級用戶可以實現(xiàn)普通用戶簽到操作和簽離操作,可以對普通用戶的出勤情況進行修改和查詢。超級用戶對普通用戶進行簽到操作時,要先輸入該員工的部門編號,然后輸入該員工的編號。 點擊確認后系統(tǒng)將本人的簽到時間插入到考勤表中。員工的部門編號以及員工的編號也是存儲在數(shù)據(jù)庫中的,在員工輸入之后會核對員工輸入信息的正確性。進行簽離操作是針對已經簽到的員工進行的,所以如果用戶選擇的員工編號沒有出現(xiàn)在考勤表中則拒絕進行操作。C、主界面對信息的查詢。對信息的查詢包
11、括員工個人信息、員工出勤信息和部門信息。這個是通過在一個新窗體中打開數(shù)據(jù)庫中的表實現(xiàn)的。對于比較詳細的查詢操作,這里沒有暫時實現(xiàn)該功能。D、主界面對考勤信息的刪除操作。刪除操作包括刪除當天所有簽到信息、簽離信息以及刪除某個人的信息。這個是通過存儲過程來實現(xiàn)的。3系統(tǒng)實現(xiàn)3.1 展示屏的設計在一個窗體上放一張圖片,然后在圖片上加相應的文字說明,增加一個timer控件,在timer 的0ntime編寫相應的代碼。效果圖為:艮工考薊至妞UlLl. J版3.2 登錄界面的設計登錄界面需要用戶名和密碼的驗證,因此需要連接數(shù)據(jù)庫,需要用到相應的控件,連接上數(shù)據(jù)庫,在“確定”按鈕的單擊事件中輸入相應代碼:v
12、arsuser,password:string;beginsuser:=form2.Edit1.Text;password:=form2.Edit2.Text;adoqueryl.Close;adoqueQl.SQL.Clear;adoquery1.SQL.Add('select suser,mm from SUser where suser='+""+suser+""+'and mm='+""+password+"");adoquery1.Open;if adoquery1.Rec
13、ordCount=0 then beginapplication.MessageBox('用戶名與密碼錯誤,請重新輸入','提示',mb_ok);edit1.SetFocus;end else begin form2.Hide; form3.Show;end;end;將該窗體的邊界風格設置為bsnone,效果圖為:3.3 主界面的設計控件的放置如下圖所示,在“部門”組合框的ondropdown事件中獲得數(shù)據(jù)庫中關于部門的信息,代碼為:var i,j:integer;begincombobox1.Clear;adoquery1.sql.Clear;adoquery
14、1.SQL.Add('select distinct * from dep'); /從數(shù)據(jù)庫的 dep 表中讀取數(shù)據(jù)adoqueryl.Open;j:= adoqueryl.RecordCount; /recordcount為讀取的記錄數(shù)if j>0 then beginadoqueryl.first;for i:=0 to j-1 do begincombobox1.Items.Add(adoquery1.FieldList0.asstring); /增加部門編號adoqueryl.Next;end;end elseapplication.MessageBox('
15、;沒有部門的信息','提示',mb_ok);end;“編號”組合框的代碼同上面的類似,這里就不予列列出。該界回的關鍵功能是“確認”按鈕,單擊此按鈕后將數(shù)據(jù)插入到考勤表中,并且顯不該 員工的個人信息和其是否遲到早退的情況,代碼為: adoqueryl.SQL.Clear;adoquery1.SQL.Add('select * from cuser where num="'+combobox2.Text+""); adoqueryl.Open;/獲取輸入的員工號的記錄if adoquery1.RecordCount>0 t
16、henbeginedit1.Text:=(adoquery1.FieldList2.asstring);/顯示員工相關信息edit2.Text:=(adoquery1.FieldList1.asstring);edit3.Text:=(adoquery1.FieldList3.asstring);edit4.Text:=(adoquery1.FieldList4.asstring);if radiobutton3.Checked then begin/ 簽到操作with ADOStoredProc1 do beginClose; 將這條記錄插入到考勤表中ProcedureName:='
17、wat_insert'Parameters.Clear;Parameters.Refresh;Parameters.ParamByName('num').Value:= combobox2.Text;Parameters.ParamByName('gtime').Value:= time();ExecProc; end; / 判斷是否遲到 if formatdatetime('hh:mm:ss',time) <=('9:00:00') then edit5.Text:='是'else edit5.Te
18、xt:='否'end else if radiobutton4.Checked then begin/選擇簽離操作adoquery1.SQL.Clear; adoquery1.SQL.Add('select* from worker_attend wherenum="'+combobox2.Text+""); adoquery1.Open; if adoquery1.RecordCount>0 then begin with ADOStoredProc1 do begin Close; ProcedureName:='
19、otime_insert' Parameters.Clear; Parameters.Refresh; Parameters.ParamByName('num').Value:= combobox2.Text;Parameters.ParamByName('otime').Value:= time();插入簽離時間ExecProc; end; /判斷是否早退if formatdatetime('hh:mm:ss',time) <=('18:00:00') then edit6.Text:='是'els
20、e edit6.Text:='否'end elseapplication.MessageBox('該人沒有簽到不能簽離!','出錯啦! ',mb_ok)end else application.MessageBox('請選擇簽到還是簽離','提示',mb_ok);/沒有選擇簽離還是簽到一end else beginapplication.MessageBox(' 沒后該員工!7提示',mb_ok);combobox2.SetFocus;“刪除當前所有簽到記錄”按鈕與“刪除所有簽離記錄”按鈕的單擊事件
21、的代碼相似。“所有員工信息”、“查詢當天記錄”、“查詢所有記錄”和“部門信息”按鈕的單擊事件代 碼相似。主界面的設計如下圖所示,3.4 查詢結果顯示的界面這幾個界面的實現(xiàn)只要是通過控件實現(xiàn)的,所以只顯示一個,為員工信息:另外系統(tǒng)中難免會輸入有錯誤的地方,這時候提示很重要,這里只顯示一個出錯提示,如下 所示:用戶名與密碼錯誤,諾重新輸入 I實現(xiàn)這個的代碼為:application.Messagebox(",",mb_ok).引號中輸入相信的內容既可4、測試結果4.1 登錄模塊測試登錄模塊輸入的用戶名和密碼是要求和數(shù)據(jù)庫中SUser表中的記錄相同才能進入主界面的。當輸入空的用戶
22、名和密碼以及不正確的用戶名和密碼時,是不能進入主界面的。出錯提示如下圖所示:用戶名與密碼錯誤,諳重新輸入 照 I I只有輸入正確的用戶名和密碼才成進入主界面進行操作。測試用例:用戶名 空 密碼空(數(shù)據(jù)庫中不存在的用戶名和密碼)用戶名23423423密碼 空(數(shù)據(jù)庫中不存在的用戶名和密碼)用戶名admin密碼8787676 (用戶名和密碼字段不匹配)上面的測試用例都不能進去主界面,可以用adminadmin進去主界面。4.2 主界面模塊測試4.2.1 簽到測試員工簽到時可以自己輸入部門編號和員工編號,也可以從下拉列表中進行選擇。當然下拉列表中的信息是直接從數(shù)據(jù)庫中的表讀出的不可能有錯。如果員工自
23、己輸入部門編號和員工編號的話是可能出錯的。測試用例:部門89898 (數(shù)據(jù)庫中不存在)員工 9008989 (數(shù)據(jù)庫中不存在)部門00001 (數(shù)據(jù)庫中存在)員工 opopop (數(shù)據(jù)庫中不存在)部門00001 (數(shù)據(jù)庫中存在)員工 0000201 (數(shù)據(jù)庫中存在但是不是該部門 的數(shù)據(jù)),測試結果為:投有該員工牛確定I成功簽到后,系統(tǒng)顯示是否遲到,如下圖:員工莒思.姓名,麗部門,忖膻性別,氏出拄日期,I是否遲我t隹是否早退.I4.2.2 簽離操作員工簽離時可以自己輸入部門編號和員工編號,也可以從下拉列表中進行選擇。輸入錯誤的員工信息時如簽到操作時的提示,這里不在截圖表示。當員工輸入了正確的部門
24、和員工編號時,但是該員工還沒有簽到, 但員工現(xiàn)在選擇簽離操作,這個不允許的,這里給出提示,如下所示:窸人沒有簽到不能簽離,定 |簽離成功后,系統(tǒng)顯示是否早退,如圖 :員工信息姓名1際郃E I性別,F(xiàn)出生日熱乂二是否遲到H 是否早退14.2.3 刪除操作可以選擇刪除當日所有簽到記錄和所有簽離記錄也可以選擇刪除某個人的記錄,刪除當天某個人的記錄的時候,必須保證這個人已經簽到了,早考勤表中存在。如果不存在,會有如下 提示:當前沿有其工信息確定I測試用例:空當刪除成功時會有如下提示:pg再朝成功即賒今天的所有簽到記承操祚成功1I確定 I忻瘴 I測試用例:0000201 (已經進行簽到的員工編號)4.2.4 查詢操作進行查詢操作時要確認連接到數(shù)據(jù)庫中,所以要輸入系統(tǒng)的用戶名和密碼,dba和sql。否則程序會出錯。這個我沒有能力做處理。進行詳細查詢時,需要輸入部門號和查詢時間段,當用戶輸入了錯誤的時間,或者考勤歷史表中沒有時間的記錄時給出提示:沒有時間的信息靖定|5、總結通過這次實驗,我們不僅熟悉了我們以前學習的數(shù)據(jù)庫原理以
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度供暖供氣設施施工安全協(xié)議
- 二零二五年度鋼材現(xiàn)貨交易居間服務協(xié)議
- 2025年度電子商務合伙拆伙協(xié)議終止協(xié)議
- 2025年度離職解除勞動合同模板:傳媒廣告行業(yè)員工離職流程
- 會計財務審計作業(yè)指導書
- 公司股權購買協(xié)議詳細版
- 金融服務個人風險免責聲明
- 《數(shù)學思維訓練課程:數(shù)形結合學習指導》
- 肉類銷售代理合同
- 關于項目進度管理的解決方案
- 2021年劍橋國際少兒英語KidsBox2文本
- 金蝶云星辰初級考試題庫
- GM/T 0107-2021智能IC卡密鑰管理系統(tǒng)基本技術要求
- GB/T 6967-2009工程結構用中、高強度不銹鋼鑄件
- 部編版七年級下冊語文第一單元課件
- 2023年山東省青島市統(tǒng)招專升本管理學自考真題(含答案)
- 文化產業(yè)政策與法規(guī)課件
- 人教版八年級下冊生物全冊教案完整版教學設計含教學反思
- 無人機警用方向應用簡介課件
- 《思想道德修養(yǎng)與法律基礎》說課(獲獎版)課件
- 幼兒園中班居家安全教案
評論
0/150
提交評論