用JAVA代码实现吃货联盟系统
–吃货联盟系统需求
- 实现我要订餐我要订餐功能块
- 实现查看餐袋功能块
- 实现签收订单功能块
- 删除订单功能块
- 点赞功能块
- 退出系统
要求 JAVA方法的使用 JAVA基础知识
思路:
1.首先建立一个类储存用户的餐袋功能信息
实现储存用户 姓名 菜品名称 菜品数量 所付金额 地址 需要的送餐时间以及订单的状态 (已预定和已完成)
2.创建菜品名单 有 菜品名称 菜品价格 菜品点赞数
3.创建一些,比较易于输入输出的方法,更容易使他进行跳转
用户信息的声明 该类用于存储用户信息
并创建一个集合方法存储用户信息
package food;
import java.util.ArrayList;
import java.util.List;
package food;
import java.util.ArrayList;
import java.util.List;
public class Fooduser {
public String name;//用户姓名
public String add;//用户地址
public String food;//用户的菜品名称 以及数量
public double Price;//用户购买菜品所用的金额
public int time;
public int statc;//用户的订单状态 0和1 0为为收货 1为收货
static List <Fooduser> use = new ArrayList<>();//集合进行存储调用该类中的数据
public Fooduser(String name,String add,String food,double Price,int statc,int time){
this.name = name;
this.add = add;
this.food = food;
this.Price = Price;
this.statc = statc;
}//创建一个fooduser类的构造函数 使得该类可以直接赋值给use的集合
public static void add(String name,String add,String food,double Price,int statc,int time){
//调用本类的构造函数 赋值并添加进集合中
use.add(new Fooduser(name,add,food,Price,statc,time));
}
//添加有了怎么能没有一个输出呢?
public static void get(){//输出并不需要为其增加参数
//集合输出比较容易 使用for循环遍历集合 集合方法use.size()可以直接获得集合的大小,并不需要想数组那样在增加一个判断语句
for(int i=0;i<use.size();i++){
Fooduser f = use.get(i);//创建一个Fooduser类型的变量存储数组,易于循环输出
System.out.println((i+1)+"\t"+f.name+"\t"+f.food+"\t"+f.Price+"\t"+f.add+"\t"+f.time+"\t"+f.statc);
//因为之前以经用下标赋值给了f 然后直接通过f输出所有藏品的信息 分别为 序号 姓名 菜品名称和数量 总金额 地址 送餐时间 订单状态
}
}
}
//该用户类就大概准备好了,接下来就应该将菜品类准备一下
现在就要想菜品类的基本属性有什么
1.菜品的名称 2.菜品的单价 3.菜品的总金额
package food;
public class Foodfood {
//该类用于存储菜品信息
static String name[] = {"红烧鱼","麻婆豆腐","麻辣香锅"} ; // 菜品名称
static int[] price = {38,28,22}; //菜品单价
static int [] good = {5,5,0};//点赞数
static int num;
public static void food(){
System.out.println("序号\t名称\t单价\t点赞数");
for(int i = 0 ;i<name.length;i++){//循环输出菜品信息
System.out.println((i+1)+"\t"+name[i]+"\t"+price[i]+"\t"+good[i]);
}
}
}
菜品信息准备好后,就建立一个主类
分管各种方法进行的跳转
package food;
import java.util.Scanner;
public class Foods {
public static void main(String[] args) {
Fooduser.add("亚索", "召唤师峡谷", "麻辣香锅", 56, 1, 11);
Fooduser.add("瑞文", "召唤师峡谷", "麻辣香锅", 56, 0, 11);
main();
}
public static void main(){
System.out.println("*************************");
System.out.println("*\t欢迎来到吃货联盟\t*");
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("请选择您的序号");
int aa = scanint(1,6);
option(aa);
System.out.println("返回主菜单");
main();
}
public static void option(int v){
switch(v){
case 1:one();break;
case 2:two();break;
case 3:there();break;
case 4:four();break;
case 5:five();break;
case 6:System.out.println("系统已退出");System.exit(1);break;
}
}
//这一段是程序的主要入口和选择 通过选择方法scanint进入1-6以内的不同程序
public static void there(){
two();
System.out.println("请输入你要签收的订单序号");
int key = scanint(1, Fooduser.use.size())-1;//集合最大值减一,获取集合下标
if(Fooduser.use.get(key).statc==0){
System.out.println("签收成功");
Fooduser.use.get(key).statc = 1;
}else{
System.out.println("签收失败,该订单已经被签收");
}
}
public static void five(){
Foodfood.food();
System.out.println("请输入你要点赞的菜品");
int num = scanint(1, Foodfood.good.length)-1;
Foodfood.good[num] +=1;
System.out.println("点赞成功");
}
public static void one(){
Foodfood.food();
System.out.println("请输入你要点餐的序号");
int nu = scanint(1,3)-1;
System.out.println("你点的菜品名称为:"+Foodfood.name[nu]);
System.out.println("请输入你要点的菜品份数:");
Foodfood.num = scanint(1,999);
double price = Foodfood.num*Foodfood.price[nu];
System.out.println("你点的为:"+Foodfood.name[nu]+"份数"+Foodfood.num+"总金额为:"+price);
int can = 0;
if(price<50){
System.out.println("你的点餐金额小于50元,需收点餐金额5元");
can = 5;
}
price += can;
System.out.println("送餐费:"+can);
System.out.println("你的点餐金额为"+price);
System.out.println("请输入你的姓名:");
String name = scan();
System.out.println("请输入你的地址");
String add = scan();
System.out.println("请输入你需要的送餐时间:(10-22)");
int time = scanint(10,22);
Fooduser.add(name, add, Foodfood.name[nu], price,0,time);//将数据传入集合
System.out.println("你的点餐完毕");
}
public static void two(){
//查看餐袋 输出集合方法
System.out.println("序号\t客户姓名\t菜品名称\t总金额\t地址\t送餐时间\t订单状态\t");
Fooduser.get();
}
public static void four(){
System.out.println("请输入你要删除的订单序号");
int key = scanint(1,Fooduser.use.size())-1;
if(Fooduser.use.get(key).statc==1){
Fooduser.use.remove(key);
System.out.println("订单删除成功");
}else{
System.out.println("该订单未签收,请先签收在删除");
}
}
public static int scanint(int v,int r){
int i = 0;
while(true){
Scanner in = new Scanner(System.in);
if(in.hasNextInt()){
i = in.nextInt();
if(i<v||i>r){
System.out.println("输入错误序号,请重新输入");
continue;
}else{
return i;
}
}else{
System.out.println("输入错误序号,请重新输入");
continue;
}
}
}
public static String scan(){
String i = "";
Scanner in = new Scanner (System.in);
i = in.next();
return i ;
}
public static void check(){
}
}
然后吃货联盟模块就做好了