程序設(shè)計(jì)課程設(shè)計(jì)報(bào)告_第1頁(yè)
程序設(shè)計(jì)課程設(shè)計(jì)報(bào)告_第2頁(yè)
程序設(shè)計(jì)課程設(shè)計(jì)報(bào)告_第3頁(yè)
程序設(shè)計(jì)課程設(shè)計(jì)報(bào)告_第4頁(yè)
程序設(shè)計(jì)課程設(shè)計(jì)報(bào)告_第5頁(yè)
已閱讀5頁(yè),還剩18頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

日日擊3 :哲Y禺回£80WW:W860ZIE0I800Z:害索WW2腳WWWWWWY:目矗K誨目錄TOC\o"1-5"\h\z\o"CurrentDocument"1引言 1\o"CurrentDocument"1.1選題背景 1\o"CurrentDocument"1.2需求分析 1\o"CurrentDocument"1.3開(kāi)發(fā)環(huán)境 2\o"CurrentDocument"功能設(shè)計(jì) 2\o"CurrentDocument"2.1功能結(jié)構(gòu)圖 2\o"CurrentDocument"2.2模塊設(shè)計(jì) 3\o"CurrentDocument"數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì) 3\o"CurrentDocument"詳細(xì)設(shè)計(jì) 5\o"CurrentDocument"4.1程序結(jié)構(gòu)圖 5\o"CurrentDocument"4.2各模塊功能 7\o"CurrentDocument"調(diào)試分析 18\o"CurrentDocument"小結(jié) 19\o"CurrentDocument"參考文獻(xiàn) 191引言1.1選題背景管理信息系統(tǒng)在強(qiáng)調(diào)管理,強(qiáng)調(diào)信息的現(xiàn)代社會(huì)中已變得越來(lái)越普及。它涉及了管理科學(xué)、信息技術(shù)和計(jì)算機(jī)技術(shù)。人事信息的管理是企事業(yè)單位的必要管理內(nèi)容。企業(yè)的規(guī)模越大,所要管理的人員越多,人事管理就越復(fù)雜。隨著信息技術(shù)的發(fā)展,傳統(tǒng)的人事信息管理模式已經(jīng)落伍,人們需要從繁瑣的手工操作中解放出來(lái)。由于人事信息比較復(fù)雜,手工操作可能導(dǎo)致錯(cuò)誤較多、工作效率不高。因此應(yīng)用計(jì)算機(jī)技術(shù)實(shí)現(xiàn)人事信息的管理是可行而必要的工作,利用人事管理信息系統(tǒng)既能夠提高工作效率,又可以提高工作水平。1.2需求分析本人事管理信息系統(tǒng)將用戶分為兩大類-管理者和普通員工,普通員工可以查看、修改自己的信息并完成考勤和請(qǐng)假的操作。管理者除了這些基本的功能還能對(duì)數(shù)據(jù)庫(kù)進(jìn)行統(tǒng)計(jì)和賬戶管理。人事管理信息系統(tǒng)應(yīng)該實(shí)現(xiàn)以下主要功能:建立和維護(hù)員工基本信息、考勤信息、調(diào)動(dòng)信息的增、刪、修改;查詢根據(jù)編號(hào)或姓名查詢員工基本信息根據(jù)員工的編號(hào)以及時(shí)間(年、月)查詢考勤信息根據(jù)員工的編號(hào)查詢調(diào)動(dòng)信息。統(tǒng)計(jì)統(tǒng)計(jì)某個(gè)職工的出勤情況信息;按某年某月某日統(tǒng)計(jì)查詢某部門的遲到人數(shù);1.3開(kāi)發(fā)環(huán)境操作系統(tǒng):WindowsXP;開(kāi)發(fā)語(yǔ)言:C++;IDE:VC6.0O功能設(shè)計(jì)2.1功能結(jié)構(gòu)圖根據(jù)系統(tǒng)的功能分析,系統(tǒng)針的功能結(jié)構(gòu)圖如圖1所示:圖1系統(tǒng)的功能結(jié)構(gòu)圖2.2模塊設(shè)計(jì)基本信息管理輸入:?jiǎn)T工的編號(hào)、姓名、性別、進(jìn)入本單位時(shí)間輸出:?jiǎn)T工基本信息文件修改:修改員工信息的各項(xiàng)字段處理:將員工的基本信息添加到員工基本信息文件中?;究记谛畔⒐芾磔斎耄禾砑訂T工上下班及請(qǐng)假的時(shí)間。輸出:?jiǎn)T工基本考勤信息查詢結(jié)果視圖。處理:將考勤時(shí)間記錄到數(shù)據(jù)庫(kù)中?;締T工賬戶信息管理輸入:?jiǎn)THID、登錄密碼、管理權(quán)限、上次登錄時(shí)間數(shù)據(jù)庫(kù)管理將內(nèi)存中的信息備份到磁盤中或?qū)⒋疟P中的信息寫入內(nèi)存數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)根據(jù)系統(tǒng)的需求分析,員工基本信息、考勤信息、調(diào)動(dòng)信息、賬戶信息應(yīng)該分別保存各自的類體中,每個(gè)類的具體數(shù)據(jù)及結(jié)構(gòu)有:數(shù)據(jù)結(jié)構(gòu)概況:

