吃货联盟订餐系统(用对象和数组来写的)

Posted get棒棒

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了吃货联盟订餐系统(用对象和数组来写的)相关的知识,希望对你有一定的参考价值。

目录

一、自我介绍

2.吃货联盟订餐系统

1.首先创建一个订单类

2.创建一个餐品类

 3.创建一个操作类(作用是添加订单 ,删除订单等操作)

三。未来的发展规划

四.图书管理系统(用数组写的)


一、自我介绍

 我目前还是正在上学的学生,现在正在学习Java,下面是我用对象和数组写的一个吃货联盟订餐系统。每个学习编程的都会写过类似的项目。以下是我写的代码。

2.吃货联盟订餐系统

1.首先创建一个订单类

public class DingDan 

	String name;
	String dishMeg;// 餐品信息 几份
	int num;// 几份
	int time;
	String address;
	int states;// 订餐状态 0表示没有完成 1表示已经完成
	double sumprices;// 总金额

	public DingDan() 
		super();
	

	public DingDan(String name, String dishMeg, int num, int time,
			String address, int states, double sumprices) 
		super();
		this.name = name;
		this.dishMeg = dishMeg;
		this.num = num;
		this.time = time;
		this.address = address;
		this.states = states;
		this.sumprices = sumprices;
	

2.创建一个餐品类

 

public class CaiPin 
	String dishNames;//餐品菜名
	double prices;//餐品价格
	int praiseNums;//餐品总金额

	public CaiPin() 
		super();
	

	public CaiPin(String dishNames, double prices, int praiseNums) 
		super();
		this.dishNames = dishNames;
		this.prices = prices;
		this.praiseNums = praiseNums;
	

 3.创建一个操作类(作用是添加订单 ,删除订单等操作)

