吃货联盟点餐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);

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值