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


    目录

    一、自我介绍

    2.吃货联盟订餐系统

    1.首先创建一个订单类

    2.创建一个餐品类

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

    三。未来的发展规划

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


    一、自我介绍

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

    2.吃货联盟订餐系统

    1.首先创建一个订单类

    1. public class DingDan {
    2. String name;
    3. String dishMeg;// 餐品信息 几份
    4. int num;// 几份
    5. int time;
    6. String address;
    7. int states;// 订餐状态 0表示没有完成 1表示已经完成
    8. double sumprices;// 总金额
    9. public DingDan() {
    10. super();
    11. }
    12. public DingDan(String name, String dishMeg, int num, int time,
    13. String address, int states, double sumprices) {
    14. super();
    15. this.name = name;
    16. this.dishMeg = dishMeg;
    17. this.num = num;
    18. this.time = time;
    19. this.address = address;
    20. this.states = states;
    21. this.sumprices = sumprices;
    22. }
    23. }

    2.创建一个餐品类

     

    1. public class CaiPin {
    2. String dishNames;//餐品菜名
    3. double prices;//餐品价格
    4. int praiseNums;//餐品总金额
    5. public CaiPin() {
    6. super();
    7. }
    8. public CaiPin(String dishNames, double prices, int praiseNums) {
    9. super();
    10. this.dishNames = dishNames;
    11. this.prices = prices;
    12. this.praiseNums = praiseNums;
    13. }
    14. }

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

    1. public class CaoZuo {
    2. Scanner input = new Scanner(System.in);
    3. CaiPin[] arr = new CaiPin[3];// 属性
    4. DingDan[] brr = new DingDan[4];
    5. int DingDanNum;
    6. // 下面是已经有的订单
    7. {
    8. DingDan d1 = new DingDan("赵先坡", "红烧鸡块", 2, 15, "故宫皇位", 0, 36);
    9. brr[0] = d1;
    10. DingDan d2 = new DingDan("阮班航", "青椒肉丝", 1, 12, "美国总统府", 1, 16);
    11. brr[1] = d2;
    12. DingDanNum = 2;
    13. }
    14. // CaiPin[] arr=new CaiPin[3];
    15. {
    16. // 餐品 价格 点赞数(餐品信息)
    17. CaiPin c1 = new CaiPin("红烧鸡块", 18, 0);
    18. arr[0] = c1;
    19. CaiPin c2 = new CaiPin("北京烤鸭", 28, 0);
    20. arr[1] = c2;
    21. CaiPin c3 = new CaiPin("青椒肉丝", 16, 0);
    22. arr[2] = c3;
    23. }
    24. // 原有订单
    25. public int start() {
    26. System.out.println("****************");
    27. System.out.println("1.我要订餐");
    28. System.out.println("2.查看餐品信息");
    29. System.out.println("3.签收订单");
    30. System.out.println("4.删除订单");
    31. System.out.println("5.我要点赞");
    32. System.out.println("6.退出系统");
    33. System.out.println("****************");
    34. System.out.println("请选择几号:");
    35. Scanner input = new Scanner(System.in);
    36. int i = input.nextInt();
    37. return i;
    38. }
    39. // 选择具体的功能
    40. public void choose(int i) {
    41. switch (i) {
    42. case 1:
    43. // 我要订餐
    44. System.out.println("我要订餐");
    45. chooseFood();// 调用点餐方法
    46. break;
    47. case 2:
    48. // 查看餐品信息
    49. System.out.println("查看餐品信息");
    50. eachOrders();
    51. break;
    52. case 3:
    53. System.out.println("签收订单:请输入订单号");
    54. // 签收订单
    55. sign();
    56. break;
    57. case 4:
    58. // 删除订单
    59. System.out.println("请输入您要删除的订单");
    60. delete();
    61. break;
    62. case 5:
    63. // 显示餐品列表
    64. meal();
    65. break;
    66. case 6:
    67. // 退出系统
    68. System.out.println("退出系统");
    69. break;
    70. default:
    71. System.out.println("你输入错误,请重新输入");
    72. break;
    73. }
    74. }
    75. // 订餐功能
    76. public DingDan chooseFood() {
    77. // 查看菜单
    78. System.out.println("序号\t菜品名称\t价格\t点赞数");
    79. for (int i = 0; i < arr.length; i++) {
    80. System.out.println((i + 1) + "\t" + arr[i].dishNames + "\t"
    81. + arr[i].prices + "\t" + arr[i].praiseNums);
    82. }
    83. System.out.println("请输入要选择的菜品");
    84. int index = input.nextInt();
    85. // 客户选择的菜品为
    86. System.out.println();
    87. // 非常重要一定要搞明白
    88. CaiPin c = arr[index - 1];
    89. System.out.println("您选择的菜品为:" + c.dishNames);
    90. System.out.println("请输入你要订餐的分数");
    91. int sum = input.nextInt();
    92. System.out.println("请输入您的姓名:");
    93. String name = input.next();
    94. // 送达时间
    95. System.out.println("请输入10-20的时间:");
    96. int time = input.nextInt();
    97. while (time < 10 || time > 20) {
    98. System.out.println("您输入错误,请您重新输入");
    99. time = input.nextInt();
    100. }
    101. System.out.println("请输入地址");
    102. String address = input.next();
    103. // 接受所有订单信息,封装成为对象重要中的重要
    104. // 餐品总价为
    105. double sumprices = c.prices * sum;
    106. DingDan d = new DingDan(name, c.dishNames, sum, time, address, 0,
    107. sumprices);
    108. brr[DingDanNum] = d;
    109. DingDanNum++;
    110. System.out.println("序号\t订餐人\t餐品信息\t送餐时间\t送餐地址\t总金额\t状态");
    111. System.out.println(index + "\t" + name + "\t" + c.dishNames + "\t"
    112. + time + "\t" + address + "\t" + sumprices + "\t" + "已经预定");
    113. return d;
    114. }
    115. // 是否退出功能
    116. public boolean isExit() {
    117. System.out.println("是否返回(按0返回):");
    118. int i = input.nextInt();
    119. return i == 0 ? false : true;
    120. }
    121. // 下面是查看餐袋功能
    122. public void eachOrders() {
    123. System.out.println("序号\t订餐人\t餐品信息\t送餐时间\t送餐地址\t总金额\t状态");
    124. for (int i = 0; i < DingDanNum; i++) {
    125. String states = brr[i].states == 0 ? "已预定" : "已完成";
    126. System.out.println((i + 1) + "\t" + brr[i].name + "\t"
    127. + brr[i].dishMeg + "\t" + brr[i].num + " " + "份" + "\t"
    128. + brr[i].time + "\t" + brr[i].address + "\t" + states
    129. + "\t" + brr[i].sumprices);
    130. }
    131. }
    132. // 签收订单
    133. public void sign() {
    134. int qian = input.nextInt();
    135. if (brr[qian - 1].states == 0) {
    136. System.out.println("还没有签收,请您签收******签收成功");
    137. brr[qian - 1].states = 1;
    138. } else {
    139. System.out.println("已经签收无须再次签收");
    140. }
    141. }
    142. // 删除订单
    143. public void delete() {
    144. int index = -1;
    145. int shan = input.nextInt();
    146. for (int i = 0; i < brr.length; i++) {
    147. if (brr[i].states == 1 && brr[i] != null && shan == i + 1) {
    148. index = i;
    149. break;
    150. } else if (brr[i].states == 0 && brr[i] != null && shan == i + 1) {
    151. System.out.println("订单没有签收,请您签收");
    152. break;
    153. }
    154. }
    155. if (index != -1) {
    156. for (int i = index + 1; i < brr.length; i++) {
    157. brr[i - 1] = brr[i];
    158. }
    159. System.out.println("删除成功");
    160. DingDanNum--;
    161. }
    162. }
    163. public void meal() {
    164. System.out.println("序号\t菜品名称\t价格\t点赞数");
    165. for (int i = 0; i < arr.length; i++) {
    166. System.out.println((i + 1) + "\t" + arr[i].dishNames + "\t"
    167. + arr[i].prices + "\t" + arr[i].praiseNums);
    168. }
    169. System.out.println("请给某个菜品点赞");
    170. int dian = input.nextInt();
    171. arr[dian - 1].praiseNums++;
    172. System.out.println("点赞成功");
    173. System.out.println(arr[dian - 1].dishNames + " "
    174. + arr[dian - 1].praiseNums + "赞");
    175. }
    176. }

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

    1. public class XianShi {
    2. public static void main(String[] args) {
    3. CaoZuo c = new CaoZuo();
    4. do {
    5. int start = c.start();
    6. c.choose(start);// start是输入的一个数
    7. } while (!c.isExit());
    8. }
    9. }

    三。未来的发展规划

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

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

    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();
        }
    }

  • 相关阅读:
    Pythonnumpy多维数组
    奖励最顶尖的k位学生------题解
    sqlserver groupby分组后取第一个sql
    Ubuntu18.04搭建Jenkins自动化部署Gitee仓库代码
    【C/C++】结构体&内存对齐
    音视频开发13 FFmpeg 音频 相关格式分析 -- AAC ADTS格式分析
    STM32 Cubemx 基本定时器Basic Timers
    zookeeper集群+kafka集群
    JavaScript 面试题总结
    DirectX 使用 Vortice 从零开始控制台创建 Direct2D1 窗口修改颜色
  • 原文地址:https://blog.csdn.net/m0_67979925/article/details/126948962