实训3 职工信息处理

1.实训题目
对某一单位的职工进行工资调整。职工的信息有姓名( name )、年龄( age )、工龄( worktime )、性别( sex )和婚姻状况( marrige ),级别( grade (1-5级))、工资( wage )、是否退休( tired )。现在要进行工资的调整,规定凡是退休的一律增加工资50元,在职
1~5级的工资分别增加20、40、60、80、100。编程实现上述工资调整。

2.实训要求
(1)分析要存放的信息及要进行的操作,设计合适的数据结构。

(2)分析要对信息进行的操作,选择合适的语何。

(3)在程序中打印出执行前后的工资状况和级别,以便验证程序的正确性。

--------------------------------------------------------

源码如下:

#include <iostream>
#include <cstring>
using namespace std;
struct people{
    char name[20];//姓名
    int age;//年龄
    int worktime;//工龄
    char sex[20];//性别
    int grade;//级别
    char marrige[20];//婚姻状况
    int wage;//工资
    char tired[20];//是否退休
};

struct people worker[5]={
    {"tom",18,2,"男",1,"未婚",2000,"否"},
    {"jack",19,2,"男",2,"未婚",4000,"是"},
    {"lee",28,3,"男",3,"未婚",3000,"是"},
    {"bob",22,5,"男",4,"未婚",1600,"是"},
    {"mark",35,8,"男",5,"已婚",8000,"是"},    
};

void print(people worker[],int n)//输出职工信息 
{
    int i;
    for(i=0;i<5;i++)
    {
        cout<<worker[i].name<<" "<<worker[i].age<<" "<<worker[i].worktime<<" "<<worker[i].sex
        <<" "<<worker[i].grade<<" "<<worker[i].marrige<<" "<<worker[i].wage<<" "<<worker[i].tired<<endl;
    }
}

void change_wage(people sorker[],int n)//工资调整 
{
    int i;
    for(i=0;i<5;i++)
    {
        if(!strcmp(worker[i].tired,"是"))//判断两个字符串是否相等,若相等则是0,加!则变成1,进行下面的语句;否则进行else语句 
        {
            if(worker[i].grade==1)
                worker[i].wage+=20;
            if(worker[i].grade==2)
                worker[i].wage+=40;
            if(worker[i].grade==3)
                worker[i].wage+=60;
            if(worker[i].grade==4)
                worker[i].wage+=80;
            if(worker[i].grade==5)
                worker[i].wage+=100;
        }
        else
            worker[i].wage+=50;
    }
}
int main()
{
    cout<<"职工原始信息"<<endl;
    print(worker,5);
    cout<<"职工信息修改后"<<endl;
    change_wage(worker,5);
    print(worker,5);
    return 0;
}

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值