public class CaoZuo 
	Scanner input = new Scanner(System.in);

	CaiPin[] arr = new CaiPin[3];// 属性

	DingDan[] brr = new DingDan[4];
	int DingDanNum;
	// 下面是已经有的订单
	

		DingDan d1 = new DingDan("赵先坡", "红烧鸡块", 2, 15, "故宫皇位", 0, 36);
		brr[0] = d1;
		DingDan d2 = new DingDan("阮班航", "青椒肉丝", 1, 12, "美国总统府", 1, 16);
		brr[1] = d2;
		DingDanNum = 2;
	
	// CaiPin[] arr=new CaiPin[3];
	

		// 餐品 价格 点赞数(餐品信息)

		CaiPin c1 = new CaiPin("红烧鸡块", 18, 0);

		arr[0] = c1;
		CaiPin c2 = new CaiPin("北京烤鸭", 28, 0);

		arr[1] = c2;
		CaiPin c3 = new CaiPin("青椒肉丝", 16, 0);

		arr[2] = c3;

	

	// 原有订单
	public int start() 
		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("请选择几号:");
		Scanner input = new Scanner(System.in);

		int i = input.nextInt();
		return i;
	

	// 选择具体的功能
	public void choose(int i) 

		switch (i) 
		case 1:
			// 我要订餐
			System.out.println("我要订餐");
			chooseFood();// 调用点餐方法

			break;

		case 2:
			// 查看餐品信息
			System.out.println("查看餐品信息");
			eachOrders();
			break;
		case 3:
			System.out.println("签收订单:请输入订单号");
			// 签收订单
			sign();
			break;
		case 4:
			// 删除订单
			System.out.println("请输入您要删除的订单");
			delete();
			break;
		case 5:
			// 显示餐品列表
			meal();
			break;
		case 6:
			// 退出系统
			System.out.println("退出系统");
			break;
		default:
			System.out.println("你输入错误,请重新输入");
			break;
		

	

	// 订餐功能
	public DingDan chooseFood() 
		// 查看菜单
		System.out.println("序号\\t菜品名称\\t价格\\t点赞数");
		for (int i = 0; i < arr.length; i++) 

			System.out.println((i + 1) + "\\t" + arr[i].dishNames + "\\t"
					+ arr[i].prices + "\\t" + arr[i].praiseNums);
		
		System.out.println("请输入要选择的菜品");
		int index = input.nextInt();
		// 客户选择的菜品为
		System.out.println();
		// 非常重要一定要搞明白
		CaiPin c = arr[index - 1];

		System.out.println("您选择的菜品为:" + c.dishNames);
		System.out.println("请输入你要订餐的分数");
		int sum = input.nextInt();

		System.out.println("请输入您的姓名:");
		String name = input.next();
		// 送达时间
		System.out.println("请输入10-20的时间:");
		int time = input.nextInt();
		while (time < 10 || time > 20) 
			System.out.println("您输入错误,请您重新输入");
			time = input.nextInt();
		

		System.out.println("请输入地址");
		String address = input.next();
		// 接受所有订单信息,封装成为对象重要中的重要
		// 餐品总价为
		double sumprices = c.prices * sum;
		DingDan d = new DingDan(name, c.dishNames, sum, time, address, 0,
				sumprices);
		brr[DingDanNum] = d;
		DingDanNum++;
		System.out.println("序号\\t订餐人\\t餐品信息\\t送餐时间\\t送餐地址\\t总金额\\t状态");
		System.out.println(index + "\\t" + name + "\\t" + c.dishNames + "\\t"
				+ time + "\\t" + address + "\\t" + sumprices + "\\t" + "已经预定");

		return d;
	

	// 是否退出功能
	public boolean isExit() 
		System.out.println("是否返回(按0返回):");
		int i = input.nextInt();
		return i == 0 ? false : true;
	

	// 下面是查看餐袋功能

	public void eachOrders() 

		System.out.println("序号\\t订餐人\\t餐品信息\\t送餐时间\\t送餐地址\\t总金额\\t状态");
		for (int i = 0; i < DingDanNum; i++) 

			String states = brr[i].states == 0 ? "已预定" : "已完成";
			System.out.println((i + 1) + "\\t" + brr[i].name + "\\t"
					+ brr[i].dishMeg + "\\t" + brr[i].num + " " + "份" + "\\t"
					+ brr[i].time + "\\t" + brr[i].address + "\\t" + states
					+ "\\t" + brr[i].sumprices);
		
	

	// 签收订单
	public void sign() 
		int qian = input.nextInt();
		if (brr[qian - 1].states == 0) 
			System.out.println("还没有签收,请您签收******签收成功");
			brr[qian - 1].states = 1;
		 else 
			System.out.println("已经签收无须再次签收");
		
	

	// 删除订单
	public void delete() 
		int index = -1;
		int shan = input.nextInt();
		for (int i = 0; i < brr.length; i++) 
			if (brr[i].states == 1 && brr[i] != null && shan == i + 1) 
				index = i;

				break;
			 else if (brr[i].states == 0 && brr[i] != null && shan == i + 1) 
				System.out.println("订单没有签收,请您签收");
				break;
			
		
		if (index != -1) 

			for (int i = index + 1; i < brr.length; i++) 
				brr[i - 1] = brr[i];

			

			System.out.println("删除成功");
			DingDanNum--;
		

	

	public void meal() 

		System.out.println("序号\\t菜品名称\\t价格\\t点赞数");
		for (int i = 0; i < arr.length; i++) 
			System.out.println((i + 1) + "\\t" + arr[i].dishNames + "\\t"
					+ arr[i].prices + "\\t" + arr[i].praiseNums);
		
		System.out.println("请给某个菜品点赞");
		int dian = input.nextInt();
		arr[dian - 1].praiseNums++;
		System.out.println("点赞成功");
		System.out.println(arr[dian - 1].dishNames + " "
				+ arr[dian - 1].praiseNums + "赞");
	

 4.创建一个实现类(运行代码)

public class XianShi 
	public static void main(String[] args) 

		CaoZuo c = new CaoZuo();
		do 
			int start = c.start();
			c.choose(start);// start是输入的一个数
		 while (!c.isExit());

	

三。未来的发展规划

首先肯定是先找一个适合自己的工作,不要求工资能有多高但求能够学到新的知识。然后一步一步的走下去。先给自己打下一个夯实的基础,然后在学习一些新的东西,是我们的知识不断地增加使我们没有三十五岁的危机,让我们不被社会所淘汰。

