吃货联盟点餐java面向对象_使用面向对象思想编写吃货联盟
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面向对象_使用面向对象思想编写吃货联盟相关推荐
- eclipse怎么编写java程序_简单使用Eclipse编写第一个Java程序
文章作者:姜南(Slyar)文章来源:Slyar Home (www.slyar.com) 转载请注明,谢谢合作. Eclipse是很常用的Java IDE,至少我们学校教Java都是用这个.下载就不 ...
- 开源游戏机java模拟器_开源一个Flutter编写的完整终端模拟器
上次开源了一个简易的终端模拟器,我也知道并不是标准的,但自己也一直在用,然后就发现了一些棘手的问题,就又跑去研究了一些完整终端的源码,termux,Android Terminal,最后成功的将他们的 ...
- 以吃货联盟初级改版为例,(面向对象初级程序设计模拟网上点餐控制台程序(第一版未使用工具辅助类)。
面向对象最初级程序设计思维:设计过程与抽象过程,(类是对象的模板与抽象,是具有相同属性和方法的一组对象的集 合,对象是类的实体,由属性与行为共同组成一个具体的实体.) 类与对象的关系:类是对象抽象,对 ...
- 北大青鸟,Java基础练习,S1结业项目:“吃货联盟点餐系统”
关于java的基础练习,可以更有效的来找到自己的不足之处,也可以锻炼自己的编程思想,这个吃货联盟系统包含了基础概念,变量.数据类型,也练习了顺序,选择,循环,跳转语句的编写编程的能力,最后还要求你会使 ...
- “吃货联盟定餐系统”
"吃货联盟定餐系统"需求说明 现今已进入网络时代,网上购物.看新闻.交友等人们的日常生活已离不开网络."只要点点手指,就能送餐上门",网上定餐越来越受到都市年轻 ...
- 《吃货联盟定餐系统》
代码+需求说明 package cn.bdqn.demo03;import java.util.Scanner;public class Work {public static void main(S ...
- java模拟加速匀速减速_【JavaSE练习】面向对象_练习_模拟汽车的自动驾驶系统
[JavaSE练习]面向对象_练习_模拟汽车的自动驾驶系统 [JavaSE练习]面向对象_练习_模拟汽车的自动驾驶系统 模拟汽车驾驶系统 定义一个交通工具的类,包括: 属性:速度 方法:设置速度,加速 ...
- 新手学java7编程_新手学Java 7编程:面向对象程序设计
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 面向对象程序设计 Java的核心是面向对象程序设计(OOP).面向对象方法论与Java是密不可分的,而Java所有的程序至少在某种程度上都是面向对象的.因 ...
- centos网络隔一段时间就断_潮汕青年说 | 瞎吃小哥:隔着屏幕也要把你看馋的顶配版吃货...
编者按 这已经是他第N次站在镜头前了,但是做直播,还是第一次.在新浪潮汕直播间,我们认识了这个在镜头背后十分内向腼腆,说话都脸红的他.看了直播,很多粉丝惊呼,这么腼腆,还是我们认识的瞎吃小哥吗? 为什 ...
最新文章
- 都996了,需求还是没法按时交付,怎么办?
- Drug Target Review | 开发一种算法来预测药物性肝损伤
- PING的原理以及ICMP协议
- 当人工智能掌管城市,会带来怎样的巨变?
- Winfrom 弹出窗体位置设定
- java参数校验:ValidatorUtils校验框架工具类的使用
- linux子系统gdp调试,Linux GDB调试 详述
- mysql 批量删除之大坑
- Python使用nmap进行端口扫描
- yii 下 session 丢失的问题
- 基于嵌入式linux路由转发功能的实现
- JS获取Audio音频的实时时间
- 传染病模型——波利亚坛子
- 小型秒杀项目使用乐观锁防止超卖
- Python 微信机器人
- 《精通Tableau商业数据分析与可视化》之目录
- 基于高光谱成像的苹果虫害检测特征向量的选取
- <Halcon>基于形状和轮廓的模板匹配
- PM00-愿景, 战略和项目
- 苹果Safari怎么打开html,苹果内置safari浏览器怎么用?safari浏览器详细使用教程...
热门文章
- SAP License:税-你知道多少?
- 企业管理系统原型、HRM、工作报告统计、0A、商机、合同、客户管理、产品管理、企业oa、行政办公系统、数据报表、销售分析、客户分析、产品管理、人力资源管理系统、crm、axure原型、rp源文件
- Django REST framework 的快速入门教程
- 软件开发高手须掌握的4大SQL精髓语句(综合篇)
- 为什么是 OnDraw(CDC* /*pDC*/) 而不是 OnDraw(CDC* pDC)
- SSLOJ 1351.矩形反色
- [转载] $CF290F$ 题解
- [Swift]LeetCode897. 递增顺序查找树 | Increasing Order Search Tree
- 单点登录解决方案-CAS
- Nginx的反向代理的配置