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)
- 對選項(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("-----請點(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)造器對屬性賦值
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í)可以使用匿名對象
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)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Spring Cloud Feign的文件上傳實(shí)現(xiàn)的示例代碼
這篇文章主要介紹了Spring Cloud Feign的文件上傳實(shí)現(xiàn)的示例代碼,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2018-03-03
Java面向?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-08
Spring boot + thymeleaf 后端直接給onclick函數(shù)賦值的實(shí)現(xiàn)代碼
這篇文章主要介紹了Spring boot + thymeleaf 后端直接給onclick函數(shù)賦值的實(shí)現(xiàn)代碼,需要的朋友可以參考下2017-06-06

