求matlab题目
硅谷员工某部门有50名员工,其工资计算方法如下:(1)工作时数超过120h者,超过部分加发15%;(2)工作时数低于60h者,扣发700元;(3)其余按每小时84元计发。...
硅谷员工某部门有50名员工,其工资计算方法如下:
(1)工作时数超过120h者,超过部分加发15%;
(2)工作时数低于60h者,扣发700元;
(3)其余按每小时84元计发。
试编程随机输入每位员工的工号和该号员工的工时数,工号从1~50;工时数为40~200h之间随机产生的整数。请计算每位员工的应发工资并用适当的图形加以描述。
A、分析:采用循环结构和向量结构分别实现,要用到分段函数以及随机数发生函数。 展开
(1)工作时数超过120h者,超过部分加发15%;
(2)工作时数低于60h者,扣发700元;
(3)其余按每小时84元计发。
试编程随机输入每位员工的工号和该号员工的工时数,工号从1~50;工时数为40~200h之间随机产生的整数。请计算每位员工的应发工资并用适当的图形加以描述。
A、分析:采用循环结构和向量结构分别实现,要用到分段函数以及随机数发生函数。 展开
2个回答
展开全部
f = @(x) 84*x + (x>120).*((x-120)*84*1.15) - (x<60)*700; % 计算工资的公式
x = 1:50; % 工号
xh = floor(161*rand(1,50)) + 40; % 工时 40-200
xs = f(xh); % 工资
subplot(1,2,1);
bar(xs); % 工资柱状图
title('工资图');xlabel( '工号' );;ylabel( '工资' );
axis([ 0 51 0 max(xs)*1.1]);
subplot(1,2,2);
bar(xh); % 工资柱状图
title('工时图');xlabel( '工号' );ylabel( '工时' );
axis([ 0 51 0 max(xh)*1.1]);
展开全部
gs=zeros(50,1);
gz=zeros(50,1);
for i=1:50
gs(i)=randi([40 200]);
if gs(i)>=120
gz(i)=84*120+(gs(i)-120)*84*1.15;
elseif gs(i)<60
gz(i)=84*gs(i)-700;
else
gz(i)=84*gs(i);
end
end
gz=diag(gz);
c=bar(gz,'stack');
title('工资图');
xlabel( '工号' );
ylabel( '工资' );
color=[0 0 0.75;0 1 0;1 0.5 0];
for i=1:50
j=mod(i,3)+1;
set(c(i),'FaceColor',color(j,:));
end
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询