测试(仅供参考)

第一题

某企业年底根据当年的利润提成发放奖金。利润低于或等于10万元时,按10%提成;利润高于10万元,低于20万元时,低于10万元的部分按10%提成,超出10万元的部分按7.5%提成;利润高于20万时,20万部分按照以上规则计算,超出20万元的部分按5%提成。从键盘输入当年利润值,根据输入值计算出应发放奖金的数额?

1.1流程图参考:

1.2代码实现如下:(仅参考)

import java.util.Scanner;
public class Test {
	public static void main(String[] args) {
		//profit代表输入的利润,bonus代表奖金额
		double profit = 0, bonus = 0;       
		System.out.print("请输入本年利润(万):");    
		Scanner sc = new Scanner(System.in); 
		profit = sc.nextDouble();
		if(profit < 0) {
			System.out.print("输入本年利润数据错误,请重新输入:");    
			profit = sc.nextDouble();
			}
		if (profit > 0 && profit <= 10) {    
			bonus= profit*0.1;   
			} else if (profit > 10 && profit <= 20) {     
				bonus = 10*0.1 + (profit - 10)*0.075;    
				} else  {     
					bonus = 10*0.1+10*0.175+(profit - 20)*0.05;    
					}  
		System.out.println("应发放的奖金额为:" + bonus+ "万");
		}
}

1.3测试用例:(其他合理数据均给分)

用例预期结果
1、输入负数值-3提示输入的数据有误,重新输入
2、输入1-10的值:6输出结果0.6万
3、输入11-20的值:15输出结果:1.375万
4、输入大于20的值:30输出结果:3.25万

设计的测试用例覆盖全面,经过输入测试,达到预期效果。

第二题

某学院的学生会部门需要根据课程的平均值考核,每个学生有5门课程,平均值超过90分的等级为优,80-90之间为良,70-80之间为中,60-70之间为及格,60分以下为不及格。要求:5门课程的成绩从键盘依次输入,根据平均值的结果进行判定后,输出等级结果。

2.1流程图参考:

2.2参考代码如下:

import java.util.Scanner;
public class Test {
	public static void main(String[] args) {
		//average代表5门课的平均值,score代表每门课的成绩,sum代码5门课成绩的总和
		double average = 0;    
		int sum=0,score=0;
		System.out.println("请输入5门课的成绩:"); 
		for(int i=1;i<=5;i++) {
			System.out.print("请输入第"+i+"门课的成绩:");
			Scanner sc = new Scanner(System.in); 
			score = sc.nextInt();
			sum+=score;
		}
		average=sum/5;
		
		System.out.print("该同学的等级为:");
		switch((int)average/10) {
			case 9:System.out.println("优"); break;
			case 8:System.out.println("良"); break;
			case 7:System.out.println("中");break;
			case 6:System.out.println("及格");break;
			default:System.out.println("不及格");
			}
		}
}

2.3测试用例:(其他合理数据均给分)

用例预期结果
1、输入98、95、96、97、92输出等级优
2、输入87、86、84、82、83输出等级良
3、输入76、72、74、78、71输出等级中
4、输入65、63、67、64、61输出等级差
5、输入54、34、23、43、52输出等级不及格

设计的测试用例覆盖全面,经过输入测试,达到预期效果。

第三题

某公司制定出一套加班超时费用计算规则如下:每月标准上班时间是160小时,每小时工资是30元。如果上班时间在160-200小时之间,超出部分每小时按1.5倍工资发放;如果上班时间在200小时以上,200小时以内按照以上规则计算,超出200小时部分按2倍工资发放。从键盘输入员工的工作时间值,根据输入的值计算出本员工应发放的工资。

3.1流程图参考:

3.2参考代码如下:

import java.util.Scanner;
public class Test {
	public static void main(String[] args) {
		//salary代表应发工资,time代表工作时间
		double  time = 0,salary = 0;  
		System.out.print("请输入员工的工作时间(小时):");    
		Scanner sc = new Scanner(System.in); 
		time = sc.nextDouble();
		if(time < 0) {
			System.out.print("输入时间数据错误,请重新输入:");    
			time = sc.nextDouble();
			}
		if (time > 0 && time  <= 160) {    
			salary= time *30;   
			} else if (time  > 160 && time  <= 200) {     
				salary = 160*30 + (time - 160)*30*1.5;    
				} else  {     
					salary = 160*30 + 40*30*1.5+(time - 200)*30*2;    
					}  
		System.out.println("本员工应发工资为:" + salary);
		}
}

3.3测试用例:(其他合理数据均给分)

用例预期结果
1、输入的时间为负数:-8提示错误,重新输入
2、输入150输出4500
3、输入180输出5700
4、输入220输出7800

设计的测试用例覆盖全面,经过输入测试,达到预期效果。

第四题

