版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、高職學(xué)院 C+ 程序設(shè)計語言上學(xué)期 課程設(shè)計報告 (2011 -2012第 1 學(xué)期) 課程設(shè)計類型: C 語言程序設(shè)計 題目:人員信息管理系統(tǒng) 學(xué)號: 姓名: 專業(yè):計算機應(yīng)用基礎(chǔ) 指導(dǎo)教師: 課程設(shè)計日期: 2012.12.23-2012.12.27. 目錄 1. 問題分析 1. 2. 總體設(shè)計 1. 2.1功能分析 1 3. 詳細(xì)設(shè)計 2. 3.1程序結(jié)構(gòu)圖 2 3.2程序類結(jié)構(gòu)圖 2 3.3程序類結(jié)構(gòu)圖 3 4. 功能測試 4. 4.1本系統(tǒng)的主界面 4 4.2錄入功能的主界面 4 4.3顯示功能的主界面 5 4.4查找功能的主界面 5 4.5修改功能的主界面 6 4.6刪除功能的主界
2、面 6 4.7清理功能的主界面 7 4.8退出功能的主界面 7 5. 課設(shè)小結(jié) 7. 參考 文 獻(xiàn)8. 附錄:源代碼清單 8. 1. 問題分析 1.1 問題描述 1. 題目人員信息管理系統(tǒng)設(shè)計 2. 設(shè)計說明與要求 (1) 公司主要有 4 類人員:經(jīng)理、技術(shù)人員、銷售員、銷售經(jīng)理,要求存儲這 些人的姓名、年齡、工資信息。 ( 2) 工資的計算方法 A、經(jīng)理:固定為8000元; B、技術(shù)員:工作時間 * 每小時酬金( 100RMB); C、銷售員:4%提成; D、銷售經(jīng)理:1%提成+固定工資(5000RMB); ( 3) 實現(xiàn)功能 錄入:輸入各種數(shù)據(jù),并錄入 TXT 文件保存; 顯示:顯示員工的
3、數(shù)據(jù)信息; 查找:查找員工的數(shù)據(jù)信息; 修改:修改員工的數(shù)據(jù)信息; 刪除:刪除員工的數(shù)據(jù)信息; 退出:退出本系統(tǒng); 清理存儲文件:清理系統(tǒng)產(chǎn)生的 TXT文件; 2. 總體設(shè)計 2.1 功能分析 使用面向?qū)ο蟮某绦蛟O(shè)計思想進(jìn)行分析,整個系統(tǒng)涉及兩大類信息和操作, 公司,人員。所以系統(tǒng)主要涉及兩個大類:公司類business人員類persort系 統(tǒng)的總體框架就是公司類, 人員類的定義; 主函數(shù)中定義一個公司對象, 循環(huán)顯 示主菜單并根據(jù)用戶選擇調(diào)用公司類的相應(yīng)方法 (成員函數(shù) )。 3.詳細(xì)設(shè)計 3.1程序結(jié)構(gòu)圖 3.2程序類結(jié)構(gòu)圖 Person 類 char name20; char post
4、20; char hour20; int age ; int nu mber ; void in ; void pay ; .void out; Sell 類 Technician 類 Busin ess 類 int phpay; int monthpay; void in ; void pay; void out; int hourlyRate ; int workHours ; void in ; void pay; void out; J int time ; void in ; void pay; void out; Sell 類 Bagman 類 int phpay ; int ph
5、pay ; int monthpay ; void in ; void in ; void pay ; void pay ; void out; void out; 3.3程序類結(jié)構(gòu)圖 開始 輸入選擇 Switch(c) Case 6 Case 1 Case 2 Case 3 Case 4 Case 5 Case 0 結(jié)束 錄入員工信息 顯示員工信息 查找員工信息 修改員工信息 刪除員工信息 刪除存儲文件 4.功能測試 4.1本系統(tǒng)的主界面 4.2錄入功能的主界面 g *C: Docu*ent s and Sett ingsAdB.inist rat or桌面C+DebugCpp 1. exe
6、 e RT員理 斜人經(jīng)員 封理術(shù)隹羈 自心 . 的 請輸入選擇: n|x| e e RT員理 斜人經(jīng)員 封理術(shù)隹羈 自心 . 的 4.3顯示功能的主界面 g *C: Docu*ent s and Sett ings.Ad*inist rat or桌面C+DebugCpp 1. exe 幘輸入選擇: 1 情揄入職工的編號:1 :8000 情輸入職工的姓名:1 崑否繼續(xù)使甬錄入功能:?_ -I 4.4查找功能的主界面 4.5修改功能的主界面 4.6刪除功能的主界面 4.7清理功能的主界面 4.8退出功能的主界面 g *C: Docuents and Sett ingsAdB.inist rat o
7、rMffiC+DebugCpp 1. exe 4C-M- 4C-M- 4C-M- 4C-M- i-A 2.顯嚇 皐查找 4-修改 0 -清理存儲文件 情輸入你要選擇的功能1-6: Press any key to continue 5.課設(shè)小結(jié) 根據(jù)課程設(shè)計的要求,我思考出了自己的課題,我用本學(xué)期所學(xué)的C+面向?qū)ο蟮闹R 來編寫程序。我利用面向?qū)ο蟮姆椒ㄒ约癈+的編程思想來完成系統(tǒng)的設(shè)計,在設(shè)計的過程 中,建立清晰的層次,當(dāng)然在調(diào)試過程中我也遇到了許多問題。 本程序由雇員這個基類派生出多個派生類, 并且調(diào)用多個函數(shù)。 主函數(shù)主要運用選擇結(jié) 構(gòu)。派生類中的保護(hù)類數(shù)據(jù)要通過定義公有類型的函數(shù)來從類
8、外調(diào)用。和一些相當(dāng)復(fù)雜的 算法,自己看了都亂,頭都暈。不過,我相信,不經(jīng)歷風(fēng)雨怎么能見彩虹。在解決了這一切 后,我有一種:天將降大任于斯人也,必先勞其筋骨,餓其體膚的感覺! 參考文獻(xiàn) 1. 錢能主編,C+程序設(shè)計教程,清華大學(xué)出版社,2000.11 2. 戴鋒編著, Visual C+ 程序設(shè)計基礎(chǔ) , 清華大學(xué)出版社 ,2001.4 3. 施平安主編,C+程序設(shè)計教程(第四版),清華大學(xué)出版社,2004.3 4. 林麗閩主編,標(biāo)準(zhǔn)C+g序設(shè)計教程,電子工業(yè)出版社,2003.6.1 5. 譚浩強主編,C+g序設(shè)計,清華大學(xué)出版社,2004.6 附錄:源代碼清單 #include #includ
9、e #include #include #include class person public: char name20,post20,hour20; int age,number; ; class business :public person public : int time; J /經(jīng)理 class mgr : public person public: int monthpay; mgr : mgr() monthpay=8000 ; void out() coutnumber ; coutname ; coutage ; cout 該職工的月薪為 :monthpayendl; v
10、oid in() cout編號:number 姓名:name 年齡:age 職稱: 經(jīng)理 月薪 :monthpayendl; ; /技術(shù)人員 class technician :public person public: int hourlyRate ; /每小時酬金 int workHours ; /當(dāng)月工作時數(shù) int pay; technician : technician() hourlyRate=100 ; ; void in() cout編號:number 姓名:name 年齡:age 職稱: 技術(shù)人員 月薪:payendl ; void out() coutnumber ; co
11、utname ; coutworkHours ; coutage ; pay=hourlyRate*workHours; cout 該職工的月薪為 :payendl; ; /銷售經(jīng)理 class sell :public business public: int phpay,monthpay; sell : sell() phpay=1,monthpay=5000; void in() cout 編號 :number 姓名 :name 銷售額 :time 年 齡:age 職稱:銷售經(jīng)理 月薪:pay()endl ; int pay() return(phpay*time+monthpay);
12、void out() coutnumber ; coutname ; couttime ; coutage ; cout 職工的月薪為 :pay()endl; ; /推銷員 class bagman :public business public: int phpay ; bagman : bagman() phpay=4; void in() cout 編號 :number 姓名 :name 銷售額 :time 年 齡:age 職稱:推銷員 年薪:pay()endl ; int pay() return(phpay*time); void out() coutnumber ; coutnam
13、e ; couttime ; coutage ; cout該職工的月薪為:pay()endl; ; /輸入函數(shù) void write1() mgr p; p.out(); ofstream myfile(f1.txt,ios : binary|ios : ate); myfile.write(char*) myfile.close(); void write2() technician p; p.out(); ofstream myfile(f2.txt,ios : binary|ios : ate); myfile.write(char*) myfile.close(); void writ
14、e3() sell p; p.out(); ofstream myfile(f3.txt,ios : binary|ios : ate); myfile.write(char*) myfile.close(); void write4() bagman p; ofstream myfile(f4.txt,ios : binary|ios : ate); p.out(); myfile.write(char*) myfile.close(); void build() cout * 請選擇職工的信息 * endl; cout * 1.經(jīng)理 * endl; cout * 2.技術(shù)人員 * endl
15、; cout * 3.銷售經(jīng)理 * endl; cout * 4.推銷員 * endl; coutendl; cout I * endl; cout 請輸入選擇 :ch; while(ch!=N break ; case 2 : write2(); break ; case 3 : write3(); break ; case 4 : write4(); break ; default : coutERROR!endl; break ; coutch; if(ch=Y|ch=y) cout 請輸入選擇 :ch; /顯示函數(shù) void show1() ifstream myfile(f1.txt
16、,ios : binary|ios : out|ios : in); mgr p; myfile.read(char*) while(!myfile.eof() p.in(); myfile.read(char*) myfile.close(); void show2() ifstream myfile(f2.txt,ios : binary|ios : out|ios : in); technician p; myfile.read(char*) while(!myfile.eof() p.in(); myfile.read(char*) myfile.close(); void show3
17、() ifstream myfile(f3.txt,ios : binary|ios : out|ios : in); sell p ; myfile.read(char*) while(!myfile.eof() p.in(); myfile.read(char*) myfile.close(); void show4() ifstream myfile(f4.txt,ios : binary|ios : out|ios : in); bagman p ; myfile.read(char*) while(!myfile.eof() p.in(); myfile.read(char*) my
18、file.close(); void show0() show1(); show2(); show3(); show4(); void show() cout * 你正在顯示 *endl; cout * 0.全部顯示 *endl; cout * 1.經(jīng)理 *endl; cout * 2.技術(shù)人員 *endl; cout * 3.銷售經(jīng)理 *endl; cout * 4.推銷員 *endl; cout I * endl; cout 請選擇你要顯示的職工類 :c ; while(c!=N break; case 1 : show1(); break; case 2 : show2(); break
19、; case 3 : show3(); break; case 4 : show4(); break; default : coutERROR!endl; break; cout 是否繼續(xù)使用顯示功能 (Y/N)?c; if(c=Y|c=y) cout 請選擇你要顯示的職工類 :c; /查找函數(shù) void search1() int m=1; cout 請輸入你要查找的編號 :number; ifstream myfile(f1.txt,ios : binary|ios : out|ios : in); mgr p; myfile.read(char*) while(!myfile.eof()
20、 if(number=p.number) p.in(); myfile.close(); m=0; myfile.read(char*) if(m) cout 查無此人 !endl; void search2() int m=1; cout 請輸入你要查找的編號 :number; ifstream myfile(f2.txt,ios : binary|ios : out|ios : in); technician p; myfile.read(char*) while(!myfile.eof() if(number=p.number) p.in(); myfile.close(); m=0;
21、myfile.read(char*) if(m) cout 查無此人 !endl; void search3() int m=1; cout 請輸入你要查找的編號 :number; ifstream myfile(f3.txt,ios : binary|ios : out|ios : in); sell p ; myfile.read(char*) while(!myfile.eof() if(number=p.number) p.in(); myfile.close(); m=0; myfile.read(char*) if(m) cout 查無此人 !endl; void search4(
22、) int m=1; cout請輸入你要查找的編號:number; ifstream myfile(f4.txt,ios : binary|ios : out|ios : in); bagman p ; myfile.read(char*) while(!myfile.eof() if(number=p.number) p.in(); myfile.close(); m=0; myfile.read(char*) if(m) cout 查無此人 !endl; void search() cout * 你正在查找 *endl; cout * 1.經(jīng)理 *endl; cout * 2.技術(shù)人員 *
23、endl; cout * 3.銷售經(jīng)理 *endl; cout * 4.推銷員 *endl; cout I * endl; cout 請選擇你的職稱類型 :c; while(c!=N break; case 2 : search2(); break; case 3 : search3(); break; case 4 : search4(); break; default : coutERROR!endl; break; coutc; if(c=Y|c=y) cout 請選擇你的職稱類型 :c; /修改函數(shù) void repair1(void) int num,i=0,k=0; mgr*p1=
24、new mgr50; coutnum ; ifstream h1(f1.txt,ios : binary|ios : in); h1.read(char*) while(!h1.eof() i+; h1.read(char*) h1.close(); k=i ; for(i=0;ik;i+) if(num=p1i.number) p1i.out(); cout 修改完畢 !endl ; ofstream h2(f1.txt,ios : binary|ios : out); for(i=0;ik;i+) h2.write(char*) h2.close(); deletep1 ; void re
25、pair2(void) int num,i=0,k=0; technician*p2=new technician50; coutnum; ifstream h2(f2.txt,ios : binary|ios : in); h2.read(char*) while(!h2.eof() i+; h2.read(char*) h2.close(); k=i ; for(i=0;ik;i+) if(num=p2i.number) p2i.out(); cout 修改完畢 !endl; ofstream h1(f2.txt,ios : binary|ios : out); for(i=0;ik;i+
26、) h1.write(char*) h1.close(); deletep2; void repair3(void) int num,i=0,k=0; sell*p6=new sell50; coutnum ; fstream h6(f3.txt,ios : binary|ios : out|ios : in); h6.read(char*) while(!h6.eof() i+; h6.read(char*) k=i ; h6.close(); for(i=0;ik;i+) if(num=p6i.number) p6i.in(); cout 修改完畢 !endl; ofstream h1(f
27、6.txt,ios : binary|ios : out); for(i=0;ik;i+) h1.write(char*) h1.close(); deletep6; void repair4(void) int num,i=0,k=0 ; bagman*p7=new bagman50; coutnum; fstream h7(f4.txt,ios : binary|ios : out|ios : in); h7.read(char*) while(!h7.eof() i+; h7.read(char*) k=i; h7.close(); for(i=0;ik;i+) if(num=p7i.n
28、umber) p7i.out(); cout 修改完畢 !endl; ofstream h1(f7.txt,ios : binary|ios : out); for(i=0;ik;i+) h1.write(char*) h1.close(); deletep7; void repair() cout * 你正在修改 *endl; cout * 1.經(jīng)理 *endl; cout * 2.技術(shù)人員 *endl; cout * 3.銷售經(jīng)理 *endl; cout * 4.推銷員 *endl; cout I * endl; cout 請輸入你要修改的職稱類型 :c; while(c!=N break
29、; case 2 : repair2(); break; case 3 : repair3(); break; case 4 : repair4(); break; default : coutERROR!endl; break; cout 是否繼續(xù)修改 (Y/N)?c; if(c=Y|c=y) cout 請輸入你要修改的職稱類型 :c; void delete1() int i=0,number; ifstream myfile(f1.txt,ios : binary|ios : in); mgr p30; myfile.read(char*)(p+i),sizeof*p); cout 請輸
30、入你要刪除的對象的編號 :number; while(!myfile.eof() if(number=pi.number) i-; i+; myfile.read(char*)(p+i),sizeof*p); int k=i; myfile.close(); ofstream file2(f1.txt,ios : binary|ios : out); for(i=0;ik;i+) file2.write(char*)(p+i),sizeof*p); void delete2() int i=0,number ; ifstream myfile(f2.txt,ios : binary|ios :
31、 in); technician p30; myfile.read(char*)(p+i),sizeof*p); cout請輸入你要刪除的對象的編號:number ; while(!myfile.eof() if(number=pi.number) i-; i+; myfile.read(char*)(p+i),sizeof*p); int k=i; myfile.close(); ofstream file2(f2.txt,ios : binary|ios : out); for(i=0;ik;i+) file2.write(char*)(p+i),sizeof*p); void delet
32、e3() int i=0,number; ifstream myfile(f3.txt,ios : binary|ios : in); sell p30; myfile.read(char*)(p+i),sizeof*p); cout請輸入你要刪除的對象的編號:number ; while(!myfile.eof() if(number=pi.number) i-; i+; myfile.read(char*)(p+i),sizeof*p); int k=i; myfile.close(); ofstream file2(f3.txt,ios : binary|ios : out); for(
33、i=0;ik;i+) file2.write(char*)(p+i),sizeof*p); void delete4() int i=0,number; ifstream myfile(f4.txt,ios : binary|ios : in); bagman p30; myfile.read(char*)(p+i),sizeof*p); cout請輸入你要刪除的對象的編號:number ; while(!myfile.eof() if(number=pi.number) i-; i+; myfile.read(char*)(p+i),sizeof*p); int k=i; myfile.cl
34、ose(); ofstream file2(f4.txt,ios : binary|ios : out); for(i=0;ik;i+) file2.write(char*)(p+i),sizeof*p); void delet() cout * cout * cout * cout * cout * 你正在刪除 1.經(jīng)理 2.技術(shù)人員 3.銷售經(jīng)理 4.推銷員 cout * I * endl; endl; *endl; *endl; *endl; *endl; cout 請輸入你要刪除對象的類型 :c; while(c!=N break; case 2 : delete2(); break; case 3 : delete3(); break; case 4 : delete4(); break; default : coutERROR!endl; break; cout 是否繼續(xù)使用刪除功能 (Y/N)?c; if(c=Y|c=y) cout 請輸入你要刪除對象的類型 :c; voi
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- (2篇)2024年政治個人教學(xué)總結(jié)
- 2024年湖北健康職業(yè)學(xué)院高職單招語文歷年參考題庫含答案解析
- 2024年海南外國語職業(yè)學(xué)院高職單招數(shù)學(xué)歷年參考題庫含答案解析
- 實義動詞說課講解
- 2016春九年級物理下冊-專題復(fù)習(xí)3-測量-機械運動課件-(新版)粵教滬版
- 二零二五年度工業(yè)園區(qū)物業(yè)客戶投訴處理合同3篇
- 2024年陽新縣第二人民醫(yī)院高層次衛(wèi)技人才招聘筆試歷年參考題庫頻考點附帶答案
- 2024年阜陽市地區(qū)人民醫(yī)院高層次衛(wèi)技人才招聘筆試歷年參考題庫頻考點附帶答案
- 二零二五年技術(shù)專利權(quán)轉(zhuǎn)讓與產(chǎn)業(yè)鏈融合合作協(xié)議3篇
- 2024年長葛市人民醫(yī)院高層次衛(wèi)技人才招聘筆試歷年參考題庫頻考點附帶答案
- 家政服務(wù)與社區(qū)合作方案
- 2024年深圳市龍崗區(qū)城市建設(shè)投資集團(tuán)有限公司招聘筆試真題
- 2024-2025學(xué)年初中七年級上學(xué)期數(shù)學(xué)期末綜合卷(人教版)含答案
- 2024-2025學(xué)年北京市朝陽區(qū)高三上學(xué)期期末考試數(shù)學(xué)試卷(含答案)
- 四年級數(shù)學(xué)(除數(shù)是兩位數(shù))計算題專項練習(xí)及答案
- 四川省綿陽市涪城區(qū)2024-2025學(xué)年九年級上學(xué)期1月期末歷史試卷(含答案)
- 2025年山東水發(fā)集團(tuán)限公司社會招聘高頻重點提升(共500題)附帶答案詳解
- 2024年計算機二級WPS考試題庫(共380題含答案)
- 《湖南省房屋建筑和市政工程消防質(zhì)量控制技術(shù)標(biāo)準(zhǔn)》
- 《工業(yè)園區(qū)節(jié)水管理規(guī)范》
- 警校生職業(yè)生涯規(guī)劃
評論
0/150
提交評論