Staff_Manage類總數(shù)據(jù)庫(kù)其中有一個(gè)

鏈表。Emp類'員工信息類其中有Emp_Info、Emp_CheckIn、AccountI三個(gè)類廠 —廠 —;?Emp_Info類其中有一個(gè)記錄時(shí)間序列的鏈表和員工姓名ID號(hào)等信息AEmp_CheckIn類其中有兩個(gè)記錄時(shí)間序列的鏈表和員工遲到次數(shù)和請(qǐng)假次數(shù)的計(jì)數(shù)器/Account類其中有員工賬號(hào)密碼權(quán)限和上次登錄時(shí)間的信息1、員工基本信息類編號(hào):intId姓名:CStringName性別:CStringSex進(jìn)入本單位時(shí)間:time_t_In所在部門:CStringOri_Depart2、2、員工考勤信息類上下班時(shí)間:time_t_Intime_t_Out遲到次數(shù):intLate_Num早退次數(shù):intEarly_Num請(qǐng)假天數(shù):intLeave_Num假期開(kāi)始時(shí)間:vector<time_t>Leave_Date3、 員工調(diào)動(dòng)信息類原部門:CStringOri_Depart新部門:CStringNew_Depart調(diào)入時(shí)間:time_t_In4、 員工賬戶類員工ID:intId登錄密碼:CStringPassword管理權(quán)限:boolType上次登錄時(shí)間:time_tPre詳細(xì)設(shè)計(jì)4.1程序結(jié)構(gòu)1、本人負(fù)責(zé)了歡迎模塊、用戶具體操作界面(參數(shù)修改模塊、考勤信息顯示模塊、考勤請(qǐng)假操作模塊、統(tǒng)計(jì)信息顯示模塊)、退出模塊。下面主要介紹這幾個(gè)模塊的詳細(xì)設(shè)計(jì)。數(shù)據(jù)結(jié)構(gòu):classStaff_Manage 〃總數(shù)據(jù)庫(kù)數(shù)據(jù)成員:vector<Emp>emp 〃員工鏈表

