15-1-(1)-工资数据的输入(cin)

01./*  
02.* 程序的版权和版本声明部分:  
03.* Copyright (c) 2011, 烟台大学计算机学院  
04.* All rights reserved.  
05.* 文件名称:test.cpp  
06.* 作    者:刘芳
07.* 完成日期:2014年06 月 03 日  
08.* 版 本 号:v1.0  
09.* 对任务及求解方法的描述部分: 
10.* 输入描述:无  
11.* 问题描述:输入工人的工资 
12.* 程序输出:降序方式,输出 
13.* 问题分析:略 
14.* 算法设计:略  
15.*/    




#include <iostream>

using namespace std;

int main()
{
    double t;
   double salary[500];
   int n=0;
   while(cin>>salary[n])
   {
       n++;
   }
   //降序
   for(int i=0;i<n-1;i++)
   {
       for(int j=0;j<n-i-1;j++)
       if(salary[j]<salary[j+1])
       {
          t=salary[j];
          salary[j]=salary[j+1];
          salary[j+1]=t;
       }
   }
   cout<<"降序后:"<<endl;
   for(int i=0;i<n;i++)
   {
       cout<<salary[i]<<" ";
   }
    return 0;
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
到该员工的工资信息。 以下是一个简单的C++程序,可以实现上述功能: ```c++ #include <iostream> #include <fstream> #include <string> #include <vector> using namespace std; // 定义员工工资结构体 struct EmployeeSalary { int id; string name; double baseSalary; double allowance; double bonus; double deduction; double netSalary; }; // 保存员工工资数据到文件中 void saveEmployeeSalaryToFile(vector<EmployeeSalary>& employeeSalaries, string filename) { ofstream fout(filename); if (!fout) { cout << "无法打开文件:" << filename << endl; return; } for (auto& employeeSalary : employeeSalaries) { fout << employeeSalary.id << " " << employeeSalary.name << " " << employeeSalary.baseSalary << " " << employeeSalary.allowance << " " << employeeSalary.bonus << " " << employeeSalary.deduction << " " << employeeSalary.netSalary << endl; } fout.close(); } // 从文件中读取员工工资数据 void readEmployeeSalaryFromFile(vector<EmployeeSalary>& employeeSalaries, string filename) { ifstream fin(filename); if (!fin) { cout << "无法打开文件:" << filename << endl; return; } EmployeeSalary employeeSalary; while (fin >> employeeSalary.id >> employeeSalary.name >> employeeSalary.baseSalary >> employeeSalary.allowance >> employeeSalary.bonus >> employeeSalary.deduction >> employeeSalary.netSalary) { employeeSalaries.push_back(employeeSalary); } fin.close(); } // 输入员工工资数据 void inputEmployeeSalary(vector<EmployeeSalary>& employeeSalaries) { EmployeeSalary employeeSalary; cout << "请输入员工编号:"; cin >> employeeSalary.id; cout << "请输入员工姓名:"; cin >> employeeSalary.name; cout << "请输入员工基本工资:"; cin >> employeeSalary.baseSalary; cout << "请输入员工补贴金额:"; cin >> employeeSalary.allowance; cout << "请输入员工奖励金额:"; cin >> employeeSalary.bonus; cout << "请输入员工扣除金额:"; cin >> employeeSalary.deduction; employeeSalary.netSalary = employeeSalary.baseSalary + employeeSalary.allowance + employeeSalary.bonus - employeeSalary.deduction; employeeSalaries.push_back(employeeSalary); } // 查询员工工资数据 void queryEmployeeSalary(vector<EmployeeSalary>& employeeSalaries) { int id; cout << "请输入要查询的员工编号:"; cin >> id; for (auto& employeeSalary : employeeSalaries) { if (employeeSalary.id == id) { cout << "员工编号:" << employeeSalary.id << endl; cout << "员工姓名:" << employeeSalary.name << endl; cout << "员工基本工资:" << employeeSalary.baseSalary << endl; cout << "员工补贴金额:" << employeeSalary.allowance << endl; cout << "员工奖励金额:" << employeeSalary.bonus << endl; cout << "员工扣除金额:" << employeeSalary.deduction << endl; cout << "员工实发工资:" << employeeSalary.netSalary << endl; return; } } cout << "未找到该员工的工资信息。" << endl; } // 删除员工工资数据 void deleteEmployeeSalary(vector<EmployeeSalary>& employeeSalaries) { int id; cout << "请输入要删除的员工编号:"; cin >> id; for (auto it = employeeSalaries.begin(); it != employeeSalaries.end(); ++it) { if (it->id == id) { employeeSalaries.erase(it); cout << "已删除该员工的工资信息。" << endl; return; } } cout << "未找到该员工的工资信息,无法删除。" << endl; } // 修改员工工资数据 void updateEmployeeSalary(vector<EmployeeSalary>& employeeSalaries) { int id; cout << "请输入要修改的员工编号:"; cin >> id; for (auto& employeeSalary : employeeSalaries) { if (employeeSalary.id == id) { cout << "请输入修改后的员工基本工资:"; cin >> employeeSalary.baseSalary; cout << "请输入修改后的员工补贴金额:"; cin >> employeeSalary.allowance; cout << "请输入修改后的员工奖励金额:"; cin >> employeeSalary.bonus; cout << "请输入修改后的员工扣除金额:"; cin >> employeeSalary.deduction; employeeSalary.netSalary = employeeSalary.baseSalary + employeeSalary.allowance + employeeSalary.bonus - employeeSalary.deduction; cout << "已修改该员工的工资信息。" << endl; return; } } cout << "未找到该员工的工资信息,无法修改。" << endl; } // 统计所有员工的工资总额和平均工资 void statisticsEmployeeSalary(vector<EmployeeSalary>& employeeSalaries) { double totalSalary = 0; for (auto& employeeSalary : employeeSalaries) { totalSalary += employeeSalary.netSalary; } double averageSalary = employeeSalaries.empty() ? 0 : totalSalary / employeeSalaries.size(); cout << "所有员工的工资总额为:" << totalSalary << endl; cout << "所有员工的平均工资为:" << averageSalary << endl; } int main() { vector<EmployeeSalary> employeeSalaries; string filename = "employee_salary.txt"; // 从文件中读取员工工资数据 readEmployeeSalaryFromFile(employeeSalaries, filename); while (true) { int choice; cout << "请选择要进行的操作:" << endl; cout << "1. 输入员工工资数据" << endl; cout << "2. 查找员工工资数据" << endl; cout << "3. 删除员工工资数据" << endl; cout << "4. 修改员工工资数据" << endl; cout << "5. 统计所有员工的工资总额和平均工资" << endl; cout << "6. 保存员工工资数据到文件中并退出" << endl; cin >> choice; switch (choice) { case 1: inputEmployeeSalary(employeeSalaries); break; case 2: queryEmployeeSalary(employeeSalaries); break; case 3: deleteEmployeeSalary(employeeSalaries); break; case 4: updateEmployeeSalary(employeeSalaries); break; case 5: statisticsEmployeeSalary(employeeSalaries); break; case 6: saveEmployeeSalaryToFile(employeeSalaries, filename); return 0; default: cout << "输入的选项不合法,请重新输入。" << endl; } } return 0; } ``` 该程序使用了一个结构体 `EmployeeSalary` 来表示员工工资信息,同时使用了一个动态数组 `employeeSalaries` 来保存所有员工的工资数据。程序提供了以下操作: 1. 输入员工工资数据 2. 查找员工工资数据 3. 删除员工工资数据 4. 修改员工工资数据 5. 统计所有员工的工资总额和平均工资 6. 保存员工工资数据到文件中并退出 在程序中,我们通过 `ofstream` 和 `ifstream` 分别实现了将员工工资数据保存到文件中和从文件中读取员工工资数据的功能。在输入员工工资数据时,我们计算出了员工的实发工资,并将所有工资数据保存到 `employeeSalaries` 中。在查找、删除和修改员工工资数据时,我们都需要遍历 `employeeSalaries` 数组来查找对应的员工。在统计所有员工的工资总额和平均工资时,我们遍历 `employeeSalaries` 数组并累加所有员工的实发工资,然后根据员工数量计算出平均工资。最后,在用户选择退出程序时,我们将所有员工工资数据保存到文件中,并退出程序。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值