packagecom.dingcanxitong3;//创建一个功能的类实现各个功能接口

importjava.util.Scanner;public class Functions implementsDingCan,ChaKan,QianShou,ShanChu,DianZan,TuiChu{int length = 5;

String[] names= new String[length];//订餐人

String[] descs = new String[length];//订单餐品信息

int[] dates =new int[length];//送餐日期

String[] addresses = new String[length];//送餐地址

double[] moneys = new double[length];//总价

boolean[] status = new boolean[length];//订餐状态:true:完成;false未完成

int[] nums = new int[length];//订餐数量

String [] foods= {"红烧鱼","蛋炒饭","黄焖鸡"};double [] prices = {15.00,10.00,16.00};int [] zan = {10,20,30};

Scanner sc= newScanner(System.in);

@Overridepublic voiddingcan() {//TODO Auto-generated method stub

System.out.println("****我要订餐****");int index = -1;//定义要添加的位置下标

for(int i = 0 ;i

if(names[i]==null) {//如果i数组上的值为空

index =i;//把i赋值给index

break;//跳出if

}

}if(index<0) {//如果index小于0,说明上个循环未找到为空的数组,则

System.out.println("当前餐袋已满!!!");//提示

}else{

System.out.println("请输入订餐人姓名:");//如果index不小于0,提示输入姓名

names[index] =sc.next();//订餐人数组index接收控制台输入的值

System.out.println("序号\t菜名\t单价\t点赞数量");//输出菜名 单价 点赞数量

int max =foods.length;//定义max 把菜品数组最大的下标赋值给它

for(int i = 0;i

if(foods[i]==null) {//如果数组下标为空了 把i赋值给max,跳出循环

max =i;break;

}

System.out.println((i+1)+"\t"+foods[i]+"\t"+prices[i]+"元\t"+zan[i]+"次");

}

System.out.println("请选择您要点的菜品编号:");int id = 0;//定义输入的菜品id

do{

id=sc.nextInt();//接收控制台输入的值

if(id<1||id>max) {//如果输入的值小于0或者大于菜品数组不为空的最大下标

System.out.println("不存在此编号菜品,请重新输入:");//提示

}

}while (id<1||id>max);

descs[index]= foods[id-1];//把菜品数组下标为输入的值减一上的值,赋值给餐品信息数组index上的

System.out.println("请选择您需要的份数:");int num =sc.nextInt();//定义份数num 接收控制台输入的数据

nums[index] =num;//把控制台上的数据赋值给数组下标为index的值

System.out.println("请输入送餐时间(送餐时间是10点至20点间整点送餐)");int date = 0;//定义输入的时间date

do{

date=sc.nextInt();//接收

if(date<10||date>20) {//如果输入的时间小于10或者大于20

System.out.println("您的输入有误,请输入10~20间的整数!:");//提示

}

}while (date<10||date>20);

dates[index]=date;//把输入的时间辅助给时间数组下标为index上

System.out.println("请输入送餐地址:");

addresses[index]=sc.next();//把输入地址赋值给地址数组下标为index上

double money = prices[id-1]*num;//把菜品的价格乘于份数 赋值给定义的money

System.out.println("订餐成功:");

System.out.println("您订的是:"+foods[id-1]+" "+num+"份");

System.out.println("送餐时间:"+date+"点");double song = 0.0;//定义送餐费

if(money<20) {//如果订餐的价格小于20

song = 3.0;//送餐费增加3.0元

}

moneys[index]= money+song;//把定餐的价格和送餐费赋值给总价格数组下标为index上的值

System.out.println("餐费:"+money+"。送餐费:"+song+"元,总计:"+(money+song)+"元");

}

}

@Overridepublic voidchakan() {//TODO Auto-generated method stub

System.out.println("****查看餐袋****");

System.out.println("序号\t订餐人\t餐品信息\t\t送餐日期\t\t送餐地址\t\t总金额\t订单状态");for(int i = 0;i

if(names[i]==null) {//如果订餐人数组为空则跳出循环

break;

}

String canpin= descs[i]+" "+nums[i]+"份";

String zhuangtai= status[i]?"已完成":"已预订";

System.out.println((i+1)+"\t"+names[i]+"\t"+canpin+"\t\t"+dates[i]+"点\t\t"+addresses[i]+"\t\t"+moneys[i]+"元\t"+zhuangtai);

}

}

@Overridepublic voidqianshou() {//TODO Auto-generated method stub

System.out.println("****签收订单****");

System.out.println("请输入要签收的订单编号:");boolean isTrue = false;int id = -1;//定义签收订单的编号

do{

id=sc.nextInt();//接收输入的要签收的值

if(id<1||id>descs.length) {//如果订单编号小于1,且大于订餐信息数组的最大下标

isTrue = true;

}else{if(descs[id-1]==null) {//如果订餐信息数组下标“要签收订单编号减一”上的值为空

isTrue = true;

}else{

isTrue= false;//否则

}

}if(isTrue) {

System.out.println("不存在此编号的订单信息,请重新输入:");

}

}while(isTrue);

status[id-1] = true;//把true赋值给 状态数组下标为要签收的订单序号减一

System.out.println("签收完成");//提示

}

@Overridepublic voidshanchu() {//TODO Auto-generated method stub

System.out.println("****删除订单****");

System.out.println("请输入要删除的订单编号:");int big =length;//定义下标

for(int i = 0;i

if(descs[i]==null) {//如果订餐信息数组为空

big =i;//把下标i赋值给big 跳出

break;

}

}int no = 0;//输入的值

do{

no=sc.nextInt();//接收输入的要删除的序号

if(no<1||no>big) {//如果输入的值小于1 或大于订餐信息数组不为空的最大的下标

System.out.println("不存在此编号菜品,请重新输入:");//提示

}

}while (no<1||no>big);if(status[no-1]==false) {//如果状态数组下标为要删除的序号减一的值==未完成

System.out.println("订单未完成,不能删除");//提示

}else{for(int i=no-1;i

names[i] = names[i+1];

descs[i]= descs[i+1];

nums[i]= nums[i+1];

dates[i]= dates[i+1];

addresses[i]= addresses[i+1];

moneys[i]= moneys[i+1];

status[i]= status[i+1];

}//最后把最后一个数组上的值清空

names[length-1] = null;

descs[length-1] = null;

nums[length-1] = 0;

dates[length-1] = 0;

addresses[length-1] = null;

moneys[length-1] = 0.0;

status[length-1] = false;

System.out.println("删除订单成功");

}

}

@Overridepublic voiddianzan() {//TODO Auto-generated method stub

System.out.println("****我要点赞****");

System.out.println("序号\t菜名\t单价\t点赞数量");int max =foods.length;//循环遍历菜名 单价 点赞数

for(int i = 0;i

max=i;break;

}

System.out.println((i+1)+"\t"+foods[i]+"\t"+prices[i]+"元\t"+zan[i]+"次");

}

System.out.println("请选择您要点赞的菜品编号:");int bianhao = 0;//定义

do{

bianhao=sc.nextInt();//接收

if(bianhao<1||bianhao>max) {//如果编号为小于1或大于菜单不为空的最大数组下标时

System.out.println("不存在此编号菜品,请重新输入:");

}

}while (bianhao<1||bianhao>max);

zan[bianhao-1]++;//点赞数组下标输入的编号减一的值自加

System.out.println("点赞成功,谢谢您的反馈");

}