四.图书管理系统(用数组写的)

public class MyBookMgr
    public static void main(String[] args)
        Scanner input = new Scanner(System.in);

        // 是否退出系统,false代表退出系统
        boolean flag = true;

        // 图书相关信息,最多只能存储6个图书信息
        String[] name = new String[6]; // 图书名称
        int[] state = new int[6]; // 借阅状态,0:可借阅 ;1:已借出
        int[] date = new int[6]; // 借出日期
        int[] count = new int[6]; // 借出次数

        // 初始化第一本本图书
        name[0] = "罗马假日";
        state[0] = 1;
        date[0] = 1;
        count[0] = 15;

        // 初始化第二本图书
        name[1] = "白雪公主";
        state[1] = 0;
        count[1] = 12;

        // 初始化第三本图书
        name[2] = "葫芦兄弟";
        state[2] = 0;
        count[2] = 30;

        int num = -1;
        // 循环操作
        do
            // 输出欢迎菜单
            System.out.println("欢迎使用迷你图书管理器");
            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("请选择:");
            int choose = input.nextInt();
            switch (choose)
            case 1:
                // 新增图书
                System.out.println("-->新增图书\\n");
                System.out.println("请输入图书名称:");
                String BookName = input.next();

                // 判断添加书是否成功
                boolean flag2 = false;

                // 循环查找图书馆里的可存放书的地方
                for (int i = 0; i < name.length; i++)
                    // 判断某个位置是否能存放书
                    if (name[i] == null)
                        name[i] = BookName;
                        System.out.println("新增《" + BookName + "》成功!");
                        flag2 = true;
                        break;
                    
                
                if (!flag2)
                    System.out.println("抱歉,新增《" + BookName + "》失败!货架已满!");
                
                System.out.println("*****************************************");
                break;

            case 2:
                // 查看图书
                System.out.println("-->查看图书\\n");
                System.out.println("序号\\t状态\\t名称\\t借出日期\\t借出次数");
                for (int i = 0; i < name.length; i++)
                    if (name[i] != null)
                        // 三目运算符
                        String BookState = (state[i] == 0) ? "可借阅" : "已借出";
                        String dateStr = (date[i] == 0) ? "" : (date[i] + "日");
                        System.out.println(
                                (i + 1) + "\\t" + BookState + "\\t" + name[i] + "\\t" + dateStr + "\\t" + count[i] + "次");
                    
                
                System.out.println("*****************************************");
                break;

            case 3:
                // 删除图书
                System.out.println("-->删除图书\\n");
                System.out.println("请输入要删除图书的名称:");
                String delete = input.next();
                boolean flag3 = false;
                int index = -1; // 记录要删除图书的位置
                for (int i = 0; i < name.length; i++)
                    // 删除的图书存在、状态处于可借阅状态
                    if (name[i] != null && delete.equals(name[i]) && state[i] == 0)
                        flag3 = true;
                        index = i;
                        System.out.println("图书删除成功!");
                        break;
                     else if (name[i] != null && delete.equals(name[i]) && state[i] == 1)
                        flag3 = true;
                        System.out.println("该图书已被借出,目前无法删除!");
                        break;
                    
                
                // 根据记录下来的删除图书的位置进行删除工作
                if (index != -1)
                    for (int j = index; j < name.length; j++)
                        if (j != name.length - 1)
                            name[j] = name[j + 1];
                            state[j] = state[j + 1];
                            date[j] = date[j + 1];
                        
                        name[name.length - 1] = null;

                    
                
                if (!flag3)
                    System.out.println("没有找到匹配信息!");
                
                System.out.println("*****************************************");
                break;

            case 4:
                // 借出图书
                System.out.println("-->借出图书\\n");
                System.out.print("请输入图书名称:");
                String want = input.next(); // 要借出的图书名称
                for (int i = 0; i < name.length; i++)
                    if (name[i] == null) // 无匹配
                        System.out.println("没有找到匹配信息!");
                        break;
                     else if (want.equals(name[i]) && state[i] == 0) // 找到匹配可借
                        state[i] = 1; // 将此图书置于借出状态
                        System.out.print("请输入借出日期:");
                        date[i] = input.nextInt();
                        while (date[i] < 1 || date[i] > 31) // 当输入借出的日期不满足1-31时
                            System.out.println("必须输入大于等于1且小于等于31的数字,请重新输入:");
                            date[i] = input.nextInt();
                        
                        System.out.println("借出《" + want + "》成功!");
                        count[i]++;
                        break;
                     else if (want.equals(name[i]) && state[i] == 1) // 找到匹配已被借出
                        System.out.println("《" + want + "》已被借出!");
                        break;
                    
                
                System.out.println("*****************************************");
                break;

            case 5:
                // 归还图书
                System.out.println("-->归还图书\\n");
                int charge = 0; // 租金
                System.out.print("请输入归还图书名称:");
                want = input.next();
                for (int i = 0; i < name.length; i++)
                    if (name[i] == null) // 无匹配
                        System.out.println("没有找到匹配信息!");
                        break;
                     else if (want.equals(name[i]) && state[i] == 1) // 找到匹配
                        state[i] = 0; // 将借阅状态修改为可借阅
                        System.out.print("请输入归还日期:");
                        int redate = input.nextInt();
                        while (redate < date[i] || redate > 31) // 归还日期不能小于借出日期,也不能大于31
                            if (redate < date[i])
                                System.out.println("归还日期不能小于借出日期,请重新输入:");
                             else
                                System.out.println("一个月只有31天,请重新输入:");
                            
                            redate = input.nextInt();
                        
                        charge = redate - date[i];

                        System.out.println("\\n归还《" + want + "》成功!");
                        System.out.println("借出日期为:" + date[i] + "日");
                        System.out.println("归还日期为:" + redate + "日");
                        System.out.println("应付租金(元):" + charge);
                        date[i] = 0;
                        break;
                     else if (want.equals(name[i]) && state[i] == 0) // 找到匹配但没有借出
                        System.out.println("该图书没有被借出!无法进行归还操作。");
                        break;
                    
                
                System.out.println("*****************************************");
                break;

            case 6:
                // 退出图书
                flag = false;
                break;
            default:
                flag = false;
                break;
            
            if (flag)
                System.out.println("输入0返回:");
                num = input.nextInt();
             else
                break;
            
         while (num == 0);

        System.out.println("谢谢使用!");

        input.close();
    

