版權(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 上海交通職業(yè)技術(shù)學(xué)院《機(jī)器學(xué)習(xí)實(shí)驗(yàn)》2023-2024學(xué)年第一學(xué)期期末試卷
- 上海建設(shè)管理職業(yè)技術(shù)學(xué)院《農(nóng)業(yè)及其發(fā)展》2023-2024學(xué)年第一學(xué)期期末試卷
- 聚氨酯新材料項(xiàng)目可行性研究報(bào)告-應(yīng)用場(chǎng)景多元拓展市場(chǎng)競(jìng)爭(zhēng)力穩(wěn)步躍升
- 公司員工管理制度范例大全
- 上海行健職業(yè)學(xué)院《班級(jí)組織與管理》2023-2024學(xué)年第一學(xué)期期末試卷
- 2024年中國(guó)柴油濾清器軟管市場(chǎng)調(diào)查研究報(bào)告
- 大型活動(dòng)突發(fā)事件應(yīng)急演練
- 建筑普通腳手架架子工試題庫(kù)與答案
- 10《車(chē)來(lái)了》教學(xué)實(shí)錄-2023-2024學(xué)年科學(xué)四年級(jí)上冊(cè)青島版(五四制)
- 選擇專(zhuān)項(xiàng)09(物質(zhì)的除雜與鑒別30題)解析版-2024年中考化學(xué)??键c(diǎn)專(zhuān)題必殺題(深圳專(zhuān)用)選擇題專(zhuān)項(xiàng)
- 2024年度上海浦東國(guó)際機(jī)場(chǎng)免稅店經(jīng)營(yíng)合同2篇
- 2024-2030年中國(guó)建筑施工行業(yè)發(fā)展?fàn)顩r規(guī)劃分析報(bào)告
- 2024版智能水務(wù)管理系統(tǒng)設(shè)計(jì)與施工合同3篇
- 華為經(jīng)營(yíng)管理-華為的股權(quán)激勵(lì)(6版)
- 學(xué)校比學(xué)趕超實(shí)施方案樣本(3篇)
- 2024年度餐飲業(yè)智能點(diǎn)餐系統(tǒng)合同
- 《紅樓夢(mèng)》十二講知到智慧樹(shù)期末考試答案題庫(kù)2024年秋安徽師范大學(xué)
- 《荷塘月色》課件25張-
- 植物學(xué)#-形考作業(yè)3-國(guó)開(kāi)(ZJ)-參考資料
- 意向定金合同模板
- GB/T 625-2024化學(xué)試劑硫酸
評(píng)論
0/150
提交評(píng)論