记录一下近段时间自己遇到的有趣的小问题
1.披萨问题
创建一个类来描述单个披萨饼(Pizza)的信息。该类的内容如下:
a.该类存在若干属性:
1.披萨饼的尺寸大小(size),可选的尺寸型号为小饼、中饼和大饼。
2.饼上曲奇(cheese toppings)添加品的数量。
3.饼上意大利腊肠片(pepperoni toppings)添加品的数量
4.饼上火腿片(ham toppings)添加品的数量
b.该类存在一个公有方法calcCost()返回比萨饼的单价。
计算价格的公式如下:
小饼: $10 + $2/每个添加品
中饼: $12 + $2/每个添加品
大饼: $14 + $2/每个添加品
c.该类存在一个公有的方法getDescription(),在显示器上打印输出披萨饼的尺寸、各种添加品的数量,以及最后由calcCost()返回的总价格。
编写该类并用测试类对该类的使用进行案例演示。
以下为代码:
package pizza;
import java.util.*;
/**
* @author Mr.Cronin
*
*/
public class Pizza{
public static void main(String[] args) {
System.out.println("Welcome to my restaurant!");
System.out.println("Enter the data to book your food!");
System.out.println("There are three sizes: large(1) , middle(0) , small(-1)" );
getDescription();
}
//披萨尺寸
public static String setSize(int a) {
// Scanner in = new Scanner(System.in);
String size = null;
if(a!=-1 && a!=0 && a!=1)
{
System.out.println("Error!Please enter again!");
size = " ";
}
else {
switch (a) {
case -1: size = "小饼";
break;
case 0 : size = "中饼";
break;
case 1 : size = "大饼";
break;
}
}
return size;
}
//添加物数量获取:
public static int theCheeseToppings(int a) {
return a;
}
public static int thePepperoniToppings(int b) {
return b;
}
public static int theHamToppings(int c) {
return c;
}
//计算价格
public static int calcCost(int size,int cost,int num1,int num2,int num3) {
System.out.println(setSize(size));
switch (setSize(size)) {
case "小饼":
cost = 10+2*theCheeseToppings(num1)+2*thePepperoniToppings(num2)+2*theHamToppings(num3);
break;
case "中饼":
cost = 12+2*theCheeseToppings(num1)+2*thePepperoniToppings(num2)+2*theHamToppings(num3);
break;
case "大饼":
cost = 14+2*theCheeseToppings(num1)+2*thePepperoniToppings(num2)+2*theHamToppings(num3);
break;
}
return cost;
}
public static void getDescription() {
Scanner input = new Scanner(System.in);
int value=0;
int a = input.nextInt();
System.out.println("So, the size is :" + setSize(a));
System.out.println("You can add these things: Cheese , Pepperoni , Ham");
System.out.println("How many Cheese do you want to add?");
int num1 = input.nextInt();
theCheeseToppings(num1);
System.out.println("How many Pepperoni do you want to add?");
int num2=input.nextInt();
thePepperoniToppings(num2);
System.out.println("How many Hum do you want to add?");
int num3=input.nextInt();
theHamToppings(num3);
System.out.println("Please pay the following :"+calcCost(a,value,num1,num2,num3));
}
}
2.咨询费计算问题
天福律师事务所在业务上需要一个程序来进行律师咨询费的计算和收费单据的打印,在这里,我们可以尝试编写一个JAVA命令行程序来满足这个需求,具体业务流程如下:
a. 程序运行初期,将提示输入咨询所花费的小时和分钟。
b. 具体计费标准:
l 150元/一刻钟(即15分钟)
l 单次咨询时间低于15分钟,则按照15分钟计费。
l 单次咨询时间高于15分钟,超出的不足15分钟的部分不收取费用,
c. 打印收费票据 (用控制台输出来模拟)
d. 参考操作界面:
====== 欢迎来到天福律师事务所 =====
请输入咨询时间:
小时:1
分钟:46
//
您总共咨询话费1小时46分钟,现按1小时45分钟计费,最后1分钟免费。
/// 天福律师事务所-收费单///
收费标准:150元/一刻钟
消费时间:105分钟,共计7刻钟
缴费金额:1050元。
感谢您对我们工作的信赖和支持。
设计和编码提示:
编制Bill类完成账单的信息录入,费用的计算和收 费单据的打印工作。
编制 BillTest类来完成对Bill类的测试。
代码如下所示:
package lawyer;
import java.util.*;
/**
* @author Mr.Cronin
*
*/
public class Bill {
public static void main(String[] args) {
// TODO Auto-generated method stub
menu();
}
public static int getHour(int hour) {
return hour;
}
public static int getMinute(int minute) {
return minute ;
}
public static int Money(int clock) {
return clock*150;
}
public static void menu() {
Scanner in = new Scanner(System.in);
System.out.println("====== 欢迎来到天福律师事务所 =====");
System.out.println("请输入咨询时间:");
System.out.print("小时:");
int hour=in.nextInt();
System.out.print("分钟:");
int minute=in.nextInt() ;
int time =hour*60+minute-1;
int clock =time/15;
System.out.println("//");
System.out.println("您总共咨询话费 " + getHour(hour) + "小时" +getMinute(minute-1) + "分钟");
System.out.println("现按" + getHour(hour) + "小时" +getMinute(minute-1) + "分钟计费,最后1分钟免费。");
System.out.println();
System.out.println(">>>>> 天福律师事务所-收费单 <<<<<<");
System.out.println("收费标准: 150/一刻钟(15分钟)");
System.out.println("消费时间: "+getMinute(time) +"分钟,共计" + clock + "刻钟");
System.out.println("缴费金额: "+Money(clock) + "元");
}
}
To be continue…