点餐系统

1. 菜品类Dish属性: 名称 name价格 price库存数 stock售出数 saleNum点赞数 likeNum

不提供带参构造方法
setter/getter

show方法, 横排打印每个菜品对象信息, 示例:
名称: 鱼香肉丝*************************************************
价格: 15.0元 库存: 100 已售: 27 点赞数: 18
******************************************************************

sale方法, 此方法用于点餐功能, 在测试类中的点赞功能中, 找到菜品对象的指针后, 用指针调用like方法, 实现点赞数+1
public void saleOut(int n){
this.saleNum += n; // 此处要注意, 当saleNum为null, +=的时候会报空指针异常
}

like方法, 此方法用于点赞功能, 在测试类中的点赞功能中, 找到菜品对象的指针后, 用指针调用like方法, 实现点赞数+1
public void like(){
this.likeNum ++; // 此处要注意, 当likeNum为null, ++的时候会报空指针异常
}

  1. 测试类
    静态变量
    控制台输入扫描器对象
    菜品数组dishArray, 初始长度为5
    静态代码块, 初始化3个菜品对象, 存储刀菜品数组中

    主函数main, 打印菜单
    1. 菜品展示
    遍历dishArray, 取出每一个指针, 调用show()方法打印菜品信息
    注意做null指针判断
    2. 添加菜品
    如果数组中没有剩余空间, 提示扩容, 然后return
    构造一个菜品对象Dish dish = new Dish()
    分别提示输入"菜品名称", “菜品价格”, “库存数量”, 并将用户在控制台输入的返回值存储到dish对象中(用set方法)
    遍历dishArray
    找到第一个不为null的位置, 把菜品对象的指针存进去
    提示"添加成功"
    3. 菜品下架
    菜品展示一下
    让用户选择需要删除的菜品编号
    需要判断为空, 有剩余库存 (库存数-售出数)的情况下不能下架 (不要问为什么这么设计, 客户的要求你只要实现就行)
    实现方式一: 直接把dishArray的指定元素置为null, 不前移
    实现方式二: 不仅置为null, 还要将后面的元素前移
    如果你写不出来实现方式二, 那就写实现方式一
    提示"下架成功"
    4. 菜品数组扩容
    创建新数组, 长度是原数组1.5倍
    遍历原数组, 把原数组中的元素转移到新数组中
    新数组的指针赋给原数组的指针 (这时候堆中的原数组就没有指针指向了, 等待被gc)
    提示"扩容成功"
    5. 点餐
    菜品展示一下
    输入需要点的菜品编号, 用变量i存储
    输入需要点的份数, 用变量n存储
    从数组中找到指定的菜品对象指针dish
    该有的判断要有
    取值器取出菜品的价格 * 上面输入的份数, 得出需要支付的金额, 打印出来
    dish.sale(n), 设置售出的数量, 把n传过去
    提示"点餐成功"

     6. 点赞菜品展示一下输入需要点赞的菜品编号, 用变量i存储从数组中找到指定的菜品对象指针dish该有的判断要有dish.like()提示"点赞成功"
    

Dish类:

package order;public class Dish {private String name;private Double price;private Integer stock;//库存数private Integer saleNum;//售出数private Integer likeNum;//点赞数public String getName() {return name;}public void setName(String name) {this.name = name;}public Double getPrice() {return price;}public void setPrice(Double price) {this.price = price;}public Integer getStock() {return stock;}public void setStock(Integer stock) {this.stock = stock;}public Integer getSaleNum() {return saleNum;}public void setSaleNum(Integer saleNum) {this.saleNum = saleNum;}public Integer getLikeNum() {return likeNum;}public void setLikeNum(Integer likeNum) {this.likeNum = likeNum;}public void show(){System.out.println("******名称:"+name+"************************************");System.out.print("\t价格:"+price);System.out.print("\t库存数:"+stock);System.out.print("\t售出数:"+saleNum);System.out.println("\t点赞数:"+likeNum);System.out.println("*****************************************************");}//sale方法, 此方法用于点餐功能, 在测试类中的点赞功能中, 找到菜品对象的指针后, 用指针调用like方法, 实现点赞数+1public void saleOut(int n){this.saleNum += n;  // 此处要注意, 当saleNum为null, +=的时候会报空指针异常}//like方法, 此方法用于点赞功能, 在测试类中的点赞功能中, 找到菜品对象的指针后, 用指针调用like方法, 实现点赞数+1public void like(){this.likeNum ++;  // 此处要注意, 当likeNum为null, ++的时候会报空指针异常}public void asd(int n){this.stock -=n;}
}

