电信计费
某电信公司手机通话费计算程序
某公司设计了一个手机话费套餐,见下表
套餐类型 国内基本通话时长 超出部分收费 免费短信包 超出部分收费 国内数据流量 超出部分收费 套餐价格
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);
}
}