您的位置:首页 > 编程语言 > C语言/C++

C++期末大作业

2014-06-21 20:57 127 查看
实现一个工资管理系统

一、内容

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.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;
}


















[b]主要还是copy别人的,自己只是稍加的改动了一点!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: