“吃货联盟定餐系统”需求说明
现今已进入网络时代,网上购物、看新闻、交友等人们的日常生活已离不开网络。“只要点点手指,就能送餐上门”,网上定餐越来越受到都市年轻人的青睐 现要求开发一个网上订餐系统,其具体功能如下:
我要订餐
完成用户订餐,每条订单包含如下信息:
订餐人姓名:要求用户输入
选择菜品及份数:显示三个菜单序号、名称、单价、点赞数,提示用户输入要选择的菜品序号及份数
送餐时间:要求当天10到20点间整点送餐,要求用户输入10~20的整数,输入错误,重复输入。
送餐地址:要求用户输入
状态:两种状态:0:已预定(默认状态) 1、已完成(订单已签收)
总金额:
总金额= 菜品单价*份数-送餐费
(送餐费:当单笔订单金额达到50元时,免送餐费,否则,需交纳6元送餐费)
订餐成功后,显示订单信息。
查看订单
遍历显示已有定单
内容包括:序号、订餐人姓名、订餐信息(菜品名和份数)、送餐时间、送餐地址、 状态(已预定或已完成)、总金额
签收定单
将定单中状态改为已完成
删除定单
用户输入订单序号,如该序号定单为已完成状态,可以删除,其它情况给出相应提示信息
我要点赞
显示菜品序号、菜品名、单价、点赞数,提示用户输入要点赞的菜品序号完成对菜品的点赞。
退出系统
退出整个系统,显示“谢谢使用,欢迎下次光临”。
菜单切换
用户可根据显示的主菜单,输入功能编号执行相应的功能,当输入1~5时,执行相应功能(如图1所示)。
6.输入“6”或其他数字,退出系统
当用户输入1~5之间的功能编号,功能执行完毕后,显示“输入0返回”(如图1所示),此时输入0,则返回主菜单,否则,退出系统
package com.cy.chengye;
import java.util.Scanner;
public class Demo01 {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner sc = new Scanner(System.in);
String[] names = new String[4];
String[] dishMegs = new String[4];
int[] times = new int[4];
String[] addresses = new String[4];
int[] states = new int[4];
double[] sumPrices = new double[4];
names[0] = "刻晴";
dishMegs[0] = "红烧带鱼 2份";
times[0] = 3;
addresses[0] ="天成路207号";
sumPrices[0] = 76.0;
states[0] = 1;
names[1] = "刻晴";
dishMegs[1] = "鱼香肉丝 2份";
times[1] = 10;
addresses[1] ="天成路207号";
sumPrices[1] = 20.0;
states[1] = 0;
String[] dishNames = {"红烧带鱼","鱼香肉丝","时令鲜蔬"};
double[] prices = {38.0,20.0,10.0};
int[] praiseNums = new int[3];
Scanner sc1 = new Scanner(System.in);
int num = -1;
boolean isExit = false;
System.out.println("\n欢迎使用“吃货联盟订餐系统”");
do{
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("请选择:");
int choose = sc.nextInt();
boolean isAdd = false;
boolean isSignFind = false;
boolean isDelFind = false;
switch (choose){
case 1:
System.out.println("我要订餐");
for(int j=0; j< names.length;j++){
if(names[j]==null){
isAdd = true;
System.out.println("请输入订餐人姓名:");
String name = sc.next();
System.out.println("序号"+"\t"+"菜名"+"\t"+"单价"+"\t"+"点赞数");
for(int i=0;i<dishNames.length;i++){
String price = prices[i]+"元";
String praiseNum = (praiseNums[i]>0) ? praiseNums[i]+"赞" : "";
System.out.println((i+1)+"\t"+dishNames[i]+"\t"+prices[i]+"\t"+praiseNums[i]);
}
System.out.println("请选择你要点的菜品编号: ");
int chooseDish = sc.nextInt();
System.out.println("请选择你要的份数:");
int number = sc.nextInt();
String dishMeg = dishNames[chooseDish - 1] + "" + number +"份";
double sumPrice = prices[chooseDish-1]*number;
double deliCharge=(sumPrice>=50)?0:6;
System.out.println("请输入送餐时间(送餐时间是10点到20点之间的整点):");
int time = sc.nextInt();
while(time<10||time>20){
System.out.println("你的输入有误,请输入10到20之间的整数!");
time=sc.nextInt();
}
System.out.println("请输入送餐地址:");
String address = sc.next();
System.out.println("订餐成功!");
System.out.println("你订的是:"+dishMeg);
System.out.println("送餐时间:"+time+"点");
System.out.println("餐费:"+sumPrice+"元.送餐费"+deliCharge+"元.总计:"+(sumPrice+deliCharge));
names[j]=name;
dishMegs[j]=dishMeg;
times[j]=time;
addresses[j]=address;
sumPrices[j]=sumPrice+deliCharge;
break;
}
}
if(!isAdd){
System.out.println("对不起,你的餐袋已满!");
}
break;
case 2:
System.out.println("查看餐袋");
System.out.println("序号\t订餐人\t餐品信息\t\t送餐日期\t送餐地址\t\t总金额\t订单状态");
for(int i=0;i<names.length;i++){
if(names[i]!=null){
String state = (states[i]==0)?"已预定":"已完成";
String date=times[i]+"点";
String sumPrice=sumPrices[i]+"元";
System.out.println((i+1)+"\t"+names[i]+"\t"+dishMegs[i]+"\t"+times[i]+"\t"+addresses[i]+"\t"+sumPrice+"\t"+state);
}
}
break;
case 3:
System.out.println("签收订单");
System.out.print("请选择要签收的订单序号:");
int signOrderId = sc.nextInt();
for(int i=0;i<names.length;i++){
if(names[i]!=null&&states[i]==0&&signOrderId==(i+1)){
states[i]=1;
System.out.println("订单签收成功!");
isSignFind=true;
}else if(names[i]!=null&&states[i]==1&&signOrderId==(i+1)){
System.out.println("你选择的订单已经签收,不能再次签收!");
isSignFind=true;
}
}
if(!isSignFind){
System.out.println("你选择的订单不存在");
}
break;
case 4:
System.out.println("删除订单");
System.out.println("请输入要删除的订单货号:");
int delId = sc.nextInt();
for(int i=0;i<names.length;i++){
if(names[i]!=null&&states[i]==1&&delId==(i+1)){
isDelFind=true;
for(int j=delId-1;j<names.length-1;j++){
names[j]=names[j+1];
dishMegs[j]=dishMegs[j+1];
times[j]=times[j+1];
addresses[j]=addresses[j+1];
states[j]=states[j+1];
}
names[names.length-1]=null;
dishMegs[names.length-1]=null;
times[names.length-1]=0;
addresses[names.length-1]=null;
states[names.length-1]=0;
System.out.println("删除订单成功!");
break;
}else if(names[i]!=null&&states[i]==0&&delId==i+1){
System.out.println("你的订单未签收,不能删除!");
isDelFind=true;
break;
}
}
if(!isDelFind){
System.out.println("你要删除的订单不存在!");
}
break;
case 5:
System.out.println("我要点赞");
System.out.println("序号"+"\t"+"菜名"+"\t"+"单价"+"\t"+"点赞数");
for(int i=0;i<dishNames.length;i++){
String price=prices[i]+"元";
String praiseNum=(praiseNums[i]>0)?praiseNums[i]+"赞":"";
System.out.println((i+1)+"\t"+dishNames[i]+"\t"+price+"\t"+praiseNums[i]);
}
System.out.println("请选择你要点赞的菜品序号");
int praiseNum = sc.nextInt();
praiseNums[praiseNum-1]++;
System.out.println("点赞成功");
System.out.println("序号"+"\t"+"菜名"+"\t"+"单价"+"\t"+"点赞数");
for(int i=0;i<dishNames.length;i++){
String price=prices[i]+"元";
String praiseNum2=(praiseNums[i]>0)?praiseNums[i]+"赞":"";
System.out.println((i+1)+"\t"+dishNames[i]+"\t"+price+"\t"+praiseNums[i]);
}
break;
case 6:
isExit=true;
break;
default:
isExit=true;
break;
}
if(!isExit){
System.out.println("输入0返回:");
num = sc.nextInt();
}else{
break;
}
}while(num==0);
System.out.println("谢谢使用,欢迎下次光临!");
sc.close();
}
}