長春大學課程設(shè)計――面向?qū)ο蟪绦蛟O(shè)計(人事管理系統(tǒng))_第1頁
長春大學課程設(shè)計――面向?qū)ο蟪绦蛟O(shè)計(人事管理系統(tǒng))_第2頁
長春大學課程設(shè)計――面向?qū)ο蟪绦蛟O(shè)計(人事管理系統(tǒng))_第3頁
長春大學課程設(shè)計――面向?qū)ο蟪绦蛟O(shè)計(人事管理系統(tǒng))_第4頁
長春大學課程設(shè)計――面向?qū)ο蟪绦蛟O(shè)計(人事管理系統(tǒng))_第5頁
已閱讀5頁,還剩17頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、目 錄一、 設(shè)計目的2二、 功能介紹2三、 程序流程3四、 設(shè)計步驟(不用加過多代碼)4五、 設(shè)計總結(jié)9六、 程序清單9七、 參考文獻22一、設(shè)計目的(1) 只能使用C+語言,源程序要有適當?shù)淖⑨?,使程序容易閱讀(2) 至少采用文本菜單界面(如果能采用圖形菜單界面更好)(3) 學生可自動增加新功能模塊(視情況可另外加分)(4) 寫出課程設(shè)計報告,具體要求見相關(guān)說明文檔(5) 用文件進行管理二、功能介紹(1)數(shù)據(jù)錄入功能(2)查詢功能:分為姓名查詢和應(yīng)繳稅款查詢兩種(3)統(tǒng)計功能:輸入一個部門,統(tǒng)計該部門的人員應(yīng)繳稅款總和并顯示數(shù)據(jù)。(4)排序功能:能實現(xiàn)選擇按月薪升序或降序排序并顯示數(shù)據(jù)。三、

2、程序流程 開始(J/T)進入系統(tǒng)J新增顯示查找退出修改刪除 結(jié)束T新建追加按編號查按姓名查按年齡查按職位查按編號按姓名逐個刪除全部刪除四、設(shè)計步驟1.登陸界面設(shè)計登錄界面如圖1所示:圖1 登錄界面 在登錄界面中,實現(xiàn)進入系統(tǒng)和退出系統(tǒng)功能。 算法描述:用 jiemian1() 函數(shù)判斷用戶輸入的字符,如果是“ j”或“J” 字符,則進入人事管理系統(tǒng),如果是“t”或“T”字符,則退出人事管理系統(tǒng),如果是其他字符則提示錯誤并請求重新輸入。2添加模塊設(shè)計 添加模塊界面如圖2所示:圖2 添加模塊界面 在添加模塊中,實現(xiàn)新建和追加的功能。 算法描述:利用YunSuan類中的成員函數(shù)workerdata(

3、)來進入添加模塊,再通過函數(shù)workerdata()中的loop_1和loop_1i的執(zhí)行來實現(xiàn)新建和追加功能。再通過if語句進行判斷用戶輸入的字符,如果是“1”字符,則執(zhí)行新建功能,如果是“2”字符,則執(zhí)行追加功能。class YunSuan (定義YunSuan聲明)void workerdata() (YunSuan類中成員函數(shù)的聲明) 3.顯示模塊設(shè)計 顯示模塊界面如圖3所示:圖3 顯示模塊界面 在顯示設(shè)計中,實現(xiàn)顯示(輸出)員工的編號、姓名、年齡、職位、聯(lián)系電話和聯(lián)系地址的功能。 算法描述:利用YunSuan類中的成員函數(shù)workerdata()來進入顯示模塊,再通過YunSuan類

4、中的disp()函數(shù)來實現(xiàn)顯示員工對象的數(shù)據(jù)的功能。class YunSuan (定義YunSuan聲明)void workerdata() (YunSuan類中成員函數(shù)的聲明)void disp() for(int i=0;i=top;i+) if(mani.GetOnoff()=0) if(i%5=0) coutpprintn() 5.修改模塊設(shè)計 修改模塊界面如圖5所示:圖5 修改模塊界面在修改模塊中,實現(xiàn)按員工編號和按員工姓名來修改員工資料的功能。 算法描述:利用YunSuan類中的成員函數(shù)workerdata()來進入修改模塊,再利用manin.printw(); w-pprintn

