基本信息
源码名称:北大青鸟s1java第17章
源码大小:9.68KB
文件格式:.zip
开发语言:Java
更新时间:2021-07-12
友情提示:(无需注册或充值,赞助后即可获取资源下载链接)
嘿,亲!知识可是无价之宝呢,但咱这精心整理的资料也耗费了不少心血呀。小小地破费一下,绝对物超所值哦!如有下载和支付问题,请联系我们QQ(微信同号):813200300
本次赞助数额为: 2 元×
微信扫码支付:2 元
×
请留下您的邮箱,我们将在2小时内将文件发到您的邮箱
源码介绍
帮助莘莘学子完成项目,提供思路
import java.util.Scanner;
/**
* 订单操作类
* @author DELL
*
*/
public class OrderingUtil {
//第一个:定义可供选择的菜品 //是用来给用户选择用的
Dishes[] dishe = new Dishes[3];
//第二个:订单信息类对象,相当于用户餐袋
Orderingset oSet = new Orderingset();
/**
* 初始化方法
*/
public void init() {
//初始化菜品
Dishes ds1 = new Dishes();
ds1.name = "红烧带鱼";
ds1.Price = 38.0;
ds1.Dzs = 0;
Dishes ds2 = new Dishes();
ds2.name = "鱼香肉丝";
ds2.Price = 20.0;
ds2.Dzs = 0;
Dishes ds3 = new Dishes();
ds3.name = "时令鲜蔬";
ds3.Price = 10.0;
ds3.Dzs = 0;
dishe[0] = ds1;
dishe[1] = ds2;
dishe[2] = ds3;
//先往餐袋里面放两个订单
//第一个订单
oSet.names[0] = "张晴";
oSet.dishMegs[0] = "红烧带鱼2份";
oSet.times[0] = 3;
oSet.addresses[0] = "天堂";
oSet.states[0] = 1;
oSet.sumPrices[0] = 76.0;
//第二个订单
oSet.names[1] = "张晴";
oSet.dishMegs[1] = "鱼香肉丝2份";
oSet.times[1] = 10;
oSet.addresses[1] = "天堂";
oSet.states[1] = 0;
oSet.sumPrices[1] = 46.0;
}
/**
* 系统操作类
*/
public void Menu() {
boolean ad=false;
Scanner input = new Scanner(System.in);
int num = 0;
System.out.println("\n欢迎使用“吃货联盟订餐系统”");
// 循环:显示菜单,根据用户选择的数字执行相应功能
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.print("请选择:");
int choose = input.nextInt(); // 记录用户选择的功能编号
// 根据用户选择的功能编号执行相应功能
switch (choose) {
case 1:
// 我要订餐
System.out.println("***我要订餐***");
add();
//订餐方法
break;
case 2:
// 查看餐袋
System.out.println("***查看餐袋***");
//查看方法
display();
break;
case 3:
// 签收订单
System.out.println("***签收订单***");
sign();
//签收方法
break;
case 4:
// 删除订单
System.out.println("***删除订单***");
delete();
break;
case 5:
// 我要点赞
System.out.println("***我要点赞***");
praise();
break;
case 6:
// 退出系统
break;
default:
//退出系统
break;
}
if(!ad) {
System.out.println("输入0返回:");
num=input.nextInt();
}else {
break;
}
} while (num == 0);
System.out.println("谢谢使用,欢迎下次光临!");
}
/**
* 第一遍查看餐袋方法
*/
void display(){
System.out.println("序号\t订餐人\t餐品信息\t\t送餐时间\t送餐地址\t\t总金额\t订单状态");
for(int i=0;i<oSet.names.length;i ) {
if(oSet.names[i]!=null) {
String state=(oSet.states[i]==0)?"已预订":"已完成";
String date=oSet.times[i] "点";
String sumPrice=oSet.sumPrices[i] "元";
System.out.println((i 1) "\t" oSet.names[i] "\t" oSet.dishMegs[i] "\t\t" date "\t" oSet.addresses[i] "\t\t" sumPrice "\t" state);
}
}
}
/**
* 订餐的方法
*/
void add() {
//第一步:判断餐袋是否已满。满了就不能预订了。
//第二步:打印给客户要点的菜。
//第三步:客户选择,并生成订单成功信息。
//第四步:把订单信息加到我的餐袋。
Scanner input = new Scanner(System.in);
boolean fig = false; //记录餐袋是否已满
//第一步
for (int i = 0; i < oSet.names.length; i ) {
if(oSet.names[i] == null) {
//实行第二步
System.out.println("请输入订餐人的姓名:");
String name = input.next();
System.out.println("序号\t菜名\t单价\t点赞数");
//循环打印对象数组
for (int j = 0; j < dishe.length; j ) {
System.out.println((j 1) "\t" dishe[j].name "\t"
dishe[j].Price "\t" dishe[j].Dzs);
}
//第三步:胡可选择
System.out.println("请选择您要点的菜品编号:");
int num = input.nextInt(); //菜品编号
System.out.println("请选择您需要的份数:");
int fz = input.nextInt(); //份数
System.out.println("请输入送餐时间(送餐时间是10点至20点整点送餐):");
int time = input.nextInt();
while (time < 10 || time > 20) {
System.out.println("时间选择错误,请重新选择:");
time = input.nextInt();
}
System.out.println("请输入送餐地址:");
String dz = input.next();
System.out.println("订餐成功!");
String cp = dishe[num-1].name fz "份"; //生成了你的菜品
System.out.println("您订的是:" cp);
System.out.println("送餐时间:" time);
double scf = 0.0; //送餐费
double cf = dishe[num-1].Price * fz;
if(cf < 50) {
scf = 5.0;
}
System.out.println("餐费:" cf ",送餐费:" scf ",总计:" (cf scf));
//第四步:把客户选择的信息添加到我的餐袋
oSet.names[i] = name;
oSet.dishMegs[i] = cp;
oSet.addresses[i] = dz;
oSet.times[i] = time;
oSet.sumPrices[i] = (cf scf);
oSet.states[i] = 0; //代表已预订
fig = true;
break;
}
}
if(fig) {
return;
} else {
System.out.println("您的餐袋已满!");
return;
}
}
void sign() {
Scanner input=new Scanner(System.in);
boolean isSignFind=false;//找到要签收的订单
System.out.println("请选择要签收的订单序号:");
int signOrderId=input.nextInt();
for(int i=0;i<oSet.names.length;i ) {
//状态为已预订,序号为用户输入的订单号减1:可签收
//状态为已完成,序号为用户输入的订单序号减1:不可签收
if(oSet.names[i]!=null&&oSet.states[i]==0&&signOrderId==i 1) {
oSet.states[i]=1;//状态值置为已完成
System.out.println("订单签收成功!");
isSignFind=true;//已找到此订单
}else if(oSet.names[i]!=null&&oSet.states[i]==1&&signOrderId==i 1) {
System.out.println("您选择的订单已完成签收,不能再次签收!");
isSignFind=true;//标记已找到此订单
}
}if(!isSignFind) {
System.out.println("您选择的订单不存在!");
}
}
void delete() {
Scanner input=new Scanner(System.in);
boolean isDelFind=false;//标记是否找到要删除的订单
System.out.println("请输入要删除的订单序号:");
int delId=input.nextInt();
for(int i=0;i<oSet.names.length;i ) {
//状态值为已完成,序号为用户输入的序号减1:可删除
//状态值为已预定,序号为用户输入的序号减1:不可删除
if(oSet.names[i]!=null&& oSet.states[i]==1&&delId==i 1) {
isDelFind=true;//标识已找到此订单
//执行删除操作:删除位置后的元素依次前移
for(int j=delId-1;j<oSet.names.length-1;j ) {
oSet.names[j]=oSet.names[j 1];
oSet.dishMegs[j]=oSet.dishMegs[j 1];
oSet.times[j]=oSet.times[j 1];
oSet.addresses[j]=oSet.addresses[j 1];
oSet.states[j]=oSet.states[j 1];
oSet.sumPrices[j]=oSet.sumPrices[j 1];
}
//最后一位清空
int endIndex=oSet.names.length-1;
oSet.names[endIndex]=null;
oSet.dishMegs[endIndex]=null;
oSet.times[endIndex]=0;
oSet.addresses[endIndex]=null;
oSet.states[endIndex]=0;
oSet.sumPrices[endIndex]=0;
System.out.println("删除订单成功!");
break;
}else if(oSet.names[i]!=null&&oSet.states[i]==0&&delId==i 1) {
System.out.println("您选择的订单未签收,不能删除!");
isDelFind=true;//标记已找到此订单
break;
}
}
//未找到该序号的订单:不能删除
if(!isDelFind) {
System.out.println("您要的订单不存在!");
}
}
void praise() {
Scanner input=new Scanner(System.in);
//显示菜品信息
System.out.println("序号" "\t" "菜名" "\t" "单价");
for (int j = 0; j < dishe.length; j ) {
String priaiseNum=(dishe[j].Dzs)>0?dishe[j].Dzs "赞":"";
System.out.println((j 1) "\t" dishe[j].name "\t"
dishe[j].Price "\t" dishe[j].Dzs);
}
System.out.println("请选择你要点赞商品序号:");
int priaiseNum=input.nextInt();
dishe[priaiseNum-1].Dzs ;//点赞加1
System.out.println("点赞成功!");
}
}
帮助莘莘学子完成项目,提供思路
package xm;
import java.util.Scanner;
/**
* 订单操作类
* @author DELL
*
*/
public class OrderingUtil {
//第一个:定义可供选择的菜品 //是用来给用户选择用的
Dishes[] dishe = new Dishes[3];
//第二个:订单信息类对象,相当于用户餐袋
Orderingset oSet = new Orderingset();
/**
* 初始化方法
*/
public void init() {
//初始化菜品
Dishes ds1 = new Dishes();
ds1.name = "红烧带鱼";
ds1.Price = 38.0;
ds1.Dzs = 0;
Dishes ds2 = new Dishes();
ds2.name = "鱼香肉丝";
ds2.Price = 20.0;
ds2.Dzs = 0;
Dishes ds3 = new Dishes();
ds3.name = "时令鲜蔬";
ds3.Price = 10.0;
ds3.Dzs = 0;
dishe[0] = ds1;
dishe[1] = ds2;
dishe[2] = ds3;
//先往餐袋里面放两个订单
//第一个订单
oSet.names[0] = "张晴";
oSet.dishMegs[0] = "红烧带鱼2份";
oSet.times[0] = 3;
oSet.addresses[0] = "天堂";
oSet.states[0] = 1;
oSet.sumPrices[0] = 76.0;
//第二个订单
oSet.names[1] = "张晴";
oSet.dishMegs[1] = "鱼香肉丝2份";
oSet.times[1] = 10;
oSet.addresses[1] = "天堂";
oSet.states[1] = 0;
oSet.sumPrices[1] = 46.0;
}
/**
* 系统操作类
*/
public void Menu() {
boolean ad=false;
Scanner input = new Scanner(System.in);
int num = 0;
System.out.println("\n欢迎使用“吃货联盟订餐系统”");
// 循环:显示菜单,根据用户选择的数字执行相应功能
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.print("请选择:");
int choose = input.nextInt(); // 记录用户选择的功能编号
// 根据用户选择的功能编号执行相应功能
switch (choose) {
case 1:
// 我要订餐
System.out.println("***我要订餐***");
add();
//订餐方法
break;
case 2:
// 查看餐袋
System.out.println("***查看餐袋***");
//查看方法
display();
break;
case 3:
// 签收订单
System.out.println("***签收订单***");
sign();
//签收方法
break;
case 4:
// 删除订单
System.out.println("***删除订单***");
delete();
break;
case 5:
// 我要点赞
System.out.println("***我要点赞***");
praise();
break;
case 6:
// 退出系统
break;
default:
//退出系统
break;
}
if(!ad) {
System.out.println("输入0返回:");
num=input.nextInt();
}else {
break;
}
} while (num == 0);
System.out.println("谢谢使用,欢迎下次光临!");
}
/**
* 第一遍查看餐袋方法
*/
void display(){
System.out.println("序号\t订餐人\t餐品信息\t\t送餐时间\t送餐地址\t\t总金额\t订单状态");
for(int i=0;i<oSet.names.length;i ) {
if(oSet.names[i]!=null) {
String state=(oSet.states[i]==0)?"已预订":"已完成";
String date=oSet.times[i] "点";
String sumPrice=oSet.sumPrices[i] "元";
System.out.println((i 1) "\t" oSet.names[i] "\t" oSet.dishMegs[i] "\t\t" date "\t" oSet.addresses[i] "\t\t" sumPrice "\t" state);
}
}
}
/**
* 订餐的方法
*/
void add() {
//第一步:判断餐袋是否已满。满了就不能预订了。
//第二步:打印给客户要点的菜。
//第三步:客户选择,并生成订单成功信息。
//第四步:把订单信息加到我的餐袋。
Scanner input = new Scanner(System.in);
boolean fig = false; //记录餐袋是否已满
//第一步
for (int i = 0; i < oSet.names.length; i ) {
if(oSet.names[i] == null) {
//实行第二步
System.out.println("请输入订餐人的姓名:");
String name = input.next();
System.out.println("序号\t菜名\t单价\t点赞数");
//循环打印对象数组
for (int j = 0; j < dishe.length; j ) {
System.out.println((j 1) "\t" dishe[j].name "\t"
dishe[j].Price "\t" dishe[j].Dzs);
}
//第三步:胡可选择
System.out.println("请选择您要点的菜品编号:");
int num = input.nextInt(); //菜品编号
System.out.println("请选择您需要的份数:");
int fz = input.nextInt(); //份数
System.out.println("请输入送餐时间(送餐时间是10点至20点整点送餐):");
int time = input.nextInt();
while (time < 10 || time > 20) {
System.out.println("时间选择错误,请重新选择:");
time = input.nextInt();
}
System.out.println("请输入送餐地址:");
String dz = input.next();
System.out.println("订餐成功!");
String cp = dishe[num-1].name fz "份"; //生成了你的菜品
System.out.println("您订的是:" cp);
System.out.println("送餐时间:" time);
double scf = 0.0; //送餐费
double cf = dishe[num-1].Price * fz;
if(cf < 50) {
scf = 5.0;
}
System.out.println("餐费:" cf ",送餐费:" scf ",总计:" (cf scf));
//第四步:把客户选择的信息添加到我的餐袋
oSet.names[i] = name;
oSet.dishMegs[i] = cp;
oSet.addresses[i] = dz;
oSet.times[i] = time;
oSet.sumPrices[i] = (cf scf);
oSet.states[i] = 0; //代表已预订
fig = true;
break;
}
}
if(fig) {
return;
} else {
System.out.println("您的餐袋已满!");
return;
}
}
void sign() {
Scanner input=new Scanner(System.in);
boolean isSignFind=false;//找到要签收的订单
System.out.println("请选择要签收的订单序号:");
int signOrderId=input.nextInt();
for(int i=0;i<oSet.names.length;i ) {
//状态为已预订,序号为用户输入的订单号减1:可签收
//状态为已完成,序号为用户输入的订单序号减1:不可签收
if(oSet.names[i]!=null&&oSet.states[i]==0&&signOrderId==i 1) {
oSet.states[i]=1;//状态值置为已完成
System.out.println("订单签收成功!");
isSignFind=true;//已找到此订单
}else if(oSet.names[i]!=null&&oSet.states[i]==1&&signOrderId==i 1) {
System.out.println("您选择的订单已完成签收,不能再次签收!");
isSignFind=true;//标记已找到此订单
}
}if(!isSignFind) {
System.out.println("您选择的订单不存在!");
}
}
void delete() {
Scanner input=new Scanner(System.in);
boolean isDelFind=false;//标记是否找到要删除的订单
System.out.println("请输入要删除的订单序号:");
int delId=input.nextInt();
for(int i=0;i<oSet.names.length;i ) {
//状态值为已完成,序号为用户输入的序号减1:可删除
//状态值为已预定,序号为用户输入的序号减1:不可删除
if(oSet.names[i]!=null&& oSet.states[i]==1&&delId==i 1) {
isDelFind=true;//标识已找到此订单
//执行删除操作:删除位置后的元素依次前移
for(int j=delId-1;j<oSet.names.length-1;j ) {
oSet.names[j]=oSet.names[j 1];
oSet.dishMegs[j]=oSet.dishMegs[j 1];
oSet.times[j]=oSet.times[j 1];
oSet.addresses[j]=oSet.addresses[j 1];
oSet.states[j]=oSet.states[j 1];
oSet.sumPrices[j]=oSet.sumPrices[j 1];
}
//最后一位清空
int endIndex=oSet.names.length-1;
oSet.names[endIndex]=null;
oSet.dishMegs[endIndex]=null;
oSet.times[endIndex]=0;
oSet.addresses[endIndex]=null;
oSet.states[endIndex]=0;
oSet.sumPrices[endIndex]=0;
System.out.println("删除订单成功!");
break;
}else if(oSet.names[i]!=null&&oSet.states[i]==0&&delId==i 1) {
System.out.println("您选择的订单未签收,不能删除!");
isDelFind=true;//标记已找到此订单
break;
}
}
//未找到该序号的订单:不能删除
if(!isDelFind) {
System.out.println("您要的订单不存在!");
}
}
void praise() {
Scanner input=new Scanner(System.in);
//显示菜品信息
System.out.println("序号" "\t" "菜名" "\t" "单价");
for (int j = 0; j < dishe.length; j ) {
String priaiseNum=(dishe[j].Dzs)>0?dishe[j].Dzs "赞":"";
System.out.println((j 1) "\t" dishe[j].name "\t"
dishe[j].Price "\t" dishe[j].Dzs);
}
System.out.println("请选择你要点赞商品序号:");
int priaiseNum=input.nextInt();
dishe[priaiseNum-1].Dzs ;//点赞加1
System.out.println("点赞成功!");
}
}