版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p><b> 課程設(shè)計(jì)報(bào)告</b></p><p> 題 目 考勤管理系統(tǒng) </p><p> ---課程設(shè)計(jì)報(bào)告 </p><p> 課 程 名 稱(chēng) 軟件項(xiàng)目實(shí)踐(一) </p><p> 院 部 名 稱(chēng) 信息技術(shù)學(xué)院
2、 </p><p> 專(zhuān) 業(yè) 計(jì)算機(jī)科學(xué)與技術(shù) </p><p> 班 級(jí) 09計(jì)算機(jī)科學(xué)與技術(shù)(1) </p><p> 學(xué) 生 姓 名 XXX </p><p> 學(xué) 號(hào) XX </p><p
3、> 課程設(shè)計(jì)地點(diǎn) B407 </p><p> 課程設(shè)計(jì)學(xué)時(shí) 40 </p><p> 指 導(dǎo) 教 師 XX </p><p><b> 1導(dǎo)言</b></p><p><b>
4、 1、1系統(tǒng)開(kāi)發(fā)目的</b></p><p> 考勤系統(tǒng)進(jìn)行企業(yè)管理越來(lái)越適應(yīng)企業(yè)的需要,集信息的輸入,顯示,修改,刪除等各種處理,信息維護(hù)方便,給公司可以帶來(lái)很大的便利。</p><p><b> 1、2背景</b></p><p> 考勤管理系統(tǒng)利用計(jì)算機(jī)管理考勤工作,大大降低了工作人員的工作量,提高工作效率,對(duì)于員工們的
5、出勤率有個(gè)明顯的記錄,對(duì)于公司的職員也有基本了解根據(jù)出勤情況可以計(jì)算員工的實(shí)際工資。</p><p> 2、考勤管理系統(tǒng)的需求分析</p><p> 作為一個(gè)考勤系統(tǒng).最重要的功能當(dāng)數(shù)考勤了.也就是能夠?qū)T工上班簽到的日期與時(shí)間記錄下來(lái)。當(dāng)然.記錄下簽到信息后,應(yīng)該具有其他的輔助功能.比~II1"查詢(xún)員工某天的簽到情況”、”修改簽到情況”、”員工的維護(hù)”、”公司上班時(shí)間的設(shè)置
6、”等.下面就本系統(tǒng)完成的功能做一個(gè)簡(jiǎn)單的需求分析。</p><p><b> 2、1簽到功能</b></p><p> 這是最核心的功能。當(dāng)員工上班后,輸入自己的員工號(hào)進(jìn)行簽到操作.就可以把到達(dá)公司的時(shí)間記錄下來(lái).并且保存到數(shù)據(jù)庫(kù)中,以備查詢(xún)。在簽到過(guò)程中,需要記錄的信息包括員工號(hào)、簽到的日期和簽到的具體時(shí)間,最好能把簽到的結(jié)果記錄下來(lái).這些結(jié)果包括以下幾種:正常
7、、遲到、出差、請(qǐng)假、曠班。</p><p><b> 2、2查詢(xún)功能</b></p><p> 簽到功能中要求將員工上班的簽到情況記錄下來(lái).也就是供以后查詢(xún)用。若要查詢(xún)某個(gè)員工在某段時(shí)問(wèn)或者某天的出勤情況,只要輸入員工號(hào),并輸入要查詢(xún)的日期.即可將此員工在當(dāng)天的出勤情況顯示出來(lái)</p><p><b> 2、3修改功能</
8、b></p><p> 對(duì)于出勤到公司的員工來(lái)說(shuō).通過(guò)簽到即可將簽到信息記錄下來(lái),并且只有兩種結(jié)果”正?!焙汀边t到”??墒菍?duì)于因?yàn)槟撤N原因(出差、請(qǐng)假等)不能到公司的員工來(lái)說(shuō),因?yàn)闆](méi)有簽到.就沒(méi)有當(dāng)天的出勤記錄。為此增加了修改功能,主管人員可以對(duì)員工的信息進(jìn)行修改,將每個(gè)員工的出差請(qǐng)假等情況記錄下來(lái)。 </p
9、><p><b> 3、應(yīng)用環(huán)境</b></p><p><b> 客戶(hù)機(jī)為普通PC</b></p><p> CPU:P(R) 2.1GHz;</p><p><b> 內(nèi)存:2G</b></p><p><b> WindowXP等&
10、lt;/b></p><p><b> 分辨率適應(yīng)屏幕。</b></p><p><b> 4、功能規(guī)格</b></p><p><b> 考勤管理</b></p><p><b> 基本信息輸入</b></p><p&g
11、t;<b> 考勤統(tǒng)計(jì)</b></p><p><b> 日志查詢(xún)及統(tǒng)計(jì)</b></p><p><b> 5、性能需求</b></p><p> 確??煽啃裕WC信息的正確完整,有嚴(yán)格的管理權(quán)限只有系統(tǒng)規(guī)定人員才可以進(jìn)入查詢(xún),防止非法侵入和數(shù)據(jù)的丟失。</p><p>
12、;<b> 6、參考資料</b></p><p> 《軟件工程案例教程》,韓萬(wàn)江等,機(jī)械工業(yè)出版社;</p><p> 2.《需求分析與系統(tǒng)設(shè)計(jì)》,Lesxek A.Maciasxek著,機(jī)械工業(yè)出版社;</p><p> 3.《軟件測(cè)試技術(shù)概論》,古樂(lè)、史九林,清華大學(xué)出版社;</p><p> 4.《軟件測(cè)
13、試 第2版》,Paul C.Jorgensen,機(jī)械工業(yè)出版社。</p><p><b> 7.基本設(shè)計(jì)概念</b></p><p> 7.1系統(tǒng)整體設(shè)計(jì)思想</p><p> 本系統(tǒng)按照.NET體系標(biāo)準(zhǔn)進(jìn)行設(shè)計(jì)與開(kāi)發(fā)。采用OOD(面向?qū)ο螅┰O(shè)計(jì)方法,將系統(tǒng)中的所有參與者都視為對(duì)象,根據(jù)需求調(diào)研報(bào)告來(lái)確定每個(gè)對(duì)象的屬性與方法,和對(duì)象之間的
14、關(guān)系。整個(gè)系統(tǒng)采用細(xì)粒度概念來(lái)設(shè)計(jì)對(duì)象,拆分功能復(fù)雜的對(duì)象,使每個(gè)對(duì)象的功能單一化,以提高系統(tǒng)的可擴(kuò)展性。</p><p><b> 7.2系統(tǒng)安全設(shè)計(jì)</b></p><p> 為了防范黑客及其它非法入侵,以及考勤信息的泄漏,本系統(tǒng)在安全控制上采用殺毒軟件和分級(jí)用戶(hù)權(quán)限管理并行的方式。</p><p><b> 8、需求規(guī)定&
15、lt;/b></p><p> 考勤管理根據(jù)用戶(hù)需求,系統(tǒng)功能結(jié)構(gòu)如下:</p><p><b> 8-1結(jié)構(gòu)圖</b></p><p><b> 9、各功能分析</b></p><p><b> 9、1增加考勤記錄</b></p><p>
16、;<b> 功能描述:</b></p><p> 1.上班時(shí)間打卡信息錄入 </p><p> a. 8點(diǎn)之前打卡員工到勤信息的錄入</p><p> b. 8:00 – 8:30之間員工遲到信息的錄入</p><p> c.8:30之后員工到達(dá)或不到(缺勤)信息的錄入(即錄入時(shí)已認(rèn)為缺勤,是否到達(dá)的信息不由系
17、統(tǒng)控制)</p><p> 2. 下班時(shí)間打卡信息錄入 </p><p> a . 16:00之前員工打卡離開(kāi)記為缺勤信息的錄入</p><p> b. 17:30之前員工打卡離開(kāi)記為早退信息的錄入</p><p><b> 錄入限制條件:</b></p><p> 打卡器首先向
18、系統(tǒng)輸入員工的編號(hào),由系統(tǒng)自動(dòng)錄入,已有考勤信息的,考勤信息則是只讀的,反之則可寫(xiě)的。</p><p> 當(dāng)處于固定時(shí)間段時(shí),無(wú)法錄入其他時(shí)間段的信息。</p><p> 當(dāng)考勤信息已先行錄入時(shí),查詢(xún)考勤系統(tǒng),已只讀顯示考勤情況。</p><p> 9、2考勤信息的刪除</p><p><b> 功能描述:</b>
19、;</p><p> 當(dāng)考勤系統(tǒng)處錯(cuò)誤的時(shí)候,要能夠調(diào)出并刪除這些記錄。例如,當(dāng)員工發(fā)現(xiàn)自己的考勤信息有錯(cuò)誤時(shí),可以向自己的上級(jí)反映,以便及時(shí)刪除。</p><p><b> 9、3系統(tǒng)管理</b></p><p><b> 權(quán)限管理</b></p><p> a. 普通員工可以查詢(xún)自己某一
20、天或某一時(shí)間段內(nèi)的到崗情況;</p><p> b. 初級(jí)管理員(部門(mén)負(fù)責(zé)人)可以修改并查詢(xún)?cè)摬块T(mén)的某個(gè)員工在某一天或某一時(shí)間段的到崗情況,是否存在違規(guī),如有違規(guī),違規(guī)類(lèi)型是什么;</p><p> c. 高級(jí)管理員(總負(fù)責(zé)人)擁有初級(jí)管理員的能力,并可對(duì)初級(jí)管理員進(jìn)行任務(wù)的分派,增加和刪除。</p><p> 9. 4考勤信息修改</p>&l
21、t;p> 系統(tǒng)功能:當(dāng)員工的考勤信息錄入不當(dāng)時(shí),這時(shí)應(yīng)該及時(shí)向上級(jí)反映,上機(jī)根據(jù)情況修改該員工的考勤信息。</p><p> 1.1員工應(yīng)被授予任何時(shí)候查詢(xún)自己的考勤信息的權(quán)限,以便及時(shí)發(fā)現(xiàn)自己的考勤信息中的錯(cuò)誤及遺失。</p><p> 1.2員工沒(méi)有修改自己的考勤信息的權(quán)限,只有在發(fā)現(xiàn)自己的信息出現(xiàn)錯(cuò)誤后及時(shí)向管理員反映,以便管理員能夠及時(shí)修改系統(tǒng)錯(cuò)誤。</p>
22、<p><b> 9、5考勤信息檢索</b></p><p><b> 10、功能描述:</b></p><p> 對(duì)公司所有員工的到崗信息進(jìn)行查詢(xún)</p><p><b> 10-1系統(tǒng)流程圖</b></p><p> 11、實(shí)現(xiàn)功能介紹:</p
23、><p> 能夠按照頁(yè)面所列項(xiàng)的AND或者OR進(jìn)行查詢(xún),查詢(xún)結(jié)果可以顯示出:</p><p> a. 普通員工可以查詢(xún)自己某一天或某一時(shí)間段內(nèi)的到崗情況;</p><p> b. 初級(jí)管理員(部門(mén)負(fù)責(zé)人)可以修改并查詢(xún)?cè)摬块T(mén)的某個(gè)員工在某一天或某一時(shí)間段的到崗情況,是否存在違規(guī),如有違規(guī),違規(guī)類(lèi)型是什么;</p><p> c. 高級(jí)管理
24、員(總負(fù)責(zé)人)擁有初級(jí)管理員的能力,并可對(duì)初級(jí)管理員進(jìn)行任務(wù)的分派,增加和刪除。</p><p> 12、查詢(xún)結(jié)果頁(yè)面表頭如下:</p><p><b> 員工姓名</b></p><p><b> 員工編號(hào)</b></p><p><b> 所屬部門(mén)</b></
25、p><p><b> 處罰日期</b></p><p><b> 違規(guī)次數(shù)</b></p><p><b> 違規(guī)類(lèi)型</b></p><p><b> 13、詳細(xì)設(shè)計(jì)概述</b></p><p> 根據(jù)需求分析畫(huà)出UML建模
26、如下;</p><p> 13-1 UML模型</p><p><b> 系統(tǒng)E-R圖</b></p><p><b> 13-2 E-R圖</b></p><p><b> 活動(dòng)圖</b></p><p><b> 13-3活動(dòng)圖&
27、lt;/b></p><p><b> 14、數(shù)據(jù)庫(kù)設(shè)計(jì)</b></p><p> 14、1數(shù)據(jù)庫(kù)需求分析</p><p> 針對(duì)本系統(tǒng),通過(guò)對(duì)企業(yè)考勤管理的內(nèi)容和數(shù)據(jù)流程分析,設(shè)計(jì)的數(shù)據(jù)項(xiàng)和數(shù)據(jù)結(jié)構(gòu)如下所示:</p><p> 員工考勤信息。包括的數(shù)據(jù)項(xiàng)有員工號(hào)、缺勤時(shí)間、缺勤天數(shù)、缺勤類(lèi)別。</p
28、><p> 缺勤類(lèi)型信息。包括的數(shù)據(jù)項(xiàng)有缺勤類(lèi)型、名稱(chēng)、描述等。</p><p> 14、2數(shù)據(jù)庫(kù)邏輯結(jié)構(gòu)設(shè)計(jì)</p><p> 在上面的實(shí)體以及實(shí)體之間關(guān)系的基礎(chǔ)上,形成數(shù)據(jù)庫(kù)中的表格以及各個(gè)表格之間的關(guān)系。</p><p> 考勤管理系統(tǒng)數(shù)據(jù)庫(kù)中各個(gè)表格的設(shè)計(jì)結(jié)果如下面的幾個(gè)表格所示。每個(gè)表格表示在數(shù)據(jù)庫(kù)中的一個(gè)表。</p>
29、;<p><b> 表1為考勤管理表</b></p><p> 表1 考勤管理表格kq</p><p><b> 表2為缺勤管理表</b></p><p> 表2 缺勤類(lèi)別表格qqlb</p><p>
30、 表3為考勤管理表kq</p><p> 表2 員工基本情況表格yg</p><p> 14、3數(shù)據(jù)庫(kù)結(jié)構(gòu)的實(shí)現(xiàn)</p><p> 經(jīng)過(guò)前面的需求分析和概念結(jié)構(gòu)設(shè)計(jì)后,得到數(shù)據(jù)庫(kù)的邏輯結(jié)構(gòu),現(xiàn)在就可以在SQL SERVER2000數(shù)據(jù)庫(kù)系統(tǒng)中實(shí)現(xiàn)該邏輯結(jié)構(gòu),這是利用SQL SERVER2000數(shù)據(jù)庫(kù)系統(tǒng)中的SQL 查詢(xún)分析
31、器實(shí)現(xiàn)的。</p><p><b> 具體功能實(shí)現(xiàn)模塊</b></p><p><b> 代碼模塊</b></p><p> /*******************************</p><p> * 當(dāng)點(diǎn)擊上班按鈕時(shí)執(zhí)行此方法 *</p><p> *
32、 *****************************/</p><p> private void btnShangBan_Click(object sender, System.EventArgs e)</p><p><b> {</b></p><p> string id,name="",selSql,
33、selSql2,selSql3,insertSql,strToday,strTime,strPwd="",strHour,strMinute,strCiDao,strKuangGong;</p><p> string strYear,strMon;</p><p> int count=0;</p><p> id=ddId.Select
34、edItem.Text.Trim();</p><p> strToday=System.DateTime.Today.ToShortDateString();</p><p> strTime=System.DateTime.Now.ToShortTimeString();</p><p> strHour=System.DateTime.Now.Hour.
35、ToString();</p><p> strMinute=System.DateTime.Now.Minute.ToString();</p><p> strYear=System.DateTime.Now.Year.ToString();</p><p> strMon=System.DateTime.Now.Month.ToString();<
36、/p><p> selSql="select name from usermessage where id='"+id+"'";</p><p> selSql2="select name from kaoqin where id='"+id+"' and kqdate='&quo
37、t;+strToday+"'";</p><p> selSql3="select password from usermessage where id='"+id+"'";</p><p> if(txtName.Text.Equals(""))</p><p&
38、gt;<b> {</b></p><p> info.Text="請(qǐng)選擇用戶(hù)編號(hào)!";</p><p><b> }</b></p><p><b> else</b></p><p><b> {</b></p>
39、;<p> con.Open();</p><p> com=new OleDbCommand(selSql3,con);</p><p> reader=com.ExecuteReader();</p><p> while(reader.Read())</p><p><b> {</b>&l
40、t;/p><p> strPwd=reader.GetString(0);</p><p><b> }</b></p><p> reader.Close();</p><p> com.Dispose();</p><p> con.Close();</p><p&g
41、t; if(txtPwd.Text.Equals(strPwd))</p><p><b> {</b></p><p> con.Open();</p><p> com=new OleDbCommand(selSql2,con);</p><p> reader=com.ExecuteReader();&l
42、t;/p><p> while(reader.Read())</p><p><b> {</b></p><p><b> count++;</b></p><p><b> }</b></p><p> reader.Close();</
43、p><p> com.Dispose();</p><p> con.Close();</p><p> if(count==0)</p><p><b> {</b></p><p> con.Open();</p><p> com=new OleDbComma
44、nd(selSql,con);</p><p> reader=com.ExecuteReader();</p><p> while(reader.Read())</p><p><b> {</b></p><p> name=reader.GetString(0);</p><p>
45、<b> }</b></p><p> reader.Close();</p><p> com.Dispose();</p><p> con.Close();</p><p> if(System.Convert.ToInt32(strHour)>9 || (System.Convert.ToInt3
46、2(strHour)==9 && System.Convert.ToInt32(strMinute)>0))</p><p><b> {</b></p><p> strKuangGong="曠工";</p><p> strCiDao="否";</p><
47、;p><b> }</b></p><p> else if(System.Convert.ToInt32(strHour)>8 || (System.Convert.ToInt32(strHour)==8 && System.Convert.ToInt32(strMinute)>30))</p><p><b> {
48、</b></p><p> strCiDao="遲到";</p><p> strKuangGong="0";</p><p><b> }</b></p><p><b> else</b></p><p><
49、;b> {</b></p><p> strKuangGong="0";</p><p> strCiDao="否";</p><p><b> }</b></p><p> insertSql="insert into kaoqin valu
50、es('"+id+"','"+name+"','"+strToday+"','"+strTime+"','0','"+strCiDao+"',' ',' ',' ','"+str
51、KuangGong+"','"+strYear+"','"+strMon+"')";</p><p> con.Open();</p><p> com=new OleDbCommand(insertSql,con);</p><p> com.ExecuteN
52、onQuery();</p><p> com.Dispose();</p><p> con.Close();</p><p> info.Text="考勤成功!";</p><p><b> }</b></p><p><b> else</b&g
53、t;</p><p><b> {</b></p><p> info.Text="系統(tǒng)已經(jīng)記錄您的考勤信息,不能重新記錄!";</p><p><b> }</b></p><p><b> }</b></p><p>&l
54、t;b> else</b></p><p><b> {</b></p><p> info.Text="用戶(hù)密碼錯(cuò)誤!";</p><p><b> }</b></p><p><b> }</b></p><
55、;p> con.Close();</p><p><b> }</b></p><p><b> 上班實(shí)現(xiàn)模塊</b></p><p> /******************************</p><p> * 當(dāng)點(diǎn)擊下班按鈕時(shí)執(zhí)行此方法*</p><
56、p> * ****************************/</p><p> private void btnXiaBan_Click(object sender, System.EventArgs e)</p><p><b> {</b></p><p> string id,selSql,selSql2,selSq
57、l3,selSql4,selSql5,strPwd="",insertSql,strToday,strTime,strHour,strMinute,strZaoTui,strKuangGong;</p><p> int count=0,count2=0,count3=0,count4=0;</p><p> id=ddId.SelectedItem.Text.Tr
58、im();</p><p> strToday=System.DateTime.Today.ToShortDateString();</p><p> strTime=System.DateTime.Now.ToShortTimeString();</p><p> strHour=System.DateTime.Now.Hour.ToString();<
59、;/p><p> strMinute=System.DateTime.Now.Minute.ToString();</p><p> selSql="select name from kaoqin where id='"+id+"' and kqdate='"+strToday+"' and lgdate=&
60、#39;0'";</p><p> selSql2="select name from kaoqin where id='"+id+"' and kqdate='"+strToday+"'";</p><p> selSql3="select password fro
61、m usermessage where id='"+id+"'";</p><p> selSql4="select name from kaoqin where id='"+id+"' and dgdate='0' and kqdate='"+strToday+"'&
62、quot;;</p><p> selSql5="select name from kaoqin where id='"+id+"' and kg='曠工'";</p><p> if(txtName.Text.Equals(""))</p><p><b>
63、 {</b></p><p> info.Text="請(qǐng)選擇用戶(hù)編號(hào)!";</p><p><b> }</b></p><p><b> else</b></p><p><b> {</b></p><p>
64、 con.Open();</p><p> com=new OleDbCommand(selSql3,con);</p><p> reader=com.ExecuteReader();</p><p> while(reader.Read())</p><p><b> {</b></p><
65、;p> strPwd=reader.GetString(0);</p><p><b> }</b></p><p> reader.Close();</p><p> com.Dispose();</p><p> con.Close();</p><p> if(txtPwd
66、.Text.Equals(strPwd))</p><p><b> {</b></p><p> con.Open();</p><p> com=new OleDbCommand(selSql4,con);</p><p> reader=com.ExecuteReader();</p><
67、;p> while(reader.Read())</p><p><b> {</b></p><p><b> count3++;</b></p><p><b> }</b></p><p> reader.Close();</p><p
68、> com.Dispose();</p><p> con.Close();</p><p> if(count3!=0)</p><p><b> {</b></p><p> info.Text="系統(tǒng)沒(méi)有記錄您今天的上班信息,因此不能記錄您的下班信息!";</p>
69、<p><b> }</b></p><p><b> else</b></p><p><b> {</b></p><p> con.Open();</p><p> com=new OleDbCommand(selSql2,con);</p>
70、;<p> reader=com.ExecuteReader();</p><p> while(reader.Read())</p><p><b> {</b></p><p><b> count2++;</b></p><p><b> }</b>
71、;</p><p> reader.Close();</p><p> com.Dispose();</p><p> con.Close();</p><p> if(count2==0)</p><p><b> {</b></p><p> info.Te
72、xt="系統(tǒng)沒(méi)有記錄您今天的上班信息,因此不能記錄您的下班信息!";</p><p><b> }</b></p><p><b> else</b></p><p><b> {</b></p><p> con.Open();</p>
73、<p> com=new OleDbCommand(selSql,con);</p><p> reader=com.ExecuteReader();</p><p> while(reader.Read())</p><p><b> {</b></p><p><b> count+
74、+;</b></p><p><b> }</b></p><p> reader.Close();</p><p> com.Dispose();</p><p> con.Close();</p><p> if(count!=0)</p><p>
75、;<b> {</b></p><p> con.Open();</p><p> com=new OleDbCommand(selSql5,con);</p><p> reader=com.ExecuteReader();</p><p> while(reader.Read())</p>&
76、lt;p><b> {</b></p><p><b> count4++;</b></p><p><b> }</b></p><p> reader.Close();</p><p> com.Dispose();</p><p>
77、 con.Close();</p><p> if(count4==0)</p><p><b> {</b></p><p> if(System.Convert.ToInt32(strHour)<17)</p><p><b> {</b></p><p>
78、; strKuangGong="曠工";</p><p> strZaoTui="否";</p><p><b> }</b></p><p> else if(System.Convert.ToInt32(strHour)==17 && System.Convert.ToInt3
79、2(strMinute)<30)</p><p><b> {</b></p><p> strZaoTui="早退";</p><p> strKuangGong=" ";</p><p><b> }</b></p><p
80、><b> else</b></p><p><b> {</b></p><p> strKuangGong=" ";</p><p> strZaoTui="否";</p><p><b> }</b></p&g
81、t;<p> insertSql="update kaoqin set lgdate='"+strTime+"',zt='"+strZaoTui+"',kg='"+strKuangGong+"',cd='否' where id='"+id+"' and
82、kqdate='"+strToday+"'";</p><p> con.Open();</p><p> com=new OleDbCommand(insertSql,con);</p><p> com.ExecuteNonQuery();</p><p> com.Dispose()
83、;</p><p> con.Close();</p><p> info.Text="考勤成功!";</p><p><b> }</b></p><p><b> else</b></p><p><b> {</b>&
84、lt;/p><p> string insert="update kaoqin set lgdate='"+strTime+"' where id='"+id+"' and kqdate='"+strToday+"'";</p><p> con.Open();&
85、lt;/p><p> com=new OleDbCommand(insert,con);</p><p> com.ExecuteNonQuery();</p><p> com.Dispose();</p><p> con.Close();</p><p> info.Text="考勤成功!&quo
86、t;;</p><p><b> }</b></p><p><b> }</b></p><p><b> else</b></p><p><b> {</b></p><p> info.Text="系統(tǒng)已
87、經(jīng)記錄您的考勤信息,不能重新記錄!";</p><p><b> }</b></p><p><b> }</b></p><p><b> }</b></p><p><b> }</b></p><p><
88、;b> else</b></p><p><b> {</b></p><p> info.Text="用戶(hù)密碼錯(cuò)誤!";</p><p><b> }</b></p><p><b> }</b></p><
89、p> con.Close();</p><p><b> }</b></p><p><b> 事假實(shí)現(xiàn)模塊</b></p><p> /******************************</p><p> * 當(dāng)點(diǎn)擊事假按鈕時(shí)執(zhí)行此方法*</p><p
90、> * ****************************/</p><p> private void btnShiJia_Click(object sender, System.EventArgs e)</p><p><b> {</b></p><p> string id,selSql,selSql2,strPwd
91、="",insertSql,strToday,strTime,strHour,strMinute,strYear,strMon;</p><p> int count=0;</p><p> id=ddId.SelectedItem.Text.Trim();</p><p> strToday=System.DateTime.Today.T
92、oShortDateString();</p><p> strTime=System.DateTime.Now.ToShortTimeString();</p><p> strHour=System.DateTime.Now.Hour.ToString();</p><p> strMinute=System.DateTime.Now.Minute.ToS
93、tring();</p><p> strYear=System.DateTime.Now.Year.ToString();</p><p> strMon=System.DateTime.Now.Month.ToString();</p><p> selSql="select password from usermessage where id=
94、'"+id+"'";</p><p> selSql2="select name from kaoqin where id='"+id+"' and kqdate='"+strToday+"'";</p><p> insertSql="i
95、nsert into kaoqin values('"+id+"','"+txtName.Text+"','"+strToday+"','0','0','否','否',' ','事假',' ','"+s
96、trYear+"','"+strMon+"')";</p><p> if(txtName.Text.Equals(""))</p><p><b> {</b></p><p> info.Text="請(qǐng)選擇用戶(hù)編號(hào)!";</p
97、><p><b> }</b></p><p><b> else</b></p><p><b> {</b></p><p> con.Open();</p><p> com=new OleDbCommand(selSql,con);<
98、/p><p> reader=com.ExecuteReader();</p><p> while(reader.Read())</p><p><b> {</b></p><p> strPwd=reader.GetString(0);</p><p><b> }</
99、b></p><p> reader.Close();</p><p> com.Dispose();</p><p> con.Close();</p><p> if(txtPwd.Text.Equals(strPwd))</p><p><b> {</b></p>
100、;<p> con.Open();</p><p> com=new OleDbCommand(selSql2,con);</p><p> reader=com.ExecuteReader();</p><p> while(reader.Read())</p><p><b> {</b>&l
101、t;/p><p><b> count++;</b></p><p><b> }</b></p><p> reader.Close();</p><p> com.Dispose();</p><p> con.Close();</p><p&g
102、t; if(count==0)</p><p><b> {</b></p><p> con.Open();</p><p> com=new OleDbCommand(insertSql,con);</p><p> com.ExecuteNonQuery();</p><p>
103、com.Dispose();</p><p> con.Close();</p><p> info.Text="考勤成功!";</p><p><b> }</b></p><p><b> else</b></p><p><b>
104、 {</b></p><p> info.Text="系統(tǒng)已經(jīng)記錄您的考勤信息,不能重新記錄";</p><p><b> }</b></p><p><b> }</b></p><p><b> else</b></p>
105、<p><b> {</b></p><p> info.Text="用戶(hù)密碼錯(cuò)誤!";</p><p><b> }</b></p><p><b> }</b></p><p> con.Close();</p>&l
106、t;p><b> }</b></p><p><b> 病假實(shí)現(xiàn)模塊</b></p><p> /******************************</p><p> * 當(dāng)點(diǎn)擊病假按鈕時(shí)執(zhí)行此方法*</p><p> * *************************
107、***/</p><p> private void btnBingJia_Click(object sender, System.EventArgs e)</p><p><b> {</b></p><p> string id,selSql,selSql2,strPwd="",insertSql,strToday
108、,strTime,strHour,strMinute,strYear,strMon;</p><p> int count=0;</p><p> id=ddId.SelectedItem.Text.Trim();</p><p> strToday=System.DateTime.Today.ToShortDateString();</p>&
109、lt;p> strTime=System.DateTime.Now.ToShortTimeString();</p><p> strHour=System.DateTime.Now.Hour.ToString();</p><p> strMinute=System.DateTime.Now.Minute.ToString();</p><p> s
110、trYear=System.DateTime.Now.Year.ToString();</p><p> strMon=System.DateTime.Now.Month.ToString();</p><p> selSql="select password from usermessage where id='"+id+"'"
111、;</p><p> selSql2="select name from kaoqin where id='"+id+"' and kqdate='"+strToday+"'";</p><p> insertSql="insert into kaoqin values('&q
112、uot;+id+"','"+txtName.Text+"','"+strToday+"','0','0','否','否','病假',' ',' ','"+strYear+"','"+s
113、trMon+"')";</p><p> if(txtName.Text.Equals(""))</p><p><b> {</b></p><p> info.Text="請(qǐng)選擇用戶(hù)編號(hào)!";</p><p><b> }</
114、b></p><p><b> else</b></p><p><b> {</b></p><p> con.Open();</p><p> com=new OleDbCommand(selSql,con);</p><p> reader=com.Ex
115、ecuteReader();</p><p> while(reader.Read())</p><p><b> {</b></p><p> strPwd=reader.GetString(0);</p><p><b> }</b></p><p> read
116、er.Close();</p><p> com.Dispose();</p><p> con.Close();</p><p> if(txtPwd.Text.Equals(strPwd))</p><p><b> {</b></p><p> con.Open();</p&
117、gt;<p> com=new OleDbCommand(selSql2,con);</p><p> reader=com.ExecuteReader();</p><p> while(reader.Read())</p><p><b> {</b></p><p><b> co
118、unt++;</b></p><p><b> }</b></p><p> reader.Close();</p><p> com.Dispose();</p><p> con.Close();</p><p> if(count==0)</p><
119、p><b> {</b></p><p> con.Open();</p><p> com=new OleDbCommand(insertSql,con);</p><p> com.ExecuteNonQuery();</p><p> com.Dispose();</p><p&
120、gt; con.Close();</p><p> info.Text="考勤成功!";</p><p><b> }</b></p><p><b> else</b></p><p><b> {</b></p><p>
121、; info.Text="系統(tǒng)已經(jīng)記錄您的考勤信息,不能重新記錄";</p><p><b> }</b></p><p><b> }</b></p><p><b> else</b></p><p><b> {</b>
122、</p><p> info.Text="用戶(hù)密碼錯(cuò)誤!";</p><p><b> }</b></p><p><b> }</b></p><p> con.Close();</p><p><b> }</b><
123、;/p><p><b> 曠課實(shí)現(xiàn)模塊</b></p><p> /******************************</p><p> * 當(dāng)點(diǎn)擊曠工按鈕時(shí)執(zhí)行此方法*</p><p> * ****************************/</p><p> priva
124、te void Button1_Click(object sender, System.EventArgs e)</p><p><b> {</b></p><p> string id,selSql,selSql2,strPwd="",insertSql,strToday,strTime,strHour,strMinute,strYear,
125、strMon;</p><p> int count=0;</p><p> id=ddId.SelectedItem.Text.Trim();</p><p> strToday=System.DateTime.Today.ToShortDateString();</p><p> strTime=System.DateTime.N
126、ow.ToShortTimeString();</p><p> strHour=System.DateTime.Now.Hour.ToString();</p><p> strMinute=System.DateTime.Now.Minute.ToString();</p><p> strYear=System.DateTime.Now.Year.ToS
127、tring();</p><p> strMon=System.DateTime.Now.Month.ToString();</p><p> selSql="select password from usermessage where id='"+id+"'";</p><p> selSql2=&qu
128、ot;select name from kaoqin where id='"+id+"' and kqdate='"+strToday+"'";</p><p> insertSql="insert into kaoqin values('"+id+"','"+txt
129、Name.Text+"','"+strToday+"','0','0','否','否',' ',' ','曠工','"+strYear+"','"+strMon+"')";</p>
130、<p> if(txtName.Text.Equals(""))</p><p><b> {</b></p><p> info.Text="請(qǐng)選擇用戶(hù)編號(hào)!";</p><p><b> }</b></p><p><b>
131、 else</b></p><p><b> {</b></p><p> con.Open();</p><p> com=new OleDbCommand(selSql,con);</p><p> reader=com.ExecuteReader();</p><p>
132、 while(reader.Read())</p><p><b> {</b></p><p> strPwd=reader.GetString(0);</p><p><b> }</b></p><p> reader.Close();</p><p> c
133、om.Dispose();</p><p> con.Close();</p><p> if(txtPwd.Text.Equals(strPwd))</p><p><b> {</b></p><p> con.Open();</p><p> com=new OleDbComma
134、nd(selSql2,con);</p><p> reader=com.ExecuteReader();</p><p> while(reader.Read())</p><p><b> {</b></p><p><b> count++;</b></p><p&
135、gt;<b> }</b></p><p> reader.Close();</p><p> com.Dispose();</p><p> con.Close();</p><p> if(count==0)</p><p><b> {</b></p&
136、gt;<p> con.Open();</p><p> com=new OleDbCommand(insertSql,con);</p><p> com.ExecuteNonQuery();</p><p> com.Dispose();</p><p> con.Close();</p><p
137、> info.Text="考勤成功!";</p><p><b> }</b></p><p><b> else</b></p><p><b> {</b></p><p> info.Text="系統(tǒng)已經(jīng)記錄您的考勤信息,不能
138、重新記錄";</p><p><b> }</b></p><p><b> }</b></p><p><b> else</b></p><p><b> {</b></p><p> info.Text=&
139、quot;用戶(hù)密碼錯(cuò)誤!";</p><p><b> }</b></p><p><b> }</b></p><p> con.Close();</p><p><b> }</b></p><p><b> }<
140、/b></p><p><b> }</b></p><p><b> 15、任務(wù)概述</b></p><p><b> 15、1目標(biāo)</b></p><p> 調(diào)試程序的正確性,對(duì)需要改進(jìn)的地方進(jìn)行調(diào)整,確保程序與需求分析相匹配,對(duì)以前的設(shè)計(jì)程序成果做一個(gè)書(shū)面總
141、結(jié)。</p><p><b> 16、運(yùn)行環(huán)境</b></p><p><b> 1)單機(jī)運(yùn)行 </b></p><p> 數(shù)據(jù)庫(kù):SQL 2000 </p><p> 操作系統(tǒng):WIN98/2000/ME/XP/NT/2003 </p><p><b>
142、 2)聯(lián)網(wǎng)運(yùn)行 </b></p><p> 數(shù)據(jù)庫(kù):MS SQL SERVER 2000以上企業(yè)版/標(biāo)準(zhǔn)版 </p><p> 工作站操作系統(tǒng):WIN98/2000/ME/XP/NT </p><p> 服務(wù)器操作系統(tǒng):WINDOW NT/2000/2003 SERVER</p><p><b> 17、測(cè)試環(huán)境
143、</b></p><p> 18、測(cè)試時(shí)間、地點(diǎn)</p><p><b> 時(shí)間:3月27</b></p><p><b> 地點(diǎn):B407</b></p><p> 19、測(cè)試內(nèi)容說(shuō)明 </p><p><b>
144、19、1測(cè)試方案</b></p><p> 在Web應(yīng)用技術(shù)中,數(shù)據(jù)庫(kù)起著重要的作用,數(shù)據(jù)庫(kù)為Web應(yīng)用系統(tǒng)的管理、運(yùn)行、查詢(xún)和實(shí)現(xiàn)用戶(hù)對(duì)數(shù)據(jù)存儲(chǔ)的請(qǐng)求等提供空間。在Web應(yīng)用中,最常用的數(shù)據(jù)庫(kù)類(lèi)型是關(guān)系型數(shù)據(jù)庫(kù),可以使用SQL對(duì)信息進(jìn)行處理。 在使用了數(shù)據(jù)庫(kù)的Web應(yīng)用系統(tǒng)中,一般情況下,可能發(fā)生兩種錯(cuò)誤,分別是數(shù)據(jù)一致性錯(cuò)誤和輸出錯(cuò)誤。數(shù)據(jù)一致性錯(cuò)誤主要是由于用戶(hù)提交的表單信息不正確而造成的,而
溫馨提示
- 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ù)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 成績(jī)管理課程設(shè)計(jì)報(bào)告
- 車(chē)位管理課程設(shè)計(jì)報(bào)告
- 圖書(shū)管理課程設(shè)計(jì)報(bào)告
- 圖書(shū)管理課程設(shè)計(jì)報(bào)告
- 質(zhì)量管理課程設(shè)計(jì)報(bào)告
- 財(cái)務(wù)管理課程設(shè)計(jì)報(bào)告
- 人事管理課程設(shè)計(jì)報(bào)告
- 生產(chǎn)運(yùn)作管理課程設(shè)計(jì)報(bào)告
- 工資管理課程設(shè)計(jì)報(bào)告
- 學(xué)生考勤管理系統(tǒng)課程設(shè)計(jì)報(bào)告
- 財(cái)務(wù)管理課程設(shè)計(jì)報(bào)告 (2)
- 停車(chē)場(chǎng)管理課程設(shè)計(jì)報(bào)告
- 企業(yè)物流管理課程設(shè)計(jì)報(bào)告
- 客戶(hù)關(guān)系管理課程設(shè)計(jì)報(bào)告
- 客戶(hù)關(guān)系管理課程設(shè)計(jì)報(bào)告
- 客戶(hù)關(guān)系管理課程設(shè)計(jì)報(bào)告
- 生產(chǎn)與運(yùn)作管理課程設(shè)計(jì)報(bào)告
- 網(wǎng)絡(luò)管理課程設(shè)計(jì)
- 項(xiàng)目管理課程設(shè)計(jì)
- 論壇管理課程設(shè)計(jì)
評(píng)論
0/150
提交評(píng)論