職工工資管理設計與實現
功能設計要求
1. 輸入記錄:將每一個職工的姓名、ID號以及基本工資、職務工資、崗位津貼、醫療保險、公積金的數據作為一個記錄。該軟件能建立一個新的數據文件或給已建立好的數據文件增加記錄。
2. 顯示記錄:根據用戶提供的記錄或者根據職工姓名顯示一個或幾個職工的各項工資和平均工資。
3. 修改記錄:可以對數據文件的任意記錄的數據進行修改並在修改前後對記錄內容進行顯示。
4.查找記錄:可以對數據文件的任意記錄的數據進行查找並在查找前後對記錄內容進行顯示。
5. 刪除記錄:可刪除數據文件中的任一記錄。
6. 統計: (A)計算各項工資平均工資及總工資,(B)統計符合指定條件(如職工工資前三項之和在3000元以上、3000~2000元、2000~1000元) 以內的工資職工人數及占總職工人數的百分比。(C)按字符表格形式打印全部職工工資信息表及平均工資(包括各項總的平均工資)。
7.保存數據文件功能。
例如:職工工資信息表
ID號 姓名 基本工資 職務工資 津貼 醫療保險- 公積金- 總工資
01 張望 1286 794 198 109 135 2034
02 李明 1185 628 135 94 114 1740
03 王小民 895 438 98 64 73 1294
04 張效章 1350 868 210 116 150 2162
05 彭山 745 398 84 61 68 1098
? ? ? ? ? ? ? ?
各項平均工資 1092.2 625.2 145 88.8 108
#define _CRT_SECURE_NO_WARNINGS1 #include#include #include #include #include #define max 100000000; using namespace std; class staff { public: staff() { id[5]='0'; name[10] = '0'; mon1 = mon2 = mon3 = mon4 = mon5 =0.0; } void setstaff(char *ID,char *Name,double money1,double money2,double money3,double money4,double money5 ) { strcpy(id,ID); strcpy(name,Name); mon1 = money1; mon2 = money2; mon3 = money3; mon4 = money4; mon5 = money5; } void print();//顯示職工信息 double summoney();//求每個人的總工資 double avgmoney();//求每個人的平均工資 char id[5],name[10]; double mon1,mon2,mon3,mon4,mon5; }; //求每個人的總工資 double staff::summoney() { double sum; sum= mon1 + mon2 + mon3 + mon4 + mon5; return sum; } //求每個人的平均工資 double staff::avgmoney() { double avg; avg= (staff::summoney())/5; return avg; } void staff::print() { cout< = m)&& (money <= n)) number++; } return number/count; } //系統界面 void menu() { cout<<"#######################################################################"< >num; switch(num) { case 1: update(sta,count); Infile(sta,count); cout<<"ID號 姓名 基本工資 職務工資 津貼 醫療保險 公積金 總工資 平均工資"< >m>>n; if(m > n) { temp = m; m = n; n=temp; } cout<<"職工工資前三項之和在"< >ch; if(strcmp(ch,"yes")==0) { menu(); goto flag4; } system("pause"); return 0; }
這個實驗中的代碼還是有很多的問題的。比如,建立的類數組所占的內存空間太大了,有很多空余。我覺得下次可以嘗試使用鏈表來做。