5、;w-deldate();以及do語句來實現(xiàn)按員工編號和按員工姓名修改的功能。class YunSuan (定義YunSuan聲明)void workerdata() (YunSuan類中成員函數(shù)的聲明)manin.printw();w-pprintn();w-deldate();addperson(worherbh,m,k,workern,addr,postt); 6.刪除模塊設(shè)計 刪除模塊界面如圖6所示:圖6 刪除模塊界面 在刪除模塊中,實現(xiàn)逐個刪除和全部刪除員工數(shù)據(jù)的功能 算法描述:利用YunSuan類中的成員函數(shù)workerdata()來進入刪除模塊,再利用workerdata()函數(shù)

6、loop_5和loop_52中的switch(xz5)語句來執(zhí)行功能,用w-deldate()來達到刪除員工數(shù)據(jù)的目的。class YunSuan (定義YunSuan聲明)void workerdata() (YunSuan類中成員函數(shù)的聲明)w-deldate(); 7.退出模塊設(shè)計 退出模塊界面如圖7所示:圖7 退出模塊界面 在退出模塊中,實現(xiàn)退出人事管理系統(tǒng)的功能。 算法描述:利用jiemian3()函數(shù)來輸出退出模塊界面,提示退出系統(tǒng)。8(1)員工類成員函數(shù):構(gòu)造函數(shù) Worker();設(shè)置姓名函數(shù) void SetName(char na);設(shè)置地址函數(shù) void SetAdr(c

7、har dizhi);設(shè)置員工職位函數(shù)void SetPost(char zhiwei);設(shè)置聯(lián)系電話函數(shù)int GetTelp()return telp; (1)員工類數(shù)據(jù)成員:int bianha; int onoff; char name5; int age; ;int telp; char adr15; char post109(1)yunsuan類成員函數(shù):構(gòu)造函數(shù) yunsuan();刪除函數(shù)void clear();比較編號函數(shù)Worker *query(int personid);比較姓名函數(shù)Worker *qu(char na);Worker *qw(char na)比較年齡

8、函數(shù)Worker *pq(int qxid);輸出函數(shù)void disp() ;void disp2();輸出界面函數(shù)void jiemian1();void jiemian3()析構(gòu)功能函數(shù)void workerdata();對yunsuan類數(shù)據(jù)成員的類外聲明函數(shù)void YunSuan:workerdata(); (2)Yunsuan類數(shù)據(jù)成員:Int top ; int in; worker man10000;五、設(shè)計總結(jié)這次的課程設(shè)計基本上涵蓋了我們大一學習的C+ 語言的知識點,本次課程設(shè)計題目不僅要求了我們對課本知識有較深刻的了解,同時要求我們有較強的動手能力。這次課程設(shè)計使我了解

9、了一些編程思想和編程技巧,也認識了程序開發(fā)的各個環(huán)節(jié),包括構(gòu)思、設(shè)計、編寫、調(diào)試、發(fā)布、文檔化、維護和修訂。如果我們只關(guān)心程序運行的結(jié)果,而對程序代碼的結(jié)構(gòu)的良好絲毫不在意,這是非常不可取的。我們一定要抱著嚴謹?shù)膽B(tài)度來編程。這次做課程設(shè)計不僅讓我復(fù)習了以前學過的內(nèi)容,也讓我知道一個道理:編程需要興趣和實際動手。這應(yīng)該可以借鑒在老師的教學工作上。創(chuàng)新思維至關(guān)重要,這不僅讓我們寫出精簡的代碼,也有助于開發(fā)出高效的程序。六、程序清單#include#include #include #include#include class Worker/員工類 int onoff;/開關(guān)數(shù)據(jù),當其為0時表示員工

10、存在,為1時表示不存在 int bianh;/編號 char name5;/姓名數(shù)組 int age;/年齡 int telp;/聯(lián)系電話 char adr15;/地址 char post10;/職位public: Worker()/構(gòu)造函數(shù) char *GetName()return name;/獲得姓名 int GetOnoff()return onoff;/獲得開關(guān) int GetNo()return bianh;/獲得編號 int GetTelp()return telp;/獲得聯(lián)系電話 int GetAge()return age;/獲得年齡 char *GetAdr()return

11、 adr;/獲得地址 char *GetPost()return post;/獲得職位 void SetNum(int num)bianh=num;/用num給編號賦值 void SetAge(int pxid)pxid=age;/用age給年齡賦值 void SetName(char na)/用數(shù)組na給姓名賦值 strcpy(name,na); void SetAdr(char dizhi)/用數(shù)組dizhi給地址賦值 strcpy(adr,dizhi); void SetPost(char zhiwei)/用數(shù)組zhiwei給地址賦值 strcpy(post,zhiwei); void