第五章吃货联盟订餐系统

package Task;

import java.util.Scanner;

public class DingCan01 {
public static void main(String[] args){
//数据主体,一组订单信息
String[] names=new String[4];//订餐人
String[] dishMegs=new String[4];//所订餐信息
int[] times=new int[4];//送餐时间
String[] addresses=new String[4];//送餐地址
int[] states=new int[4];//订单状态 0:已预定 1:已完成
double[] sumPrices=new double[4];//总金额

//初始化2条订单信息
names[0]="张三";
dishMegs[0]="鱼香肉丝 1份";
times[0]=12;
addresses[0]="观日路48号";
states[0]=0;
sumPrices[0]=24.0;

names[1]="李四";
dishMegs[1]="红烧带鱼 2份";
times[1]=18;
addresses[1]="长乐路06号";
states[1]=1;
sumPrices[1]=76.0;

//数据主体,一组餐品信息
String[] dishNames={"红烧带鱼","鱼香肉丝","时令蔬菜"};
double[] prices={38.0,18.0,10.0};//餐品单价
int[] praiseNums=new int[3];//点赞数
Scanner input=new Scanner(System.in);
int num=-1;
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();//记录用户选择的编号
boolean isAdd=false;//true:记录找到一个为空的位置,可以插入 false:没有找到
//根据用户输入的功能编号,执行相应的功能
while(choose>6||choose<1){
System.out.print("输入错误,请输入有效编号:");
choose = input.nextInt();
}
boolean isExit = false; // 标志用户是否退出系统: true:退出系统
switch(choose){
case 1:
//1、我要订餐
System.out.println("********我要订餐********");
//1.查找要插入的位置,记录下来
for(int i=0;i<names.length;i++){
if(names[i]==null){
isAdd=true;//记录已找到一个为空的位置
//执行插入
//a.显示所有可供选择的餐品信息
System.out.println("序号 餐品名 单价 点赞数");
for(int j=0;j<dishNames.length;j++){
String price=prices[j]+"元";
String praise=praiseNums[j]+"赞";
System.out.println((j+1)+" "+dishNames[j]+" "+price+" "+praise);
}
//输入所选餐品编号以及分数
System.out.print("请选择所订餐品序号:");
int chooseDish=input.nextInt();
while(chooseDish>dishNames.length||chooseDish<1) {
System.out.print("对不起,您输入的序号没有信息,请输重新输入:");
chooseDish = input.nextInt();
}
System.out.print("请选择所定份数");
int number=input.nextInt();
String dishMeg=dishNames[chooseDish-1]+" "+number+"份";
//b.输入订餐人姓名
System.out.print("请输入订餐人姓名:");
String name=input.next();
//c.输入送餐时间
System.out.print("请输入送餐时间(10~20整点送餐):");
int time=input.nextInt();
//如果输错了,重复输入
while(time<10||time>20){
System.out.print("对不起,您输入有误,请输入人10~20之间的整数:" );
time=input.nextInt();
}
//d.输入送餐地址
System.out.print("请输入送餐地址");
String address=input.next();
//e.计算餐费
double sumPrice=prices[chooseDish-1]*number;
//d.送餐费,当餐费达到50元时,免6元送餐费
double deliCharge=sumPrice>=50?0.0:6.0;
//显示订单信息
System.out.println("订餐成功");
System.out.println("您定的是:"+dishMeg);
System.out.println("订餐人:"+name);
System.out.println("送餐时间:"+time+"点");
System.out.println("送餐地址:"+address);
System.out.println("餐费:"+sumPrice+",送餐费:"+deliCharge+"元");
System.out.println("总金额“:"+(sumPrice+deliCharge)+"元");
//保存数据
names[i]=name;
dishMegs[i]=dishMeg;
times[i]=time;
addresses[i]=address;
sumPrices[i]=sumPrice+deliCharge;
break;
}
}

//如果没有找到为空的位置,则提示信息
if(!isAdd){
System.out.println("对不起你的订单已满!");
}
break;
case 2:
//2、查看订单
System.out.println("********查看订单********");
System.out.println("序号 订餐人 所订餐品信息 送餐时间 送餐地址 总金额 状态");
//遍历数组
for(int i=0;i<names.length;i++){
if(names[i]!=null){
String time =times[i]+"点";
String sumPrice=sumPrices[i]+"元";
String state=states[i]==0?"已预定":"已完成";
System.out.println((i+1)+" "+names[i]+" "+dishMegs[i]+" "+time+" "+addresses[i]+" "+sumPrice+" "+state);
}
}
break;
case 3:
//3、删除订单
break;
case 4:
//4、签收订单
System.out.print("********请输入要签收的订单序号:");
int signOrderId=input.nextInt();
boolean isFind=false;
for(int i=0;i<names.length;i++){
if(names[i]!=null && states[i]==1 && signOrderId==i+1) {
System.out.println("对不起,您选择的订单已经完成签收,不能再次签收!");
isFind=true;
break;
}else if(names[i]!=null && states[i]==0 && signOrderId==i+1){
states[i]=1;
System.out.println("订单签收成功!");
isFind=true;
break;
}
}
if(!isFind){
System.out.println("对不起,此订单不存在!");
}
break;
case 5:
//5、我要点赞
break;
case 6:
//6、退出系统
isExit=true;
break;
}
if (!isExit) {
System.out.print("输入0返回:");
num = input.nextInt();
while (num != 0) {
System.out.print("输入错误,输入0返回:");
num = input.nextInt();
}
}else{
break;
}
}while(num==0);
System.out.println("谢谢使用,欢迎下次光临");
}
}
//未完待续。。。




















































































































































































以上是关于吃货联盟订餐系统(用对象和数组来写的)的主要内容,如果未能解决你的问题,请参考以下文章

吃货联盟订餐系统---添加注释

吃货联盟订餐系统

吃货联盟订餐系统

吃货联盟订餐系统

第一个项目--------------吃货联盟订餐系统

第五章吃货联盟订餐系统