一.题目描述:
同学们应该都去麦当劳或肯德基吃过快餐吧?请同学们参考肯德基官网的信息模拟肯德基快餐店的收银系统,合理使用C++或Java或Python结合设计模式(2种以上)至少实现系统的以下功能:
1.正常餐品结算和找零。
2.基本套餐结算和找零。
3.使用优惠劵购买餐品结算和找零。
4.可在一定时间段参与店内活动(自行设计或参考官网信息)。
5.模拟打印小票的功能(写到文件中)。
二.程序源代码:
//餐品接口
public interface Food {
void printInf();//显示所选餐品结算结果
}
//食物信息父类
public class FoodInf {
protected String nam;//食物名称
protected double price;//食物价格
protected int num; //食物数量
public double totalPrice()//餐品总计
{
return num*price;
}
}
import java.io.FileWriter;
import java.io.IOException;
//汉堡包父类
public class Hamburgers extends FoodInf implements Food{
@Override
public void printInf() {
System.out.println("----------------------------------------------------------------------");
System.out.println(" "+nam+" "+num+" "+price+" "+totalPrice());
}
public void Write()/*模拟小票写入文件*/
{
try {
FileWriter bw = new FileWriter("Bill.txt",true);
bw.write("----------------------------------------------------------------------"+"\r\n");
bw.write(" "+nam+" "+num+" "+price+" "+totalPrice()+"\r\n");
bw.close();
}catch(IOException e) {
e.printStackTrace();
}
}
}
public class Hamburger_1 extends Hamburgers{
public Hamburger_1(int num) {
nam="香辣鸡腿堡";
price=10;
this.num=num;
}
}
public class Hamburger_2 extends Hamburgers{
public Hamburger_2(int num) {
nam="田园鸡腿堡";
price=8;
this.num=num;
}
}
public class Hamburger_3 extends Hamburgers{
public Hamburger_3(int num) {
nam="奶油鸡腿堡";
price=11;
this.num=num;
}
}
import java.io.FileWriter;
import java.io.IOException;
//饮品父类
public class Drinkings extends FoodInf implements Food{
@Override
public void printInf() {
System.out.println("----------------------------------------------------------------------");
System.out.println(" "+nam+" "+num+" "+price+" "+totalPrice());
}
public void Write()/*模拟小票写入文件*/
{
try {
FileWriter bw = new FileWriter("Bill.txt",true);
bw.write("----------------------------------------------------------------------"+"\r\n");
bw.write(" "+nam+"