12、deldate()onoff=1;/刪除指定的單個員工的資料 void addperson(int b,int a,long int t,char *na,char *dizhi,char *zhiwei)/將輸入的資料賦值給相映的數(shù)據(jù) onoff=0; bianh=b; strcpy(name,na); strcpy(adr,dizhi); strcpy(post,zhiwei); age=a; telp=t; void printw()/輸出函數(shù),輸出文字 coutsetw(10)編號setw(10)姓名setw(10) 年齡setw(10)職位setw(15)聯(lián)系電話setw(15)聯(lián)系

13、地址endl; void pprintn()/輸出所有員工的資料 if(GetOnoff()=0) coutsetw(10)bianhsetw(10)namesetw(10)agesetw(10) postsetw(15)telpsetw(15)adrendl; ;class YunSuan/ YunSuan類 int top,in; Worker man10000;/將員工類的對象作為YunSuan類的私有成員public: YunSuan()/YunSuan類的構(gòu)造函數(shù) Worker s; top=-1; fstream file(worker.dat,ios:in);/將文件以輸入的方式

14、打開 while(1)/用s給所有員工資料賦初值 file.read(char *)&s,sizeof(s); if(!file)break; top+; mantop=s; file.close();/關(guān)閉文件 void clear()/刪除所有的員工資料 top=-1; int addperson(int n,int m,int k,char *na,char *dizhi,char *zhiwei) Worker *p=query(n),*q=query(m),*j=query(k); if(p=NULL) top+; mantop.addperson(n,m,k,na,dizhi,zh

15、iwei); return 1; return 0; Worker *query(int personid) /將系統(tǒng)中的編號與輸入的編號比較 for(int i=0;i=top;i+) if(mani.GetNo()=personid&mani.GetOnoff()=0) return &mani;in=i; return NULL; Worker *qu(char na)/將系統(tǒng)中的姓名與輸入的姓名比較 for(int i=0;i=top;i+) if(strcmp(mani.GetName(),na)=0&mani.GetOnoff()=0) return &mani;in=i; ret

16、urn NULL; Worker *qw(char na)/將系統(tǒng)中的姓名與輸入的姓名比較 for(int i=0;i=top;i+) if(strcmp(mani.GetName(),na)=0&mani.GetOnoff()=0) return &mani;in=i; return NULL; Worker *pq(int qxid) /將系統(tǒng)中的年齡與輸入的年齡比較 for(int i=0;i=top;i+) if(mani.GetAge()=qxid&mani.GetOnoff()=0) coutendl; mani.pprintn(); return NULL; Worker *qp

17、(char zhiwei) coutendlsetw(11)所找員工資料:endlendl; coutsetw(10)編號setw(10)姓名setw(10) 年齡setw(10)職位setw(15)聯(lián)系電話 setw(15)聯(lián)系地址endl; for(int i=0;i=top;i+) if(strcmp(mani.GetPost(),zhiwei)=0&mani.GetOnoff()=0) coutendl; mani.pprintn(); return NULL; void disp()/輸出所有員工的資料 for(int i=0;i=top;i+) if(mani.GetOnoff()

18、=0) if(i%5=0) coutendl; mani.pprintn(); void disp2()/輸出指定的單個員工的資料 coutendl; manin.pprintn(); void jiemian1()/界面1,進入程序時輸出 coutendl; cout 歡迎使用人事管理系統(tǒng)endlendl; coutendl; cout J:進入系統(tǒng)endlendl; cout T:退出系統(tǒng)endlendl; coutnnnn; cout 指導老師:李之玲endl; cout 班 級:網(wǎng)絡(luò)09406endl; cout 學 生:尹馨寧endl; cout 電 話:endl; cout 地 址

19、:長大學生宿舍1公寓218寢室endl endl; void jiemian3()/界面3,程序結(jié)束后輸出 coutendlendl; cout 忠心感謝您對本系統(tǒng)的支持!endlendlendlendl; cout 指導老師:李之玲endl; cout 班 級:網(wǎng)絡(luò)09406 endl; cout 學 生:尹馨寧 endlendlendlendlendlendl; cout 輸入任意鍵退出; do exit(0); while(1); void workerdata(); YunSuan()/YunSuan類的析構(gòu)函數(shù),作用:釋放空間,并將數(shù)據(jù)存入文件中 fstream file(worke

20、r.dat,ios:out); for(int i=0;i=top;i+) if(mani.GetOnoff()=0) file.write(char *)&mani,sizeof(mani); file.close(); ;void YunSuan:workerdata()/對YunSuan類的成員函數(shù)workerdata的類外聲名 char choice=0; char ch,workern20,addr40,postt30; int worherbh; int m; int k; Worker *w; while(choice!=6) coutendlendl; cout 功能菜單 en

