
总接口
public interface Food {
public abstract double Price();
public abstract String Name();
}
四个继承接口
import java.util.Scanner;
public interface Hamber extends Food {
public static void ham(){
System.out.println("1.香辣鸡腿堡 ¥19");
System.out.println("2.新奥尔良烤鸡腿堡 ¥19.5");
System.out.println("0. 返回上个界面");
}
}
import java.util.Scanner;
public interface Wing extends Food {
public static void wing(){
System.out.println("1.新奥尔良烤翅 ¥12.5");
System.out.println("2.香辣鸡翅 ¥19.5");
System.out.println("3.吮指原味鸡 ¥12 ");
System.out.println("0. 返回上个界面");
}
}
import java.util.Scanner;
public interface Snak extends Food{
public static void sn(){
System.out.println("1.土豆泥 ¥6.5");
System.out.println("2.薯条 ¥12");
System.out.println("3.黄金鸡块 ¥11.5 ");
System.out.println("0. 返回上个界面");
}
}
import java.util.Scanner;
public interface Drink extends Food {
public static void dr() {
System.out.println("1.可乐 ¥9");
System.out.println("2.雪碧 ¥9");
System.out.println("3.橙汁 ¥10 ");
System.out.println("0. 返回上个界面");
}
}
接口实现类
public class SpicyBurger implements Hamber {
@Override
public double Price() {
return 19;
}
@Override
public String Name() {
return "香辣鸡腿堡";
}
}
class NewOrleansBurger implements Hamber{
@Override
public double Price() {
return 19.5;
}
@Override
public String Name() {
return "新奥尔良烤鸡腿堡";
}
}
package KFC;
public class PotatoMud implements Snak {
@Override
public double Price() {
return 6.5;
}
@Override
public String Name() {
return "土豆泥";
}
}
class Frize implements Snak{
@Override
public double Price() {
return 12;
}
@Override
public String Name() {
return "薯条";
}
}
class GoldenChicken implements Snak{
@Override
public double Price() {
return 11.5;
}
@Override
public String Name() {
return "黄金鸡块";
}
}
public class NewOrleansWing implements Wing {
@Override
public double Price() {
return 12.5;
}
@Override
public String Name() {
return "新奥尔良烤翅";
}
}
class SuckFinger implements Wing{
@Override
public double Price() {
return 12;
}
@Override
public String Name() {
return "吮指原味鸡";
}
}
class SpicyWing implements Wing{
@Override
public double Price() {
return 11.5;
}
@Override
public String Name() {
return "香辣鸡翅";
}
}
public class Coka implements Drink{
@Override
public double Price() {
return 9;
}
@Override
public String Name() {
return "可乐";
}
}
class Sprint implements Drink{
@Override
public double Price() {
return 9;
}
@Override
public String Name() {
return "雪碧";
}
}
class Jiuce implements Drink{
@Override
public double Price() {
return 10;
}
@Override
public String Name() {
return "橙汁";
}
}
制造类 传递参数,传递总结,以及购买列表
import java.util.ArrayList;
public class HamberMake { //生产汉堡,方便向总价和集合中写入
public static double hamber(int i , double sum , ArrayList<String> c){ //三个参数分别代传参
SpicyBurger spicyBurger = new SpicyBurger();
NewOrleansBurger newOrleansBurger = new NewOrleansBurger();
if (i == 1) { //对应 1.香辣鸡腿堡
sum += 19; //总价计算
c.add(spicyBurger.Name() + " ¥19\r\n"); //向集合中添加菜单
Hamber.ham();
}
else if (i == 2) { //对应 2.新奥尔良烤堡
sum += 19.5;
c.add(newOrleansBurger.Name() + " ¥19.5\r\n");
Hamber.ham();
}
return sum;
}
}
import java.util.ArrayList;
public class WingMake {
public static double wing(int i , double sum , ArrayList<String> c) {
NewOrleansWing newOrleansWing = new NewOrleansWing();
SpicyWing spicyWing = new SpicyWing();
SuckFinger suckFinger = new SuckFinger();
if (i == 1) {
sum += newOrleansWing.Price();
c.add(newOrleansWing.Name()+" ¥12.5\r\n");
Wing.wing();
}
else if (i == 2){
sum += spicyWing.Price();
c.add(spicyWing.Name()+" ¥19.5\r\n");
Wing.wing();
}
else if (i == 3){
sum += suckFinger.Price();
c.add(suckFinger.Name()+" ¥12\r\n");
Wing.wing();
}
return sum;
}
}
import java.util.ArrayList;
public class SnakMake {
public static double snak(int i , double sum , ArrayList<String> c) {
PotatoMud potatoMud = new PotatoMud();
Frize frize = new Frize();
GoldenChicken goldenChicken = new GoldenChicken();
if (i == 1) {
sum += potatoMud.Price();
c.add(potatoMud.Name()+" ¥6.5\r\n");
Snak.sn();
}
else if (i == 2){
sum += frize.Price();
c.add(frize.Name()+" ¥12\r\n");
Snak.sn();
}
else if (i == 3){
sum += goldenChicken.Price();
c.add(goldenChicken.Name()+" ¥11.5\r\n");
Snak.sn();
}
return sum;
}
}
import java.util.ArrayList;
public class DrinkMake {
public static double drink(int i , double sum , ArrayList<String> c,int count) {
Coka coka = new Coka();
Sprint sprint = new Sprint();
Jiuce jiuce = new Jiuce();
if (count%2 == 0){ // 第二杯半价
if (i == 1) {
sum += (coka.Price()/2);
c.add(coka.Name()+" ¥4.5\r\n");
Drink.dr();
}
else if (i == 2){
sum += (sprint.Price()/2);
c.add(sprint.Name()+" ¥4.5\r\n");
Drink.dr();
}
else if (i == 3){
sum += (jiuce.Price()/2);
c.add(jiuce.Name()+" ¥5\r\n");
Drink.dr();
}
}
else {
if (i == 1) {
sum += coka.Price();
c.add(coka.Name() + " ¥9\r\n");
Drink.dr();
} else if (i == 2) {
sum += sprint.Price();
c.add(sprint.Name() + " ¥9\r\n");
Drink.dr();
} else if (i == 3) {
sum += jiuce.Price();
c.add(jiuce.Name() + " ¥10\r\n");
Drink.dr();
}
}
return sum;
}
}
购物车类
import java.math.BigDecimal;
import java.util.Calendar;
import java.util.Scanner;
public class Cart { //购物车
private double sum;
private int money = 0;
private double result = 0;
public void setSum(double order){
sum += order;
}
public double getSum() {
return sum;
}
public void Show(){
System.out.println("当前总价 ¥"+sum);
}
public void Pay(){
System.out.println("输入付款金额");
Scanner sc = new Scanner(System.in);
money += sc.nextInt();
}
public void Calculate(double sum){
System.out.println("支付金额为 "+money);
while (money<sum){
double last;
BigDecimal bg = new BigDecimal(sum - money); //保留两位小数操作
last = bg.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
System.out.println("支付金额不足,请继续支付"+last);
Pay();
}
result = money - sum;
BigDecimal bg = new BigDecimal(result); //保留两位小数操作
result = bg.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
System.out.println("找零"+result);
}
public double Sale(){
String []arr = {"星期日","星期一","星期二","星期三","星期四","星期五","星期六"};
Calendar calendar = Calendar.getInstance();
System.out.println("今天是:"+arr[calendar.get(Calendar.DAY_OF_WEEK)-1]); //1.数组下标从0开始;2.老外的第一天是从星期日开始的
if (arr[calendar.get(Calendar.DAY_OF_WEEK)-1] == "星期日"){
System.out.println("所有商品享受八折优惠");
sum *= 0.8;
BigDecimal bg = new BigDecimal(sum);
sum = bg.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
System.out.println("总价为 "+sum);
return sum;
}
else {
System.out.println("今天不参与8折活动");
return sum;
}
}
public double Change(){
return result;
}
public int getMoney(){
return money;
}
}
实现类
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Scanner;
public class Order {
double sum = 0;
Cart cart = new Cart();
ArrayList<String> list = new ArrayList<>();
public void Order() throws IOException {
System.out.println("进入购买选单");
System.out.println("=====================================");
System.out.println("通过数字键选择");
System.out.println("1. 汉堡类");
System.out.println("2. 鸡翅类");
System.out.println("3. 小吃类");
System.out.println("4. 饮料类");
System.out.println("0. 结算界面");
System.out.println("=====================================");
Scanner sc = new Scanner(System.in);
int o1 = sc.nextInt();
switch (o1) {
case 1:
Hamber.ham();
Scanner choice = new Scanner(System.in);
int ch = choice.nextInt();
while (ch!=0) {
sum = HamberMake.hamber(ch, sum, list);
choice = new Scanner(System.in);
ch = choice.nextInt();
}
this.Order();
break;
case 2:
Wing.wing();
choice = new Scanner(System.in);
ch = choice.nextInt();
while (ch!=0) {
sum = WingMake.wing(ch, sum, list);
choice = new Scanner(System.in);
ch = choice.nextInt();
}
this.Order();
break;
case 3:
Snak.sn();
choice = new Scanner(System.in);
ch = choice.nextInt();
while (ch!=0) {
sum = SnakMake.snak(ch, sum, list);
choice = new Scanner(System.in);
ch = choice.nextInt();
}
this.Order();
break;
case 4:
Drink.dr();
choice = new Scanner(System.in);
ch = choice.nextInt();
int count = 1;
while (ch!=0) {
sum = DrinkMake.drink(ch, sum, list,count);
choice = new Scanner(System.in);
ch = choice.nextInt();
count++;
}
this.Order();
break;
case 0:
Purcash();
Save();
}
}
public void Purcash(){
System.out.println("您的订单为");
System.out.println(list);
System.out.println("总价 "+sum);
cart.setSum(sum);
sum =cart.Sale();
cart.Pay();
cart.Calculate(sum);
}
public void Save() throws IOException {
File file= new File("E:\\KFC\\receipt.txt");
file.createNewFile();
try {
FileWriter fileWriter = new FileWriter(file);
fileWriter.write("==============================\r\n");
fileWriter.write(String.valueOf(list));
fileWriter.write("\r\n\r\n");
fileWriter.write("合计 "+"¥"+sum+"\r\n");
fileWriter.write("收款"+"¥"+cart.getMoney()+"\r\n");
fileWriter.write("找零"+"¥"+cart.Change()+"\r\n");
fileWriter.write("==============================");
fileWriter.flush();
fileWriter.close();
}catch (IOException e){
e.printStackTrace();
}
}
}
主函数
import java.io.IOException;
import java.util.Calendar;
public class main {
public static void main(String[] args) throws IOException {
Order K1 = new Order();
K1.Order();
}
}
本文介绍了KFC结账系统的设计,包括总接口定义,四个继承接口的详细说明,接口实现类的实现方式,购物车类的功能以及实现类的具体操作。主函数用于演示整个结账流程。
730

被折叠的 条评论
为什么被折叠?



