标题:c++题目打印工资单求解
只看楼主
ljp294777643
Rank: 1
等 级:新手上路
帖 子:13
专家分:0
注 册:2020-8-12
结帖率:0
 问题点数:0 回复次数:1 
c++题目打印工资单求解
1. 打印工资单
【问题描述】
定义结构体,存储下表中的数据,然后按照顺序输出每个人的姓名和实发工资。
输入:3行,每行对应表格中的一行数据,以空格隔开。
输出:3行,每行包括姓名和实发工资,以空格隔开。
要求:使用结构体,结果保留两位小数。
注意:实发工资=基本工资+浮动工资-支出。
工资表
姓名 基本工资 浮动工资 支出
Zxy 230.00 400.00 76.00
Ljt 350.00 120.00 56.00
Zhm 360.00 0.00 80.00
【样例输入】
Zxy 230.00 400.00 76.00
Ljt 350.00 120.00 56.00
Zhm 360.00 0.00 80.00
【样例输出】
Zxy 554.00
Ljt 414.00
Zhm 280.00
搜索更多相关主题的帖子: 输出 姓名 工资 c++ 打印 
2020-08-20 13:13
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:507
帖 子:8890
专家分:53117
注 册:2011-1-18
得分:0 
程序代码:
#include <iostream>
#include <iomanip>
#include <iterator>
#include <algorithm>
using namespace std;

struct foo
{
    foo() = default;

    std::string 姓名;
    double 基本工资;
    double 浮动工资;
    double 支出;
    const double 实发工资() const noexcept
    {
        return 基本工资 + 浮动工资 - 支出;
    }

    friend std::istream& operator>>( std::istream& is, foo& v )
    {
        return is >> v.姓名 >> v.基本工资 >> v.浮动工资 >> v.支出;
    }
    friend std::ostream& operator<<( std::ostream& os, const foo& v )
    {
        os << v.姓名 << ' ' << v.实发工资();
        return os;
    }
};

int main( void )
{
    foo s[3];
    copy_n( istream_iterator<foo>(cin), 3, s );

    cout << fixed << setprecision(2);
    copy_n( s, 3, ostream_iterator<foo>(cout,"\n") );
}
2020-08-20 15:54



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-502912-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.217655 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved