Java基礎(chǔ)鞏固小項(xiàng)目點(diǎn)菜系統(tǒng)的實(shí)現(xiàn)
項(xiàng)目簡紹
點(diǎn)菜小系統(tǒng),可以實(shí)現(xiàn)點(diǎn)菜,查看已經(jīng)點(diǎn)的菜,買單查看總金額
所需技術(shù)
面向?qū)ο?,集?ArrayList)
因?yàn)轫?xiàng)目真的很小,所需要技術(shù)很有限,真的比較簡單
思路講解
- 創(chuàng)建菜品類、屬性
- 創(chuàng)建菜品列表并進(jìn)行初始化
- 主菜單循環(huán)
- 對(duì)選項(xiàng)補(bǔ)充,創(chuàng)建所需方法
- 完善代碼并測試
- 優(yōu)化代碼
完整代碼演示
import java.util.ArrayList; import java.util.List; import java.util.Scanner; public class DishApp { static List<Dish> dishList = new ArrayList<>(); static List<Dish> hadorder = new ArrayList<Dish>(); //創(chuàng)建所有菜集合和已經(jīng)點(diǎn)的菜集合 //這里注意集合要為全局變量,靜態(tài)的 public static void main(String[] args) { initDisk(); Scanner scanner = new Scanner(System.in); while (true) { showMenu(); int num = scanner.nextInt(); switch (num) { case 1: while (true) { order(); int id = scanner.nextInt(); if (id == 0) { break; } Dish dish = dishList.get(id - 1); System.out.println("點(diǎn)了" + dish.name); hadorder.add(dish); } case 2: showHadOrder(); break; case 3: buy(); break; default: break; } } } //初始化菜表 public static void initDisk() {//菜品可根據(jù)需要寫,我這里就簡寫一下哈?? Dish dish1 = new Dish(1, "米", 1); Dish dish2 = new Dish(2, "面", 1); Dish dish3 = new Dish(3, "粉", 1); dishList.add(dish1); dishList.add(dish2); dishList.add(dish3); } //主菜單 public static void showMenu() { System.out.println("-----主菜單-----"); System.out.println("-----1.菜單-----"); System.out.println("-----2.已點(diǎn)菜---"); System.out.println("-----3.買單-----"); } //列出菜表 public static void showDisk() { System.out.println("-------菜單---------"); for (Dish dish : dishList) { System.out.println(dish.id + "\t" + dish.name + "\t" + dish.price); } } //點(diǎn)菜 public static void order() { System.out.println("-----請(qǐng)點(diǎn)菜-0推出-----"); showDisk(); Scanner scanner = new Scanner(System.in); } //查看已經(jīng)點(diǎn)的菜 public static void showHadOrder() { System.out.println("------已點(diǎn)菜-------"); for (Dish dish : hadorder) { System.out.println(dish.id + "\t" + dish.name + "\t" + dish.price); } } //買單 public static void buy() { int sum = 0; for (Dish dish : hadorder) { sum += dish.price; } System.out.println("共消費(fèi)" + sum); } } //菜品類 class Dish { int id; String name; double price; //構(gòu)造器對(duì)屬性賦值 public Dish(int id, String name, double price) { this.id = id; this.name = name; this.price = price; } }
優(yōu)化
使用加強(qiáng)for循環(huán),簡潔代碼
此外在初始化菜表時(shí)可以使用匿名對(duì)象
dishList.add(new Disk());
這個(gè)小項(xiàng)目還要很多很多地方可以優(yōu)化和升級(jí)的,有興趣的小伙伴可以試試
結(jié)語
這是我寫的第一個(gè)小小項(xiàng)目,所用的技術(shù)實(shí)在有限,適合學(xué)完Java集合的用來練練手,鞏固一下
到此這篇關(guān)于Java基礎(chǔ)鞏固小項(xiàng)目點(diǎn)菜系統(tǒng)的實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)Java 點(diǎn)菜系統(tǒng)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Spring Cloud Feign的文件上傳實(shí)現(xiàn)的示例代碼
這篇文章主要介紹了Spring Cloud Feign的文件上傳實(shí)現(xiàn)的示例代碼,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2018-03-03Java面向?qū)ο笤O(shè)計(jì)原則之迪米特法則介紹
迪米特法則解決類與類之間耦合度問題,如果類A調(diào)用了B類的某一個(gè)方法,則這兩個(gè)類就形成了一種緊耦合的方式,當(dāng)B類這個(gè)方法發(fā)生變化時(shí),一定會(huì)影響A類的執(zhí)行結(jié)果。迪米特法則要求每一個(gè)類盡可能少的與其他類發(fā)生關(guān)系2023-02-02一文帶你學(xué)會(huì)Java網(wǎng)絡(luò)編程
網(wǎng)絡(luò)編程是指編寫運(yùn)行在多個(gè)設(shè)備(計(jì)算機(jī))的程序,這些設(shè)備都通過網(wǎng)絡(luò)連接起來。這篇文章將帶大家深入了解一下Java的網(wǎng)絡(luò)編程,需要的可以了解一下2022-08-08Spring boot + thymeleaf 后端直接給onclick函數(shù)賦值的實(shí)現(xiàn)代碼
這篇文章主要介紹了Spring boot + thymeleaf 后端直接給onclick函數(shù)賦值的實(shí)現(xiàn)代碼,需要的朋友可以參考下2017-06-06