成員函數(shù):intStaff_Search();voidStaff_Emp_Register();Emp&Get_Emp();intGet_Emp_Num();classEmp數(shù)據(jù)成員: Emp_Infoemp_Info;Emp_CheckInemp_CheckIn;Accountaccount;成員函數(shù):Emp_Info&Get_Emp_Info();Emp_CheckIn&Get_Emp_CheckIn();Account&Get_Account();classEmp_Info數(shù)據(jù)成員:intId;CStringName;CStringSex;vector<Depart_Change>depart_Change;成員函數(shù):boolEmp_Info_Change();voidEmp_Info_Depart_Change();intGet_Id();CString&Get_Name();CString&Get_Sex();CString&Get_ComeDay();int&Get_Change_Times();Depart_Change*Get_Depart_Change();voidPush_Depart_Change();classEmp_CheckIn數(shù)據(jù)成員: vector<Check_In_Out>check_In_Out;intLate_Num;intEarly_Num;intLeave_Num;〃搜索員工〃員工注冊(cè)//返回員工鏈表//〃搜索員工〃員工注冊(cè)//返回員工鏈表//返回員工總數(shù)〃單個(gè)員工信息//基本信息//考勤信息〃賬戶信息//返回基本信息//返回考勤信息//返回賬戶信息〃員工基本信息類〃員工信息修改〃員工部門調(diào)動(dòng)//返回//返回部門調(diào)動(dòng)信息〃為鏈表增加節(jié)點(diǎn)〃簽到請(qǐng)假等操作〃簽到信息鏈表〃遲到次數(shù)//早退次數(shù)〃請(qǐng)假次數(shù)〃遲到時(shí)間成員函數(shù):boolCheckIn();boolCheckOut();boolLeave();Check_In_Out*Get_Check_In_Out();voidPush_Check_In_Out();〃上班簽到〃上班簽到〃請(qǐng)假〃增加簽到信息鏈表節(jié)點(diǎn)int&Get_Late_Num();int&Get_Early_Num();int&Get_Leave_Num();time_t*Get_Leave_Date();voidPush_Leave_Date();int&Get_Emp_CheckIn_j();intGet_Check_In_Out_Num();intGet_Leave_Date_Num();〃增加請(qǐng)假時(shí)間鏈表節(jié)點(diǎn)(5)classAccount數(shù)據(jù)成員:成員函數(shù):intId;CStringPassword;boolType;time_tPre;boolRenew_Password();voidRenew_Id();boolCheck();int&Get_Id();bool&Get_Type();CString&Get_Password();time_t&Get_pre();〃賬戶類〃權(quán)限〃上次登錄時(shí)間//修改密碼//修改ID//密碼驗(yàn)證4.2各模塊功能2、歡迎模塊

歡迎界面實(shí)現(xiàn)了信息從磁盤到內(nèi)存的轉(zhuǎn)換關(guān)鍵步驟及其解釋:pf=fopen("d://Staff_Manage.txt”,"at+");在D盤上打開(kāi)或新建一個(gè)文本文檔char*readuntill(FILE*pf,charp)從文件指針時(shí)向后順序抽取字符知道遇到字符并返回該字符串charnextchar(FILE*pf,intp)返回文件指針/?后第p個(gè)字符Staff_Emp_Register(Id,Name,Sex,ComeDay,"00”,0);將文件上的信息作為鏈表的一個(gè)節(jié)點(diǎn)保存2、注冊(cè)模塊

該模塊完成新增員工信息的收集關(guān)鍵步驟及其解釋:UpdateData(TURE);將編輯框內(nèi)的數(shù)據(jù)賦值給相關(guān)聯(lián)變量if(m_ID==0)MessageBox("ID不得為0!”);elseif(m_R==-1)MessageBox("請(qǐng)選擇您的權(quán)限!”);elseif(m_Sex==-1)MessageBox("請(qǐng)選擇您的性別!”);elseif(m_Name=="")MessageBox("請(qǐng)輸入您的姓名!”);elseif(m_PassWord=="")MessageBox("請(qǐng)輸入您的密碼!”);elseif(m_Depart=="")MessageBox("請(qǐng)輸入您的部門!”);檢測(cè)到數(shù)據(jù)未填寫完整并給予警告m_ID=0;m_Name=_T("");m_PassWord=_T("");//m_Comeday=_T("");m_Depart=_T("");m_R=-1;m_Sex=-1;UpdateData(FALSE);如果注冊(cè)通過(guò)則清除編輯框上信息,防止信息泄露elseif((Dlgs->Staff_Search(m_ID)!=10000))MessageBox("該賬號(hào)已被注冊(cè)!");防止注冊(cè)兩個(gè)相同阮3、登錄模塊登錄模塊完成ID權(quán)限的識(shí)別和密碼校驗(yàn)關(guān)鍵步驟及其解釋:if(Dlgs->Staff_Search(m_ID)==10000)MessageBox("沒(méi)有此ID");檢驗(yàn)輸入的^是否存在Staff_Emp_Check()

