版權(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)查詢功能:分為姓名查詢和應(yīng)繳稅款查詢兩種(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)入查詢系統(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ī)保支付改革下臨床路徑的流程再造
- 創(chuàng)新設(shè)計(jì)思維工作坊
- 2026屆湖北省武漢為明學(xué)校高一生物第一學(xué)期期末考試試題含解析
- 住院醫(yī)師規(guī)范化培訓(xùn)中的差錯(cuò)預(yù)防
- 傳染病防控創(chuàng)新項(xiàng)目的孵化與疾控中心推廣
- 傳染病漏診的流行病學(xué)調(diào)查意義
- 2026屆湖南省衡陽(yáng)市樟樹(shù)中學(xué)高三英語(yǔ)第一學(xué)期期末達(dá)標(biāo)檢測(cè)試題含解析
- 黑龍江省虎林市高級(jí)中學(xué)2026屆高二上生物期末考試模擬試題含解析
- 《汽車(chē)發(fā)動(dòng)機(jī)電控系統(tǒng)原理與故障診斷(第2版)》高職全套教學(xué)課件
- 大米銷(xiāo)售授權(quán)合同范本
- 2025年浙江省杭州市輔警協(xié)警筆試筆試真題(含答案)
- 醫(yī)院藥劑科工作總結(jié)
- 2026年內(nèi)蒙古科技職業(yè)學(xué)院?jiǎn)握新殬I(yè)適應(yīng)性考試參考題庫(kù)及答案解析
- 單位公務(wù)出行租賃社會(huì)車(chē)輛審批表范文
- 2025年中國(guó)對(duì)外貿(mào)易中心集團(tuán)有限公司招聘84人備考題庫(kù)完整答案詳解
- 影視合作協(xié)議合同
- 2025年1月遼寧省普通高中學(xué)業(yè)水平合格性考試數(shù)學(xué)試卷(含答案詳解)
- 廣東省廣州市2026屆高三年級(jí)上學(xué)期12月調(diào)研測(cè)試(廣州零模)物理試卷
- 2026屆八省聯(lián)考T8聯(lián)考高三年級(jí)12月檢測(cè)訓(xùn)練數(shù)學(xué)試卷(含答案)
- 2025年10月自考03333電子政務(wù)概論試題及答案
- 2025年廣東高中學(xué)業(yè)水平合格性考試化學(xué)試卷試題(含答案解析)
評(píng)論
0/150
提交評(píng)論