JAVA练习题
文章目录
用JAVA实现简单点餐系统
程序控制分析:
1、欢迎页循环:do-while
2、Scanner 控制输入
3、选择页循环:switch-case
要求:
订单信息:String 二维数组
序号、姓名、餐品名称、份数、价格、总价、地址、时间(10-20)、状态(已预定、已完成)、热度(int型)
签收订单:改变订单状态,已预定可以签收,如果已经完成则不能再次签收。
删除订单:不能删除未完成订单,序号要随之改变。
我要点赞:对相应的餐品点赞,并展示。
package Practice;
import java.util.Scanner;
public class Obj {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
String dishes[]={"红烧肉","烧熊掌","清蒸鱼","白斩鸡","烤乳鸽"};
int price[]={58,88,45,56,44};
int honors[]={50,100,20,12,44};
int hot[]={5,4,3,2,0};
String orders[][]=new String[1024][];
int chose=0;
System.out. println("欢迎关岭红浪漫餐厅");
do {
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("*****************");
System.out.println("请选择:");
chose=sc.nextInt();
//订餐流程-------------------------------------------------------------------------------------
switch (chose) {
case 1:
System.out.println("***我要订餐***");
System.out.println("请输入订餐人姓名:");
String name=sc.next();
System.out.println("序号 菜品 单价 热度");
for (int i = 0; i < dishes.length; i++) {
System.out.println(i+1+"\t\t"+dishes[i]+"\t"+price[i]+"元\t"+"\t"+hot[i]);
}
int dishNum=0;
do{
System.out.println("菜品编号");
dishNum=sc.nextInt();
if ((dishNum<1||dishNum>dishes.length)){
System.out.println("对不起,输入有误,请重新输入!");
}
}while (dishNum<1||dishNum>dishes.length);
int pcs=0;
do {
System.out.println("份数");
pcs=sc.nextInt();
if (pcs<1){
System.out.println("对不起,输入有误,请重新输入!");
}
}while (pcs<1);
int time;
do {
System.out.println("送餐时间");
time=sc.nextInt();
if (time<10||time>22){
System.out.println("对不起,输入有误,请重新输入!");
}
}while (time<10||time>22);
System.out.println("地址");
String addres=sc.next();
System.out.println("success!");
System.out.println(
"您定的商品信息是:" +dishes[dishNum]+ "\t" +dishNum+"份");
System.out.println("送餐时间为"+time);
double cost=price[dishNum-1]*pcs;
double sent=cost>50?0:6;
double total=cost+sent;
System.out.println("餐费共计"+total+" 其中快递费"+sent+"元");
for (int i = 0; i < orders.length; i++) {
if (orders[i]==null){
orders[i]=new String[3];
orders[i][0]=name+"\t"+dishes[dishNum-1]+"\t"
+pcs+"份\t"+time+"\t"+addres+"\t"+cost+"元"; //orders第一存储 菜品信息
orders[i][1]="已预定"; //orders第二存储 订单信息
break;
}
}
break;
//查看餐袋------------------------------------------------------------------------------
case 2:
System.out.println("***查看餐袋***");
System.out.println("序号\t订餐人 餐品信息 时间 地址 总金额 订单状态");
for (int i = 0; i < orders.length; i++) {
if (orders[i]!=null){
System.out.println(i+1+"\t"+orders[i][0]+"\t\t"+orders[i][1]);
}else{
break;
}
}
break;
//订单签收----------------------------------------------------------------------------
case 3:
System.out.println("***签收订单***");
int num;
int end=0;
System.out.println("序号\t订餐人 餐品信息 时间 地址 总金额 订单状态");
for (int i = 0; i < orders.length; i++) {
if (orders[i]!=null){
System.out.println(i+1+"\t"+orders[i][0]+"\t\t"+orders[i][1]);
}else{
break;
}
}
do {
System.out.println("请输入要签收订单序号:");
for (int i = 0; i < orders.length; i++) {
if (orders[i]==null){
end=i+1;
break;
}
}
num=sc.nextInt();
if (num<0||num>end){
System.out.println("输入有误");
}else if ("已预定".equals(orders[num-1][1])){
orders[num-1][1]="已完成";
System.out.println("订单已完成");
break;
}else{
System.out.println("订单已签收,不能重复签收");
break;
}
}while (num<1||num>end||"已预定".equals(orders[num-1][1]));
break;
//删除订单------------------------------------------------------------------------
case 4:
System.out.println("***删除订单***");
int n=0; //输入数字
int e=0; // 订单的最大数量
System.out.println("序号\t订餐人 \t餐品信息 \t送餐时间 \t地址 \t总金额 \t状态");
for (int i = 0; i < orders.length; i++) {
if (orders[i]!=null){
System.out.print(i+1+"\t"+orders[i][0]+"\t"+orders[i][1]+"\t");
System.out.println("\t "+orders[i][1]);
}else{
break;
}
}
do {
for (int i = 0; i < orders.length; i++) { //确定订单的最大数量
if (orders[i]==null){
e=i;
break;
}
}
System.out.println("要删除的订单编号:");
n=sc.nextInt();
if (n<1||n>e){
System.out.println("err");
}else if ( ! "已完成".equals(orders[n-1][1])){
System.out.println("订单未完成,不能删除");
break;
}else{
boolean isDelete=false;
for (int i = n-1; i < orders.length; i++) {
if (i==orders.length-1){
orders[i]=null;
isDelete=true; //
}else{
orders[i]=orders[i+1]; //前移
if (orders[i]==null){
isDelete=true;
break;
}
}
}
}
}while (n<1||n>e||"已完成".equals(orders[n][1]));
break;
//我要点赞----------------------------------------------------------------------------
case 5:
System.out.println("***我要点赞***");
int hp=0;
System.out.println("请选择点赞菜品:");
hp=sc.nextInt();
if (hp<1||hp>dishes.length){
System.out.println("对不起,输入有误,请重新输入!");
}else{
hot[hp-1]++;
}
break;
//退出系统------------------------------------------------------------------------------------
default:
System.out.println("6、退出系统");
}
//switch结束--------------------------------------------------------------------------------------
if (chose>0&&chose<6){
System.out.println("输入0返回!");
chose=sc.nextInt();
}else {
break;
}
//-----------------------------------------------------------------------------
}while (chose==0);
System.out.println("输入0返回!");
}
}