某公司对一批新入职的员工进行6个月的考核,每个月部门经理根据出勤和工作表现进行打分,最后根据6个月的平均值进行排名划分等级择优录取,如果平均值超过90分的等级为优秀,80-90之间为良好,70-80之间为中等,60-70之间为合格,60分以下为不合格。要求:6个月的考核成绩从键盘依次输入,根据平均值的结果进行判定后,输出等级结果。

4.1流程图参考:

4.2参考代码如下:

import java.util.Scanner;
public class Test {
	public static void main(String[] args) {
		//score代表每个月的考核成绩,average代表6个月考核的平均值,sum代表总分值
		double average = 0;    
		int sum=0,score=0;
		System.out.println("请依次输入6个月的考核成绩:"); 
		for(int i=1;i<=6;i++) {
			System.out.print("请输入第"+i+"个月的成绩:");
			Scanner sc = new Scanner(System.in); 
			score = sc.nextInt();
			sum+=score;
		}
		average=sum/6;
		
		System.out.print("该员工的考核等级为:");
		switch((int)average/10) {
			case 9:System.out.println("优秀"); break;
			case 8:System.out.println("良好"); break;
			case 7:System.out.println("中等");break;
			case 6:System.out.println("合格");break;
			default:System.out.println("不合格");
			}
		}
}

2.3测试用例:(其他合理数据均给分)

用例预期结果
1、输入98、95、96、97、92输出等级优秀
2、输入87、86、84、82、83输出等级良好
3、输入76、72、74、78、71输出等级中等
4、输入65、63、67、64、61输出等级合格
5、输入54、34、23、43、52输出等级不合格

设计的测试用例覆盖全面,经过输入测试,达到预期效果。

第五题

某银行整存整取不同期限的利率描述如下:

某银行整存整取不同期限的月息利率规则如下:

月利率

年限

0.315%

一年

0.330%

两年

0.345%

三年

0.375%

五年

0.420%

八年

要求:从键盘输入存款的本金和年限,显示出用户到期时能从银行得到的本金和利息的合计金额。

5.1流程图参考:

5.2参考代码如下:

import java.util.Scanner;

public class Test {

 public static void main(String[] args) {

  //money代表本金,rate代表月利率,total代表本金合计,year代表年限

  double money,rate,total; 

  int year;

  System.out.println("请输入本金:"); 

  Scanner sc = new Scanner(System.in); 

  money=sc.nextDouble();

  System.out.println("请输入年限:"); 

  Scanner sc_year = new Scanner(System.in); 

  year=sc_year.nextInt();

  if(year==1) rate=0.00315; /* 根据年限确定利率*/

   else if(year==2)rate=0.00330;

    else if(year==3) rate=0.00345;

     else if(year==5) rate=0.00375;

      else if(year==8) rate=0.00420;

       else rate=0.0;

  total=money + money * rate * 12 * year; /* 计算到期的本利合计*/

  System.out.println("本金合计为:"+total); 

  }

}

5.3测试用例:(其他合理数据均给分)

用例

预期结果

1、输入:本金10000,年限:1

输出:10378.0

2、输入:本金10000,年限:2

输出:10792.0

3、输入:本金30000,年限:3

输出:33726.0

4、输入:本金30000,年限:5

输出:36750.0

5、输入:本金50000,年限:8

输出:70160.0

设计的测试用例覆盖全面,经过输入测试,达到预期效果。

第六题

某公司对员工按工时发放工资描述如下:

某公司每月按照员工工作时长发工资,本单位规定员工的基本工作量为160小时/月,工资计算方法为:时长小于等于160小时,每小时按30元计算;时长小于等于200小时,超出部分按照每小时35元计算;时长超出200小时,200小时以内按照以上规则计算,超出200小时部分按照每小时40元计算。要求:从键盘输入员工的工作时间值,根据输入的值计算出本员工应发放的工资。

6.1流程图参考:

6.2参考代码如下:

import java.util.Scanner;

public class Test {

 public static void main(String[] args) {

  //salary代表应发工资,time代表工作时间

  double time = 0,salary = 0;  

  System.out.print("请输入员工的工作时间(小时):");    

  Scanner sc = new Scanner(System.in); 

  time = sc.nextDouble();

  if(time < 0) {

   System.out.print("输入时间数据错误,请重新输入:");    

   time = sc.nextDouble();

   }

  if (time > 0 && time <= 160) {    

   salary= time *30;   

   } else if (time > 160 && time <= 200) {     

    salary = 160*30 + (time - 160)*35;    

    } else {     

     salary = 160*30 + 40*35+(time - 200)*40;    

     }  

  System.out.println("本员工应发工资为:" + salary);

  }

}

2.3测试用例:(其他合理数据均给分)

用例

预期结果

1、输入的时间为负数:-8

提示错误,重新输入

2、输入140

输出4200

3、输入160

输出4800

4、输入190

输出5850

5、输入200

输出6200

6、输入230

输出7400

设计的测试用例覆盖全面,经过输入测试,达到预期效果。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序疯

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值