系统功能如图:
该系统加深初学者对循环和数组的理解
1.订餐模块
2.查看钱袋模块
3.签收模块
4.删除模块
代码如下:
public class EatTest {
//订单数组
String[][] peopleArr=new String[5][];
static Scanner s=new Scanner(System.in);
//菜单数组
String[][] menuArr=new String[][]{{"鲍鱼","10.0","0"},{"海参","12.0","0"},
{"螃蟹","25.0","0"}};
//数组数据数
static int j=0;
public static void menu(){
System.out.println("********************");
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("********************");
}
public void start(int i){
switch (i){
case 1:
System.out.println("1.我要订餐");
if(j!=peopleArr.length){
dingCan(j);
j++;
}else {
System.out.println("Sorry,满了,请联系客服");
}
break;
case 2:
System.out.println("2.查看钱袋");
System.out.println("序号\t\t"+"用户名\t"+"菜名(分量)\t"
+"时间\t\t" +"总价\t\t\t"+"地址\t\t"+"状态");
if (j==0){
System.out.println("还没有订单!");
}{
seeArray(peopleArr,j);
}
break;
case 3:
System.out.println("3.签收订单");
OkOrder();
break;
case 4:
System.out.println("4.删除订单");
removeOrder();
break;
case 5:
System.out.println("5.我要点赞");
likes();
break;
case 6:
System.out.println("6.退出系统");
break;
}
}
//看菜单
public void showMenu(){
System.out.println("序号\t\t"+"菜名\t\t"+"单价\t\t"+"点赞数");
seeArray(menuArr,menuArr.length);
}
//订餐
public void dingCan(int tem){
System.out.println("请输入订餐人姓名");
String name = s.next();
showMenu();
System.out.println("请输入要点的菜单编号");
int id=0;
while (true) {
id = s.nextInt();
if (id>0&&id<=menuArr.length){
break;
}else {
System.out.println("你输入的编号有误");
}
}
System.out.println("请输入份数");
int num = s.nextInt();
System.out.println("请输入送餐时间(10点-20点)");
double money = Double.parseDouble(menuArr[id - 1][1]) * num;
double time = 0;
while (true) {
time = s.nextDouble();
if (time > 10 && time < 20) {
break;
} else {
System.out.println("输入有误,请重新输入");
}
}
String pmemu = menuArr[id - 1][0] + String.valueOf(num) + "份";
System.out.println("请输入送餐地址");
String address = s.next();
System.out.println("订餐成功");
System.out.println("你订的是:" + pmemu);
System.out.println("送餐时间:" + time + "点");
System.out.println("餐费:" + money + ",送餐费:0,合计:" + money);
peopleArr[tem] = new String[]{name, pmemu,
(time + "点"), String.valueOf(money), address, "未签收"};
}
//签收
public void OkOrder(){
System.out.println("请选择签收的订单");
int i = s.nextInt();
if(i>0&&i<=j){
if(peopleArr[i-1][5]=="以签收"){
System.out.println("请勿重复签收");
}else{
peopleArr[i-1][5]="以签收";
System.out.println("订单签收成功");
}
}else {
System.out.println("输入数字有问题,或订单不存在");
}
}
//点赞
public void likes(){
System.out.println("请输入需要点赞的菜品的编号");
int i = s.nextInt();
if(i>0&&i<menuArr.length){
menuArr[i-1][2]= String.valueOf(Integer.parseInt(menuArr[i-1][2])+1);
System.out.println("点赞成功");
}else {
System.out.println("菜品编号不存在");
}
}
//删除订单
public void removeOrder(){
System.out.println("请输入要删除的订单号");
int i = s.nextInt();
if (i>0&&i<=j){
for(int l=0;l<j;l++){
peopleArr[i-1]=peopleArr[i];
}
System.out.println("删除订单成功!");
j--;
}else {
System.out.println("订单号不存在");
}
}
/**
*
* @param arr 遍历的数组
* @param len 数组中拥有数据的实际长度
*/
public void seeArray(String[][] arr,int len){
for(int i=0;i<len;i++){
System.out.print(i+1+"\t\t");
for(int l=0;l<arr[i].length;l++){
System.out.print(arr[i][l]+"\t\t");
}
System.out.println();
}
}
public static void main(String[] args) {
EatTest eatTest = new EatTest();
do {
menu();
System.out.println("请选择");
int i = EatTest.s.nextInt();
if (i>6||i<1){
continue;
}
if (i==6){
break;
}
eatTest.start(i);
System.out.println("输入0返回");
int num=s.nextInt();
if (num!=0){
break;
}
}while (true);
System.out.println("成功退出");
}
}