目录
我目前还是正在上学的学生,现在正在学习Java,下面是我用对象和数组写的一个吃货联盟订餐系统。每个学习编程的都会写过类似的项目。以下是我写的代码。
- 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;
- }
-
- }
- 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;
- }
-
- }
- 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();
}
}