第一篇:小型公司工資管理系統--(完結)
中國石油大學(華東)信息與控制工程學院
《程序設計實習》報告
小型公司工資管理系統的設計
姓
名:Yuppies Liu 時 間:2011.7.14~2011.7.17
2011年7月
目錄
一、實習內容…………………………………………………………………………1
二、設計思路…………………………………………………………………………2
三、程序代碼清單……………………………………………………………………3
四、運行結果…………………………………………………………………………10
五、程序使用說明……………………………………………………………………16
六、總結及心得體會…………………………………………………………………17
程序設計實習報告
一、實習內容 題目:《小型公司管理系統的設計》設計 2.設計說明與基本要求
(1)公司主要有4類人員:經理、技術員、銷售員、銷售經理。
要求存儲這些人的職工號、姓名、月工資、年齡、性別等信息。(2)工資的計算方法
A 經理:固定月薪為8000元;
B技術員:工作時間*小時工資(100元/小時); C銷售員:銷售額*4%提成;
D銷售經理:底薪(5000元)+所轄部門銷售額總額*0.5%。(3)員工基本數據的輸入
要求每類人員不能少于4人,其中銷售員需要8名,每名銷
售經理手下有2名銷售員。
(4)各類的數據成員訪問權限設置為:protected 3.實現基本功能
(1)數據輸入:輸入各種數據
(2)數據的輸入 :統計各銷售經理下屬銷售員的銷售額及銷售額之和;銷售經理按工資進行的帽泡排序;
(3)數據打?。捍蛴「黝悊T工的數據信息;
(4)數據備份
(5)退出:退出本系統
備注:可適當擴充程序功能,功能擴充得當可加分 4.菜單說明
(1)數據錄入指通過鍵盤輸入各類員工的各項數據
(2)數據統計指統計各銷售經理下屬銷售員的銷售額及銷售額之和;銷售經理按工資進行的冒泡排序
(3)數據的打印指按照表格的格式在屏幕上輸出各員工的數據信息(4)數據的備份指把各類員工的數據信息寫入文件中保存(5)退出:結束程序的運行
程序設計實習報告
二、設計思路
在這個公司中有四類人員:經理、兼職技術人員、銷售員要存儲的信息有姓名、編號、性別、年齡、工資、銷售額、所屬經理編號.由于所有職員有相同的成員如編號(num)、姓名(name)、性別(sex)、年齡(age)、工資(wage)。所以可將所有信息歸納為一個職員類(Guyuan),將其作為一個基類,然后派生出子類,實現各類人員不同的信息(如工資計算),由于銷售經理具有銷售員和經理的特性,所以銷售經理采用多重繼承的關系,繼承銷售員和經理的兩個類,為避免二義性將employee定義為虛基類,可用下圖表示:
題目中假設公司有2名技術員、4名銷售員、經理和銷售經理各2名,所以用對象數組的方式,利用循環語句來實現人員的輸入和輸出,整個程序設計如下: 基類雇員類:
數據成員有職工號、姓名、年齡、性別、月工資; 成員函數只有姓名、年齡、性別的設置函數。技術員類:繼承基類 數據成員增加了工作時間;
成員函數有設置函數、構造函數、輸出函數下屬函數、備份函數下屬函數。經理類:繼承基類 數據成員未增加;
成員函數有設置函數、構造函數、輸出函數下屬函數、備份函數下屬函數。銷售員類:繼承基類
數據成員多了銷售額、所屬經理編號;
成員函數有設置函數、構造函數、輸出函數下屬函數、備份函數下屬函數、銷售額返回函數、所屬經理編號輸出函數。銷售經理類:繼承基類 數據成員未增加;
成員函數有設置函數、構造函數、輸出函數下屬函數、備份函數下屬函數、統計函數所屬函數。
程序設計實習報告
三、程序代碼清單
#include
void set_jishuyuan(){cout<<“技術員編號:”;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<<”經理的編號:“;cin>>num;cout< cout<<”其姓名:“;cin>>name; cout< cout<<”其性別(m/w):“;cin>>sex; cout< cout<<”年齡:“;cin>>age;cout< wage=8000;} void show_jingli() {cout<<”┃“< ┃┃ ┃┃ ┃ 程序設計實習報告 “< {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<<”所屬銷售經理的編號:“;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<<”銷售經理的編號:“;cin>>num;cout< cout<<”其姓名:“;cin>>name;cout< cout<<”性別(m/w):“;cin>>sex;cout< cout<<”年齡:“;cin>>age;cout< {cout<<”┃“< ┃ ┃┃ ┃┃ ┃ 程序設計實習報告 “< void show_xiaoshoujingli4() {outfile<<”┃“< void show_wage() {cout< {wage=5000+sum*0.5/100;} };void disp(){ cout<<” ★★小型公司工資管理系統★★ “< cout<<” ┏━━━━━━━━━━━━┓ “< cout<<” ┃ 請選擇您所需要的操作 ┃ “< cout<<” ┃ 數據輸入: 1,并按回車鍵 ┃ “< cout<<” ┃ 數據統計: 2,并按回車鍵 ┃ “< cout<<” ┃ 數據打印: 3,并按回車鍵 ┃ “< cout<<” ┃ 數據備份: 4,并按回車鍵 ┃ “< cout<<” ┃ 退出系統: 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(); 程序設計實習報告 cout<<”*******************************************************“< d[i].set_xiaoshoujingli();cout<<”*******************************************************“< for(j=0;j { sum[j]=0; cout<<”職工號為“;d[j].show_num();cout<<”銷售經理“;d[j].show_name();cout<<”下屬銷售員的業績為:“< 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 if(sum[i] {x=d[i];d[i]=d[j];d[j]=x;y=sum[i];sum[i]=sum[j];sum[j]=y;} for(i=0;i { cout<<”┣━━━━━━╋━━━━━━╋━━━━━━╋━━━━━━╋━━━━━━┫“< d[i].wage_sum(sum[i]); d[i].show_xiaoshoujingli();} cout<<”┗━━━━━━┻━━━━━━┻━━━━━━┻━━━━━━┻━━━━━━┛“< disp();};break;} 程序設計實習報告 case 3:{ { int i;cout<<”請等待......“< cout<<”┃ 職工號 ┃ 姓名 ┃ 性別 ┃ 年齡 ┃ 工資 ┃“< for(i=0;i { cout<<”┣━━━━━━╋━━━━━━╋━━━━━━╋━━━━━━╋━━━━━━┫“< a[i].show_jishuyuan();} cout<<”┗━━━━━━┻━━━━━━┻━━━━━━┻━━━━━━┻━━━━━━┛“< cout<<”┏━━━━━━┳━━━━━━┳━━━━━━┳━━━━━━┳━━━━━━┓“< cout<<”┃ 職工號 ┃ 姓名 ┃ 性別 ┃ 年齡 ┃ 工資 ┃“< for(i=0;i { cout<<”┣━━━━━━╋━━━━━━╋━━━━━━╋━━━━━━╋━━━━━━┫“< cout<<”┗━━━━━━┻━━━━━━┻━━━━━━┻━━━━━━┻━━━━━━┛“< cout<<”*******************************************************“< cout<<”銷售經理“< cout<<”┏━━━━━━┳━━━━━━┳━━━━━━┳━━━━━━┳━━━━━━┓“< cout<<”┃ 職工號 ┃ 姓名 ┃ 性別 ┃ 年齡 ┃ 工資 ┃“< for(i=0;i { cout<<”┣━━━━━━╋━━━━━━╋━━━━━━╋━━━━━━╋━━━━━━┫“< d[i].show_xiaoshoujingli();} cout<<”┗━━━━━━┻━━━━━━┻━━━━━━┻━━━━━━┻━━━━━━┛“< cout<<”┏━━━━┳━━━━┳━━━━┳━━━━┳━━━━┳━━━━━━━━━┓“< 程序設計實習報告 cout<<”┃ 職工號 ┃ 姓名 ┃ 性別 ┃ 年齡 ┃ 工資 ┃ 所屬部門經理編號 ┃“< for(i=0;i { cout<<”┣━━━━╋━━━━╋━━━━╋━━━━╋━━━━╋━━━━━━━━━┫“< c[i].show_xiaoshouyuan2();} cout<<”┗━━━━┻━━━━┻━━━━┻━━━━┻━━━━┻━━━━━━━━━┛“< disp();};break;} case 4:{{ int i;outfile<<”職工基本情況一覽表如下“< outfile<<”┃ 職工號 ┃ 姓名 ┃ 性別 ┃ 年齡 ┃ 工資 ┃“< for(i=0;i { outfile<<”┣━━━━━━╋━━━━━━╋━━━━━━╋━━━━━━╋━━━━━━┫“< outfile<<”┏━━━━━━┳━━━━━━┳━━━━━━┳━━━━━━┳━━━━━━┓“< 職工號 ┃ 姓名 ┃ 性別 ┃ 年齡 ┃ 工資 ┃“< outfile<<”*******************************************************“< outfile<<”銷售經理“< outfile<<”┏━━━━━━┳━━━━━━┳━━━━━━┳━━━━━━┳━━━━━━┓“< outfile<<”┃ 職工號 ┃ 姓名 ┃ 性別 ┃ 年齡 程序設計實習報告 ┃ 工資 ┃“< for(i=0;i { outfile<<”┣━━━━━━╋━━━━━━╋━━━━━━╋━━━━━━╋━━━━━━┫“< d[i].show_xiaoshoujingli4();} outfile<<”┗━━━━━━┻━━━━━━┻━━━━━━┻━━━━━━┻━━━━━━┛“< outfile<<”*******************************************************“< outfile<<”銷售員“< outfile<<”┏━━━━┳━━━━┳━━━━┳━━━━┳━━━━┳━━━━━━━━━┓“< outfile<<”┃ 職工號 ┃ 姓名 ┃ 性別 ┃ 年齡 ┃ 工資 ┃ 所屬部門經理編號 ┃“< for(i=0;i { outfile<<”┣━━━━╋━━━━╋━━━━╋━━━━╋━━━━╋━━━━━━━━━┫“< c[i].show_xiaoshouyuan4();} outfile<<”┗━━━━┻━━━━┻━━━━┻━━━━┻━━━━┻━━━━━━━━━┛“< outfile<<”***********************************************************************“< outfile.close(); disp();};break;} case 5:{ {exit(0);};break;} default:{{cout<<” 選擇錯誤,請重新選擇!"< disp();};break;} } } return 0;} 程序設計實習報告 四、運行結果 ★★小型公司工資管理系統★★ ┏━━━━━━━━━━━━┓ ┃ 請選擇您所需要的操作 ┃ ┃ 數據輸入: 1,并按回車鍵 ┃ ┃ 數據統計: 2,并按回車鍵 ┃ ┃ 數據打印: 3,并按回車鍵 ┃ ┃ 數據備份: 4,并按回車鍵 ┃ ┃ 退出系統: 5,并按回車鍵 ┃ ┗━━━━━━━━━━━━┛ 請選擇一個操作: 1 技術員編號:101 其姓名:zhang1 性別(m/w):w 年齡:27 工作時間:56 技術員編號:102 其姓名:wang1 性別(m/w):m 年齡:27 工作時間:58 ******************************************************* 經理的編號:201 其姓名:wang2 其性別(m/w):w 年齡:34 經理的編號:202 程序設計實習報告 其姓名:36 其性別(m/w):m 年齡:36 ******************************************************* 銷售員的編號:301 其姓名:zhang3 性別(m/w):m 年齡:28 銷售額:50000 所屬銷售經理的編號:401 銷售員的編號:302 其姓名:wang3 性別(m/w):w 年齡:32 銷售額:54000 所屬銷售經理的編號:401 銷售員的編號:303 其姓名:wan1 性別(m/w):w 年齡:35 銷售額:60000 所屬銷售經理的編號:402 銷售員的編號:304 程序設計實習報告 其姓名:wan2 性別(m/w):m 年齡:26 銷售額:80000 所屬銷售經理的編號:402 ******************************************************* 銷售經理的編號:401 其姓名:sun 性別(m/w):w 年齡:36 銷售經理的編號:402 其姓名:liu 性別(m/w):w 年齡:29 ******************************************************* ★★小型公司工資管理系統★★ ┏━━━━━━━━━━━━┓ ┃ 請選擇您所需要的操作 ┃ ┃ 數據輸入: 1,并按回車鍵 ┃ ┃ 數據統計: 2,并按回車鍵 ┃ ┃ 數據打印: 3,并按回車鍵 ┃ ┃ 數據備份: 4,并按回車鍵 ┃ ┃ 退出系統: 5,并按回車鍵 ┃ ┗━━━━━━━━━━━━┛ 請選擇一個操作: 2 職工號為401銷售經理sun下屬銷售員的業績為: 程序設計實習報告 ┏━━━━━━━┳━━━━━━━┳━━━━━━━┓ ┃ 職工號 ┃ 姓名 ┃ 銷售額 ┃ ┣━━━━━━━╋━━━━━━━╋━━━━━━━┫ ┃ 301┃ zhang3┃ 50000┃ ┣━━━━━━━╋━━━━━━━╋━━━━━━━┫ ┃ 302┃ wang3┃ 54000┃ ┣━━━━━━━╋━━━━━━━┻━━━━━━━┫ ┃銷售額總計 ┃ 104000 ┃ ┗━━━━━━━┻━━━━━━━━━━━━━━━┛ 職工號為402銷售經理liu下屬銷售員的業績為: ┏━━━━━━━┳━━━━━━━┳━━━━━━━┓ ┃ 職工號 ┃ 姓名 ┃ 銷售額 ┃ ┣━━━━━━━╋━━━━━━━╋━━━━━━━┫ ┃ 303┃ wan1┃ 60000┃ ┣━━━━━━━╋━━━━━━━╋━━━━━━━┫ ┃ 304┃ wan2┃ 80000┃ ┣━━━━━━━╋━━━━━━━┻━━━━━━━┫ ┃銷售額總計 ┃ 140000 ┃ ┗━━━━━━━┻━━━━━━━━━━━━━━━┛ 銷售經理按工資排序為: ┏━━━━━━┳━━━━━━┳━━━━━━┳━━━━━━┳━━━━━━┓ ┃ 職工號 ┃ 姓名 ┃ 性別 ┃ 年齡 ┃ 工資 ┃ ┣━━━━━━╋━━━━━━╋━━━━━━╋━━━━━━╋━━━━━━┫ ┃ 402┃ liu┃ w┃ 29┃ 5700┃ ┣━━━━━━╋━━━━━━╋━━━━━━╋━━━━━━╋━━━━━━┫ ┃ 401┃ sun┃ w┃ 36┃ 5520┃ ┗━━━━━━┻━━━━━━┻━━━━━━┻━━━━━━┻━━━━━━┛ ★★小型公司工資管理系統★★ ┏━━━━━━━━━━━━┓ ┃ 請選擇您所需要的操作 ┃ ┃ 數據輸入: 1,并按回車鍵 ┃ ┃ 數據統計: 2,并按回車鍵 ┃ ┃ 數據打印: 3,并按回車鍵 ┃ ┃ 數據備份: 4,并按回車鍵 ┃ ┃ 退出系統: 5,并按回車鍵 ┃ ┗━━━━━━━━━━━━┛ 請選擇一個操作: 3 請等待......職工基本情況一覽表如下 技術員 程序設計實習報告 ┏━━━━━━┳━━━━━━┳━━━━━━┳━━━━━━┳━━━━━━┓ ┃ 職工號 ┃ 姓名 ┃ 性別 ┃ 年齡 ┃ 工資 ┃ ┣━━━━━━╋━━━━━━╋━━━━━━╋━━━━━━╋━━━━━━┫ ┃ 101┃ zhang1┃ w┃ 27┃ 5600┃ ┣━━━━━━╋━━━━━━╋━━━━━━╋━━━━━━╋━━━━━━┫ ┃ 102┃ wang1┃ m┃ 27┃ 5800┃ ┗━━━━━━┻━━━━━━┻━━━━━━┻━━━━━━┻━━━━━━┛ ******************************************************* 經理 ┏━━━━━━┳━━━━━━┳━━━━━━┳━━━━━━┳━━━━━━┓ ┃ 職工號 ┃ 姓名 ┃ 性別 ┃ 年齡 ┃ 工資 ┃ ┣━━━━━━╋━━━━━━╋━━━━━━╋━━━━━━╋━━━━━━┫ ┃ 201┃ wang2┃ w┃ 34┃ 8000┃ ┣━━━━━━╋━━━━━━╋━━━━━━╋━━━━━━╋━━━━━━┫ ┃ 202┃ 36┃ m┃ 36┃ 8000┃ ┗━━━━━━┻━━━━━━┻━━━━━━┻━━━━━━┻━━━━━━┛ ******************************************************* 銷售經理 ┏━━━━━━┳━━━━━━┳━━━━━━┳━━━━━━┳━━━━━━┓ ┃ 職工號 ┃ 姓名 ┃ 性別 ┃ 年齡 ┃ 工資 ┃ ┣━━━━━━╋━━━━━━╋━━━━━━╋━━━━━━╋━━━━━━┫ ┃ 402┃ liu┃ w┃ 29┃ 5700┃ ┣━━━━━━╋━━━━━━╋━━━━━━╋━━━━━━╋━━━━━━┫ ┃ 401┃ sun┃ w┃ 36┃ 5520┃ ┗━━━━━━┻━━━━━━┻━━━━━━┻━━━━━━┻━━━━━━┛ ******************************************************* 銷售員 ┏━━━━┳━━━━┳━━━━┳━━━━┳━━━━┳━━━━━━━━━┓ ┃ 職工號 ┃ 姓名 ┃ 性別 ┃ 年齡 ┃ 工資 ┃ 所屬部門經理編號 ┃ ┣━━━━╋━━━━╋━━━━╋━━━━╋━━━━╋━━━━━━━━━┫ ┃ 301┃ zhang3┃ m┃ 28┃ 2000┃ 401┃ ┣━━━━╋━━━━╋━━━━╋━━━━╋━━━━╋━━━━━━━━━┫ ┃ 302┃ wang3┃ w┃ 32┃ 2160┃ 401┃ ┣━━━━╋━━━━╋━━━━╋━━━━╋━━━━╋━━━━━━━━━┫ ┃ 303┃ wan1┃ w┃ 35┃ 2400┃ 402┃ ┣━━━━╋━━━━╋━━━━╋━━━━╋━━━━╋━━━━━━━━━┫ ┃ 304┃ wan2┃ m┃ 26┃ 3200┃ 402┃ ┗━━━━┻━━━━┻━━━━┻━━━━┻━━━━┻━━━━━━━━━┛ *********************************************************************** ★★小型公司工資管理系統★★ 程序設計實習報告 ┏━━━━━━━━━━━━┓ ┃ 請選擇您所需要的操作 ┃ ┃ 數據輸入: 1,并按回車鍵 ┃ ┃ 數據統計: 2,并按回車鍵 ┃ ┃ 數據打印: 3,并按回車鍵 ┃ ┃ 數據備份: 4,并按回車鍵 ┃ ┃ 退出系統: 5,并按回車鍵 ┃ ┗━━━━━━━━━━━━┛ 請選擇一個操作: 4 ★★小型公司工資管理系統★★ ┏━━━━━━━━━━━━┓ ┃ 請選擇您所需要的操作 ┃ ┃ 數據輸入: 1,并按回車鍵 ┃ ┃ 數據統計: 2,并按回車鍵 ┃ ┃ 數據打印: 3,并按回車鍵 ┃ ┃ 數據備份: 4,并按回車鍵 ┃ ┃ 退出系統: 5,并按回車鍵 ┃ ┗━━━━━━━━━━━━┛ 請選擇一個操作: 5 Press any key to continue 程序設計實習報告 五、程序的使用說明 1.程序中各類人員個數默認為2個,銷售員默認為4個。2.請輸入銷售人員信息后再輸入銷售經理的信息。 3.輸入時,除姓名、性別外,其余各項請勿輸入除數字以外的字符。4.輸入數據時若出現無限循環的現象,請重新執行程序并輸入信息。 5.未輸入信息時,打印或備份,各類人員除姓名性別為空外,其余各項均為0。6.重復輸入某類人員數據時,可覆蓋上一次輸入的該類人員的數據。7.程序中輸出文件位置默認為C盤,若有需要請自行更改。 程序設計實習報告 六、總結及心得體會 通過四天的編程,我對C++有了更深一步的認識。 要做一個簡單的管理系統,首先就要進行需求分析。我們要做的這個系統,簡單的說就只包含五個類(包括基類),主函數執行輸入、統計、輸出、打印、退出五個基本功能。我為了讓函數盡可能的少出現錯誤,一開始就把五個功能設為五個基本功能函數,主函數中僅留循環控制結構。 對類的層次分析,題目已經給出,我所要做的就是添加成員函數,這在設計思路中已經明確。各個功能函數在基類中都有對應的下屬函數,這樣功能函數也就能跟清晰,只要仔細,不容易出錯。 編程第一步是搭框架,由于本次的實習內容簡單,準備充足,上機時也很順利,很快就有了預期的結果。但接下來添加上函數時開始出現錯誤,并且錯誤越改越多。經過一天的努力,總算將其中的錯誤一一清除,并把第三天的數據打印和退出系統一塊弄了出來。對于第四部分的數據備份還是沒有發現錯誤原因。經過詢問老師才使問題得到解決,在使用備份時需要在前面聲明。 整個程序,其實就只有數據備份不太熟悉。備份的問題已解決,所有的問題就迎刃而解了。第四天我就做完了所有的程序,但總覺得寫的程序不夠完美,程序中,銷售員的銷售額和所屬經理編號定義為了公有部分;各種函數直接在類內定義的,減少了錯誤的出現,同時使程序不夠美觀,簡練。 通過這次的C++編程實習,使我對這門課程有了更深的認識,不再是僅僅停留在了解的階段,更是在其應用之上。在整個實習過程中自身還是存在不少不足,主要有以下幾點: 1.對知識掌握不夠熟悉,不少問題拿不準,需要查看課本去解決。2.輸程序時不夠認真仔細,漏掉大括號或分號。3.檢查錯誤時較煩躁,導致效率低下。4.平時的預習準備不夠全面認真。 5.在平時的學習中,知識掌握的不夠牢靠,在使用時,不少地方拿不準,使程序編寫速度不夠快。 通過此次的編程實習,使我體驗到編程的快樂,也使我對編程有了一個更深層次的認識,同時提高了我對編程的興趣。感謝這學期來老師對我們的教導,在以后的學習中,我繼續努力,彌補自己存在的不足之處。 程序設計實習報告 小型公司工資管理系統一、設計任務 編寫一個小型公司的工資管理程序。該公司主要有4類人員:經理、兼職技術人員、銷售員和銷售經理。其中月薪計算方法為:經理固定月薪8000元,兼職技術人員100元/小時,銷售員為其當月銷售額的4%,銷售經理保底工資5000元另加其所管部門銷售額的5‰。 二、設計要求 1、使用文件存儲相關信息(可用多個文件,存儲人員信息、銷 售員銷售額等等)。 2、能實現人員信息的錄入及增刪改,人員信息包括編號、姓 名、職位、部門等等,人員編號自動產生(即無需用戶輸入,從10000起編號)。 a)刪除(針對人員離職)后該人員過往的銷售記錄還應保留,查尋以前的銷售情況或工資清單時仍顯示該員工記錄; b)改是針對人員職位變動,僅能更改職位。 3、能錄入某月各銷售員的銷售額(自行設計操作方式,方便用 戶操作),可列出某月的銷售額清單。 4、能列出某月的工資清單,可按多種方式排序(按員工編號、工資升序、工資降序、按職位等)。 5、其他未盡事項可自行設計,遵循合理及易用的原則。 中國石油大學(華東)信息與控制工程學院 《程序設計實習》報告 小型公司工資管理系統的設計 專業班級:電子11級 學 號: 姓 名: 時 間:2012.09.01~2011.09.07 2012年9月 目錄 一、實習內容????????????????????????????1 二、設計思路????????????????????????????2 三、程序清單????????????????????????????3 四、運行結果????????????????????????????14 五、程序使用說明??????????????????????????21 六、總結及心得體會?????????????????????????2 2程序設計實習報告 一、實習內容 設計一個簡單的《小型公司管理系統》。了解系統開發的需求設計、類層次設計、模版分析、模塊組裝與整體調試的過程;熟悉程序設計的方法。 1..題目:小型公司工資管理系統的設計 2.設計說明與基本要求: (1)公司主要有4類人員: 經理、技術員、銷售員、銷售經理。要求存儲這些人的職工號、姓名、性別、年齡、月工資等信息; (2)工資的計算方法: 經理:固定月薪為8000元; 技術員:工作時間×工資(100元/小時); 銷售員:銷售額×4%提成; 銷售經理:底薪(5000元)+下屬銷售員銷售額總額×0.5%; (3)員工基本數據的輸入: 要求每類人員不能少于4人,其中銷售員需要8名,每名銷售經理手下有2名銷售員。 3.實現的基本功能:數據輸入、數據統計、數據打印、數據備份、退出。(應用程序中要有菜單,用于選擇各項功能) 4.菜單說明 ① 數據輸入要通過鍵盤; ② 統計是統計銷售經理下屬銷售員的銷售額及銷售額之和,銷售經理按工資冒泡排序; ③ 數據打印是以表格形式在屏幕上輸出; ④ 數據備份是將所有的員工信息保存到文件; ⑤ 退出:結束程序運行。 程序設計實習報告 二、設計思路 1.類的結構 先創建了一個Employer基類.然后派生出四個類: Manager、Technician、Salesman、Salemanager。分別對經理、技術員、銷售員、銷售經理的數據進行輸入。 然后選用了一個switch的多分枝選擇結構,依次據菜單的選擇條件執行數據的輸入、數據統計、數據打印、數據備份和退出等。 數據的備份要用到fstream類,用來支持對磁盤文件的輸入輸出。對于switch,結束循環用到exit函數。此函數的參數為任意整數。 程序設計實習報告 三、程序清單 #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 { 程序設計實習報告 protected: int hour;public: void display1(){cout<<“技術員編號:”;cin>>num; cout<<“技術員姓名:”;cin>>name;cout<<“技術員年齡:”;cin>>age; cout<<“技術員性別(m/w):”;cin>>sex;cout<<“技術員工作時間:”;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<<“經理編號:”;cin>>num; cout<<“經理姓名:”;cin>>name; cout<<“經理性別(m/w):”;cin>>sex; cout<<“經理年齡:”;cin>>age; } double get_pay(){pay=8000;return pay;} 程序設計實習報告 };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<<“所屬銷售經理的編號:”;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<<“銷售經理的編號:”;cin>>num; cout<<“銷售經理的姓名:”;cin>>name; cout<<“銷售經理的性別(m/w):”;cin>>sex; 程序設計實習報告 cout<<“銷售經理的年齡:”;cin>>age; } };void excel(){ cout<<“ ★★小型公司工資管理系統★★”< 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++) “< 請選擇您所需的操作 │”< │ “< │”< │“< │”< │“< ┌─────────────┐ │ │ │ │ │ │ └─────────────┘程序設計實習報告 {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; 程序設計實習報告 mo[i]=money*0.005+5000; cout<<“│”< cout<<“├─────┼─────┴─────┤”<第二篇:選題一_小型公司工資管理系統
第三篇:中國石油大學c++實習報告 小型公司工資管理系統(寫寫幫推薦)