版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、裝訂線長 春 大 學(xué) 課程設(shè)計紙目 錄一、 設(shè)計目的2二、 功能介紹2三、 程序流程3四、 設(shè)計步驟(不用加過多代碼)4五、 設(shè)計總結(jié)9六、 程序清單9七、 參考文獻22一、設(shè)計目的(1) 只能使用c+語言,源程序要有適當(dāng)?shù)淖⑨?,使程序容易閱讀(2) 至少采用文本菜單界面(如果能采用圖形菜單界面更好)(3) 學(xué)生可自動增加新功能模塊(視情況可另外加分)(4) 寫出課程設(shè)計報告,具體要求見相關(guān)說明文檔(5) 用文件進行管理二、功能介紹(1)數(shù)據(jù)錄入功能(2)查詢功能:分為姓名查詢和應(yīng)繳稅款查詢兩種(3)統(tǒng)計功能:輸入一個部門,統(tǒng)計該部門的人員應(yīng)繳稅款總和并顯示數(shù)據(jù)。(4)排序功能:能實現(xiàn)選擇按月
2、薪升序或降序排序并顯示數(shù)據(jù)。三、程序流程 開始(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類中
3、的成員函數(shù)workerdata()來進入添加模塊,再通過函數(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()來進入
4、顯示模塊,再通過yunsuan類中的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.pri
5、ntw(); w-pprintn;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()來進入刪除模塊,再
6、利用workerdata()函數(shù)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è)置地址
7、函數(shù) void setadr(char 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
8、*qw(char na)比較年齡函數(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è)計基本上涵蓋了我們大一學(xué)習(xí)的c+ 語言的知識點,本次課程設(shè)計題目不僅要求了我們對課本知識有較深刻的了解,同時要求我們有較強
9、的動手能力。這次課程設(shè)計使我了解了一些編程思想和編程技巧,也認(rèn)識了程序開發(fā)的各個環(huán)節(jié),包括構(gòu)思、設(shè)計、編寫、調(diào)試、發(fā)布、文檔化、維護和修訂。如果我們只關(guān)心程序運行的結(jié)果,而對程序代碼的結(jié)構(gòu)的良好絲毫不在意,這是非常不可取的。我們一定要抱著嚴(yán)謹(jǐn)?shù)膽B(tài)度來編程。這次做課程設(shè)計不僅讓我復(fù)習(xí)了以前學(xué)過的內(nèi)容,也讓我知道一個道理:編程需要興趣和實際動手。這應(yīng)該可以借鑒在老師的教學(xué)工作上。創(chuàng)新思維至關(guān)重要,這不僅讓我們寫出精簡的代碼,也有助于開發(fā)出高效的程序。六、程序清單#include#include #include #include#include class worker/員工類 int onoff
10、;/開關(guān)數(shù)據(jù),當(dāng)其為0時表示員工存在,為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
11、 *getadr()return 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(pos
12、t,zhiwei); void 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(1
13、5)聯(lián)系電話setw(15)聯(lián)系地址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,io
14、s:in);/將文件以輸入的方式打開 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
15、,m,k,na,dizhi,zhiwei); 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
16、 &mani;in=i; return 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
17、null; worker *qp(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
18、(mani.getonoff()=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 指導(dǎo)老師:李之玲endl; cout 班 級:網(wǎng)絡(luò)09406endl; cout 學(xué) 生:尹馨寧endl; cout 電
19、話:2786482endl; cout 地 址:長大學(xué)生宿舍1公寓218寢室endl endl; void jiemian3()/界面3,程序結(jié)束后輸出 coutendlendl; cout 忠心感謝您對本系統(tǒng)的支持!endlendlendlendl; cout 指導(dǎo)老師:李之玲endl; cout 班 級:網(wǎng)絡(luò)09406 endl; cout 學(xué) 生:尹馨寧 endlendlendlendlendlendl; cout 輸入任意鍵退出; do exit(0); while(1); void workerdata(); yunsuan()/yunsuan類的析構(gòu)函數(shù),作用:釋放空間,并將數(shù)據(jù)存
20、入文件中 fstream file(worker.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) cou
21、tendlendl; cout 功能菜單 endl; 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; coutendlch
22、1; if(ch1=1) char chi; 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
23、!=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); 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;
24、 break; case 3: char xz3; 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
25、)所找員工資料:endlendl; coutsetw(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(); cout
26、endl; break; case 3: coutpxid; 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.按員工編號修改
27、:endl; cout2.按員工姓名修改:endl; 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職位:p
28、ostt; cout聯(lián)系電話:k; cout聯(lián)系地址: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; coutendl; whil
溫馨提示
- 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)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年全球及中國隱形滲透性密封劑行業(yè)頭部企業(yè)市場占有率及排名調(diào)研報告
- 山東省日照市高三上學(xué)期期末考試語文試卷(含答案)
- 2025會議 展覽合同
- 2025機動車買賣合同模板
- 運輸類合同范本
- 南寧房屋租賃服務(wù)合同模板
- 2025建筑施工物資租賃合同示范文本無擔(dān)保方
- 雞蛋供貨采購合同
- 借款用于投資合同
- 技能培訓(xùn)中的表達技巧訓(xùn)練
- 2024年資格考試-對外漢語教師資格證筆試參考題庫含答案
- 2024年4月自考02382管理信息系統(tǒng)答案及評分參考
- (蘇版)初三化學(xué)上冊:第2單元課題1空氣
- 2023年12月廣東珠海市軌道交通局公開招聘工作人員1人筆試近6年高頻考題難、易錯點薈萃答案帶詳解附后
- 腹腔鏡腎上腺腫瘤切除術(shù)查房護理課件
- 燃氣罩式爐應(yīng)急預(yù)案
- 專題23平拋運動臨界問題相遇問題類平拋運和斜拋運動
- 超聲科醫(yī)德醫(yī)風(fēng)制度內(nèi)容
- 高三開學(xué)收心班會課件
- 蒸汽換算計算表
- 四年級計算題大全(列豎式計算,可打印)
評論
0/150
提交評論