天天看点

java计算费用类题目

电信计费

某电信公司手机通话费计算程序

某公司设计了一个手机话费套餐,见下表

套餐类型 国内基本通话时长 超出部分收费 免费短信包 超出部分收费 国内数据流量 超出部分收费 套餐价格

A套餐 250min 0.25/min 100条 0.1元/条 50MB 0.3元/MB 58元/月

*基本通话时长不足1分钟的按照1分钟计算;数据流量不足1M的按照1M计算

要求编写程序,从控制台读入用户的本月国内通话时长、短信条数和数据流量,计算出该用户本月的应激的话费(不计算国际及港澳台通话和其他增值业务的费用)。

import java.util.Scanner;
public class Test1109{
	public static void main(String[] args){
		
		/*定义 通话时长 call double
		短信条数 msg int
		流量 flow double
		资费 double fee
		
		超出部分的通话费用 call_fee double
		超出部分的短信费用 msg_fee double
		超出部分的流量费用 flow_fee double*/
		Scanner sca = new Scanner(System.in);
		System.out.println("请录入通话时长:");
		double call = sca.nextDouble();
		System.out.println("请录入短信条数:");
		int msg = sca.nextInt();
		System.out.println("请录入使用的流量数:");
		double flow = sca.nextDouble();
		double fee= 58 ;
		//Math.ceil()方法执行的是向上取整计算,它返回的是大于或等于函数参数,并且与之最接近的整数。
		if (call>250){
			fee+=Math.ceil(call-250)*0.25;
		}
		if (msg>100){
			fee+=Math.ceil(msg-100)*0.1;
		}
		if (flow>50){
			fee+=Math.ceil(flow-50)*0.3;
		}
		
		System.out.println("总资费:"+fee);
		
		
	}
}
           

停车费用

停车场收费规则如下:15分钟之内不收费,超过15分钟到2小时,收费2元,2小时之后,每小时收费3元,

不足1小时按照1小时计算。停车场最高封顶收费50元,从键盘输入停车的分钟数,

分钟数小于0则提示错误,输入正确,则计算停车费用并输出。

import java.util.Scanner;
public class Test4{
	public static void main(String[]args){
		Scanner sc = new Scanner(System.in);
		System.out.println("请输入停车分钟");
		double b=0;     //double型
		double a =sc.nextDouble();
		if (a<=0){
			System.out.println("分钟错误!");
		}else if (a<=15){
			b=0;
		}else if(a<(60*2)){
			b=2;
		}else {
			b=Math.ceil((a-(60*2))/60)*3+2;  
			//Math.ceil()方法执行的是向上取整计算,它返回的是大于或等于函数参数,并且与之最接近的整数。
		}
		if (b>50){
			b=50;    //停车场最高封顶收费50元
		}
		System.out.println("您停了"+a+"分钟"+"应收费"+b+"元");
	}
}
           

函件费用

import java.util.Scanner;
public class Test1108{
	public static void main(String[] args){
		Scanner sc= new Scanner(System.in);
		double a=0;
		double fee=0;
		int n=0;
		int w=0;
		double z=0;
		System.out.println("请输入函件重量");
		while(true){
			a=sc.nextInt();
			if(a<=0){
				System.out.println("不合法");
				break;
			}else if(a>2000){
                System.out.println("超重,请重新输入");
				continue;
			}
			//Math.ceil()方法执行的是向上取整计算,它返回的是大于或等于函数参数,并且与之最接近的整数。
			if(a<=100){
				fee=Math.ceil(a/20)*1.2;
				n++;
			}else{
			fee=Math.ceil((a-100)/100)*3.6+6; //计算停车费
			    w++;
			}
			z=z+fee;
			System.out.println("函件费用为"+fee);
		}
		System.out.println("函件重量在100以内的个数为"+n+"函件重量大于100的个数为"+w);
		System.out.println("总资费为"+z);
	}
}