摘要:本文主要向大家介绍了C++语言之职工工资管理的设计与实现,通过具体的内容向大家展示,希望对大家学习C++语言有所帮助。
本文主要向大家介绍了C++语言之职工工资管理的设计与实现,通过具体的内容向大家展示,希望对大家学习C++语言有所帮助。
职工工资管理的设计与实现
职工工资管理设计与实现
功能设计要求
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<iostream> #include<fstream> #include<stdlib.h> #include<string.h> #include<windows.h> #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<<id<<" .mon1="mon1;" .mon2="" .mon3="mon3;" .mon4="mon4;" .mon5="mon5;" 1="" 2:="" 3:="" 4="" 5:="" :="" a="0" case="" char="" cin="" count="" count1="" count2="" count3="" count4="" count5="" default:="" double="" else="" flag1:="" flag2:="" flag3:="" fstream="" goto="" i="0;i" id="" int="" j="i;j<(count-1);" mon1="0.0,mon2" mon3="0.0,mon4" mon5="0.0;" money="" n="=1)" num="0;" number="0.0;" return="" staff="" void="">= m)&& (money <= n)) number++; } return number/count; } //系统界面 void menu() { cout<<"#######################################################################"<<endl; 1.="" 2.="" 3.="" 4.="" 5.="" 6.="" 7.="" cin="" count="0;" double="" flag4:="" i="0;" int="" m="0.0," n="0.0;" num="0;" staff="" temp="0.0;">>num; switch(num) { case 1: update(sta,count); Infile(sta,count); cout<<"ID号 姓名 基本工资 职务工资 津贴 医疗保险 公积金 总工资 平均工资"<<endl; 2:="" 3:="" 4:="" 5:="" case="" cin="" count="Insert(sta,count);" i="0;" int="" m="">>m>>n; if(m > n) { temp = m; m = n; n=temp; } cout<<"职工工资前三项之和在"<<m<<"-"<<n<<"以内的工资职工人数及占总职工人数的百分比为:" 6:="" 7:="" case="" char="" cin="" default:="" i="0;" int="" return="">>ch; if(strcmp(ch,"yes")==0) { menu(); goto flag4; } system("pause"); return 0; }</m<<"-"<<n<<"以内的工资职工人数及占总职工人数的百分比为:"></endl;></endl;></id<<"></windows.h></string.h></stdlib.h></fstream></iostream>
这个实验中的代码还是有很多的问题的。比如,建立的类数组所占的内存空间太大了,有很多空余。我觉得下次可以尝试使用链表来做。
本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注职坐标编程语言C/C+频道!
您输入的评论内容中包含违禁敏感词
我知道了
请输入正确的手机号码
请输入正确的验证码
您今天的短信下发次数太多了,明天再试试吧!
我们会在第一时间安排职业规划师联系您!
您也可以联系我们的职业规划师咨询:
版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
沪公网安备 31011502005948号