2023年全國碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩16頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、<p><b>  數(shù)據(jù)庫課程設計說明</b></p><p>  題目: 職工考勤管理信息系統(tǒng) </p><p>  專 業(yè) 計算機科學與技術(shù) </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、要進行經(jīng)常的繁瑣的記錄、修改、查詢、統(tǒng)計等工作,不僅時間長、勞動強度大、工作效率低下,并且在這種管理模式下對職工的考勤信息不全且易造成混亂。</p><p>  隨著社會的進步,計算機科技的廣泛應用,通過現(xiàn)代化的科學的方式對職工考勤信息進行管理已成為可能。基于此,我希望能通過開發(fā)這一管理系統(tǒng),由計算機代替人工操作一系列職工基本信息的輸入、修改、查詢、統(tǒng)計等操作,既減輕了管理人員的工作強度,提高了工作效率,降低解企

4、業(yè)的經(jīng)營成本;同時,也對企業(yè)內(nèi)部管理的科學化、規(guī)范化作出一點嘗試。</p><p><b>  1.2任務及目標</b></p><p>  項目的提出者:天津理工大學計算機與通信工程學院課題開發(fā)組。</p><p>  開發(fā)單位:08中加3-4班項目小組。</p><p>  充分了解用戶的需求,了解工作的流程,以及可

5、能出現(xiàn)的問題。職工考勤信息管理系統(tǒng)中首先必須設置好職工基本信息,職工基本信息在本系統(tǒng)占據(jù)著很重要的地位。在對職工的出差、出勤、加班、請假這些信息管理的時候都需通過職工基本信息進行操作。本系統(tǒng)結(jié)合實際的職工考勤管理制度,經(jīng)過實際的需求分析,采用功能強大的Visual Basic6.0作為開發(fā)工具而開發(fā)出來的職工考勤信息管理系統(tǒng)。職工考勤管理信息系統(tǒng)的具體功能包括:職工基本信息實體,職工出勤信息實體,管理員管理系統(tǒng)信息實體。</p&g

6、t;<p>  主要功能:管理員功能:簽到,增加職工及職工信息,增加登錄用戶,設置用戶權(quán)限,查看職工出勤信息,修改職工出勤信息。 簽到用戶功能:簽到。</p><p>  靈活性:本軟件對變更的適應性較強,采用人工手動輸入與系統(tǒng)自動輸入相結(jié)合的形式,數(shù)據(jù)庫文件可以單獨轉(zhuǎn)移到其他地方使用,可以保證數(shù)據(jù)的安全和高兼容性,當系統(tǒng)改變時可以自動調(diào)整精度與安全性</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進行數(shù)據(jù)庫管理</p><p>  第二章 系統(tǒng)分析與設計</p><p><b

8、>  2.1系統(tǒng)需求分析</b></p><p>  2.1.1 處理需求</p><p>  根據(jù)職工簽到特性,設計了以下功能:</p><p>  管理員功能:簽到,增加職工及職工信息,增加登錄用戶,設置用戶權(quán)限,查看職工出勤信息,修改職工出勤信息。</p><p>  用戶功能:職工簽到。</p><

9、;p>  一些基本的功能通常是必須具備的,如用戶的管理與維護,基本數(shù)據(jù)的維護,靈活的信息查詢等。</p><p><b>  2.1.2信息需求</b></p><p><b>  本系統(tǒng)需要的信息:</b></p><p>  簽到用戶信息:職工姓名,職工編號等。</p><p>  2.2

10、數(shù)據(jù)庫概念結(jié)構(gòu)設計</p><p><b>  職工信息表</b></p><p><b>  簽到表</b></p><p><b>  管理員:</b></p><p>  2.3數(shù)據(jù)庫邏輯結(jié)構(gòu)設計</p><p><b>  2.4數(shù)據(jù)庫

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)結(jié)構(gòu)設計</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ā)及實現(xiàn)</p><p>  3.1論述設計開發(fā)采用的技術(shù)及設計效果</p><p>  3.1.1登陸界面 實現(xiàn)用戶輸入用戶名密碼,當輸入完成后,連接數(shù)據(jù)庫查看數(shù)據(jù)庫中管理員表中的數(shù)據(jù),當正確的

