版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、<p><b> 數據庫課程設計說明</b></p><p> 題目: 職工考勤管理信息系統(tǒng) </p><p> 專 業(yè) 計算機科學與技術 </p><p> 班 級 </p><p> 學 號 </p&
2、gt;<p> 姓 名 </p><p> 2011年10月 21 日</p><p><b> 第一章 引言</b></p><p> 1.1設計開發(fā)的意義</p><p> 傳統(tǒng)意義上的職工考勤管理都是采用原始的手工操作來完成的。人事部的管理人員或辦公室人員
3、要進行經常的繁瑣的記錄、修改、查詢、統(tǒng)計等工作,不僅時間長、勞動強度大、工作效率低下,并且在這種管理模式下對職工的考勤信息不全且易造成混亂。</p><p> 隨著社會的進步,計算機科技的廣泛應用,通過現代化的科學的方式對職工考勤信息進行管理已成為可能?;诖?,我希望能通過開發(fā)這一管理系統(tǒng),由計算機代替人工操作一系列職工基本信息的輸入、修改、查詢、統(tǒng)計等操作,既減輕了管理人員的工作強度,提高了工作效率,降低解企
4、業(yè)的經營成本;同時,也對企業(yè)內部管理的科學化、規(guī)范化作出一點嘗試。</p><p><b> 1.2任務及目標</b></p><p> 項目的提出者:天津理工大學計算機與通信工程學院課題開發(fā)組。</p><p> 開發(fā)單位:08中加3-4班項目小組。</p><p> 充分了解用戶的需求,了解工作的流程,以及可
5、能出現的問題。職工考勤信息管理系統(tǒng)中首先必須設置好職工基本信息,職工基本信息在本系統(tǒng)占據著很重要的地位。在對職工的出差、出勤、加班、請假這些信息管理的時候都需通過職工基本信息進行操作。本系統(tǒng)結合實際的職工考勤管理制度,經過實際的需求分析,采用功能強大的Visual Basic6.0作為開發(fā)工具而開發(fā)出來的職工考勤信息管理系統(tǒng)。職工考勤管理信息系統(tǒng)的具體功能包括:職工基本信息實體,職工出勤信息實體,管理員管理系統(tǒng)信息實體。</p&g
6、t;<p> 主要功能:管理員功能:簽到,增加職工及職工信息,增加登錄用戶,設置用戶權限,查看職工出勤信息,修改職工出勤信息。 簽到用戶功能:簽到。</p><p> 靈活性:本軟件對變更的適應性較強,采用人工手動輸入與系統(tǒng)自動輸入相結合的形式,數據庫文件可以單獨轉移到其他地方使用,可以保證數據的安全和高兼容性,當系統(tǒng)改變時可以自動調整精度與安全性</p><p><
7、;b> 1.3開發(fā)環(huán)境</b></p><p> 操作系統(tǒng):windows 7</p><p> 編譯環(huán)境:使用Visual Studio 2010來進行系統(tǒng)匯編</p><p> 使用Access 2007進行數據庫管理</p><p> 第二章 系統(tǒng)分析與設計</p><p><b
8、> 2.1系統(tǒng)需求分析</b></p><p> 2.1.1 處理需求</p><p> 根據職工簽到特性,設計了以下功能:</p><p> 管理員功能:簽到,增加職工及職工信息,增加登錄用戶,設置用戶權限,查看職工出勤信息,修改職工出勤信息。</p><p> 用戶功能:職工簽到。</p><
9、;p> 一些基本的功能通常是必須具備的,如用戶的管理與維護,基本數據的維護,靈活的信息查詢等。</p><p><b> 2.1.2信息需求</b></p><p><b> 本系統(tǒng)需要的信息:</b></p><p> 簽到用戶信息:職工姓名,職工編號等。</p><p> 2.2
10、數據庫概念結構設計</p><p><b> 職工信息表</b></p><p><b> 簽到表</b></p><p><b> 管理員:</b></p><p> 2.3數據庫邏輯結構設計</p><p><b> 2.4數據庫
11、創(chuàng)建</b></p><p><b> 簽到信息表</b></p><p><b> 簽到時間設置表</b></p><p><b> 簽到職工信息表</b></p><p><b> 管理員信息表</b></p><
12、;p><b> 2.5系統(tǒng)結構設計</b></p><p><b> 2.5.1 功能圖</b></p><p><b> 2.5.2 模塊圖</b></p><p><b> 職工信息E-R圖</b></p><p><b>
13、職工簽到表E-R圖</b></p><p><b> 管理員E-R圖</b></p><p> 第三章 系統(tǒng)開發(fā)及實現</p><p> 3.1論述設計開發(fā)采用的技術及設計效果</p><p> 3.1.1登陸界面 實現用戶輸入用戶名密碼,當輸入完成后,連接數據庫查看數據庫中管理員表中的數據,當正確的
14、時候返回登錄成功。</p><p><b> 實現代碼</b></p><p> CSingleDocTemplate* pDocTemplate;</p><p> pDocTemplate = new CSingleDocTemplate(</p><p> IDR_MAINFRAME,</p>
15、<p> RUNTIME_CLASS(CCheckInDoc),</p><p> RUNTIME_CLASS(CMainFrame), </p><p> RUNTIME_CLASS(CCheckInView));</p><p> AddDocTemplate(pDocTemplate);</p><p>
16、 CdlgLogOn dlg;</p><p> int ret = dlg.DoModal();</p><p> if (ret == IDSUPER){</p><p> isSuper = TRUE;</p><p><b> }</b></p><p> if (ret ==
17、 IDCHECK){</p><p> isSuper = FALSE;</p><p><b> }</b></p><p> 3.1.2簽到用戶 實當以簽到用戶登錄,則不能進行查詢/修改、系統(tǒng)維護。</p><p><b> 職工簽到界面</b></p><p>
18、 輸入正確職工編碼,提示簽到成功</p><p> 輸入錯誤時提示不正確,重新輸入</p><p> 3.1.3管理員用戶 增加職工,管理出勤,增加登錄用戶等功能</p><p> 增加、刪除、修改職工信息</p><p> 當職工編號存在,提示已經存在</p><p><b> 實現代碼<
19、/b></p><p> CUserRecordset rsUser;</p><p> if (rsUser.IsRepeatUser(this->m_strUserName)){</p><p> MessageBox("此用戶已經存在!","提示",MB_ICONINFORMATION|MB_OK);&
20、lt;/p><p><b> }</b></p><p><b> else{</b></p><p> CString strAuthority;</p><p> this->m_AuthorityCombo.GetWindowText(strAuthority);</p>
21、;<p> if (rsUser.AddUser(this->m_strUserName,this->m_strPass1,strAuthority)){</p><p> MessageBox("增加成功!","提示",MB_ICONINFORMATION|MB_OK);</p><p> this->Upda
22、teUserListBox();</p><p><b> }</b></p><p><b> else</b></p><p> MessageBox("增加失??!","提示",MB_ICONINFORMATION|MB_OK);</p><p>&
23、lt;b> }</b></p><p> pEditName->SetWindowText("");</p><p> pEditPass->SetWindowText("");</p><p> pEditName->SetFocus();</p><p>
24、<b> }</b></p><p> 當刪除員工時,同時刪除簽到記錄</p><p><b> 實現代碼</b></p><p> void CCheckRecordset::DeleteEmpCheck(CString EmployId){</p><p> if (!IsOpen()
25、)</p><p> Open(CRecordset::dynaset,_T("select * from tbCheckIn where EmployeeID ='"+EmployId+"'"));</p><p> if(!IsBOF()){</p><p> MoveFirst();</p&g
26、t;<p> while(!IsEOF()){</p><p> this->Delete();</p><p> MoveNext();</p><p><b> }</b></p><p><b> }</b></p><p><b&g
27、t; }</b></p><p> 增加登錄用戶(設置用戶權限)</p><p><b> 實現代碼</b></p><p> void CdlgUser::OnButtonAdd() {</p><p> CEdit *pEditName = (CEdit*)this->GetDlgItem
28、(IDC_EDIT_USERNAME);</p><p> CEdit *pEditPass = (CEdit*)this->GetDlgItem(IDC_EDIT_PASSWORD1);</p><p> UpdateData(true);</p><p> if (this->m_strUserName == ""){<
29、;/p><p> MessageBox("必須輸入用戶名!","提示",MB_ICONINFORMATION|MB_OK);</p><p> pEditName->SetFocus();</p><p><b> return;</b></p><p><b>
30、 }</b></p><p> if (this->m_AuthorityCombo.GetCurSel() == CB_ERR ){</p><p> MessageBox("必須選擇用戶權限!","提示",</p><p> MB_ICONINFORMATION|MB_OK);</p>
31、<p> pEditName->SetFocus();</p><p><b> return;</b></p><p><b> }</b></p><p> CUserRecordset rsUser;</p><p> if (rsUser.IsRepeatUse
32、r(this->m_strUserName)){</p><p> MessageBox("此用戶已經存在!","提示",MB_ICONINFORMATION|MB_OK);</p><p><b> }</b></p><p><b> else{</b></p
33、><p> CString strAuthority;</p><p> this->m_AuthorityCombo.GetWindowText(strAuthority);</p><p> if (rsUser.AddUser(this->m_strUserName,this->m_strPass1,strAuthority)){</
34、p><p> MessageBox("增加成功!","提示",MB_ICONINFORMATION|MB_OK);</p><p> this->UpdateUserListBox();</p><p><b> }</b></p><p><b> else&
35、lt;/b></p><p> MessageBox("增加失敗!","提示",MB_ICONINFORMATION|MB_OK);</p><p><b> }</b></p><p> pEditName->SetWindowText("");</p>
36、<p> pEditPass->SetWindowText("");</p><p> pEditName->SetFocus();</p><p><b> }</b></p><p> void CdlgUser::OnSelchangeListUser() {</p>&
37、lt;p> int iSel = this->m_ListBox.GetCurSel();</p><p> if (iSel!=0){</p><p> CButton *pDelBtn = (CButton*)this->GetDlgItem(IDC_BUTTON_DELETE);</p><p> pDelBtn->Enabl
38、eWindow(true);</p><p><b> }</b></p><p><b> }</b></p><p> void CdlgUser::OnButtonDelete() {</p><p> int iSel = this->m_ListBox.GetCurSe
39、l();</p><p> if (iSel == LB_ERR){</p><p> MessageBox("請選擇要刪除的用戶!","提示",</p><p> MB_ICONINFORMATION|MB_OK);</p><p><b> }</b></p>
40、;<p><b> else{</b></p><p> if (MessageBox("真的要刪除這個用戶嗎?(Y/N)","提示",MB_YESNO)==IDNO)</p><p><b> return;</b></p><p><b> el
41、se{</b></p><p> CUserRecordset rsUser;</p><p> CString strTmp;</p><p> this->m_ListBox.GetText(iSel,strTmp);</p><p> CString SelUserName;</p>
42、<p> CString tmp;</p><p> for(int i=0;;i++){</p><p> tmp = strTmp.Mid(i,1);</p><p> if (tmp == " ")</p><p><b> break;</b></p>
43、<p><b> }</b></p><p> SelUserName = strTmp.Mid(0,i);</p><p> BOOL bFind = FALSE;</p><p> if (!rsUser.IsOpen())</p><p> rsUser.Open();</p>
44、<p> if(!rsUser.IsBOF())</p><p> rsUser.MoveFirst();</p><p> while(!rsUser.IsEOF()){</p><p> if (rsUser.m_UserName== SelUserName ){</p><p> bFind = TRUE;</
45、p><p><b> break;</b></p><p><b> }</b></p><p> rsUser.MoveNext();</p><p><b> }</b></p><p> if (bFind)</p>&
46、lt;p><b> {</b></p><p> rsUser.Delete();</p><p> rsUser.Close();</p><p> this->m_ListBox.DeleteString(iSel);</p><p><b> }</b>
47、</p><p><b> else</b></p><p><b> {</b></p><p> MessageBox("找不到符合條件的用戶!","提示",</p><p> MB_ICONINFORMATION|MB_OK);</p>
48、;<p><b> }</b></p><p><b> }</b></p><p><b> }</b></p><p><b> }</b></p><p> 設置上班時間及浮動時間</p><p>
49、<b> 實現代碼</b></p><p> void CdlgConfigSet::OnConfirm() {</p><p> CEdit *pHourEdit = (CEdit*)this->GetDlgItem(IDC_EDIT_HOUR);</p><p> CEdit *pMinuteEdit = (CEdit*)th
50、is->GetDlgItem(IDC_EDIT_MINUTE);</p><p> CEdit *pDeltaEdit = (CEdit*)this->GetDlgItem(IDC_EDIT_DELTA);</p><p> this->UpdateData(true);</p><p> if ((m_iHour>24) || (m_
51、iHour<0) || (m_iMinute >60) ||(m_iMinute< 0)){</p><p> MessageBox ("設置不合法!","提示",MB_ICONINFORMATION|MB_OK);</p><p> pHourEdit->SetWindowText("");</
52、p><p> pMinuteEdit->SetWindowText("");</p><p> pDeltaEdit->SetWindowText("");</p><p> pHourEdit->SetFocus();</p><p><b> }</b>&
53、lt;/p><p> CConfigRecordset rsConfig;</p><p> if (!(rsConfig.AddConfigToTable(this->m_iHour,this->m_iMinute,this->m_iDelta))){</p><p> MessageBox ("設置失敗!","提
54、示",MB_ICONINFORMATION|MB_OK);</p><p> pHourEdit->SetWindowText("");</p><p> pMinuteEdit->SetWindowText("");</p><p> pDeltaEdit->SetWindowText(&q
55、uot;");</p><p> pHourEdit->SetFocus();</p><p><b> }</b></p><p><b> else{</b></p><p> CDialog::OnOK();</p><p><b>
56、 }</b></p><p><b> }</b></p><p><b> 查詢職工出勤</b></p><p><b> 實現代碼</b></p><p> void CdlgEditCheck::OnSee() </p><p>
57、;<b> {</b></p><p> this->UpdateData(true);</p><p> CEdit *pEditYear,*pEditMonth,*pEditDay;</p><p> pEditYear = (CEdit*)this->GetDlgItem(IDC_EDIT_YEAR);</p&g
58、t;<p> pEditMonth = (CEdit*)this->GetDlgItem(IDC_EDIT_MONTH);</p><p> pEditDay = (CEdit*)this->GetDlgItem(IDC_EDIT_DAY);</p><p> CString strY,strM,strD;</p><p> pEd
59、itYear->GetWindowText(strY);</p><p> pEditMonth->GetWindowText(strM);</p><p> pEditDay->GetWindowText(strD);</p><p> if ((strY == "") && (strM == "
60、;")&&(strD == "")){</p><p> MessageBox("日期必須輸入!","提示",MB_ICONINFORMATION|MB_OK);</p><p><b> return;</b></p><p><b> }
61、</b></p><p> char year[10],month[10],day[10];</p><p> sprintf(year,"%d",this->m_iYear);</p><p> sprintf(month,"%d",this->m_iMonth);</p><
62、;p> sprintf(day,"%d",this->m_iDay);</p><p> if (this->m_strEmpId==""){</p><p> MessageBox("必須輸入員工號!","提示",MB_ICONINFORMATION|MB_OK);</p>
63、<p><b> return;</b></p><p><b> }</b></p><p> CCheckRecordset rsCheck;</p><p> CEmployeeRecordset rsEmployee;</p><p><b> try{&l
64、t;/b></p><p> if(rsCheck.IsOpen()){</p><p> rsCheck.Close();</p><p><b> }</b></p><p> rsCheck.Open(CRecordset::dynaset,_T("select * from tbChe
65、ckIn where EmployeeID = '"+this->m_strEmpId+"'"));</p><p> catch(CDBException &e){</p><p> MessageBox(e.m_strError,"提示",MB_ICONINFORMATION|MB_OK);</
66、p><p><b> }</b></p><p><b> }</b></p><p> BOOL CdlgEditCheck::OnInitDialog() {</p><p> CDialog::OnInitDialog();</p><p> this->m
67、_CheckList.AddString("員工號 員工姓名 簽到時間 結果");</p><p> return TRUE; </p><p><b> }</b></p><p><b> 修改職工出勤</b></p><p><
68、;b> 第四章 總結</b></p><p> 這次課程設計學校安排了幾周時間讓我們完成,我們選擇了職工考勤信息系統(tǒng)的課題,并從圖書管借了數據庫程序設計和C++設計的資料書,對課程設計中會遇到的問題提前做了些準備,并到網上也找相關的系統(tǒng)的代碼看了下,對這個系統(tǒng)有了一定的全局觀,完成了初步的需求分析。稍作細化后,便開始設計數據庫。而后做了界面設計,完成了程序大部分的主要界面。</p>
69、;<p> 而在編碼方面,我從系統(tǒng)的功能、規(guī)模和實用方面考慮,采用C++技術。在數據庫設計時,細致的考慮到了用戶的全部需求,并用了大量的時間進行了信息的收集建立了比較完善的信息表,編碼階段,在設計接近完成的時候,我對部分代碼做了優(yōu)化,將一些重復工作加以封裝調節(jié);將批處理操作改為以事務方式處理。</p><p> 這次課程設計,我更加深入的了解到軟件工程的復雜性,以及前期規(guī)劃分析的重要性。而且如果
70、系統(tǒng)再稍微大型一些,以一人之力也難以完成。以后的學習中應該學習一些先進的思想,并多加實踐,從寫程序和軟件架構兩個方面都增強自己的能力。</p><p> 在編程中遇到了很多困難,通過不懈的努力,在網上查找資料,借閱資料,終于完成了!我發(fā)自內心的高興。我趕到編程設計真的很辛苦,一個程序,哪怕只有一個小小的拼寫錯誤,都不能成功運行,當寫完程序測試時,心里都是在打鼓,怕出現錯誤,一次次的測試,一次次的更改,終于成功了
71、!我感到十分的自豪!</p><p> 通過這次的數據庫課程,我學會了在制作程序時應仔細謹慎,因為細小的錯誤都會導致程序的失敗。另外老師還教會了我們,在制作一個系統(tǒng)時,要有自己的思想,使自己制作的程序能錦上添花,做出屬于自己的東西。我也會在以后的生活學習中盡量完善自己的工作,使自己做的更好!</p><p><b> 第五章 參考文獻</b></p>
72、<p> 《C++ Preimer》 中文版 第四版 人民郵電出版社 </p><p> 《Access數據庫開發(fā)實例解析》 機械工業(yè)出版社 李俊民、高春燕等</p><p> 《Visual C++工程應用與項目實踐》 機械工業(yè)出版社 張雨、阮偉良等</p><p> 《Visual C++ 從入門到精通》 第二版 清華大學出版社
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 數據庫課程設計-- 職工考勤管理信息系統(tǒng)
- 數據庫課程設計--職工考勤管理信息系統(tǒng)
- 數據庫課程設計--職工考勤管理信息系統(tǒng)
- 數據庫課程設計--職工考勤管理信息系統(tǒng)
- 數據庫課程設計--職工考勤管理信息系統(tǒng)-(1)
- 數據庫課程設計--考勤管理信息系統(tǒng)
- 數據庫課程設計--- 論壇管理信息系統(tǒng)
- 數據庫課程設計-酒店管理信息系統(tǒng)
- 數據庫課程設計--學生管理信息系統(tǒng)
- 數據庫課程設計---醫(yī)院管理信息系統(tǒng)
- 職工考勤管理信息系統(tǒng)-課程設計報告
- 職工考勤管理信息系統(tǒng)-課程設計報告
- 數據庫課程設計---學生管理信息系統(tǒng)
- 數據庫學生管理信息系統(tǒng)課程設計
- 數據庫課程設計---圖書管理信息系統(tǒng)
- 數據庫原理及應用課程設計--職工考勤管理系統(tǒng)數據庫設計
- 數據庫課程設計--醫(yī)院門診管理信息系統(tǒng)數據庫設計
- 數據庫課程設計-圖書館管理信息系統(tǒng)
- 數據庫課程設計--- 企業(yè)人事管理信息系統(tǒng)
- 數據庫課程設計- 企業(yè)人事管理信息系統(tǒng)
評論
0/150
提交評論