C++期末大作业
来源:互联网 发布:opengl游戏编程 编辑:程序博客网 时间:2024/04/28 04:24
实现一个工资管理系统
一、内容
1.题目《小型公司工资管理系统》设计
2.设计说明与要求
(1) 公司主要有5类人员:文秘、技术经理、技术员、销售员、销售经理。要求存储这些人的职工号、姓名、月工资、年龄、性别等信息。
人的职工号、姓名、月工资、年龄、性别等信息。
(2) 工资的计算方法
A、技术经理:固定月薪为5000元,业绩分三个等级,每级1000元奖金。
B、技术员:工作时间*小时工资(40/小时);
C、销售员:销售额*5%提成;
D、销售经理:底薪(5000元)+所辖部门销售总额*0.3%
E、文秘:固定工资4000元,奖金视当月的工作情况而定。
(3) 输入员工数据,要求每类人员不能少于4人,员工信息输出格式参考运行效果。
二、存档
(1) 实现功能
① 数据录入:输入各种数据;
② 数据统计:统计各销售经理下属销售员的销售额之和;销售经理按工
资进行的冒泡排序;
③ 数据打印:打印各类员工的数据信息;
④ 数据备份:把各类员工的数据信息写入文件中保存;
⑤ 退出:推出本系统;
(2) 菜单说明
⑴数据录入指通过键盘输入各类员工的各项数据;
⑵数据统计指统计各销售经理下身书销售员的销售额及销售额之和;销售按工资进行冒泡排序;
⑶数据打印指按照表格的格式在屏幕上输出各员工的信息;
⑷数据备份指将所有员工的信息保存到文件;
⑸退出:结束程序的运行。
三、设计思路
从运行效果可以看出主函数是一个选择结构,可以确定主函数的内容;再根据类的层次结构合理的定义类及其对象,在类中声明成员函数来完成对保护数据成员的调用,输出数据。
#include<iostream> #include<iomanip> #include<fstream> #include<string> using namespace std; struct job1 //职工信息结构体定义 { char name[10]; //职工姓名 int level; //业绩等级 int salary; //职工工资 }; struct job1 jsjl; //定义一个全局变量jsjl,用来存放职工信息 struct job2 //职工信息结构体定义 { char name[10]; //职工姓名 int profit; //总经额 int salary; //职工工资 }; struct job2 xsjl; //定义一个全局变量xsjl,用来存放职工信息 struct job3 //职工信息结构体定义 { char name[10]; //职工姓名 int time; //工作时间 int salary; //职工工资 }; struct job3 jsry[3]; //定义一个全局变量jsry,用来存放职工信息 struct job4 //职工信息结构体定义 { char name[10]; //职工姓名 int sale; //销售总量 int salary; //职工工资 }; struct job4 xsry[3]; //定义一个全局变量xsry,用来存放职工信息 struct job5 //职工信息结构体定义 { char name[10]; //职工姓名 int sale; //奖金 int salary; //职工工资 }; struct job5 wm[2]; //定义一个全局变量wm,用来存放职工信息 int a=0,b=0,c=0; //存放实际输入的职工人数 void use(); //使用介绍 void input() ; //录入职工信息函数声明 void show(); //显示职工信息函数声明 void save(); //存档 void getsave(); //打开存档 void account(); //计算当月公司总工资 int main() { int select; while(1) { system("cls"); cout<<"\t ******************欢迎使用******************\n"; cout<<"\t ****************工资管理系统****************\n"; cout<<"\t *------------------------------------------*\n"; cout<<"\t *1使用介绍 *\n"; cout<<"\t *2录入职工信息*\n"; cout<<"\t *3显示职工信息*\n"; cout<<"\t *4存档 *\n"; cout<<"\t *5打开存档 *\n"; cout<<"\t *6退出 *\n"; cout<<"\t *------------------------------------------*\n"; cout<<"\t 你要输入的编号是(1--6):"; cin>>select; if(select==0) break; switch(select){ case 1: system("cls"); use(); //调用input函数录入数据 system("pause"); break; case 2: system("cls"); input(); //调用show函数显示职工信息 system("pause"); break; case 3: system("cls"); show(); //调用search函数查询职工信息 system("pause"); break; case 4: system("cls"); save(); //调用add函数添加职工信息 system("pause"); break; case 5: system("cls"); getsave(); // 调用del函数删除职工信息 system("pause"); break; default: system("cls"); cout<<"没有此选项,请重新选择!"<<endl; } } return 0; } void input() //录入职工信息的函数 { cout<<endl<<"\t技术经理姓名:"; cin>>jsjl.name; cout<<"\t业绩等级(1~10):"; cin>>jsjl.level; jsjl.salary=5000+1000*jsjl.level; cout<<"\t当月工资(元):"<<jsjl.salary<<endl; cout<<endl<<"\t销售经理姓名:"; cin>>xsjl.name; cout<<"\t总经额(元):"; cin>>xsjl.profit; xsjl.salary=5000+(xsjl.profit*3)/1000; cout<<"\t当月工资(元):"<<xsjl.salary<<endl; while(a<4) { cout<<endl<<"\t技术人员姓名:"; cin>>jsry[a].name; cout<<"\t工作时间(小时):"; cin>>jsry[a].time; jsry[a].salary=40*jsry[a].time; cout<<"\t当月工资(元):"<<jsry[a].salary<<endl; a++; } while(b<4) { cout<<endl<<"\t销售人员姓名:"; cin>>xsry[b].name; cout<<"\t销售总量(元):"; cin>>xsry[b].sale; xsry[b].salary=(5*xsry[b].sale)/100; cout<<"\t当月工资(元):"<<xsry[b].salary<<endl; b++; } while(c<3) { cout<<endl<<"\t文秘姓名:"; cin>>wm[c].name; cout<<"\t奖金(元):"; cin>>wm[c].sale; wm[c].salary=4000+wm[c].sale; cout<<"\t当月工资(元):"<<wm[c].salary<<endl; c++; } account(); } void show() //显示所有职工信息函数 { cout<<left;//设置输出左对齐 cout<<setw(20)<<"技术经理姓名"<<setw(20)<<"业绩等级"<<setw(12)<<"当月工资"<<endl; cout<<setw(20)<<jsjl.name<<setw(20)<<jsjl.level<<setw(12)<<jsjl.salary<<endl; cout<<setw(20)<<"销售经理姓名"<<setw(20)<<"总经额"<<setw(12)<<"当月工资"<<endl; cout<<setw(20)<<xsjl.name<<setw(20)<<xsjl.profit<<setw(12)<<xsjl.salary<<endl; cout<<setw(20)<<"技术人员姓名"<<setw(20)<<"工作时间"<<setw(12)<<"当月工资"<<endl; for(int a=0;a<3;a++) { cout<<setw(20)<<jsry[a].name<<setw(20)<<jsry[a].time<<setw(12)<<jsry[a].salary<<endl; } cout<<endl; cout<<setw(20)<<"销售人员姓名"<<setw(20)<<"销售总量"<<setw(12)<<"当月工资"<<endl; for(int b=0;b<3;b++) { cout<<setw(20)<<xsry[b].name<<setw(20)<<xsry[b].sale<<setw(12)<<xsry[b].salary<<endl; } cout<<endl; cout<<setw(20)<<"文秘姓名"<<setw(20)<<"奖金"<<setw(12)<<"当月工资"<<endl; for(int c=0;c<2;c++) { cout<<setw(20)<<wm[c].name<<setw(20)<<wm[c].sale<<setw(12)<<wm[c].salary<<endl; } cout<<endl; account(); } void use() { cout<<"该公司有技术经理1名、销售经理1名、技术人员4名、销售人员4名和文秘3名,共13名职工。录入职工信息时要逐一全部录入。录入相关业绩即可显示其当月工资。只有当存档以后才能打开存档。只要存档过,以后每次打开此系统都可以打开存档。"<<endl; } void save() { cout<<"自己完善添加函数"<<endl; } void getsave() { cout<<"自己完善删除函数"<<endl; } void account() { int acsalery=jsjl.salary+xsjl.salary+jsry[0].salary+jsry[1].salary+jsry[2].salary+xsry[0].salary+xsry[1].salary+xsry[2].salary+wm[0].salary+wm[1].salary; cout<<endl<<"\t公司当月总工资(元):"<<acsalery<<endl; }
主要还是copy别人的,自己只是稍加的改动了一点!
- C++期末大作业
- C语言期末作业
- C++期末大作业-简易通讯录
- C#期末大作业 消消乐
- Android应用程序开发期末大作业-上集
- Android应用程序开发期末大作业-下集
- C语言程序设计进阶——期末作业
- 期末作业
- 期末作业
- 期末作业
- 期末作业
- 期末作业
- Python机器学习应用 | 期末大作业1(程序设计)
- 某同学的期末大作业 UNO的简单实现
- C语言期末:Problem C: 劳动课的作业
- 【C语言】期末作业 京东信息管理
- C语言大作业
- C++期末作业
- 使用 FreeType
- 读mybatis源码之十一:参数处理器
- POJ 3273 Monthly Expense 二分搜索
- poj 3268 最短路
- 得到xml文档中的所有标签方法
- C++期末大作业
- Spring3.0官网文档学习笔记(八)--3.4.3~3.4.6
- Java学习总结15——Servlet详解
- 回归(regression)、梯度下降(gradient descent)
- shape文件导入Sql Server 2008R数据库出错
- Windows中Lua环境配置记录
- c语言设计一个网球场使用程序
- 读mybatis源码之十二:结果集处理器
- 数据挖掘笔记-分类-回归算法-最小二乘法