C++项目二
Posted 原池
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C++项目二相关的知识,希望对你有一定的参考价值。
模板
/*
* File: 职工管理系统
*/
#include <iostream>
#include <string>
#include <stdlib.h>
using namespace std;
/*
* 声明六个不同类型的全局变量,分别存储职工的工号,姓名,基本工资,奖金,扣款和实发工资这六项数据;
*/
//请在此处声明变量
/*
* 函数名:input
* 功能:输入一个职工的信息
*
* 使用cin 流对象从键盘输入职工的工号,姓名,基本工资,奖金和扣款。
*
* 主要练习输入流对象cin函数的使用
*/
void input() {
cout << " ************************************************************* ";
cout << "请输入职工的信息: ";
//请将代码填写在此处
cout << " ************************************************************* ";
system("pause");
}
/*
* 函数名:output
* 功能:输出职工信息
*
* 主要练习cout输出流对象的使用。
*/
void output() {
cout << " ************************************************************* ";
//请将代码填写在此处
cout << " ************************************************************* ";
system("pause");
}
/*
* 函数名:takeHomePay
* 功能:计算某一职工的实发工资并输出结果
*
* 主要练习算术表达式和赋值运算符的使用。
*/
void takeHomePay() {
cout << " ************************************************************* ";
//请将代码填写在此处
cout << " ************************************************************* ";
system("pause");
}
/*
* 函数名:calculateTaxes
* 功能:计算税金
*
* 完成此函数需要以下几个步骤:
* 1.按照税金公式完成税金的计算
* 2.输出相应结果
*
* 练习分支结构if-else语句和switch语句
*/
void calculateTaxes() {
cout << " ************************************************************* ";
//请将代码填写在此处
cout << " ************************************************************* ";
system("pause");
}
/*
* 函数名:avgSalary
* 功能:计算多个职工的平均基本工资
*
* 在此函数中,你需要使用循环语句输入多个职工的工资(具体输入多少个职工的工资值,
* 可以使用当输入值为超出范围的值时结束输入的方法),在输入基本工资的过程同时,
* 统计职工人数和工资总和,最后计算出平均工资
* 可根据需要声明变量
*
* 主要练习循环语句,循环计数器
*/
void avgSalary() {
cout << " ************************************************************* ";
//请将代码填写在此处
cout << " ************************************************************* ";
system("pause");
}
/*
* 函数名:paySalary
* 功能:换算纸币及硬币个数
*
*
* 纸币可使用面值有100元,50元,20元,10元,5元,2元和1元,硬币可使用面值有5角,
* 2角和1角,在此程序中可不计算面值为分的硬币个数。
*
* 主要练习除号表达式
*/
void paySalary() {
cout << " ************************************************************* ";
//请将代码填写在此处
cout << " ************************************************************* ";
system("pause");
}
/*
* 此函数用于显示菜单
*/
int menu() {
int n, w;
cout << " 欢迎来到职工管理系统 ";
cout << " * * * * 1.输入职工信息 ";
cout << " * * * * 2.输出职工信息 ";
cout << " * * * 3.计算职工实发工资 ";
cout << " * * 4.计算税金 ";
cout << " * * 5.计算纸币及硬币个数 ";
cout << " * * 6.计算平均基本工资 ";
cout << " * * 7.菜单 ";
cout << " * * 8.退出 ";
cout << " * ";
do {
cout << "请选择:";
cin >> n; //对照菜单,输入菜单选项,选择你所要执行的功能
cout << " ";
if (n < 1 || n > 8) {//判断你所输入的数字是否在0-8之间,如果是则跳出while循环,到switch语句里选择你所输入的功能分支
w = 1;
cout << "无此项功能,请重新选择! ";
}//若你输入的数字不在0-8之间,即不在菜单列表所列的功能选项之内,则w=1(用于while循环条件的判定)
else
w = 0; //若你输入的数字在0-8之间,即在菜单列表所列的功能选项之内,则w=0( 用于while循环条件的判定)
} while (w == 1); //do_while语句的逻辑判定表达式,若w=1,则继续执行do循环体,若w=0,则跳出do_while循环执行下一语句
return n;
}
int caller(int n) {
int i;
switch (n) {
case 1:cout << "1.输入职工信息 2.返回主菜单 "; //功能选择的项的输出
cout << "请选择:";
cin >> i; //输入你所要选择的功能 1.输入职工信息 2.返回菜单
if (i == 1) input(); //若你选择功能1(即输入职工信息),马上调用input()函数,该函数用于实现输入职工信息功能
else if (i == 2) return n; //若你选择功能2(即返回菜单),返回main()函数,重新调用menu()函数
else cout << " 输入错误! ";
break;
case 2:cout << "1.输出职工信息并输出 2.返回主菜单 "; //该分支与case1完全雷同,每一条语句参照case1理解即可
cout << "请选择:";
cin >> i;
if (i == 1) output();
else if (i == 2) return n;
else cout << " 输入错误! ";
break;
case 3:cout << "1.计算职工实发工资 2.返回菜单 "; //该分支与case1完全雷同,每一条语句参照case1理解即可
cout << "请选择:";
cin >> i;
if (i == 1) takeHomePay();
else if (i == 2) return n;
else cout << " 输入错误! ";
break;
case 4:cout << "1.计算税金 2.返回菜单 "; //该分支与case1完全雷同,每一条语句参照case1理解即可
cout << "请选择:";
cin >> i;
if (i == 1) calculateTaxes();
else if (i == 2) return n;
else cout << " 输入错误! ";
break;
case 5:cout << "1.计算纸币和硬币个数 2.返回菜单 "; //该分支与case1完全雷同,每一条语句参照case1理解即可
cout << "请选择:";
cin >> i;
if (i == 1) paySalary();
else if (i == 2) return n;
else cout << " 输入错误! ";
break;
case 6:cout << "1.计算多个职工平均基本工资 2.返回菜单 ";
cout << "请选择:";
cin >> i;
if (i == 1) avgSalary();
else if (i == 2) return n;
else cout << " 输入错误! ";
break;
case 7: return n;
case 8:cout << " 谢谢使用!再见! ";
return 8;
}
return n;
}
int main() {
int i = 0;
while(1){
i = caller(menu());
if (i == 8)
break;
}
return 0;
}
实现源码
/*
* File: 职工管理系统
*/
#include <iostream>
#include <string>
#include <stdlib.h>
using namespace std;
/*
* 声明六个不同类型的全局变量,分别存储职工的工号,姓名,基本工资,奖金,扣款和实发工资这六项数据;
*/
//请在此处声明变量
int i;
string num, name;
float salary, prize, punish, total, taxe, salarytotal;
int yibai,wushi,ershi,shi,wu,er,yi,dianwu,dianer,dianyi;
/*
* 函数名:input
* 功能:输入一个职工的信息
*
* 使用cin 流对象从键盘输入职工的工号,姓名,基本工资,奖金和扣款。
*
* 主要练习输入流对象cin函数的使用
*/
void input()
{
cout << " ************************************************************* ";
cout << "请输入职工的信息: ";
//请将代码填写在此处
cout << "请输入员工信息(工号,姓名,工资,奖金,扣款)";
cin >> num >> name >> salary >> prize >> punish;
cout << "num: " << num << " name: " << name << " salary: " << salary << " punish: " << punish;
cout << " ************************************************************* ";
system("pause");
}
/*
* 函数名:output
* 功能:输出职工信息
*
* 主要练习cout输出流对象的使用。
*/
void output()
{
cout << " ************************************************************* ";
//请将代码填写在此处
cout << "num: " << num << " name: " << name << " salary: " << salary << " punish: " << punish;
cout << " ************************************************************* ";
system("pause");
}
/*
* 函数名:takeHomePay
* 功能:计算某一职工的实发工资并输出结果
*
* 主要练习算术表达式和赋值运算符的使用。
*/
void takeHomePay()
{
cout << " ************************************************************* ";
//请将代码填写在此处
total = salary + prize - punish;
cout << "员工" << name << "实发工资为:" << total;
cout << " ************************************************************* ";
system("pause");
}
/*
* 函数名:calculateTaxes
* 功能:计算税金
*
* 完成此函数需要以下几个步骤:
* 1.按照税金公式完成税金的计算
* 2.输出相应结果
*
* 练习分支结构if-else语句和switch语句
*/
void calculateTaxes()
{
cout << " ************************************************************* ";
//请将代码填写在此处
total = salary + prize - punish;
if (total < 36000)
{
taxe = 36000 * 0.03;
}
else
{
if (36000 < total < 144000)
{
taxe = (total - 36000) * 0.1;
}
else
{
if (144000 < total < 300000)
{
taxe = (total - 144000) * 0.2;
}
else
{
if (300000 < total < 420000)
{
taxe = (total - 300000) * 0.25;
}
else
{
if (420000 < 660000)
{
taxe = (total - 420000) * 0.3;
}
else
{
if (660000 < total < 960000)
{
taxe = (total - 660000) * 0.35;
}
else
{
if (960000 < total)
{
taxe = (total - 960000) * 0.45;
}
}
}
}
}
}
}
cout<<"税金为:"<<taxe;
cout << " ************************************************************* ";
system("pause");
}
/*
* 函数名:avgSalary
* 功能:计算多个职工的平均基本工资
*
* 在此函数中,你需要使用循环语句输入多个职工的工资(具体输入多少个职工的工资值,
* 可以使用当输入值为超出范围的值时结束输入的方法),在输入基本工资的过程同时,
* 统计职工人数和工资总和,最后计算出平均工资
* 可根据需要声明变量
*
* 主要练习循环语句,循环计数器
*/
void avgSalary()
{
cout << " ************************************************************* ";
//请将代码填写在此处
cout << "请输入人数:";
cin >> i;
for (int a = 1; a <= i; a++)
{
cout << "请输入每人工资:";
cin >> salary;
if (salary > 0)
{
salarytotal = salary + salarytotal;
}
if (salary = 0)
{
break;
}
}
cout << "平均工资为:" << salarytotal / i;
cout << " ************************************************************* ";
system("pause");
}
/*
* 函数名:paySalary
* 功能:换算纸币及硬币个数
*
*
* 纸币可使用面值有100元,50元,20元,10元,5元,2元和1元,硬币可使用面值有5角,
* 2角和1角,在此程序中可不计算面值为分的硬币个数。
*
* 主要练习除号表达式
*/
void paySalary()
{
cout << " ************************************************************* ";
//请将代码填写在此处
total = salary + prize - punish;
yibai=total/100;
wushi=(total-(yibai*100))/50;
ershi=(total-(yibai*100+wushi*50))/20;
shi=(total-(yibai*100+wushi*50+ershi*20))/10;
wu=(total-(yibai*100+wushi*50+ershi*20+shi*10))/5;
er=(total-(yibai*100+wushi*50+ershi*20+shi*10+wu*5))/2;
yi=(total-(yibai*100+wushi*50+ershi*20+shi*10+wu*5+er*2))/1;
dianwu=(total-(yibai*100+wushi*50+ershi*20+shi*10+wu*5+er*2+yi*1))/0.5;
dianer=(total-(yibai*100+wushi*50+ershi*20+shi*10+wu*5+er*2+yi*1+dianwu*0.5))/0.2;
dianyi=(total-(yibai*100+wushi*50+ershi*20+shi*10+wu*5+er*2+yi*1+dianwu*0.5+dianyi*0.1))/0.1;
cout<<yibai<<"张壹佰元 "<<wushi<<"张伍拾元 "<<ershi<<"张贰拾元 "<<shi<<"张拾元 "<<wu<<"张伍元 "<<er<<"张贰元 "<<yi<<"张壹元 "<<dianwu<<"张伍角 "<<dianer<<"张贰角 "<<dianyi<<"张壹角 ";
cout << " ************************************************************* ";
system("pause");
}
/*
* 此函数用于显示菜单
*/
int menu()
{
int n, w;
cout << " 欢迎来到职工管理系统 ";
cout << " * * * * 1.输入职工信息 ";
cout << " * * * * 2.输出职工信息 ";
cout << " * * * 3.计算职工实发工资 ";
cout << " * * 4.计算税金 ";
cout << " * * 5.计算纸币及硬币个数 ";
cout << " * * 6.计算平均基本工资 ";
cout << " * * 7.菜单 ";
cout << " * * 8.退出 ";
cout << " * ";
do
{
cout << "请选择:";
cin >> n; //对照菜单,输入菜单选项,选择你所要执行的功能
cout << " ";
if (n < 1 || n > 8)
{ //判断你所输入的数字是否在0-8之间,如果是则跳出while循环,到switch语句里选择你所输入的功能分支
w = 1;
cout << "无此项功能,请重新选择! ";
} //若你输入的数字不在0-8之间,即不在菜单列表所列的功能选项之内,则w=1(用于while循环条件的判定)
else
w = 0; //若你输入的数字在0-8之间,即在菜单列表所列的功能选项之内,则w=0( 用于while循环条件的判定)
} while (w == 1); //do_while语句的逻辑判定表达式,若w=1,则继续执行do循环体,若w=0,则跳出do_while循环执行下一语句
return n;
}
int caller(int n)
{
int i;
switch (n)
{
case 1:
cout << "1.输入职工信息 2.返回主菜单 "; //功能选择的项的输出
cout << "请选择:";
cin >> i; //输入你所要选择的功能 1.输入职工信息 2.返回菜单
if (i == 1)
input(); //若你选择功能1(即输入职工信息),马上调用input()函数,该函数用于实现输入职工信息功能
else if (i == 2)
return n; //若你选择功能2(即返回菜单),返回main()函数,重新调用menu()函数
else
cout << " 输入错误! ";
break;
case 2:
cout << "1.输出职工信息并输出 2.返回主菜单 "; //该分支与case1完全雷同,每一条语句参照case1理解即可
cout << "请选择:";
cin >> i;
if (i == 1)
output();
else if (i == 2)
return n;
else
cout << " 输入错误! ";
break;
case 3:
cout << "1.计算职工实发工资 2.返回菜单 "; //该分支与case1完全雷同,每一条语句参照case1理解即可
cout << "请选择:";
cin >> i;
if (i == 1)
takeHomePay();
else if (i == 2)
return n;
else
cout << " 输入错误! ";
break;
case 4:
cout << "1.计算税金 2.返回菜单 "; //该分支与case1完全雷同,每一条语句参照case1理解即可
cout << "请选择:";
cin >> i;
if (i == 1)
calculateTaxes();
else if (i == 2)
return n;
else
cout << " 输入错误! ";
break;
case 5:
cout << "1.计算纸币和硬币个数 2.返回菜单 "; //该分支与case1完全雷同,每一条语句参照case1理解即可
cout << "请选择:";
cin >> i;
if (i == 1)
paySalary();
else if (i == 2)
return n;
else
cout << " 输入错误! ";
break;
case 6:
cout << "1.计算多个职工平均基本工资 2.返回菜单 ";
cout << "请选择:";
cin >> i;
if (i == 1)
avgSalary();
else if (i == 2)
return n;
else
cout << " 输入错误! ";
break;
case 7:
return n;
case 8:
cout << " 谢谢使用!再见! ";
return 8;
}
return n;
}
int main()
{
int i = 0;
while (1)
{
i = caller(menu());
if (i == 8)
break;
}
return 0;
}
以上是关于C++项目二的主要内容,如果未能解决你的问题,请参考以下文章