测试类:

package order;import java.util.Scanner;public class Demo01 {static Scanner sc= new Scanner(System.in);static Dish[] dishArray=new Dish[5];static{Dish dish0=new Dish();dish0.setName("鱼香肉丝");dish0.setPrice(12.8);dish0.setStock(5);dish0.setSaleNum(3);dish0.setLikeNum(3);dishArray[0]=dish0;Dish dish1=new Dish();dish1.setName("梅菜扣肉");dish1.setPrice(15.0);dish1.setStock(8);dish1.setSaleNum(6);dish1.setLikeNum(5);dishArray[1]=dish1;Dish dish2=new Dish();dish2.setName("酸辣土豆丝");dish2.setPrice(10.5);dish2.setStock(7);dish2.setSaleNum(5);dish2.setLikeNum(3);dishArray[2]=dish2;}public static void main(String[] args) {int choice=0;do {System.out.println("--------------欢迎查看再回楼菜单系统------------");System.out.println("1.菜品展示");System.out.println("2.添加菜品");System.out.println("3.菜品下架");System.out.println("4.菜品数组扩容");System.out.println("5.点餐");System.out.println("6.点赞");System.out.println("请选择:");choice=sc.nextInt();switch (choice){case 1:display();break;case 2:adddish();break;case 3:delate();break;case 4:dilatation();break;case 5:order();break;case 6:like();break;default:break;}} while (choice!=7);}public static void display(){System.out.println("进入菜品展示功能:");for (int i = 0; i < dishArray.length; i++) {if (dishArray[i] == null) {System.out.println("空");}else{System.out.println((i+1)+"号菜品");dishArray[i].show();}}}private static void adddish() {Dish dish=new Dish();if (dishArray[dishArray.length-1] != null) {System.out.println("请给菜单扩容!");}else {System.out.println("进入添加菜品功能");System.out.println("请输入菜品名字:");dish.setName(sc.next());System.out.println("请输入价格");dish.setPrice(sc.nextDouble());System.out.println("请输入库存");dish.setStock(sc.nextInt());System.out.println("请输入售出数");dish.setSaleNum(sc.nextInt());System.out.println("请输入点赞数:");dish.setLikeNum(sc.nextInt());}//遍历carArray数组找到第一个为null的位置,将car指针存进去for (int i = 0; i < dishArray.length; i++) {if (dishArray[i] == null) {dishArray[i]=dish;System.out.println(dish.getName()+"入库成功!");break;}}}private static void delate(){System.out.println("进入菜品下架功能");display();//先调用display()展示汽车System.out.println("请输入要删除的菜品编号");int index=sc.nextInt()-1;//使用index变量记录用户输入的删除编号if(dishArray[index].getStock()!=0){System.out.println("该商品库存不为0,请重新选择!");}else{dishArray[index]=null;}}public static void dilatation(){System.out.println("原菜单长度"+dishArray.length);Dish[] newarr= new Dish[dishArray.length + dishArray.length];for(int i = 0;i< dishArray.length;i++){newarr[i]=dishArray[i];}dishArray = newarr;System.out.println("扩容成功!");System.out.println("新菜单的长度为:"+dishArray.length);}public static void order(){System.out.println("进入点餐功能");display();System.out.println("请输入菜品编号:");Integer i= sc.nextInt();System.out.println("请输入点菜份数:");Integer n=sc.nextInt();if (dishArray[i]==null) {System.out.println("该菜品不存在,请重新选择:");}else {System.out.println("需要支付的价格为:"+dishArray[i-1].getPrice()*n+"元");dishArray[i-1].saleOut(n);dishArray[i-1].asd(n);}}public static void like(){System.out.println("进入菜品点赞功能");display();/*输入需要点赞的菜品编号, 用变量i存储从数组中找到指定的菜品对象指针dish该有的判断要有dish.like()提示"点赞成功"*/System.out.println("请输入菜品编号:");Integer i= sc.nextInt();if (dishArray[i-1]==null) {System.out.println("该菜品不存在,请重新选择:");} else {dishArray[i-1].like();}}
}

Java语言写点餐系统相关推荐

  1. Java语言写汽车租赁系统

    汽车租赁系统 汽车类Car 属性 汽车品牌 brand 汽车型号 model 颜色 color 租车人 leaser 日租金 rent 租借天数 day 状态 state 成员方法show()不定义构 ...

  2. 基于Java的校园点餐系统的设计与实现(论文+源码)_kaic

    摘要 随着生活质量的日益改善以及生活节奏的日益加快,人们对餐饮需求的质量以及速度也随之发生着变化.为了满足社会需求,餐饮的高质量和快节奏也渐渐使电话订餐和网上订餐业日益发展壮大.这也促使了以大学生为主 ...

  3. java代码编写的文本特征提取_Test1 java语言写的特征提取源代码,有搞文字识别的可以下载一看,简单易学 Develop 274万源代码下载- www.pudn.com...

    文件名称: Test1下载  收藏√  [ 5  4  3  2  1 ] 开发工具: Java 文件大小: 35 KB 上传时间: 2015-03-02 下载次数: 46 提 供 者: 常杰 详细说 ...

  4. Java计算机毕业设计点餐系统源码+系统+数据库+lw文档

    Java计算机毕业设计点餐系统源码+系统+数据库+lw文档 Java计算机毕业设计点餐系统源码+系统+数据库+lw文档 本源码技术栈: 项目架构:B/S架构 开发语言:Java语言 开发软件:idea ...

  5. Java实现咖啡馆选餐系统

    学习Java实现咖啡馆选餐系统,本文实现该系统的功能截图,和数据库设计SQL语句,系统功能图,功能优势等供大家参考 1.咖啡馆选餐系统背景 随着现在科技的发展,咖啡馆点餐和结账都是以线上操作的形势完成 ...

  6. Java后端服务器点餐系统的部署+前端微信小程序开发(13)

    Java后端服务器点餐系统的部署+前端微信小程序开发(13) 编译运行小程序 1,本地调试 这和你上面java的运行要保持一致,如果是本地的java项目运行你就用 localhost 后台Java直接 ...

  7. java osgi 文件_OSGi 系列(一)之什么是 OSGi :Java 语言的动态模块系统

    OSGi 系列(一)之什么是 OSGi :Java 语言的动态模块系统 OSGi 的核心:模块化.动态.基于 OSGi 就可以模块化的开发 java 应用,模块化的部署 java 应用,还可以动态管理 ...

  8. Java写点餐系统(数组篇)

    最近学了数组,用数组写了一个点餐系统的代码,在这里分享给大家,不足之处请大家多多包涵. "定餐系统"需求说明 现今已进入网络时代,网上购物.看新闻.交友等人们的日常生活已离不开网络 ...

  9. [附源码]java毕业设计网上点餐系统

    项目运行 环境配置: Jdk1.8 + Tomcat7.0 + Mysql + HBuilderX(Webstorm也行)+ Eclispe(IntelliJ IDEA,Eclispe,MyEclis ...

最新文章

  1. Dubbo常见面试题及答案汇总1000道(春招+秋招+社招)
  2. 【idea】Springboot整合jpa
  3. [AngularJS] “多重路由”嵌套模块——AngularJS“路由”嵌套学习资料教程
  4. QQ截屏 抓级联菜单、下拉菜单及右键弹出菜单图
  5. git 如何取消add操作
  6. C# 开发圆角控件的具体实现
  7. 通过网络使用其他计算机串口,串口如何连接两台电脑?两台电脑不能通过网线,仅能通过串口或者并口连接...
  8. 高段位产品经理必须掌握的商业模式分析该怎么做?
  9. php找不到phpmyadmin,phpMyAdmin 安装配置方法和问题解决
  10. HDU 4336 概率DP 状压
  11. C代码在SDK编辑中的使用————(一)
  12. Bootstrap-Table事件和方法
  13. 【渝粤教育】10763k2_客户服务管理_21秋考试
  14. 抽象工厂模式---创建型
  15. code collection 0.44版 发布
  16. antdesign 所兼容的浏览器_React爬坑之路——Antd兼容IE
  17. java jvm 1.6_JVM1.6 GC详解
  18. 基于C语言实现的遗传算法系统
  19. python 角度变弧度_弧度制和角度值怎么转换?
  20. 第2章 大数据可视化基础

热门文章

  1. android10.0(Q) root QCOM-SM6125 user版本打开root权限
  2. 杭州数澜联合创始人 \u0026 CTO 江敏:大数据思维和大数据冶炼 —— 拒绝坐着金山吃馒头...
  3. 免费网盘如何选择@2020年
  4. 机器学习之数据的偏态分布
  5. 如何修改oa服务器地址,oa服务器地址设置
  6. android 进球数据布局,10个有趣的数据,总结梅西令人难以置信的2018-19赛季!
  7. 【SuperMap-Leaflet】等值线/面裁剪参数设置
  8. 火星人怒批古董微积分,误人子弟
  9. 获取手机唯一识别码IMEI
  10. SAP:常用的T-code