在写这篇文章的时候,我也不清楚自己能不能写好,但是想了想还是写一下吧,就当是为前面所学的东西做一下总结。
首先我们要清楚这个程序所需要的东西,第一件就是先定义数组,为数组定义一些元素,从而来实现数组中元素的使用。这里我定义了很多数组代码如下:
String[] name = new String[4]; //定义一个定餐人姓名的数组
String[] dishMegs = new String[4]; //这个是订餐的菜名
int[] time = new int[4]; //订餐人所定的时间
String[] addresses = new String[4]; //订餐地址
int[] states = new int[4]; //这里用了一个int数组来表示是否签收
double[] sumPrices = new double[4]; //订餐的总价格
double[] Prices = new double[4]; /这个是餐品的单价为多少
String[] menu = new String[4]; //这个是菜名
int[] dz = new int[4]; //定义点赞的数组
这样我们的第部就完成了,接下来我们往数组里放元素,这个根据自己的要求来放 ,因为定义的数组长度都为4,所以我们放的元素不能越界,
menu[0] = "红烧带鱼"; //往菜单里面添加元素
menu[1] = "鱼香肉丝";
menu[2] = "时令鲜蔬";
//桑拼单价
Prices[0] = 38.0;
Prices[1] = 20.0;
Prices[2] = 10.0;
//点赞数为
dz[0] = 0;
dz[1] = 0;
dz[2] = 0;
// 第一条订单信息
name[0] = "张晴";
dishMegs[0] = "红烧带鱼两份";
time[0] = 12;
addresses[0] = "天成路207号";
sumPrices[0] = 76.0;
states[0] = 1;
//第二条订单信息
name[1] = "张晴";
dishMegs[1] = "鱼香肉丝两份";
time[1] = 18;
addresses[1] = "天成路207号";
sumPrices[1] = 45.0;
states[1] = 0;
因为要输出来一些程序的选项我们用do ,whlie循环来写这个,首先我们先定义一个Boolean变量初始值为false,在我们在程序想退出时,按规定的按钮让他能够跳出循环,这样我们就能够实现外部内容;
boolean isadd = false;
int num=0;
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("***************************");
boolean isExit = false;
System.out.print("请选择");
int choose = input.nextInt(); //定义一个变量,把他当成开关;
switch (choose) {
case 1:
break;
case 2:
break;
case 3:
break;
case 4:
break;
case 5:
break;
case 6:
isExit = true;
break;
if(!isExit){
System.out.print("输入0返回");
num = input.nextInt();
}else{
break;
}
}
}while(num==0)
这样我们完成里系统的外部,剩下的按钮就是用switch来完成了;
我们首先要明白这个内容所需要的东西;我们先定义一个变量然后将所写的内容加到我们最开始定义的数组中;
case 1:中我们定定义的就是内容将上面定义的isadd作为一个是否能增加餐袋的按钮,如果还有空的餐袋,我们就能够输入,否则输出餐袋已经满了的标识;
case 1:
//创建1.按钮,实现里面的内容
System.out.println("***我要订餐***");
for (int i = 0; i < name.length; i++) {
if (name[i] == null) {
isadd = true;
System.out.print("请输入订餐人信息:");
name[i] = input.next();
System.out.println("序号\t菜名\t单价\t点赞数");
for (int j = 0; j < name.length; j++) {
if (menu[j] == null) {
break;
}
System.out.println((j + 1) + "\t" + menu[j] + "\t" + Prices[j] + "\t" + dz[i]);
}
System.out.print("请选择您要点的菜品编号");
double bianhao = input.nextDouble();
System.out.print("请输入您要的份数:");
int number = input.nextInt();
System.out.print("请输入送餐时间(送餐时间是10点至20点间整点送):");
int time1 = input.nextInt();
while (!(time1 > 9 || time1 < 20)) {
System.out.print("请重新输入送餐时间(送餐时间是10点至20点间整点送):");
time1 = input.nextInt();
}
double sum = number * Prices[(int) (bianhao - 1)];
int psf = 0;
int sum2 = 0;
if (!(sum > 50)) {
psf += 5;
sum2 = (int) sum + 5;
}
System.out.print("请输入送餐地址:");
addresses[i] = input.next();
System.out.println();
//订单成功
System.out.println("订餐成功");
System.out.println("您定的是" + menu[(int) bianhao - 1] + "" + number + "份");
System.out.println("送餐时间是" + time1 + "点");
System.out.println("配送地址是" + addresses[i]);
System.out.println("餐费:" + sum + "元,配送费是" + psf + "元,总计" + sum2);
dishMegs[i] = menu[(int) bianhao - 1] + number + "份";
sumPrices[i] = sum2;
time[i] = time1;
states[i] = 0;
break;
}
}
if (!isadd) {
System.out.println("对不起您的餐袋已满!");
}
break;
case 2:中就是对餐袋的查看,我们用一个for循环来遍历输出来这些东西;
case 2:
System.out.println("***查看餐袋***");
System.out.println("序号\t订餐人\t餐品信息\t送餐时间\t送餐地址\t总金额\t订单状态");
for (int i = 0; i < name.length; i++) {
if (name[i] != null) {
String state = (states[i] == 0) ? "已预订" : "已完成";
System.out.println((i + 1) + "\t" + name[i] + "\t" + dishMegs[i] + "\t" + time[i] + "\t" + addresses[i] + "\t" + sumPrices[i] + "\t" + state);
}
}
case 3:我们要调用里面的元素,利用我们定义的states[]来判断这个订单是否完成,如果是预订单没有签收,那么就把states[]改成1:这样就把该订单签收了;同时定义一个Boolean变量,如果从for循环里面找到了这个我们所选序号的订单,我们就能够判断这个订单是否签收,这样就能完成判段了
case 3:
System.out.println("***签收订单***");
System.out.print("请输入订单序号");
int xuhao = input.nextInt();
boolean isacc = false;
for (int i = 0; i < name.length; i++) {
if (name != null && states[i] == 0 && i == xuhao - 1) {
states[i] = 1;
System.out.println("签收成功");
isacc = true;
break;
}
if (name != null && states[i] == 1 && i == xuhao - 1) {
System.out.println("无法签收,该订单已被签收!");
isacc = true;
break;
}
}
if (!isacc) {
System.out.println("找不到此订单");
}
break;
case 4:中我们要能够找到这个程序符合我们所选的,如果这个订单已被签收,那么我们就可以将它删除,如果订单没有签收,我们就不能将他删减,被删掉的订单数组用下一个订单来补将最后一个订单设置为空!
case 4:
System.out.println("***删除订单***");
boolean isASS = false;
System.out.print("请选择要删除的订单:");
int ddh = input.nextInt();
int index = -1;
for (int i = 0; i < name.length; i++) {
if (name[i] != null && states[i] == 0 && i == ddh - 1) {
isASS = true;
System.out.println("该订单没签收,无法删除");
break;
}
if (name[i] != null && states[i] == 1 && i == ddh - 1) {
isASS = true;
index = i;
for (int j = index; j < name.length - 1; j++) {
name[j] = name[j + 1];
addresses[j] = addresses[j + 1];
time[j] = time[j + 1];
states[j] = states[j + 1];
dishMegs[j] = dishMegs[j + 1];
sumPrices[j] = sumPrices[j + 1];
}
name[name.length-1]=null;
addresses[addresses.length-1] = null;
time[time.length-1]=0;
System.out.println("删除成功");
break;
}
}
if (!isASS) {
System.out.println("没找到该订单");
break;
}
break;
case 5:就是点赞商品了,我们首先调用出来菜单中的元素,(如果点赞数为零我们不显示否则我们输出来个数为多少);
case 5:
System.out.println("***我要点赞***");
int isAqq = 0;
System.out.println("序号\t菜名\t\t单价\t\t点赞数");
for (int i = 0; i < menu.length; i++) {
if (menu[i] == null) {
break;
}
String dzs = dz[i] > 0 ? dz[i] + "赞" : "";
System.out.println((i + 1) + "\t" + menu[i] + "\t" + Prices[i] + "元\t" + dzs);
}
System.out.print("请输入商品序号");
int dzh = input.nextInt();
dz[dzh - 1]++;
System.out.println("点赞成功!");
break;
这样这个系统就完成了,整体代码如下:
package project;
import com.sun.scenario.effect.impl.sw.sse.SSEBlend_SRC_OUTPeer;
import java.util.Scanner;
public class OrderingMgr {
public static void main(String[] args) {
String[] name = new String[4];
String[] dishMegs = new String[4];
int[] time = new int[4];
String[] addresses = new String[4];
int[] states = new int[4];
double[] sumPrices = new double[4];
double[] Prices = new double[4];
String[] menu = new String[4];
int[] dz = new int[4];
//菜单为
menu[0] = "红烧带鱼";
menu[1] = "鱼香肉丝";
menu[2] = "时令鲜蔬";
//桑拼单价
Prices[0] = 38.0;
Prices[1] = 20.0;
Prices[2] = 10.0;
//点赞数为
dz[0] = 0;
dz[1] = 0;
dz[2] = 0;
// 第一条订单信息
name[0] = "张晴";
dishMegs[0] = "红烧带鱼两份";
time[0] = 12;
addresses[0] = "天成路207号";
sumPrices[0] = 76.0;
states[0] = 1;
//第二条订单信息
name[1] = "张晴";
dishMegs[1] = "鱼香肉丝两份";
time[1] = 18;
addresses[1] = "天成路207号";
sumPrices[1] = 45.0;
states[1] = 0;
//
int num = -1;
boolean isadd = false;
Scanner input = new Scanner(System.in);
System.out.println("欢迎使用“吃货联盟订餐系统”");
System.out.println("***************************");
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("***************************");
boolean isExit = false;
System.out.print("请选择");
int choose = input.nextInt();
switch (choose) {
case 1:
//创建1.按钮,实现里面的内容
System.out.println("***我要订餐***");
for (int i = 0; i < name.length; i++) {
if (name[i] == null) {
isadd = true;
System.out.print("请输入订餐人信息:");
name[i] = input.next();
System.out.println("序号\t菜名\t单价\t点赞数");
for (int j = 0; j < name.length; j++) {
if (menu[j] == null) {
break;
}
System.out.println((j + 1) + "\t" + menu[j] + "\t" + Prices[j] + "\t" + dz[i]);
}
System.out.print("请选择您要点的菜品编号");
double bianhao = input.nextDouble();
System.out.print("请输入您要的份数:");
int number = input.nextInt();
System.out.print("请输入送餐时间(送餐时间是10点至20点间整点送):");
int time1 = input.nextInt();
while (!(time1 > 9 || time1 < 20)) {
System.out.print("请重新输入送餐时间(送餐时间是10点至20点间整点送):");
time1 = input.nextInt();
}
double sum = number * Prices[(int) (bianhao - 1)];
int psf = 0;
int sum2 = 0;
if (!(sum > 50)) {
psf += 5;
sum2 = (int) sum + 5;
}
System.out.print("请输入送餐地址:");
addresses[i] = input.next();
System.out.println();
//订单成功
System.out.println("订餐成功");
System.out.println("您定的是" + menu[(int) bianhao - 1] + "" + number + "份");
System.out.println("送餐时间是" + time1 + "点");
System.out.println("配送地址是" + addresses[i]);
System.out.println("餐费:" + sum + "元,配送费是" + psf + "元,总计" + sum2);
dishMegs[i] = menu[(int) bianhao - 1] + number + "份";
sumPrices[i] = sum2;
time[i] = time1;
states[i] = 0;
break;
}
}
if (!isadd) {
System.out.println("对不起您的餐袋已满!");
}
break;
case 2:
System.out.println("***查看餐袋***");
System.out.println("序号\t订餐人\t餐品信息\t送餐时间\t送餐地址\t总金额\t订单状态");
for (int i = 0; i < name.length; i++) {
if (name[i] != null) {
String state = (states[i] == 0) ? "已预订" : "已完成";
System.out.println((i + 1) + "\t" + name[i] + "\t" + dishMegs[i] + "\t" + time[i] + "\t" + addresses[i] + "\t" + sumPrices[i] + "\t" + state);
}
}
break;
case 3:
System.out.println("***签收订单***");
System.out.print("请输入订单序号");
int xuhao = input.nextInt();
boolean isacc = false;
for (int i = 0; i < name.length; i++) {
if (name != null && states[i] == 0 && i == xuhao - 1) {
states[i] = 1;
System.out.println("签收成功");
isacc = true;
break;
}
if (name != null && states[i] == 1 && i == xuhao - 1) {
System.out.println("无法签收,该订单已被签收!");
isacc = true;
break;
}
}
if (!isacc) {
System.out.println("找不到此订单");
}
break;
case 4:
System.out.println("***删除订单***");
boolean isASS = false;
System.out.print("请选择要删除的订单:");
int ddh = input.nextInt();
int index = -1;
for (int i = 0; i < name.length; i++) {
if (name[i] != null && states[i] == 0 && i == ddh - 1) {
isASS = true;
System.out.println("该订单没签收,无法删除");
break;
}
if (name[i] != null && states[i] == 1 && i == ddh - 1) {
isASS = true;
index = i;
for (int j = index; j < name.length - 1; j++) {
name[j] = name[j + 1];
addresses[j] = addresses[j + 1];
time[j] = time[j + 1];
states[j] = states[j + 1];
dishMegs[j] = dishMegs[j + 1];
sumPrices[j] = sumPrices[j + 1];
}
name[name.length-1]=null;
addresses[addresses.length-1] = null;
time[time.length-1]=0;
System.out.println("删除成功");
break;
}
}
if (!isASS) {
System.out.println("没找到该订单");
break;
}
break;
case 5:
System.out.println("***我要点赞***");
int isAqq = 0;
System.out.println("序号\t菜名\t\t单价\t\t点赞数");
for (int i = 0; i < menu.length; i++) {
if (menu[i] == null) {
break;
}
String dzs = dz[i] > 0 ? dz[i] + "赞" : "";
System.out.println((i + 1) + "\t" + menu[i] + "\t" + Prices[i] + "元\t" + dzs);
}
System.out.print("请输入商品序号");
int dzh = input.nextInt();
dz[dzh - 1]++;
System.out.println("点赞成功!");
break;
case 6:
isExit = true;
break;
default:
isExit = true;
break;
}
if (!isExit) {
System.out.print("输入0返回");
num = input.nextInt();
} else {
break;
}
} while (num == 0);
}
}
刚学习java有可能写的代码有漏洞,或者bug众多,希望能帮助到大家,如果有错误请大佬提出来,一起学习