写了一段代码但是只能输入没办法存储,期望有人能看看
实现要求
主界面:
--------欢迎进入外卖点餐系统--------
1-进入外卖商家子系统
2-进入消费者子系统
3-退出
外卖商家功能:
"----------欢迎您:外卖商家----------
1-添加菜品
2-删除菜品");
3-订单查看与处理");
4-返回主界面");
------------------------------
消费者功能:
"----------欢迎您:消费者!----------
1-浏览菜品
2-点餐下单
3-订单查看
4-返回主界面
-------------------------
package mainclass;
import java.util.Scanner;
public class 外卖点餐 {
private static int num1;
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner sc=new Scanner(System.in);
int num=-1; //记录用户输入的数字
do{
//循环操作
System.out.println("--------欢迎进入外卖点餐系统--------");
System.out.println("1-进入外卖商家子系统");
System.out.println("2-进入消费者子系统");
System.out.println("3-退出");
System.out.println("-----------------------------");
//提示用户输入功能编号,并执行相应功能
System.out.println("请输入您想要进行的操作:");
int choose=sc.nextInt();
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]; //0:表示预定状态 1:表示已完成
double[] sumPrices=new double[4]; //总金额
boolean isAdd=false; //true记录找到一个空的位置,可译插入;false表示没有找到
//数据主体,一组订单信息
String[] name=new String[4]; //菜品名
double[] Prices=new double[4]; //单价
switch(choose){
case 1:
Scanner sc1=new Scanner(System.in);
int num1=-1; //记录用户输入的数字
do{
//循环操作
System.out.println("----------欢迎您:外卖商家----------");
System.out.println("1-添加菜品");
System.out.println("2-删除菜品");
System.out.println("3-订单查看与处理");
System.out.println("4-返回主界面");
System.out.println("------------------------------");
//提示用户输入功能编号,并执行相应功能
System.out.println("请输入您想要进行的操作:");
int choose1=sc.nextInt();
boolean Add=false;
switch(choose1) {
case 1:
System.out.println("1-添加菜品");
for (int i = 0; i < name.length; i++) {
//如果找到空的位置,记录下来
if(name[i]==null){
isAdd= true;
//b输入菜品名
System.out.println("请输入菜品名");
String name1=sc.next();
System.out.println("请输入单价");
int Prices1=sc.nextInt();
//如果输入错了,请重新输入
if(Prices1<0){
System.out.println("对不起,您输入有误,请重新输入");
Prices1=sc.nextInt();
}
//显示订单信息
System.out.println("添加成功");
System.out.println("菜品名"+name1+"单价"+Prices1+"元");
//保存数据
name[i]=name1;
Prices[i]=Prices1;
break;}
}
break;
case 2:
//1输入要删除的订单序号(从1开始)
System.out.println("------删除订单------");
System.out.println("请输入你要删除的订单序号:");
int delId=sc.nextInt();
int delIndex=-1; //删除订单的下标
boolean isDelFind=false;
//2.循环查找这条订单
for (int i1 = 0; i1 < name.length; i1++) {
//找到此订单,已签收,执行删除操作(先记录要删除的订单序号)
//找到此订单,且未签收:提示信息
if(name[i1]!=null && delId==i1+1){
delIndex=i1;
isDelFind=true;
break;
}
}
// 未找到此订单,提示信息
if(!isDelFind){
System.out.println("对不起,此条菜单不存在");
}
//执行删除操作
if(delIndex!=-1){
//删除操作(循环移位)
//从要删除的元素后面一个开始,到数组最后一个元素一次向前移动一位
for (int i2 = delIndex+1; i2 <= name.length-1; i2++) {
name[i2-1]=name[i2];
Prices[i2-1]=Prices[i2];
}
//最后一位清空
name[name.length-1]=null;
Prices[name.length-1]=0;
System.out.println("删除成功");
}
break;
case 3:
System.out.println("------查看餐袋------");
System.out.println("序号\t订餐人\t所订餐品信息\t送餐时间\t送餐地址\t总金额\t状态");
//遍历数组
for (int j = 0; j < names.length; j++) {
if(names[j]!=null){
String time=times[j]+"点";
String sumPrice=sumPrices[j]+"元";
String state=states[j]==0?"已预定":"已完成";
System.out.println((j+1)+"\t"+names[j]+"\t"+dishMegs[j]+"\t\t"+time+"\t"+addresses[j]+"\t"+sumPrice+"\t"+state);
}
}
break;
case 4:
break;
default:
break;
}
System.out.println("输入1返回:");
num=sc.nextInt();
}while(num1==1);
break;
case 2:
Scanner sc2=new Scanner(System.in);
int num2=-1; //记录用户输入的数字
do{
//循环操作
System.out.println("----------欢迎您:消费者!----------");
System.out.println("1-浏览菜品");
System.out.println("2-点餐下单");
System.out.println("3-订单查看");
System.out.println("4-返回主界面");
System.out.println("------------------------------");
//提示用户输入功能编号,并执行相应功能
System.out.println("请输入您想要进行的操作:");
int choose1=sc.nextInt();
boolean Add=false;
switch(choose1) {
case 1:
for(int i=0;i<name.length;i++)
{
if(name[i]!=null){
String Price=Prices[i]+"元";
System.out.println((i+1)+"\t"+name[i]+"\t"+Price+"\t");
}
}
break;
case 2:
for (int i = 0; i < names.length; i++) {
//如果找到空的位置,记录下来
if(names[i]==null){
isAdd= true;
//执行插入操作
//a.显示所有可提供的餐品信息
System.out.println("序号\t餐品名\t单价");
for (int j = 0; j < name.length; j++) {
String price=Prices[j]+"元";
System.out.println((j+1)+"\t"+name[j]+"\t"+price+"\t");
}
//a输入所选餐品编号和份数
System.out.println("请选择所订的餐品序号:");
int chooseDish=sc.nextInt();
System.out.println("请选择所订份数");
int number=sc.nextInt();
String dishMeg= name[chooseDish-1]+" "+number+"份 ";
//b输入订餐人姓名
System.out.println("请输入订餐人姓名");
String names1=sc.next();
//c输入送餐时间
System.out.println("请输入送餐时间 10-23点整点送餐");
int time=sc.nextInt();
//如果输入错了,请重新输入
if(time<10||time>23){
System.out.println("对不起,您输入有误。请输入10-23点送餐时间");
time=sc.nextInt();
}
//d:输入送餐地址
System.out.println("请输入送餐地址");
String address=sc.next();
//e:计算餐费
double sumPrice=Prices[chooseDish-1]*number;
//送餐费:但达到50元时免配送费6元
double deliCharge=sumPrice>=50?0.0:6.0;
//显示订单信息
System.out.println("订单成功");
System.out.println("您订的是:"+dishMeg);
System.out.println("订餐人"+names);
System.out.println("送餐时间"+time+"点 ");
System.out.println("送餐地址"+address);
System.out.println("餐费"+sumPrice+",送餐费"+deliCharge+"元");
System.out.println("总金额:"+(sumPrice+deliCharge)+" 元");
String[][] names11 = null;
//保存数据
names[i]=names1;
dishMegs[i]=dishMeg;
times[i]=time;
addresses[i]=address;
sumPrices[i]=sumPrice+deliCharge;
break;
}
}
if(!isAdd){
System.out.println("对不起,您的餐袋已满");}
break;
case 3:
System.out.println("------查看餐袋------");
System.out.println("序号\t订餐人\t所订餐品信息\t送餐时间\t送餐地址\t总金额\t状态");
//遍历数组
for (int j = 0; j < name.length; j++) {
if(name[j]!=null){
;
String Price=Prices[j]+"元";
System.out.println((j+1)+"\t"+name[j]+Price+"\t");
}
}
break;
case 4:
break;
default:
break;
}
System.out.println("输入2返回:");
num=sc.nextInt();
}while(num2==2);
break;
case 3:
break;
default:
break;
}
System.out.println("输入0返回:");
num=sc.nextInt();
}while(num==0);
}
}
我写了好几种这个订餐系统,这是其中一个,可以存储数据的:https://blog.csdn.net/hh867308122/article/details/128073388