第一篇:中國石油大學(xué)c++實習(xí)報告 小型公司工資管理系統(tǒng)(寫寫幫推薦)
中國石油大學(xué)(華東)信息與控制工程學(xué)院
《程序設(shè)計實習(xí)》報告
小型公司工資管理系統(tǒng)的設(shè)計
專業(yè)班級:電子11級 學(xué)
號: 姓
名:
時 間:2012.09.01~2011.09.07
2012年9月
目錄
一、實習(xí)內(nèi)容????????????????????????????1
二、設(shè)計思路????????????????????????????2
三、程序清單????????????????????????????3
四、運行結(jié)果????????????????????????????14
五、程序使用說明??????????????????????????21
六、總結(jié)及心得體會?????????????????????????2
2程序設(shè)計實習(xí)報告
一、實習(xí)內(nèi)容
設(shè)計一個簡單的《小型公司管理系統(tǒng)》。了解系統(tǒng)開發(fā)的需求設(shè)計、類層次設(shè)計、模版分析、模塊組裝與整體調(diào)試的過程;熟悉程序設(shè)計的方法。
1..題目:小型公司工資管理系統(tǒng)的設(shè)計
2.設(shè)計說明與基本要求:
(1)公司主要有4類人員: 經(jīng)理、技術(shù)員、銷售員、銷售經(jīng)理。要求存儲這些人的職工號、姓名、性別、年齡、月工資等信息;
(2)工資的計算方法:
經(jīng)理:固定月薪為8000元; 技術(shù)員:工作時間×工資(100元/小時); 銷售員:銷售額×4%提成; 銷售經(jīng)理:底薪(5000元)+下屬銷售員銷售額總額×0.5%;
(3)員工基本數(shù)據(jù)的輸入: 要求每類人員不能少于4人,其中銷售員需要8名,每名銷售經(jīng)理手下有2名銷售員。
3.實現(xiàn)的基本功能:數(shù)據(jù)輸入、數(shù)據(jù)統(tǒng)計、數(shù)據(jù)打印、數(shù)據(jù)備份、退出。(應(yīng)用程序中要有菜單,用于選擇各項功能)
4.菜單說明
① 數(shù)據(jù)輸入要通過鍵盤;
② 統(tǒng)計是統(tǒng)計銷售經(jīng)理下屬銷售員的銷售額及銷售額之和,銷售經(jīng)理按工資冒泡排序;
③ 數(shù)據(jù)打印是以表格形式在屏幕上輸出; ④ 數(shù)據(jù)備份是將所有的員工信息保存到文件; ⑤ 退出:結(jié)束程序運行。
程序設(shè)計實習(xí)報告
二、設(shè)計思路
1.類的結(jié)構(gòu)
先創(chuàng)建了一個Employer基類.然后派生出四個類: Manager、Technician、Salesman、Salemanager。分別對經(jīng)理、技術(shù)員、銷售員、銷售經(jīng)理的數(shù)據(jù)進行輸入。
然后選用了一個switch的多分枝選擇結(jié)構(gòu),依次據(jù)菜單的選擇條件執(zhí)行數(shù)據(jù)的輸入、數(shù)據(jù)統(tǒng)計、數(shù)據(jù)打印、數(shù)據(jù)備份和退出等。
數(shù)據(jù)的備份要用到fstream類,用來支持對磁盤文件的輸入輸出。對于switch,結(jié)束循環(huán)用到exit函數(shù)。此函數(shù)的參數(shù)為任意整數(shù)。
程序設(shè)計實習(xí)報告
三、程序清單
#include
{ public: int get1();string get2();char get3();int get4();protected: int num,age;
string name;double pay;char sex;};int employee::get1(){return num;} string employee::get2(){return name;} char employee::get3(){return sex;} int employee::get4(){return age;} class technician:public employee {
程序設(shè)計實習(xí)報告
protected: int hour;public: void display1(){cout<<“技術(shù)員編號:”;cin>>num;
cout<<“技術(shù)員姓名:”;cin>>name;cout<<“技術(shù)員年齡:”;cin>>age;
cout<<“技術(shù)員性別(m/w):”;cin>>sex;cout<<“技術(shù)員工作時間:”;cin>>hour;
} double get_pay();int get_time();};double technician::get_pay(){ pay=100*hour;return pay;} int technician::get_time(){return hour;} class manager:public employee
{public: void display2(){ cout<<“經(jīng)理編號:”;cin>>num;
cout<<“經(jīng)理姓名:”;cin>>name;
cout<<“經(jīng)理性別(m/w):”;cin>>sex;
cout<<“經(jīng)理年齡:”;cin>>age;
} double get_pay(){pay=8000;return pay;}
程序設(shè)計實習(xí)報告
};class salesman:public employee
{ protected: int number;double sales_volume;public: void display3(){cout<<“銷售員編號:”;cin>>num;
cout<<“銷售員姓名:”;cin>>name;
cout<<“銷售員性別(m/w):”;cin>>sex;
cout<<“銷售員年齡:”;cin>>age;
cout<<“銷售員的銷售額:”;cin>>sales_volume;
cout<<“所屬銷售經(jīng)理的編號:”;cin>>number;
} int numb(){return number;} double sa(){return sales_volume;} double get_pay(){return sales_volume*0.04;} };class salesmanager:public manager
{ public: void display4(){cout<<“銷售經(jīng)理的編號:”;cin>>num;
cout<<“銷售經(jīng)理的姓名:”;cin>>name;
cout<<“銷售經(jīng)理的性別(m/w):”;cin>>sex;
程序設(shè)計實習(xí)報告
cout<<“銷售經(jīng)理的年齡:”;cin>>age;
} };void excel(){ cout<<“
★★小型公司工資管理系統(tǒng)★★”< cout<<” cout<<“ cout<<” cout<<“ cout<<” cout<<“ cout<<” cout<<“請選擇一個操作:”;} void main(){int i,j,x,k,y;char a;double mo[4],mone[4];excel();technician t[4];manager m[4]; salesman s[8]; salesmanager sm[4]; cin>>j;while(j==1||j==2||j==3||j==4||j==5){switch(j){case 1: {for(i=0;i<4;i++) “< 請選擇您所需的操作 │”< │ “< │”< │“< │”< │“< ┌─────────────┐ │ │ │ │ │ │ └─────────────┘程序設(shè)計實習(xí)報告 {t[i].display1(); cout<<“-------------”< cout<<“-------------”< {s[i].display3(); cout<<“-------------”< {sm[i].display4(); cout<<“-------------”< excel(); cin>>j;} break;case 2: { for(i=0;i<4;i++){cout<<“職工號為”< cout<<“┌─────┬─────┬─────┐”< cout<<“│ 職工號 │ 姓名 │ 銷售額 │”< cout<<“├─────┼─────┼─────┤”< double money=0; for(x=0;x<8;x++) { if(s[x].numb()==sm[i].get1()) { money=money+s[x].sa(); mone[i]=money*0.005+5000; 程序設(shè)計實習(xí)報告 mo[i]=money*0.005+5000; cout<<“│”< cout<<“├─────┼─────┴─────┤”< } } cout<<“│銷售額總計│”< cout<<“└─────┴───────────┘”< cout<<“│ 職工號 │ 姓名 │ 性別 │ 年齡 │ 工資 │”< cout<<“├─────┼─────┼─────┼────┼────┤”< │ ”< │”< 程序設(shè)計實習(xí)報告 cout<<“-----------”< { {cout<<“請等待?”< 職工基本情況一覽表如下”< │ ”< │”< cout<<”└────┴────┴────┴────┴────┘“< 程序設(shè)計實習(xí)報告 cout<<”│“< │ “< │“< cout<<”└────┴────┴────┴────┴────┘“< │ “< │“< cout<<”└────┴────┴────┴────┴────┘“< 程序設(shè)計實習(xí)報告 “< cout<<”└────┴────┴────┴────┴────┘“< } cout<<”-----------------------------“< { ofstream outfile; //類,對象 outfile.open(”copy.txt“,ios::out); //文件關(guān)聯(lián) cout<<”數(shù)據(jù)備份...“< 職工的基本情況:“< outfile<<” 1、技術(shù)員資料“< outfile<<”┌────┬────┬────┬────┌────┐“< outfile<<”│ 職工號│ 姓名 │ 性別 │ 年齡 │ 工資 │“< outfile<<”│“< │ “< │“< } outfile<< ”└────┴────┴────┴────┴────┘“< outfile<<” 2、銷售員的資料“< outfile<<”┌────┬────┬────┬────┬────┐“< 程序設(shè)計實習(xí)報告 outfile<<”│ 職工號│ 姓名 │ 性別 │ 年齡 │ 工資 │“< {outfile<<”├────┼────┼────┼────┼────┤“< │ “< │“< } outfile<<”└────┴────┴────┴────┴────┘“< outfile<<” 3、銷售經(jīng)理的資料“< outfile<<”┌────┬────┬────┬────┬────┐“< outfile<<”│“< │ “< │“< outfile<<” 4、經(jīng)理的資料“< outfile<<”┌────┬────┬────┬────┬────┐“< 程序設(shè)計實習(xí)報告 outfile<<”│ 職工號│ 姓名 │ 性別 │ 年齡 │ 工資 │“< │ “< │“< } outfile<<”└────┴────┴────┴────┴────┘“< cout<<”備份ok!成功備份到cpp文件中?!? outfile.close(); //將關(guān)聯(lián)文件關(guān)閉 cout< } } } cin>>j;break;} 程序設(shè)計實習(xí)報告 四、運行結(jié)果 程序設(shè)計實習(xí)報告 程序設(shè)計實習(xí)報告 程序設(shè)計實習(xí)報告 程序設(shè)計實習(xí)報告 程序設(shè)計實習(xí)報告 程序設(shè)計實習(xí)報告 程序設(shè)計實習(xí)報告 五、程序的使用說明 運行程序后,根據(jù)菜單欄的提示選擇操作。 輸入“1”回車后,進入職工基本數(shù)據(jù)輸入欄,在這里,要將所有的技術(shù)員、銷售員、銷售經(jīng)理、經(jīng)理的職工號、姓名、性別、工作時間等信息輸入程序中。 職工的數(shù)據(jù)輸入完成后自動跳轉(zhuǎn)到菜單欄,選擇“2”回車后進入到數(shù)據(jù)統(tǒng)計界面,程序會自動對你輸入的各銷售經(jīng)理下屬銷售員的銷售額及銷售額之和進行統(tǒng)計,并對銷售經(jīng)理按工資進行排序。 數(shù)據(jù)統(tǒng)計完成后,選擇“3”,程序會對你輸入的職工基本信息進行打印,打印結(jié)果顯示在控制臺下。 在菜單欄中繼續(xù)選擇“4”后,程序?qū)λ械膯T工信息進行打印并保存到文件中。 最后選擇“5”,根據(jù)提示是否退出本程序,輸入“Y”,結(jié)束程序執(zhí)行;輸入“N”,返回主菜單繼續(xù)進行程序。 程序設(shè)計實習(xí)報告 六、總結(jié)及心得體會 一學(xué)期的c++和實習(xí)結(jié)束了,感覺學(xué)到了很多東西。在這里對這一學(xué)期學(xué)習(xí)C++的學(xué)習(xí)做一總結(jié),對將來的學(xué)習(xí)、工作會很有用處。從對C++的學(xué)習(xí)我知道了對學(xué)習(xí)就要在剛開始時多下功夫,首先要把基礎(chǔ)打好,徹底把知識點弄透徹,這樣后面的才能學(xué)懂。 其實要學(xué)習(xí)c++,想要學(xué)好c++,不僅是課堂上是最重要的,還要在課上多多練習(xí),多上機操作,實踐是檢驗真理的唯一標準。也是,通過此次實習(xí),吸取到很多教訓(xùn),印象最深的就是有一次點擊運行的的時候,剛鍵入幾個字符,一回車,整個程序就無限循環(huán)了。不過在最后加入一個系統(tǒng)調(diào)用函數(shù)exit,終于跳出了。所以c++學(xué)習(xí)不是一朝一夕就能完成的,我們還有很多未知的知識等待去了解,去開發(fā)。 縱觀整個實習(xí),用到最多的就是類、子類、對象了,還有循環(huán)—for、witch,以及一整大個多分枝選擇結(jié)構(gòu)switch。還有就是函數(shù)的調(diào)用也是讓我感覺很有興趣的,這個特別好用,很方便。 通過這次編寫的工資管理程序,對于編程有了更多的了解和體會。我想這有利于今后對c++的使用,鍛煉我們縝密的思維以及提高我們的獨立思考,獨立解決問題,綜合運用所學(xué)知識的能力,提高了上機動手編程的能力和對一些錯誤處理和解決的能力,更加有助于我對對程序調(diào)試的動手能力的提高。這對我們將要來臨的計算機二級考試也有很大的幫助,正好趁此機會復(fù)習(xí)了一下c++大略的知識點。 中國石油大學(xué)(華東)信息與控制工程學(xué)院 《程序設(shè)計實習(xí)》報告 小型公司工資管理系統(tǒng)的設(shè)計 姓 名:Yuppies Liu 時 間:2011.7.14~2011.7.17 2011年7月 目錄 一、實習(xí)內(nèi)容…………………………………………………………………………1 二、設(shè)計思路…………………………………………………………………………2 三、程序代碼清單……………………………………………………………………3 四、運行結(jié)果…………………………………………………………………………10 五、程序使用說明……………………………………………………………………16 六、總結(jié)及心得體會…………………………………………………………………17 程序設(shè)計實習(xí)報告 一、實習(xí)內(nèi)容 題目:《小型公司管理系統(tǒng)的設(shè)計》設(shè)計 2.設(shè)計說明與基本要求 (1)公司主要有4類人員:經(jīng)理、技術(shù)員、銷售員、銷售經(jīng)理。 要求存儲這些人的職工號、姓名、月工資、年齡、性別等信息。(2)工資的計算方法 A 經(jīng)理:固定月薪為8000元; B技術(shù)員:工作時間*小時工資(100元/小時); C銷售員:銷售額*4%提成; D銷售經(jīng)理:底薪(5000元)+所轄部門銷售額總額*0.5%。(3)員工基本數(shù)據(jù)的輸入 要求每類人員不能少于4人,其中銷售員需要8名,每名銷 售經(jīng)理手下有2名銷售員。 (4)各類的數(shù)據(jù)成員訪問權(quán)限設(shè)置為:protected 3.實現(xiàn)基本功能 (1)數(shù)據(jù)輸入:輸入各種數(shù)據(jù) (2)數(shù)據(jù)的輸入 :統(tǒng)計各銷售經(jīng)理下屬銷售員的銷售額及銷售額之和;銷售經(jīng)理按工資進行的帽泡排序; (3)數(shù)據(jù)打?。捍蛴「黝悊T工的數(shù)據(jù)信息; (4)數(shù)據(jù)備份 (5)退出:退出本系統(tǒng) 備注:可適當擴充程序功能,功能擴充得當可加分 4.菜單說明 (1)數(shù)據(jù)錄入指通過鍵盤輸入各類員工的各項數(shù)據(jù) (2)數(shù)據(jù)統(tǒng)計指統(tǒng)計各銷售經(jīng)理下屬銷售員的銷售額及銷售額之和;銷售經(jīng)理按工資進行的冒泡排序 (3)數(shù)據(jù)的打印指按照表格的格式在屏幕上輸出各員工的數(shù)據(jù)信息(4)數(shù)據(jù)的備份指把各類員工的數(shù)據(jù)信息寫入文件中保存(5)退出:結(jié)束程序的運行 程序設(shè)計實習(xí)報告 二、設(shè)計思路 在這個公司中有四類人員:經(jīng)理、兼職技術(shù)人員、銷售員要存儲的信息有姓名、編號、性別、年齡、工資、銷售額、所屬經(jīng)理編號.由于所有職員有相同的成員如編號(num)、姓名(name)、性別(sex)、年齡(age)、工資(wage)。所以可將所有信息歸納為一個職員類(Guyuan),將其作為一個基類,然后派生出子類,實現(xiàn)各類人員不同的信息(如工資計算),由于銷售經(jīng)理具有銷售員和經(jīng)理的特性,所以銷售經(jīng)理采用多重繼承的關(guān)系,繼承銷售員和經(jīng)理的兩個類,為避免二義性將employee定義為虛基類,可用下圖表示: 題目中假設(shè)公司有2名技術(shù)員、4名銷售員、經(jīng)理和銷售經(jīng)理各2名,所以用對象數(shù)組的方式,利用循環(huán)語句來實現(xiàn)人員的輸入和輸出,整個程序設(shè)計如下: 基類雇員類: 數(shù)據(jù)成員有職工號、姓名、年齡、性別、月工資; 成員函數(shù)只有姓名、年齡、性別的設(shè)置函數(shù)。技術(shù)員類:繼承基類 數(shù)據(jù)成員增加了工作時間; 成員函數(shù)有設(shè)置函數(shù)、構(gòu)造函數(shù)、輸出函數(shù)下屬函數(shù)、備份函數(shù)下屬函數(shù)。經(jīng)理類:繼承基類 數(shù)據(jù)成員未增加; 成員函數(shù)有設(shè)置函數(shù)、構(gòu)造函數(shù)、輸出函數(shù)下屬函數(shù)、備份函數(shù)下屬函數(shù)。銷售員類:繼承基類 數(shù)據(jù)成員多了銷售額、所屬經(jīng)理編號; 成員函數(shù)有設(shè)置函數(shù)、構(gòu)造函數(shù)、輸出函數(shù)下屬函數(shù)、備份函數(shù)下屬函數(shù)、銷售額返回函數(shù)、所屬經(jīng)理編號輸出函數(shù)。銷售經(jīng)理類:繼承基類 數(shù)據(jù)成員未增加; 成員函數(shù)有設(shè)置函數(shù)、構(gòu)造函數(shù)、輸出函數(shù)下屬函數(shù)、備份函數(shù)下屬函數(shù)、統(tǒng)計函數(shù)所屬函數(shù)。 程序設(shè)計實習(xí)報告 三、程序代碼清單 #include void set_jishuyuan(){cout<<“技術(shù)員編號:”;cin>>num;cout< cout<<“其姓名:”;cin>>name; cout< cout<<“性別(m/w):”;cin>>sex; cout< cout<<“年齡:”;cin>>age; cout< cout<<“工作時間:”;cin>>time; cout< wage=time*100;} void show_jishuyuan() {cout<<“┃”< void show_jishuyuan4() {outfile<<”┃“< void set_jingli() {cout<<”經(jīng)理的編號:“;cin>>num;cout< cout<<”其姓名:“;cin>>name; cout< cout<<”其性別(m/w):“;cin>>sex; cout< cout<<”年齡:“;cin>>age;cout< wage=8000;} void show_jingli() {cout<<”┃“< ┃┃ ┃┃ ┃ 程序設(shè)計實習(xí)報告 “< {outfile<<”┃“< ┃┃“< class Xiaoshouyuan:protected Guyuan {public: void set_xiaoshouyuan() {cout<<”銷售員的編號:“;cin>>num; cout< cout<<”其姓名:“;cin>>name; cout< cout<<”性別(m/w):“;cin>>sex; cout< cout<<”年齡:“;cin>>age; cout< cout<<”銷售額:“;cin>>sell; cout< cout<<”所屬銷售經(jīng)理的編號:“;cin>>belong;cout< wage=sell*4/100;} void show_xiaoshouyuan() {cout<<”┃“< void show_xiaoshouyuan2() {cout<<”┃“< void show_xiaoshouyuan4() {outfile<<”┃“< int shu_jingli() {return num;} void set_xiaoshoujingli() { cout<<”銷售經(jīng)理的編號:“;cin>>num;cout< cout<<”其姓名:“;cin>>name;cout< cout<<”性別(m/w):“;cin>>sex;cout< cout<<”年齡:“;cin>>age;cout< {cout<<”┃“< ┃ ┃┃ ┃┃ ┃ 程序設(shè)計實習(xí)報告 “< void show_xiaoshoujingli4() {outfile<<”┃“< void show_wage() {cout< {wage=5000+sum*0.5/100;} };void disp(){ cout<<” ★★小型公司工資管理系統(tǒng)★★ “< cout<<” ┏━━━━━━━━━━━━┓ “< cout<<” ┃ 請選擇您所需要的操作 ┃ “< cout<<” ┃ 數(shù)據(jù)輸入: 1,并按回車鍵 ┃ “< cout<<” ┃ 數(shù)據(jù)統(tǒng)計: 2,并按回車鍵 ┃ “< cout<<” ┃ 數(shù)據(jù)打印: 3,并按回車鍵 ┃ “< cout<<” ┃ 數(shù)據(jù)備份: 4,并按回車鍵 ┃ “< cout<<” ┃ 退出系統(tǒng): 5,并按回車鍵 ┃ “< cout<<” ┗━━━━━━━━━━━━┛ “< cout< cout<<”請選擇一個操作: “; } int main(){ const int n=2; int i,w; Jishuyuan a[n]; Jingli b[n]; Xiaoshouyuan c[2*n]; Xiaoshoujingli d[n]; disp();while(1){cin>>w;switch(w){case 1: { {for(i=0;i a[i].set_jishuyuan();cout<<”*******************************************************“< b[i].set_jingli();cout<<”*******************************************************“< c[i].set_xiaoshouyuan(); 程序設(shè)計實習(xí)報告 cout<<”*******************************************************“< d[i].set_xiaoshoujingli();cout<<”*******************************************************“< for(j=0;j { sum[j]=0; cout<<”職工號為“;d[j].show_num();cout<<”銷售經(jīng)理“;d[j].show_name();cout<<”下屬銷售員的業(yè)績?yōu)椋骸? cout<<”┏━━━━━━━┳━━━━━━━┳━━━━━━━┓“< cout<<”┃ 職工號 ┃ 姓名 ┃ 銷售額 ┃“< for(i=0;i<2*n;i++) {if(c[i].belong==d[j].shu_jingli()) {cout<<”┣━━━━━━━╋━━━━━━━╋━━━━━━━┫“< c[i].show_xiaoshouyuan(); sum[j]=sum[j]+c[i].sell;}} cout<<”┣━━━━━━━╋━━━━━━━┻━━━━━━━┫“< cout<<”┃“<<”銷售額總計 ┃“< cout<<”┗━━━━━━━┻━━━━━━━━━━━━━━━┛“< cout<<”┃ 職工號 ┃ 姓名 ┃ 性別 ┃ 年齡 ┃ 工資 ┃“< Xiaoshoujingli x;double y;for(i=0;i for(j=0;j第二篇:小型公司工資管理系統(tǒng)--(完結(jié))