數(shù)據(jù)庫課程設(shè)計_第1頁
數(shù)據(jù)庫課程設(shè)計_第2頁
數(shù)據(jù)庫課程設(shè)計_第3頁
數(shù)據(jù)庫課程設(shè)計_第4頁
數(shù)據(jù)庫課程設(shè)計_第5頁
已閱讀5頁,還剩23頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

福建農(nóng)林大學計算機與信息學院計算機類

課程設(shè)計結(jié)果評定任務(wù)下達日期:2010.1.2任務(wù)下達日期:2010.1.2評定內(nèi)容評定指標等級成績設(shè)計質(zhì)量1.設(shè)計方案具有可行性和創(chuàng)新性,設(shè)計思路清晰(滿分15分)優(yōu)良中差2.獨立進行設(shè)計工作;能運用所學知識和技能去發(fā)現(xiàn)與解決實際問題,設(shè)計質(zhì)量較高(滿分20分)優(yōu)良中差3.設(shè)計需求合理,功能完善,代碼簡潔,結(jié)構(gòu)清晰(滿分20分)優(yōu)良中差4.按期完成規(guī)定的任務(wù),工作量飽滿,難度較大(滿分15分)優(yōu)良中差報告質(zhì)量1.設(shè)計報告格式規(guī)范、文字通順,符號統(tǒng)一,編號齊全,書寫工整規(guī)范,圖表完備、整潔、正確(滿分15分)優(yōu)良中差2.設(shè)計報告內(nèi)容充實,詳細設(shè)計描述具體,各項內(nèi)容合乎軟件文檔撰寫要求(滿分15分)優(yōu)良中差評定結(jié)果總成績(滿分100分)指導教師簽字:

