模拟肯德基快餐店点餐

本文介绍了如何使用C++、Java或Python结合抽象工厂设计模式模拟肯德基快餐店的收银系统,包括正常餐品结算、套餐结算、优惠券结算和活动参与等功能。此外,还讨论了设计思路、类图、运行结果以及实验后的经验总结,提到了文件I/O和数据库连接等知识点的运用。
摘要由CSDN通过智能技术生成

一.题目
请同学们参考肯德基官网的信息模拟肯德基快餐店的收银系统,合理使用C++或Java或Python结合设计模式(2种以上)至少实现系统的以下功能:
1.正常餐品结算和找零。
2.基本套餐结算和找零。
3.使用优惠劵购买餐品结算和找零。
4.可在一定时间段参与店内活动(自行设计或参考官网信息)。
5.模拟打印小票的功能(写到文件中)。
基本要求:
1.程序设计风格良好,控制台界面友好,最多两人一组完成任务。
2.实现功能测试代码,确保程序的健壮性。
3.画出使用的设计模式图。
二.题目分析
模拟肯德基点餐系统,我准备采用学过的抽象模式方法。第一步:抽象出食物接口,并创建食物的基类。第二步:模拟肯德基店的食物进一步建立抽象基类鸡翅类、饮料类、汉堡类、薯条类,这些抽象类实现食物类接口,并且继承食物基类。第三步:将第二步建立的那些抽象类具体化,建立鸡翅实现类、饮料实现类、汉堡实现类、薯条实现类。第四步:建立工厂接口,生产鸡翅、饮料、汉堡、薯条,再建立具体生产工厂,实现生产方法,返回要生产的食物对象。第五步:建立客户端类,抽象类无法直接创建自己的实例化对象,在客户端类中我们实现具体的关联,通过抽象工厂中的方法返回具体生产对象,建立抽象具体食物的对象。这样我们就可以返回具体食物的信息,完成具体食物的生产。
本次实验所用的抽象工厂方法的一些介绍如下,便于我们理解,清晰我们的思路。
抽象工厂模式:提供一个创建一系列相关或相互依赖对象的接口,而无须指定它们具体的类,属于对象创建型模式。
下面是一个简单的模式图
在这里插入图片描述
在这里插入图片描述
三.设计类图
在这里插入图片描述
程序代码如下:

package com.demo.factory.model;

public abstract class AbstractBaseFood {
	 // 类别
	  protected String kind;
	  // 数量
	  protected int num;
	  // 价格
	  protected float price;
	  // 合计
	  public float totalPrice()
	  {
	    return this.num * this.price;
	  }

}
package com.demo.factory.model;

public abstract class Beverage extends AbstractBaseFood implements IFood
{
	public String printMesage()
	  {
	    return("--" + this.kind + "饮料,\t单价:" + this.price + ",\t数量:" + this.num + ",\t合计:" + this.totalPrice());
	  }

}

package com.demo.factory.model;

public abstract class ChickenWings extends AbstractBaseFood implements IFood {
	public String printMesage()
	  {
	    return("--" + this.kind + "风味鸡翅,\t单价:" + this.price + ",\t数量:" + this.num + ",\t合计:" + this.totalPrice());
	  }

}

package com.demo.factory.model;

public abstract class FrenchFries extends AbstractBaseFood implements IFood {
	public String printMesage()
	  {
	    return("--" + this.kind + "风味薯条,\t单价:" + this.price + ",\t数量:" + this.num + ",\t合计:" + this.totalPrice());
	  }

}

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值