長(zhǎng)春大學(xué)課程設(shè)計(jì)――面向?qū)ο蟪绦蛟O(shè)計(jì)(人事管理系統(tǒng))_第1頁(yè)
長(zhǎng)春大學(xué)課程設(shè)計(jì)――面向?qū)ο蟪绦蛟O(shè)計(jì)(人事管理系統(tǒng))_第2頁(yè)
長(zhǎng)春大學(xué)課程設(shè)計(jì)――面向?qū)ο蟪绦蛟O(shè)計(jì)(人事管理系統(tǒng))_第3頁(yè)
長(zhǎng)春大學(xué)課程設(shè)計(jì)――面向?qū)ο蟪绦蛟O(shè)計(jì)(人事管理系統(tǒng))_第4頁(yè)
長(zhǎng)春大學(xué)課程設(shè)計(jì)――面向?qū)ο蟪绦蛟O(shè)計(jì)(人事管理系統(tǒng))_第5頁(yè)
已閱讀5頁(yè),還剩17頁(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)介

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

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

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

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

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

6、loop_5和loop_52中的switch(xz5)語(yǔ)句來(lái)執(zhí)行功能,用w-deldate()來(lái)達(dá)到刪除員工數(shù)據(jù)的目的。class YunSuan (定義YunSuan聲明)void workerdata() (YunSuan類(lèi)中成員函數(shù)的聲明)w-deldate(); 7.退出模塊設(shè)計(jì) 退出模塊界面如圖7所示:圖7 退出模塊界面 在退出模塊中,實(shí)現(xiàn)退出人事管理系統(tǒng)的功能。 算法描述:利用jiemian3()函數(shù)來(lái)輸出退出模塊界面,提示退出系統(tǒng)。8(1)員工類(lèi)成員函數(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)員工類(lèi)數(shù)據(jù)成員:int bianha; int onoff; char name5; int age; ;int telp; char adr15; char post109(1)yunsuan類(lèi)成員函數(shù):構(gòu)造函數(shù) yunsuan();刪除函數(shù)void clear();比較編號(hào)函數(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();對(duì)yunsuan類(lèi)數(shù)據(jù)成員的類(lèi)外聲明函數(shù)void YunSuan:workerdata(); (2)Yunsuan類(lèi)數(shù)據(jù)成員:Int top ; int in; worker man10000;五、設(shè)計(jì)總結(jié)這次的課程設(shè)計(jì)基本上涵蓋了我們大一學(xué)習(xí)的C+ 語(yǔ)言的知識(shí)點(diǎn),本次課程設(shè)計(jì)題目不僅要求了我們對(duì)課本知識(shí)有較深刻的了解,同時(shí)要求我們有較強(qiáng)的動(dòng)手能力。這次課程設(shè)計(jì)使我了解

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

10、存在,為1時(shí)表示不存在 int bianh;/編號(hào) 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;/獲得開(kāi)關(guān) int GetNo()return bianh;/獲得編號(hào) 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給編號(hào)賦值 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;/刪除指定的單個(gè)員工的資料 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)編號(hào)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類(lèi) int top,in; Worker man10000;/將員工類(lèi)的對(duì)象作為YunSuan類(lèi)的私有成員public: YunSuan()/YunSuan類(lèi)的構(gòu)造函數(shù) Worker s; top=-1; fstream file(worker.dat,ios:in);/將文件以輸入的方式

14、打開(kāi) 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)中的編號(hào)與輸入的編號(hào)比較 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)編號(hào)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()/輸出指定的單個(gè)員工的資料 coutendl; manin.pprintn(); void jiemian1()/界面1,進(jìn)入程序時(shí)輸出 coutendl; cout 歡迎使用人事管理系統(tǒng)endlendl; coutendl; cout J:進(jìn)入系統(tǒng)endlendl; cout T:退出系統(tǒng)endlendl; coutnnnn; cout 指導(dǎo)老師:李之玲endl; cout 班 級(jí):網(wǎng)絡(luò)09406endl; cout 學(xué) 生:尹馨寧endl; cout 電 話:endl; cout 地 址

19、:長(zhǎng)大學(xué)生宿舍1公寓218寢室endl endl; void jiemian3()/界面3,程序結(jié)束后輸出 coutendlendl; cout 忠心感謝您對(duì)本系統(tǒng)的支持!endlendlendlendl; cout 指導(dǎo)老師:李之玲endl; cout 班 級(jí):網(wǎng)絡(luò)09406 endl; cout 學(xué) 生:尹馨寧 endlendlendlendlendlendl; cout 輸入任意鍵退出; do exit(0); while(1); void workerdata(); YunSuan()/YunSuan類(lèi)的析構(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()/對(duì)YunSuan類(lèi)的成員函數(shù)workerdata的類(lèi)外聲名 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歡迎進(jìn)入新增系統(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錯(cuò)誤:輸入錯(cuò)誤,請(qǐng)重新輸入!endl; goto loop_1i; if(ch1!=1&ch1!=2) cout錯(cuò)誤:輸入錯(cuò)誤,請(qǐng)重新輸入!endl; goto loop_1; do do coutendl請(qǐng)輸入員工編號(hào):worherbh; w=query(worherbh); if(w!=NULL) cout錯(cuò)誤:該編號(hào)資料已存在,請(qǐng)重新輸入。endl; while(w!=NULL); cout請(qǐng)輸入員工姓名: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)編號(hào)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歡迎進(jìn)入查詢(xún)系統(tǒng)!endlendl; cout1.按編號(hào)查找:endl; cout2.按姓名查找:endl; cout3.按年齡查找:endl; cout4.按職位查找:endl; cout請(qǐng)輸入相應(yīng)的數(shù)字選擇:xz3; switch(xz3) case 1: coutworherbh; w=query(worherbh); if(w=NULL) cout該編號(hào)員工不存在!endlendl; break; coutendlsetw(11)所找員工資料:endlendl; couts

25、etw(10)編號(hào)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)編號(hào)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錯(cuò)誤:輸入錯(cuò)誤,請(qǐng)重新輸入!endl; goto loop_3; cout是否還要繼續(xù)查找(Y/N):endlch; while(ch=y|ch=Y); break; case 4: char choice,workern10; do coutendl; coutt歡迎進(jìn)入修改系統(tǒng)!endl; coutendl;loop_4: cout1.按員工編號(hào)修改: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請(qǐng)輸入新員工編號(hào):worherbh; w=query(worherbh); if(w!=NULL) cout錯(cuò)誤:該編號(hào)資料已存在,請(qǐng)重新輸入。endl; while(w!=NULL); cout請(qǐng)輸入員工姓名: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請(qǐng)輸入員工新編號(hào):worherbh; w=query(worherbh); if(w!=NULL) cout錯(cuò)誤:該編號(hào)資料已存在,請(qǐng)重新輸入.endl; while(w!=NULL); cout請(qǐng)輸入員工姓名: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錯(cuò)誤:輸入錯(cuò)誤,請(qǐng)重新輸入!endl; goto loop_4; coutch; cou

溫馨提示

  • 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)論