檢驗(yàn)口令是否匹配Right0_Dlg.ID=My_ID;Right0_Dlg.DoModal();4、將ID號(hào)賦值給對(duì)話框下的變量,并彈出對(duì)話框4、*由于管理者用戶界面是普通員工用戶界面的超集,所以這里只介紹管理者用戶界面。*管理者用戶界面分為以下六大模塊,并一一介紹參數(shù)修改模塊考勤信息顯示模塊考勤請(qǐng)假操作模塊基本信息顯示模塊統(tǒng)計(jì)信息顯示模塊(1)((1)(2)(3)(4)(5)(6)(1)參數(shù)修改模塊主要完成對(duì)更新后的信息的保存關(guān)鍵步驟及其解釋:SetDlgItemText();給編輯框賦初值,給數(shù)據(jù)修改提供參考

( 2 )Get_Emp(S->Staff_Search(*ID1)).Get_Emp_Info().Emp_Info_Depart_Change(S->Get_Emp(S->Staff_Search(*ID1)).Get_Emp_Info().Get_Depart_Change()[S->Get_Emp(S->Staff_Search(*ID1)).Get_Emp_Info().Get_Change_Times()].New_Depart,PDepart,time(0));修改信息(2)考勤信息顯示模塊下班時(shí)間Sw-LDec1220:47:592010下班時(shí)間Sw-LDec1220:47:592010SwiDec1220:54:342010cccCeeeeDDDD濟(jì)理Tue信濟(jì)Tue理信Tup息理沁經(jīng)管.?通經(jīng).?管通:信管..幼1:■■::期;:::期1^■門In:□.-□:□:日□=□:□.-□:□:日—Jl-TI-rr.--rJILInplnl-rrl-71-n-rrl-.—刮刮由瀏音襯音召襯制音部部原新調(diào)原新調(diào)原新調(diào)原新調(diào)1415:16:4920101415:16:4320101415:16:3220101220:47:562010主要用于顯示上下班的時(shí)間和部門調(diào)動(dòng)信息關(guān)鍵步驟及其解釋:ResetContent();清除列表中的信息intcount0=Get_Emp_CheckIn_i();確定列表的長(zhǎng)度AddString();增加類表項(xiàng)

(3)考勤請(qǐng)假操作模塊主要完成時(shí)間的記錄關(guān)鍵步驟及其解釋:if(flag==0)防止連續(xù)進(jìn)行上班簽到SetDlgItemText(IDC_STATIC1,ctime(time(0)));顯示簽到的時(shí)間CheckIn();將時(shí)間信息記錄到鏈表中(4)基本信息顯示模塊

「員工信息顯示您的ID1姓名唐家辨性別m部門管理注冊(cè)日SunDec1220:47:562010退到次數(shù)3請(qǐng)假次數(shù)3關(guān)鍵步驟及其解釋:(1)SetDlgItemInt(IDC_STATIC1,*ID4);從鏈表中查找相關(guān)信息并顯示在文本框中(5)統(tǒng)計(jì)信息顯示模塊詛到日查詢 清懾日查詢?cè)虏块T詛到和請(qǐng)偏情況查詢年傳詛到日查詢 清懾日查詢?cè)虏块T調(diào)職情況萱詢 P ID員工基本信息查詢 p IDID|姓名|性別|權(quán)限|部門|注冊(cè)百M(fèi)onDec1317:47:582010MonDec1310:52:252010MonDec1310:51:462010MonDec1310:45:272010SwlDec1221:11:242010SwDec1221:10:562010Dec1221:08:552010SunDec1220:44:302010SwlDec1220:44:062010信息濟(jì)息理濟(jì)信息理通信經(jīng)信管經(jīng)通信管員工工工工工工工工理員員員員員員員員管羽杰豪宏媛維成岳超楠俊祎俊嬋家施邱稽呂陸顏裘顧唐O1_y8754321該模塊完成10種功能的查詢a、所有月份、所有部門的遲到情況查詢b、所有月份、制定部門的遲到情況查詢c、 指定月份、制定部門的遲到情況查詢d、 所有月份、所有部門的請(qǐng)假情況查詢e、 所有月份、制定部門的請(qǐng)假情況查詢f、 指定月份、制定部門的請(qǐng)假情況查詢g、 所有員工調(diào)職情況查詢h、 指定員工調(diào)職情況查詢i、 所有員工基本信息情況查詢j、 指定員工基本信息情況查詢關(guān)鍵步驟及其解釋:UpdateData();數(shù)據(jù)收集m_list.DeleteAllItems();清空列表m_list.DeleteColumn(0);清空列表項(xiàng)m_list.SetExtendedStyle(3);設(shè)置類表樣式m_list.InsertColumn(0,_T("ID"));設(shè)置列表標(biāo)題m_list.SetColumnWidth(0,70);設(shè)置列表寬度if(m_2==0&&m_3=="0”)if(m_2==0&&m_3!="0”)if(m_3=="0”)if(m_3!="0”)if(S->Staff_Search(m_4)==0)if(S->Staff_Search(m_4)!=0)判斷查詢條件while(count<S->emp.size())根據(jù)鏈表長(zhǎng)度確定循環(huán)次數(shù)m_list.SetItemText();為列表插入列表項(xiàng)關(guān)鍵步驟及其解釋:if(S->Staff_Search(m_ID)==10000||m_ID==0)MessageBox("沒(méi)有此ID!");判斷ID是否存在(2)elseif(m_ID==*ID6)MessageBox("不得刪除正在使用的ID!");判斷是否刪除正在使用險(xiǎn)S->emp[S->Staff_Search(m_ID)].emp_Info.Id=9999999;MessageBox("刪除成功!”);刪除賬號(hào)4、退出模塊完成信息從內(nèi)存到磁盤的轉(zhuǎn)換關(guān)鍵步驟及其解釋:pf=fopen("d://Staff_Manage.txt”,"wt”);重寫文本文件rewind(pf);設(shè)置文件指針intEmp_Count=S->emp.size();intcount=1;intcount11=0;intcount12=0;intcount2=0;設(shè)置5和循環(huán)計(jì)數(shù)器fwrite("{”,1,1,pf);寫入鏈表頭標(biāo)記fwrite(”?”,1,1,pf);寫入字段分隔符S->emp.clear();清空數(shù)據(jù)庫(kù)fclose(pf);刷新數(shù)據(jù)緩沖區(qū),并釋放文件指針4.調(diào)試分析數(shù)據(jù)庫(kù)設(shè)計(jì)數(shù)據(jù)庫(kù)是軟件運(yùn)行的基礎(chǔ),對(duì)員工信息的插入、刪除、修改、統(tǒng)計(jì)等操作都與數(shù)據(jù)庫(kù)有密切的關(guān)系。我把所有的員工信息包含在一個(gè)類中,它包括基本身份信息、考勤信息、賬號(hào)信息、考勤信息。在這個(gè)類中設(shè)置了一個(gè)保存員工權(quán)限的字段(intRight),以此將所有的員工分為普通員工(Right=0)和管理者(Right=1),并為兩種不同的員工設(shè)置不同操作界面以完成不同的功能。在考勤信息和調(diào)至信息中都涉及到對(duì)事件的處理。由此我在數(shù)據(jù)庫(kù)中增加相對(duì)應(yīng)的time_t型字段,并定義time_t型的鏈表以保存一連串的時(shí)間序列。在對(duì)時(shí)間信息進(jìn)行查詢或是比對(duì)時(shí)將time_t型轉(zhuǎn)化為tm型,對(duì)時(shí)間信息進(jìn)行顯示的時(shí)候,把time_t型轉(zhuǎn)為char*型可以高效的對(duì)時(shí)間進(jìn)行處理。(二) 數(shù)據(jù)庫(kù)在多個(gè)對(duì)話框之間共享人事管理系統(tǒng)是一個(gè)基于數(shù)據(jù)庫(kù)的應(yīng)用程序。數(shù)據(jù)庫(kù)至關(guān)重要,我認(rèn)為保存數(shù)據(jù)庫(kù)的類至少具備兩個(gè)必要條件。一它的生命周期全局的也就是說(shuō)從程序開(kāi)始運(yùn)行到退出數(shù)據(jù)庫(kù)始終存在于內(nèi)存中,二他對(duì)所有的對(duì)話框可見(jiàn)。為了滿足第一個(gè)條件,我將數(shù)據(jù)庫(kù)類的實(shí)例定義在CView類下以滿足它對(duì)生命周期的要求。為了是數(shù)據(jù)庫(kù)可見(jiàn)我將所有的對(duì)話框定

溫馨提示

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

評(píng)論

0/150

提交評(píng)論