14、時候返回登錄成功。</p><p><b>  實現(xiàn)代碼</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>  當職工編號存在,提示已經(jīng)存在</p><p><b>  實現(xiàn)代碼<

19、/b></p><p>  CUserRecordset rsUser;</p><p>  if (rsUser.IsRepeatUser(this->m_strUserName)){</p><p>  MessageBox("此用戶已經(jīng)存在!","提示",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>  實現(xiàn)代碼</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>  增加登錄用戶(設置用戶權(quán)限)</p><p><b>  實現(xiàn)代碼</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("必須選擇用戶權(quán)限!","提示",</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("此用戶已經(jīng)存在!","提示",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>  實現(xiàn)代碼</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>  實現(xiàn)代碼</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("員工號 員工姓名 簽到時間 結(jié)果");</p><p>  return TRUE; </p><p><b>  }</b></p><p><b>  修改職工出勤</b></p><p><

68、;b>  第四章 總結(jié)</b></p><p>  這次課程設計學校安排了幾周時間讓我們完成,我們選擇了職工考勤信息系統(tǒng)的課題,并從圖書管借了數(shù)據(jù)庫程序設計和C++設計的資料書,對課程設計中會遇到的問題提前做了些準備,并到網(wǎng)上也找相關(guān)的系統(tǒng)的代碼看了下,對這個系統(tǒng)有了一定的全局觀,完成了初步的需求分析。稍作細化后,便開始設計數(shù)據(jù)庫。而后做了界面設計,完成了程序大部分的主要界面。</p>

69、;<p>  而在編碼方面,我從系統(tǒng)的功能、規(guī)模和實用方面考慮,采用C++技術(shù)。在數(shù)據(jù)庫設計時,細致的考慮到了用戶的全部需求,并用了大量的時間進行了信息的收集建立了比較完善的信息表,編碼階段,在設計接近完成的時候,我對部分代碼做了優(yōu)化,將一些重復工作加以封裝調(diào)節(jié);將批處理操作改為以事務方式處理。</p><p>  這次課程設計,我更加深入的了解到軟件工程的復雜性,以及前期規(guī)劃分析的重要性。而且如果

70、系統(tǒng)再稍微大型一些,以一人之力也難以完成。以后的學習中應該學習一些先進的思想,并多加實踐,從寫程序和軟件架構(gòu)兩個方面都增強自己的能力。</p><p>  在編程中遇到了很多困難,通過不懈的努力,在網(wǎng)上查找資料,借閱資料,終于完成了!我發(fā)自內(nèi)心的高興。我趕到編程設計真的很辛苦,一個程序,哪怕只有一個小小的拼寫錯誤,都不能成功運行,當寫完程序測試時,心里都是在打鼓,怕出現(xiàn)錯誤,一次次的測試,一次次的更改,終于成功了

71、!我感到十分的自豪!</p><p>  通過這次的數(shù)據(jù)庫課程,我學會了在制作程序時應仔細謹慎,因為細小的錯誤都會導致程序的失敗。另外老師還教會了我們,在制作一個系統(tǒng)時,要有自己的思想,使自己制作的程序能錦上添花,做出屬于自己的東西。我也會在以后的生活學習中盡量完善自己的工作,使自己做的更好!</p><p><b>  第五章 參考文獻</b></p>

72、<p>  《C++ Preimer》 中文版 第四版 人民郵電出版社 </p><p>  《Access數(shù)據(jù)庫開發(fā)實例解析》 機械工業(yè)出版社 李俊民、高春燕等</p><p>  《Visual C++工程應用與項目實踐》 機械工業(yè)出版社 張雨、阮偉良等</p><p>  《Visual C++ 從入門到精通》 第二版 清華大學出版社

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論