21、dl; coutendl; cout 1:新增endl; cout 2:顯示endl; cout 3:查找endl; cout 4:修改endl; cout 5:刪除endl; cout 6:退出endl; coutendlchoice; if(choice=6) /clear(); break; switch(choice) case 1: char ch1; coutendlt歡迎進入新增系統(tǒng)!endlendl; cout1.新建(刪除原有的記錄):endlendl; cout2.追加(保留原有的記錄):endlendl; coutendlch1; if(ch1=1) char chi;

22、cout確定新建?(Y/N)chi; switch(chi) case Y|y:clear();break; case N|n:goto loop_1b; default:cout錯誤:輸入錯誤,請重新輸入!endl; goto loop_1i; if(ch1!=1&ch1!=2) cout錯誤:輸入錯誤,請重新輸入!endl; goto loop_1; do do coutendl請輸入員工編號:worherbh; w=query(worherbh); if(w!=NULL) cout錯誤:該編號資料已存在,請重新輸入。endl; while(w!=NULL); cout請輸入員工姓名:wo

23、rkern; cout年齡:m; cout職位:postt; cout聯(lián)系電話:k; cout聯(lián)系地址:addr; addperson(worherbh,m,k,workern,addr,postt); coutch; while(ch=y|ch=Y); loop_1b: break; case 2: coutendlsetw(11)所有員工資料:endlendl; coutsetw(10)編號setw(10)姓名setw(10) 年齡setw(10)職位setw(15)聯(lián)系電話setw(15)聯(lián)系地址endl; disp(); coutendl; break; case 3: char xz

24、3; int pxid; char na10; char zhiwei15; do coutendl; coutt歡迎進入查詢系統(tǒng)!endlendl; cout1.按編號查找:endl; cout2.按姓名查找:endl; cout3.按年齡查找:endl; cout4.按職位查找:endl; cout請輸入相應(yīng)的數(shù)字選擇:xz3; switch(xz3) case 1: coutworherbh; w=query(worherbh); if(w=NULL) cout該編號員工不存在!endlendl; break; coutendlsetw(11)所找員工資料:endlendl; couts

25、etw(10)編號setw(10)姓名setw(10) 年齡setw(10)職位setw(15)聯(lián)系電話setw(15)聯(lián)系地址 pprintn(); coutendl; break; case 2: coutna; w=qu(na); if(w=NULL) cout該姓名員工不存在!endlendl; break; coutendlsetw(11)所找員工資料:endlendl; coutsetw(10)編號setw(10)姓名setw(10) 年齡setw(10)職位setw(15)聯(lián)系電話setw(15)聯(lián)系地址pprintn(); coutendl; break; case 3: co

26、utpxid; pq(pxid); coutendl; break; case 4: coutzhiwei; w=qp(zhiwei); coutendl; break; default: cout錯誤:輸入錯誤,請重新輸入!endl; goto loop_3; cout是否還要繼續(xù)查找(Y/N):endlch; while(ch=y|ch=Y); break; case 4: char choice,workern10; do coutendl; coutt歡迎進入修改系統(tǒng)!endl; coutendl;loop_4: cout1.按員工編號修改:endl; cout2.按員工姓名修改:en

27、dl; coutchoice; switch(choice) /int num; case 1: coutworherbh; w=query(worherbh); if(w=NULL) cout該員工資料不存在!pprintn(); w-deldate(); do do coutendl請輸入新員工編號:worherbh; w=query(worherbh); if(w!=NULL) cout錯誤:該編號資料已存在,請重新輸入。endl; while(w!=NULL); cout請輸入員工姓名:workern; cout年齡:m; cout職位:postt; cout聯(lián)系電話:k; cout聯(lián)

28、系地址:addr; addperson(worherbh,m,k,workern,addr,postt); coutch; while(ch=y|ch=Y); break; case 2: coutworkern; w=qw(workern); if(w=NULL) cout該員工資料不存在!pprintn(); w-deldate(); do do coutendl請輸入員工新編號:worherbh; w=query(worherbh); if(w!=NULL) cout錯誤:該編號資料已存在,請重新輸入.endl; while(w!=NULL); cout請輸入員工姓名:workern; cout年齡:m; cout職位:postt; cout聯(lián)系電話:k; cout聯(lián)系地址:addr; addperson(worherbh,m,k,workern,addr,postt); coutch; while(ch=y|ch=Y); /break; default: cout錯誤:輸入錯誤,請重新輸入!endl; goto loop_4; coutch; cou

溫馨提示

  • 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

提交評論