評定日期:TOC\o"1-5"\h\z\o"CurrentDocument"設(shè)計目的 2\o"CurrentDocument"設(shè)計要求 2\o"CurrentDocument"設(shè)計方案 2\o"CurrentDocument"設(shè)計內(nèi)容 3需求分析 3數(shù)據(jù)庫概念結(jié)構(gòu)設(shè)計[1] 3數(shù)據(jù)庫邏輯結(jié)構(gòu)設(shè)計[1] 5功能模塊 6系統(tǒng)使用說明 11測試/運行維護 12\o"CurrentDocument"總結(jié) 13\o"CurrentDocument"參考文獻 13附錄主要代碼 14人事管理系統(tǒng)設(shè)計目的人事、工資、考勤管理是每個企業(yè)必不可少的。人事、工資、考勤管理系統(tǒng)一般包括對人事檔案、部門信息、考勤記錄的統(tǒng)計、查詢、更新、報表輸出等功能。如果人工直接統(tǒng)計的話,工作量將十分龐大,特別是如果企業(yè)員工較多時,這更是個十分困難的工作,要額外花費大量的人力、物力,給企業(yè)帶來不必要的經(jīng)濟和人力負擔,人工統(tǒng)計將變得不可能想象。用計算機可使人們從繁重而又單調(diào)的統(tǒng)計運算中解脫出來,僅用一些簡單的操作便可及時準確地獲得需要的信息。設(shè)計要求該人事管理系統(tǒng)主要面向中小型企業(yè),旨在企業(yè)人事、工資、考勤管理信息化。本系統(tǒng)將用戶分為兩個級別:管理員,一般用戶。1) 管理員權(quán)限:具有該系統(tǒng)的最高權(quán)限,可對數(shù)據(jù)庫進行系統(tǒng)所提供的所有操作。具體內(nèi)容:查詢、增加、刪除、修改、備份。2) 一般用戶權(quán)限:查詢。設(shè)計方案本系統(tǒng)采用的設(shè)計方案是使用VC開發(fā),對數(shù)據(jù)庫有強大的支持。后臺數(shù)據(jù)庫使用SQLServer2000數(shù)據(jù)庫,以保證數(shù)據(jù)的安全和執(zhí)行高效。人力資源管理系統(tǒng)是一個典型的數(shù)據(jù)庫應(yīng)用程序,由系統(tǒng)開始界面,員工管理,部門管理,考勤管理,工資管理,系統(tǒng)設(shè)置等組成,具體的功能模塊如下:1) 系統(tǒng)開始界面系統(tǒng)開始界面模塊的主要功能是實現(xiàn)簽到,簽離,管理,管理和退出。2) 員工管理員工管理模塊主要功能是對員工信息進行增加,修改,查詢,刪除,并且統(tǒng)計在職人數(shù)。3) 部門管理部門管理模塊主要功能是實現(xiàn)對部門的增加,修改和刪除。4)考勤管理考勤管理模塊主要是:員工進行請假、出差處理,用一個標簽控件顯示幾個標簽頁,分別是所有考勤記錄、遲到記錄、缺勤記錄、請假記錄、出差記錄。5) 工資管理工資管理模塊可以設(shè)置某個級別的基本工資,可以設(shè)置某個指定員工的資金,還可以查詢指定員工的工資信息。也可以顯示本公司的工資表。6) 系統(tǒng)設(shè)置系統(tǒng)設(shè)置模塊主要是設(shè)置公司的上下班時間以及遲到的罰款數(shù)額,罰款單位為“元/分鐘”。設(shè)置信息保存在數(shù)據(jù)庫中的一個專門的表中。設(shè)計內(nèi)容4.1需求分析>能夠輸入職工的綜合情況的輸入、修改以及刪除;>能夠?qū)崿F(xiàn)對職工信息的瀏覽;>能夠?qū)崿F(xiàn)對職工進行查詢;>設(shè)計系統(tǒng)封面并由計時器控制;>系統(tǒng)安全、可靠;>功能齊全;>操作方便、界面友好;>易于維護和擴充。>資料維護:系統(tǒng)維護包括對各種表記錄的修改、刪除、添加等操作。>資料維護:對數(shù)據(jù)表中的信息進行瀏覽。>系統(tǒng)查詢:可以按職工編號、姓名等相關(guān)信息進行詳細或模糊查詢。>報表統(tǒng)計:包括統(tǒng)計職工編號、職工姓名、職工性別、所在部門、職工年齡、工作日期、>基本工資、職稱、職務(wù)和簡歷等字段。>其它操作:系統(tǒng)封面、計時器控制與人性化提示信息。4.2數(shù)據(jù)庫概念結(jié)構(gòu)設(shè)計[1]根據(jù)上面的數(shù)據(jù)流圖分析,規(guī)劃出的實體有:員工信息實體,部門信息實體,工資信息實體,考勤信息實體,系統(tǒng)設(shè)置信息實體,考勤狀態(tài)信息實體。各信息實體的E-R圖如下:

