当前位置: 首页 > news >正文

芜湖市住房和城乡建设委员会网站/优化人员配置

芜湖市住房和城乡建设委员会网站,优化人员配置,个人网站设计论文怎么写,陕西企业营销型网站同学们应该都去麦当劳或肯德基吃过快餐吧?请同学们参考肯德基官网的信息模拟肯德基快餐店的收银系统,合理使用C或Java或Python结合设计模式(2种以上)至少实现系统的以下功能: 1.正常餐品结算和找零。 2.基本套餐结算…

同学们应该都去麦当劳或肯德基吃过快餐吧?请同学们参考肯德基官网的信息模拟肯德基快餐店的收银系统,合理使用C++或Java或Python结合设计模式(2种以上)至少实现系统的以下功能:

1.正常餐品结算和找零。

2.基本套餐结算和找零。

3.使用优惠劵购买餐品结算和找零。

4.可在一定时间段参与店内活动(自行设计或参考官网信息)。

5.模拟打印小票的功能(写到文件中)。

 

问题分析

    这个题目主要是考察设计模式的掌握情况。作为一个肯德基快餐店的收银系统,首先实现的就是它的订单功能,这里使用了工厂方法模式和抽象工厂模式,由用户选定自己需要的餐品,然后交由相应的“工厂”进行“生产”。在一定时间段内参与店内活动这一项,可以通过Java的api直接获取当前时间,从而确定是否在活动时间内。而打印小票写入文件中,则使用数组记录下用户的所有餐品选择,然后利用bufferedWriter写入文件就可以了。

 

设计模式图

1.建立Single接口输出餐品信息

package KFC;

public interface Single {
    void printInfo();
}
 

2.抽象类:餐品基本信息

    package KFC;
    
    public abstract class AbstractBaseInfo {
        public static String type;    //种类
        public int num;    //数量
        public double price;    //价格
        
        public double total() {
            return num*price;    //总价    
        }
    }

 

3.不同种类的餐品基类

package Type;

import KFC.AbstractBaseInfo;
import KFC.Single;

public class Hamburger extends AbstractBaseInfo implements Single {

    @Override
    public void printInfo() {
        System.out.println("--" + this.type + "\t数量:" + this.num + "\t单价:" + this.price + "\t合计:" + this.total());
    }
}

4.不同种类餐品实现类

package KFC;

import Type.Hamburger;

public class Hamburgerbeef extends Hamburger{
    public Hamburgerbeef(int num) {
        this.type = "汉堡";
        this.price = 10.0d;
        this.num = num;
    }
}

5.抽象工厂接口

package KFC;

import Type.Dessert;
import Type.Drink;
import Type.Hamburger;
import Type.SetMeal;
import Type.Snack;

public interface KFCFactory {
    public Hamburger produceHamburger(int category,int num);
    public Drink produceDrink(int category,int num);
    public Dessert produceDessert(int category,int num);
    public Snack produceSnack(int category,int num);
    public SetMeal produceSetMeal(int setmeal,int num);
}

 

6.工厂实现类

列举Hamburger作为参考

class KFCRealFactory implements KFCFactory {

    @Override
    public Hamburger produceHamburger(int category, int num) {
        if(category==1) {
            return new Hamburgerbeef(num);
        }else if(category==2) {
            return new Hamburgerchicken(num);
        }else if(category==3) {
            return new Hamburgerother(num);
        }else {
            return null;
        }
    }

}

7.餐品订购

public class Customer {
    private KFCFactory factory;
    
    public Customer(KFCFactory factory) {
        this.factory = factory;
    }
    
    public double orderHamburger(int category,int num) {
        Hamburger hamburger = factory.produceHamburger(category, num);
        hamburger.printInfo();
        return hamburger.total();
    }

8.文件存储

BufferedWriter w=new BufferedWriter(new FileWriter("C:\\订餐\\src\\Client\\bill.txt",true));
        w.write("--------------------------账单-------------------------");
        w.newLine();
        for(int i=0;i<count;i++) {
            w.write(bill[i]);
            w.newLine();
            w.flush();
        }
        w.write("-------------------------------------------------------");
        w.newLine();
        if(t1==1) {
            w.write("--满减:-10元");
            w.newLine();
        }
        if(t2==1) {
            w.write("周日会员日特惠88折");
            w.newLine();
        }
        w.write("--总计:"+df.format(total));
        w.newLine();
        w.write("--付款:"+pay);
        w.newLine();
        w.write("--找零:"+df.format(change));
        w.newLine();
        w.write("--"+dateFormat.format(date));
        w.newLine();
        w.flush();
        w.close();

 

运行结果

总结

水平有限,目前还没有制作可视化的界面,正在努力学习中了,JavaFx真的好难。这个题目可以说是我真正的第一次使用Java进行程序设计,之前一直沉醉在之前所学的那一点点C语言之中。Java的使用有很多api可以使用,但是太多了也令人头大,设计模式这种理论性的学习本来就是我最头疼的,引入到实践之中就更加困难了,本程序的实现个人认为使用到了工厂方法模式和抽象工厂模式,如果有错误之处,希望提出建议。

 

http://www.lbrq.cn/news/819199.html

相关文章:

  • 怎么样创建自己的小程序/英文外链seo兼职在哪里找
  • 深圳模板网站制作/竞价推广员月挣多少
  • 普通网站制作/发布外链
  • 重庆长寿网站设计公司推荐/国内可访问的海外网站和应用
  • 银行门户网站建设方案/百度收录是什么意思
  • 哪个网站是做韩国化妆品正品/站长统计app进入网址新版小猪
  • 新加坡网站后缀/百度关键词搜索指数
  • 有没有做语文题的网站/小程序开发软件
  • 莱芜做网站/推广工具有哪些
  • 网站seo的推广计划/友情链接赚钱
  • 做动画 的 网站/网站如何进行网络推广
  • 网站大多用源码来做吗/百度小程序对网站seo
  • 微信如何上传wordpress/seo顾问什么职位
  • 网站建设工作部署会/网络宣传推广方法
  • 5网站建设公司/百度学术论文查重
  • 什么样式表一般用于大型网站/搜索引擎推广与优化
  • 有哪些网站结构是不合理的/写手接单平台
  • 手机网站开发公司/职业培训机构排名前十
  • 注册网站请签署意见是写无/谷歌浏览器 免费下载
  • 后台网站要做权限前端还是后台做/一般网站推广要多少钱
  • b站到底是哪个网站/百度新站关键词排名
  • 环保设备公司网站模板/百度快速收录软件
  • 常用python编程软件/windows优化大师怎么卸载
  • 浙江省网站建设公司排名/宁波搜索引擎优化seo
  • 网站备案正常多久/百度企业认证怎么认证
  • 旅游酒店网站建设/秦皇岛seo招聘
  • 贵港网站推广/qq群推广网站免费
  • 机械设备如何做网站/百度竞价冷门产品
  • 做网站运营是有提成的吗/网站首页面设计
  • 长宁网站建设公司/中小企业网站优化
  • 智慧工厂网络升级:新型 SD-WAN 技术架构与应用解析
  • Docker4-容器化企业级应用
  • Ubuntu22.04.5 LTS安装与使用Docker
  • 力扣面试150题--搜索旋转排序数组
  • Vue3 面试题及详细答案120道(61-75 )
  • 使用qemu命令启动虚拟机