@Overridepublic voidtuichu() {//TODO Auto-generated method stub

System.out.println("****退出系统****");

System.out.println("谢谢使用");//退出系统

System.exit(1);

}

}

吃货联盟点餐java面向对象_使用面向对象思想编写吃货联盟相关推荐

  1. eclipse怎么编写java程序_简单使用Eclipse编写第一个Java程序

    文章作者:姜南(Slyar)文章来源:Slyar Home (www.slyar.com) 转载请注明,谢谢合作. Eclipse是很常用的Java IDE,至少我们学校教Java都是用这个.下载就不 ...

  2. 开源游戏机java模拟器_开源一个Flutter编写的完整终端模拟器

    上次开源了一个简易的终端模拟器,我也知道并不是标准的,但自己也一直在用,然后就发现了一些棘手的问题,就又跑去研究了一些完整终端的源码,termux,Android Terminal,最后成功的将他们的 ...

  3. 以吃货联盟初级改版为例,(面向对象初级程序设计模拟网上点餐控制台程序(第一版未使用工具辅助类)。

    面向对象最初级程序设计思维:设计过程与抽象过程,(类是对象的模板与抽象,是具有相同属性和方法的一组对象的集 合,对象是类的实体,由属性与行为共同组成一个具体的实体.) 类与对象的关系:类是对象抽象,对 ...

  4. 北大青鸟,Java基础练习,S1结业项目:“吃货联盟点餐系统”

    关于java的基础练习,可以更有效的来找到自己的不足之处,也可以锻炼自己的编程思想,这个吃货联盟系统包含了基础概念,变量.数据类型,也练习了顺序,选择,循环,跳转语句的编写编程的能力,最后还要求你会使 ...

  5. “吃货联盟定餐系统”

    "吃货联盟定餐系统"需求说明 现今已进入网络时代,网上购物.看新闻.交友等人们的日常生活已离不开网络."只要点点手指,就能送餐上门",网上定餐越来越受到都市年轻 ...

  6. 《吃货联盟定餐系统》

    代码+需求说明 package cn.bdqn.demo03;import java.util.Scanner;public class Work {public static void main(S ...

  7. java模拟加速匀速减速_【JavaSE练习】面向对象_练习_模拟汽车的自动驾驶系统

    [JavaSE练习]面向对象_练习_模拟汽车的自动驾驶系统 [JavaSE练习]面向对象_练习_模拟汽车的自动驾驶系统 模拟汽车驾驶系统 定义一个交通工具的类,包括: 属性:速度 方法:设置速度,加速 ...

  8. 新手学java7编程_新手学Java 7编程:面向对象程序设计

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 面向对象程序设计 Java的核心是面向对象程序设计(OOP).面向对象方法论与Java是密不可分的,而Java所有的程序至少在某种程度上都是面向对象的.因 ...

  9. centos网络隔一段时间就断_潮汕青年说 | 瞎吃小哥:隔着屏幕也要把你看馋的顶配版吃货...

    编者按 这已经是他第N次站在镜头前了,但是做直播,还是第一次.在新浪潮汕直播间,我们认识了这个在镜头背后十分内向腼腆,说话都脸红的他.看了直播,很多粉丝惊呼,这么腼腆,还是我们认识的瞎吃小哥吗? 为什 ...

最新文章

  1. 都996了,需求还是没法按时交付,怎么办?
  2. Drug Target Review | 开发一种算法来预测药物性肝损伤
  3. PING的原理以及ICMP协议
  4. 当人工智能掌管城市,会带来怎样的巨变?
  5. Winfrom 弹出窗体位置设定
  6. java参数校验:ValidatorUtils校验框架工具类的使用
  7. linux子系统gdp调试,Linux GDB调试 详述
  8. mysql 批量删除之大坑
  9. Python使用nmap进行端口扫描
  10. yii 下 session 丢失的问题
  11. 基于嵌入式linux路由转发功能的实现
  12. JS获取Audio音频的实时时间
  13. 传染病模型——波利亚坛子
  14. 小型秒杀项目使用乐观锁防止超卖
  15. Python 微信机器人
  16. 《精通Tableau商业数据分析与可视化》之目录
  17. 基于高光谱成像的苹果虫害检测特征向量的选取
  18. <Halcon>基于形状和轮廓的模板匹配
  19. PM00-愿景, 战略和项目
  20. 苹果Safari怎么打开html,苹果内置safari浏览器怎么用?safari浏览器详细使用教程...

热门文章

  1. SAP License:税-你知道多少?
  2. 企业管理系统原型、HRM、工作报告统计、0A、商机、合同、客户管理、产品管理、企业oa、行政办公系统、数据报表、销售分析、客户分析、产品管理、人力资源管理系统、crm、axure原型、rp源文件
  3. Django REST framework 的快速入门教程
  4. 软件开发高手须掌握的4大SQL精髓语句(综合篇)
  5. 为什么是 OnDraw(CDC* /*pDC*/) 而不是 OnDraw(CDC* pDC)
  6. SSLOJ 1351.矩形反色
  7. [转载] $CF290F$ 题解
  8. [Swift]LeetCode897. 递增顺序查找树 | Increasing Order Search Tree
  9. 单点登录解决方案-CAS
  10. Nginx的反向代理的配置