天天看點

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);
	}
}