員工年齡圖2-1員工信息實體圖2-4考勤信息實體圖2-6考勤狀態(tài)信息實體4.3數(shù)據(jù)庫邏輯結(jié)構(gòu)設(shè)計[1]人事管理信息系統(tǒng)數(shù)據(jù)庫中各個表的設(shè)計結(jié)構(gòu)如下所示:(每個表格表示在數(shù)據(jù)庫里的一個表)表2-1 worker員工信息表列名數(shù)據(jù)類型可否為空說明WidcharNotnull員工工號wnamecharnull員工姓名WtimedatetimeNotnull加入時間WlevelIntNotnull員工級別didcharNotnull部門編號waddresscharNotnull居住地址AgeIntNull年齡SexCharNotnull性別PsdCharNotnull員工密碼BonusIntNotnull員工獎金PhoneCharNull員工電話表2-2 dept部門信息表列名數(shù)據(jù)類型列名數(shù)據(jù)類型可否為空說明DidCharNotnull部門編號DnameCharnull部門名稱表2-3 msalary工資信息表列名數(shù)據(jù)類型可否為空說明WlevelIntNotnull級別編號MsalIntNotnull基本工資JobChrNotnull級別名稱表2-4 check考勤信息表列名數(shù)據(jù)類型可否為空說明WidCharNotnull員工工號IntimeDatetimeNull簽到時間OuttimeDatetimeNull簽離時間StatnumIntNull考勤狀態(tài)編號表2-4 settings設(shè)置信息表列名數(shù)據(jù)類型可否為空說明IntimeDatetimeNotnull上班時間OuttimeDatetimeNotnull下班時間FakuanIntNotnull罰款數(shù)額表2-4 state考勤狀態(tài)信息表列名數(shù)據(jù)類型可否為空說明StatnullCharNotnull狀態(tài)編號StatnameCharNotnull狀態(tài)名稱4.4功能模塊1.系統(tǒng)開始界面2.簽到/簽離3.員工管理人事管理系魏2SJ 堂正」,員工管理I部門管理I考勒管理I工資管理I時間設(shè)置I增加返回 退出4.部門管理5.考勤管理6.工資管理魏計2<J工號券省 基本工寅獎金忌工資?10013000-30027001002王一1500一2500-8324172002E二1500-10913913001況1一2500-1662334確定7.系統(tǒng)設(shè)置4.5系統(tǒng)使用說明軟件運行環(huán)境操作系統(tǒng):Windows2000/XP開發(fā)工具:VC數(shù)據(jù)庫:SQLServer2000硬件配置:CPU:600MHz以上的處理器內(nèi)存:64MB,推薦128MB以上硬盤:100MB以上磁盤空間數(shù)據(jù)庫配置及安裝“人力資源管理系統(tǒng)”采用SQLServer數(shù)據(jù)庫開發(fā),在程序首次啟動時會檢查所需的數(shù)據(jù)庫是否已經(jīng)安裝。4.5.3手動配置數(shù)據(jù)庫附加數(shù)據(jù)庫的步驟如下:將程序目錄data下的db_manpowerinfo_Data.MDF和db_manpowerinfo_Log.LDF文件拷貝到SQLServer2000安裝路徑下的“MSSQL”/“Data”目錄下。4.6測試/運行維護1.簽到.正常輸入輸出用戶名:1001密碼:1001提示簽到成功非正常輸入輸出用戶名:1001密碼:1001提示“您已經(jīng)簽到”2.簽離。正常輸入輸出用戶名:1001密碼:1001提示簽離成功非正常輸入輸出用戶名:1001密碼:1001提示“您已經(jīng)簽離”2.增加員工。正常輸入輸出工號:1003姓名:劉三性別:男部門:辦公室級別:組長密碼:1003提示增加成功非正常輸入輸出不輸入密碼提示“帶*號的為必填項”2.刪除員工。正常輸入輸出工號:1003提示刪除成功非正常輸入輸出不輸入工號提示“請輸入要刪除的工號”總結(jié)本程序大體實現(xiàn)了人事管理的功能,可以進行簽到簽離,可以對員工和部門進行增、刪、改,可以管理考勤記錄,可以管理員工的工資。但也存在很多不足,如沒有顯示企業(yè)所有員工的功能,每天只簽到簽離一次。但總體上來說我對自己的工作還是比較滿意的。其實我已經(jīng)好久沒編過程序了,只是在大一學Java時認真地編過一個簡單的系統(tǒng)。以后的時間里沒有好好學習,荒廢了學業(yè)。進入大三后,我決定要好好學習編程,以有一技之長。我聽說VC功能非常強大,效率也高,于是我就自學VC。在學習中我發(fā)現(xiàn)VC確實很難學,在寫本系統(tǒng)時很多東西我都是現(xiàn)學的,或者從網(wǎng)上搜資料,或者從圖書館找資料。雖然這次我只做了個比較簡單的系統(tǒng),并且還很不完美,但在做的過程中我確實嘗到了很多有用的東西,因此我對自己的努力和成果還是很滿意的。在指導教師的精心教導下,我們學會了如何工程化地編寫一個系統(tǒng)軟件。首先要對軟件的需求有一個比較明確的認識,然后系統(tǒng)分析與系統(tǒng)設(shè)計,最后是代碼設(shè)計與調(diào)試。軟件實現(xiàn)上,設(shè)計了人性化的系統(tǒng)封面,將各個功能獨立出來采用功能模塊的設(shè)計思想。我們編寫程序的過程是辛苦與快樂的,軟件設(shè)計思想很重要,只要我們在編程,就必須學習新的先進設(shè)計思想。參考文獻王珊薩師煊著.數(shù)據(jù)庫系統(tǒng)概論(第四版).高等教育出版社2006:P209-227宋昆、李嚴等著.SQLServer數(shù)據(jù)庫開發(fā)實例解析.機械工業(yè)出版社2006年1月附錄主要代碼簽到:專門設(shè)計一個登錄類,它可以彈出一個登錄窗口,得到并返回用戶的輸入。每當需要用戶輸入用戶名和密碼時都創(chuàng)建一個這個類的對象。點擊簽到按鈕時系統(tǒng)會隱藏并彈出一個登錄對話框,要求用戶輸入用戶名和密碼。得到用戶輸入的用戶名和密碼后就可以查詢數(shù)據(jù)庫,看數(shù)據(jù)庫中是否有此用戶。如果有此用戶再查看密碼是否正確,若密碼正確則插入一條考勤記錄,簽到時間為系統(tǒng)當前時間;若密碼不正確則彈出提示。若沒有此用戶也彈出提示。還要判斷用戶是否已經(jīng)簽到以防止重復(fù)簽到,若重復(fù)簽到則彈出警告。根據(jù)用戶簽到的時間來判斷用戶的狀態(tài)是正常還是遲到或者缺勤,并做出相應(yīng)處理。代碼如下:ShowWindow(SW_HIDE);Loginlgn;intflag=lgn.DoModal();if(flag==IDOK)(CStringuid=lgn.GetUid();CStringpsd=lgn.GetPsd();ADOConnectioncon;CString constr="Provider二SQLOLEDB.1;IntegratedSecurity二SSPI;Persist Security Info二False;InitialCatalog二manage;DataSource二.";con.Open(constr);_RecordsetPtrrst1=con.Execute("selectpsdfromworkerwherewid=,〃+uid+〃,〃);if(rst1->adoEOF)MessageBox("請輸入正確的用戶名!〃,〃錯誤!");else(_RecordsetPtrrst2二con.Execute(〃selectwidfrom[check]wherewid=,"+uid+",and year(intime)二year(getdate()) andmonth(intime)二month(getdate())\andday(intime)=day(getdate())〃);if(rst2->adoEOF)(rst2->Close();CStringspsd=(rst1->GetCollect(〃psd〃)).bstrVal;spsd.TrimLeft();spsd.TrimRight();if(psd==spsd)(con.Execute("insertinto[check](wid,intime)values('〃+uid+〃’,getdate())〃);rst2=con.Execute("selectdatepart(hh,intime)ashour,datepart(n,intime)asminfromsettings");intintimehour=(rst2->GetCollect("hour")).intVal;intintimemin=(rst2->GetCollect("min")).intVal;rst2->Close();rst2=con.Execute("selectdatepart(hh,getdate())ashour,datepart(n,getdate())asmin");inthour=(rst2->GetCollect("hour")).intVal;intmin=(rst2->GetCollect("min")).intVal;rst2->Close();if((hour-intimehour)>1)(con.Execute("update[check]setstatnum=4wherewid='"+uid+"'andyear(intime)二year(getdate())andmonth(intime)二month(getdate())andday(intime)=day(getdate())");con.Execute("update worker setbonus二bonus-(selectmsalfrommsalary,workerwherewid='〃+uid+〃'andmsalary.wlevel二worker.wlevel)/30wherewid='〃+uid+〃'〃);}elseif((hour-intimehour)==1)(if(min>intimemin)(con.Execute("update[check]setstatnum=4wherewid='〃+uid+〃'andyear(intime)二year(getdate())andmonth(intime)二month(getdate())andday(intime)=day(getdate())〃);con.Execute("updateworkersetbonus二bonus-(selectmsalfrommsalary,workerwherewid='〃+uid+〃'andmsalary.wlevel二worker.wlevel)/30wherewid='〃+uid+〃'〃);}else(con.Execute("update[check]setstatnum=1wherewid='〃+uid+〃'andyear(intime)二year(getdate())andmonth(intime)二month(getdate())andday(intime)=day(getdate())〃);CStringstr1,str2;str1.Format("%d",intimemin);str2.Format("%d",min);con.Execute("updateworkersetbonus二bonus-(60-(〃+str1+〃-〃+str2+〃))*(selectfakuanfromsettings)wherewid='〃+uid+〃’〃);}}elseif((hour-intimehour)==0)con.Execute("update[check]setstatnum=1wherewid='"+uid+",and year(intime)二year(getdate()) andmonth(intime)二month(getdate())andday(intime)=day(getdate())〃);CStringstr1,str2;str1.Format("%d",intimemin);str2.Format("%d",min);con.Execute("updateworkersetbonus二bonus-(〃+str2+〃-〃+str1+〃)*(selectfakuanfromsettings)wherewid='"+uid+"'");}elsecon.Execute("update[check]setstatnum=0wherewid='"+uid+",and year(intime)二year(getdate()) andmonth(intime)二month(getdate())andday(intime)=day(getdate())〃);}elsecon.Execute("update[check]setstatnum=0wherewid='"+uid+",andyear(intime)二year(getdate())andmonth(intime)二month(getdate())andday(intime)=day(getdate())〃);}elseMessageBox("請輸入正確的密碼?。。?,"錯誤!");}elseMessageBox("您已經(jīng)簽到了,請不要重復(fù)簽到!〃,〃錯誤!");}ShowWindow(SW_SHOW);簽離:簽離與簽到類似,也是彈出登錄窗口要求用戶輸入用戶名和密碼,若用戶名和密碼正確則查詢數(shù)據(jù)庫看此用戶是否已經(jīng)簽到。若沒簽到則彈出警告,若已經(jīng)簽到則再查看是否已經(jīng)簽離。若已經(jīng)簽離則彈出敬告,若沒簽離則在此用戶今天的那條考勤記錄上增加簽離信息,并根據(jù)當前時間判斷其是否是早退或缺勤,并做出相應(yīng)處理。員工管理:插入員工時得到用戶輸入的員工信息,并根據(jù)這些信息在員工表中插入一條記錄。部門和級別信息用下拉外表顯示,顯示內(nèi)容來自數(shù)據(jù)庫,并不是固定的,以此增加靈活性。修改時只要把特定工號的員工的信息修改為用戶輸入的信息即可。刪除時只要工號為用戶輸入的工號的員工從員工表中刪除即可,并將這個員工信息保存在另一張表中以備將來查詢。查詢進可按工號、姓名、性別、年齡、部門、級別進行查詢。按姓名查詢時可以模糊查詢。系統(tǒng)還可以顯示公司的男女員工數(shù)及總?cè)藬?shù)。下面是增加員工的代碼:ADOConnectioncon;con.Open("Provider二SQLOLEDB.1;Integrated Security二SSPI;PersistSecurityInfo二False;InitialCatalog二manage;DataSource二.");UpdateData(true);intindex1=m_level.GetCurSel();intindex2=m_dept.GetCurSel();intindex3=m_sex.GetCurSel();if(m_wid==〃〃||index1==-1||index2==T||index3==T||m_psd==〃〃)MessageBox("帶*的為必填項!〃,〃警告!");else(CStringstr1;m_level.GetLBText(index1,str1);CStringstr2;m_dept.GetLBText(index2,str2);CStringstr5;m_sex.GetLBText(index3,str5);_RecordsetPtrrst1=con.Execute("selectwlevelfrommsalarywherejob=,〃+str1+〃,〃);intlev二rst1->GetCollect(〃wlevel〃).intVal;CStringstr4;str4.Format(〃%d〃,lev);rst1->Close();rstl二con.Execute(〃selectdidfromdeptwheredname=,〃+str2+〃,〃);CStringstr3二rst1->GetCollect(〃did〃).bstrVal;str3.TrimLeft();str3.TrimRight();con.Execute(〃insert into workervalues(,〃+m_wid+〃,,,〃+m_wname+〃,,,〃+m_wtime.Format(〃%y-%m-%d%H:%M:%S〃)+〃,,〃+str4+〃,,〃+str3+〃,,,〃+m_address+〃,,,〃+m_phone+〃,,,〃+m_age+〃,,,〃+str5+〃,,,〃+m_psd+〃,,0)〃);MessageBox(〃添加成功!〃,〃通知!〃);}部門管理:部門管理相對簡單,用一個數(shù)據(jù)列表控件顯示出所有的部門信息,可以對部門進行增、刪、改操作??记诠芾???梢詫T工進行請假、出差處理,用一個標簽控件顯示幾個標簽頁,分別是所有考勤記錄、遲到記錄、缺勤記錄、請假記錄、出差記錄。判斷員工的是否遲到或缺勤是通過檢查考勤記錄的statnum字段來實現(xiàn)的。為了防止數(shù)據(jù)庫中積累大量的考勤記錄,管理員可以選擇時間段來手動刪除考勤記錄。之所以不自動刪除是為了增加系統(tǒng)的靈活性,想刪除那些就刪除哪些。部分代碼如下:voidKaoQin::OnBtnChuchai()(//TODO:AddyourcontrolnotificationhandlercodehereUpdateData();m_pCon->Open("Provider二SQLOLEDB.1;IntegratedSecurity二SSPI;PersistSecurityInfo二False;InitialCatalog二manage;DataSource二.");_RecordsetPtrrst=m_pCon->Execute("select*from[check]wherewid='〃+m_wid+〃' andyear(intime)二year(getdate())andmonth(intime)二month(getdate())andday(intime)=day(getdate())〃);if(rst->adoEOF)(m_pCon->Execute("insert into [check]values('〃+m_wid+〃',getdate(),getdate(),5)〃);_RecordsetPtrrst=m_pCon->Execute("selectworker.widas工號,wnameas姓名,intimeas簽到時間,outtimeas簽離時間,statas狀態(tài)from[check],worker,statewhere[check].wid=worker.widand[check].statnum二state.statnum");m_kqquanbu.m_datagrid.SetRefDataSource(rst);m_kqquanbu.m_datagrid.Refresh();MessageBox("出差成功!〃,〃通知!");}else(m_pCon->Execute("update[check]setstatnum=5,intime=getdate()wherewid='"+m_wid+"'andyear(intime)=year(getdate())andmonth(intime)二month(getdate())andday(intime)=day(getdate())〃);_RecordsetPtrrst=m_pCon->Execute("selectworker.widas工號,wnameas姓名,intimeas簽到時間,outtimeas簽離時間,statas狀態(tài)from[check],worker,statewhere[check].wid=worker.widand[check].statnum二state.statnum");m_kqquanbu.m_datagrid.SetRefDataSource(rst);m_kqquanbu.m_datagrid.Refresh();MessageBox("出差成功!〃,〃通知!");}}voidKaoQin::OnButtonDel()(//TODO:AddyourcontrolnotificationhandlercodehereUpdateData();m_pCon->Open("Provider二SQLOLEDB.1;IntegratedSecurity=SSPI;PersistSecurityInfo二False;InitialCatalog二manage;DataSource二.");m_pCon->Execute("delete from [check] wheredatediff(d,'〃+m_q

溫馨提示

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

評論

0/150

提交評論