国产成人精品久久免费动漫-国产成人精品天堂-国产成人精品区在线观看-国产成人精品日本-a级毛片无码免费真人-a级毛片毛片免费观看久潮喷

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

Java基于字符界面的簡(jiǎn)易收銀臺(tái)

瀏覽:2日期:2022-08-09 17:45:51

用Java實(shí)現(xiàn)簡(jiǎn)易收銀臺(tái),供大家參考,具體內(nèi)容如下

簡(jiǎn)易收銀臺(tái)的實(shí)現(xiàn)并不難,主要實(shí)現(xiàn)這幾個(gè)類(lèi):

商品類(lèi) Goods (將商品根據(jù)編號(hào),名稱,價(jià)格存放) 商品中心類(lèi) GoodsCenter (存放商品,可以添加商品,下架商品,修改商品信息,判斷商品是否存在或者貨架已滿,打印商品等功能) 訂單類(lèi) Order (處理訂單,主要實(shí)現(xiàn)買(mǎi)單功能,下單,計(jì)算總價(jià)) 功能實(shí)現(xiàn)

初始化界面

Java基于字符界面的簡(jiǎn)易收銀臺(tái)

商品上架

Java基于字符界面的簡(jiǎn)易收銀臺(tái)

修改商品信息

Java基于字符界面的簡(jiǎn)易收銀臺(tái)

下架商品

Java基于字符界面的簡(jiǎn)易收銀臺(tái)

返回并進(jìn)入買(mǎi)單功能

Java基于字符界面的簡(jiǎn)易收銀臺(tái)

選擇商品及數(shù)量進(jìn)行買(mǎi)單

Java基于字符界面的簡(jiǎn)易收銀臺(tái)

取消訂單

Java基于字符界面的簡(jiǎn)易收銀臺(tái)

查看訂單

Java基于字符界面的簡(jiǎn)易收銀臺(tái)

返回并退出

Java基于字符界面的簡(jiǎn)易收銀臺(tái)

功能分析

Java基于字符界面的簡(jiǎn)易收銀臺(tái)

代碼展示

package com.bittech; import java.time.LocalDate;import java.util.Scanner; /** * Author:weiwei * description: * Creat:2019/5/5 **/public class CheckStand { public static Scanner scanner = new Scanner(System.in); public static void helpInfo() {System.out.println('==============歡迎使用簡(jiǎn)易收銀臺(tái)=============');System.out.println(' [U]使用 [S]設(shè)置 [A]關(guān)于 [Q]退出 ');System.out.println(' 輸入 U S A Q 進(jìn)行操作 ');System.out.println('============================================'); } public static void quit() {System.out.println('===========================================');System.out.println('歡迎下次使用');System.out.println('===========================================');System.exit(0); } public static void usageInfo() {System.out.println('================買(mǎi)單功能====================');System.out.println(' [S]查看 [A]下單 [D]取消 [L]瀏覽 [R]返回');System.out.println(' 輸入 S A D L R 進(jìn)行操作 ');System.out.println('==========================================='); } public static void about() {System.out.println('==================關(guān)于=====================');System.out.println(' 名稱:簡(jiǎn)易收銀臺(tái) ');System.out.println(' 功能:基于字符界面的收銀臺(tái)操作 ');System.out.println(' 作者:weiwei ');System.out.println(' 版本:v0.0.1 ');System.out.println(' 意見(jiàn)反饋:[email protected] ');System.out.println('=========================================='); } public static void settingInfo() {System.out.println('=================設(shè)置功能==================');System.out.println(' [S]查看 [A]上架 [D]下架 [U]修改 [R]返回 ');System.out.println(' 輸入 S A D U R 進(jìn)行操作 ');System.out.println('==========================================='); } public static void usage() {usageInfo();GoodsCenter.printGoods();Order order = new Order();while(true){ String line = scanner.nextLine(); switch(line.trim()){case 'S':{ order.printOrder(); break;}case 'A':{ System.out.println('請(qǐng)輸入下單信息[編號(hào)][數(shù)量] (格式如:1 2 ):'); String value = scanner.nextLine(); String[] infoArray = value.split(' '); if(infoArray != null && (infoArray.length == 2)){Goods goods = GoodsCenter.getGoods(Integer.parseInt(infoArray[0]));if(goods != null){ order.add(goods,Integer.parseInt(infoArray[1])); order.printOrder(); break;} } System.out.println('請(qǐng)按照格式要求輸入信息'); break;}case 'D':{ System.out.println('請(qǐng)輸入取消信息[編號(hào) 數(shù)量](如下格式:1 2 ):'); String value = scanner.nextLine(); String[] infoArray = value.split(' '); if (infoArray != null && (infoArray.length == 2)) {Goods goods = GoodsCenter.getGoods(Integer.parseInt(infoArray[0]));if (goods != null) { order.cance(goods, Integer.parseInt(infoArray[1])); order.printOrder(); break;} } System.out.println('請(qǐng)按照格式要求輸入信息'); break;}case 'L': { GoodsCenter.printGoods(); break;}case 'R': { return;}default: { usageInfo();} }} } public static void setting() {settingInfo();if (GoodsCenter.isFull()) { System.out.println('!當(dāng)前商品貨架已經(jīng)滿了,如果要進(jìn)行添加請(qǐng)下降部分商品');}while (true) { String line = scanner.nextLine(); switch (line.toUpperCase()) {case 'S': { GoodsCenter.printGoods(); break;}case 'A': { System.out.println('請(qǐng)輸入上架商品信息(如下格式:1 餐巾紙 1.4):'); Goods goods = readGoods(); if (goods == null) {System.out.println('!請(qǐng)按照格式要求輸入信息');break; } if (GoodsCenter.isFull()) {System.out.println('!當(dāng)前商品貨架已經(jīng)滿了,如果要進(jìn)行添加請(qǐng)下降部分商品'); } else if (GoodsCenter.isExist(goods)) {System.out.println('!上架商品已經(jīng)存在,注意編號(hào)不能重復(fù)'); } else {GoodsCenter.addGoods(goods);GoodsCenter.printGoods(); } break;}case 'D': { System.out.println('請(qǐng)輸入下架商品信息編號(hào)(如下格式:1 ):'); Goods goods = readGoods(); if (goods == null) {System.out.println('請(qǐng)按照格式要求輸入信息');break; } if (GoodsCenter.isPutaway(goods)) {GoodsCenter.soldOutGoods(goods);GoodsCenter.printGoods(); } else {System.out.println('請(qǐng)選擇上架的商品編號(hào),當(dāng)前下架商品未設(shè)置'); } break;}case 'U': { System.out.println('請(qǐng)輸入修改商品信息(如下格式:1 餐巾紙 1.4 )'); Goods goods = readGoods(); if (goods == null) {System.out.println('請(qǐng)按照格式要求輸入信息');break; } if (GoodsCenter.isPutaway(goods)) {GoodsCenter.modifyGoods(goods);GoodsCenter.printGoods(); } else {System.out.println('請(qǐng)選擇上架的商品編號(hào),當(dāng)前修改商品未設(shè)置'); } break;}case 'R': { return;}default: { settingInfo();} }} } public static Goods readGoods() {String value = scanner.nextLine();String[] infoArray = value.split(' ');if (infoArray != null && (infoArray.length == 3 || infoArray.length == 1)) { if (infoArray.length == 3) {Goods goods = new Goods(Integer.parseInt(infoArray[0]), infoArray[1], Double.parseDouble(infoArray[2]));return goods; } if (infoArray.length == 1) {Goods goods = new Goods(Integer.parseInt(infoArray[0]), '', 0.0D);return goods; }}return null; } public static void main(String[] args) {helpInfo();while (true) { String line = scanner.nextLine(); switch (line.trim().toUpperCase()) {case 'U': usage(); helpInfo(); break;case 'S': setting(); helpInfo(); break;case 'A': about(); break;case 'Q': quit(); break;default: helpInfo(); }} }}

GoodsCenter類(lèi)

class GoodsCenter { //商品占位符 private static String placeholder = '--'; //最大商品數(shù)量 private static int maxGoods = 10; //商品容器 private static Goods[] goodsArray; //初始化商品容器 static {goodsArray = new Goods[maxGoods];for (int i = 0; i < goodsArray.length; i++) { goodsArray[i] = new Goods(i + 1, '--', 0.0D);} } private GoodsCenter() { } public static int getMaxGoods() {return maxGoods; } //添加商品 public static void addGoods(Goods goods) {for (int i = 0; i < goodsArray.length; i++) { Goods temp = goodsArray[i]; if (temp.getId() == goods.getId()) {temp.setName(goods.getName());temp.setPrice(goods.getPrice());break; }} } //下架商品 public static void soldOutGoods(Goods goods) {for (int i = 0; i < goodsArray.length; i++) { Goods temp = goodsArray[i]; if (temp.getId() == goods.getId()) {temp.setName(placeholder);temp.setPrice(0.0D);break; }} } //修改商品 public static void modifyGoods(Goods goods) {for (int i = 0; i < goodsArray.length; i++) { Goods temp = goodsArray[i]; if (temp.getId() == goods.getId()) {temp.setName(goods.getName());temp.setPrice(goods.getPrice());break; }} } //商品是否存在 public static boolean isExist(Goods goods) {for (int i = 0; i < goodsArray.length; i++) { Goods temp = goodsArray[i]; if (temp.getId() == goods.getId() && temp.getName().equals(goods.getName())) {return true; }}return false; } //商品位是否存在商品 public static boolean isPutaway(Goods goods) {for (int i = 0; i < goodsArray.length; i++) { Goods temp = goodsArray[i]; if (temp.getId() == goods.getId() && !temp.getName().equals(placeholder)) {return true; }}return false; } //商品已滿 public static boolean isFull(){for(int i =0;i<goodsArray.length;i++){ if(goodsArray[i].getName().equals(placeholder)){return false; }}return true; } public static Goods getGoods(int id){for(int i = 0;i<goodsArray.length;i++){ Goods temp = goodsArray[i]; if(temp.getId() == id && !temp.getName().equals(placeholder)){return goodsArray[i]; }}return null; } //打印商品 public static void printGoods(){System.out.println('=============商品清單================');System.out.println('t' + '編號(hào)' + 't' +'產(chǎn)品名稱' + 't' + '單價(jià)');for(int i = 0;i<goodsArray.length;i++){ Goods temp = goodsArray[i]; String name = temp.getName(); if(name.equals(placeholder)){name = name + '[未上架]'; } System.out.println('t' + temp.getId() + 't' + temp.getName() + 't' + temp.getPrice());}System.out.println('========================================='); }}

Goods類(lèi)

class Goods{ //商品編號(hào) private int id; //商品名稱 private String name; //商品價(jià)格 private double price; public Goods(int id,String name,double price){this.id = id;this.name = name;this.price = price; } public int getId(){return this.id; } public int getIndex(){return this.getId()-1; } public String getName(){return this.name; } public void setName(String name) {this.name = name; } public double getPrice(){return this.price; } public void setPrice(double price) {this.price = price; } @Override public String toString(){return String.format('[%2d] %s %.2f',this.getId(),this.getName(),this.getPrice()); }}

Order類(lèi)

class Order{ private static int orderId = 0; private int id; private Goods[] items; private int[] itmesNumber; private int currentIndex; public Order(){this.id = ++orderId;this.items = new Goods[GoodsCenter.getMaxGoods()];this.itmesNumber = new int[GoodsCenter.getMaxGoods()];this.currentIndex = -1; } public void add(Goods goods,int count){int index = goods.getIndex();this.items[index] = goods;this.itmesNumber[index] += count; } public void cance(Goods goods,int count){int index = goods.getIndex();int value = this.itmesNumber[index]-count;if(value > 0){ this.itmesNumber[index] = value;}else{ this.items[index] = null; this.itmesNumber[index] = 0;} } public int getSize(){return this.currentIndex+1; } public double getTotalPrice(){double tatalPrivce = 0;for(int i =0;i<this.items.length;i++){ Goods goods = this.items[i]; if(goods != null){tatalPrivce += (this.itmesNumber[goods.getIndex()] * goods.getPrice()); }}return tatalPrivce; } public int getId(){return this.id; } public void printOrder(){System.out.println('========================');System.out.println('編號(hào)' + this.getId() );System.out.println('打印時(shí)間' + LocalDate.now().toString());System.out.println('========================');System.out.println('編號(hào) 名稱 數(shù)量 單價(jià)');for(int i = 0;i<this.items.length;i++){ Goods goods = this.items[i]; if(goods != null){int count = this.itmesNumber[goods.getIndex()];if(count <= 0){ continue;}System.out.println(String.format('%2dt%st%dt%.2f',goods.getId(),goods.getName(),count,goods.getPrice() )); }}System.out.println('=========================');System.out.println(String.format('總價(jià):%2f',this.getTotalPrice()));System.out.println('========================='); }}項(xiàng)目總結(jié) 用常用String類(lèi),Scanner類(lèi)實(shí)現(xiàn),代碼量不多,簡(jiǎn)單易懂 有弊端存在,就是用數(shù)組存放商品,容易出現(xiàn)數(shù)組越界異常,而且如果商品多的話用數(shù)組存儲(chǔ)也是極其不方便的 還有就是未使用到數(shù)據(jù)庫(kù),商品信息,訂單信息的保存有很多不方便的地方,如果建立連接了數(shù)據(jù)庫(kù),這個(gè)問(wèn)題就解決了

目前能力只能實(shí)現(xiàn)到這了,希望可以再努力一下,將數(shù)據(jù)庫(kù)加入到項(xiàng)目中,讓它的易用性再提升更多。

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持好吧啦網(wǎng)。

標(biāo)簽: Java
相關(guān)文章:
主站蜘蛛池模板: 免费一级淫片aaa片毛片a级 | 七七国产福利在线二区 | 欧美日韩国产一区二区三区播放 | 国产视频高清在线观看 | 国产日韩欧美另类 | 中国黄色网址大全 | 加勒比在线视频 | 国产精品久久久久久亚洲伦理 | 精品欧美一区二区三区精品久久 | 国产精品久久久久久久久免费hd | 亚洲黄视频在线观看 | 男女视频免费观看 | 高清三级毛片 | 久久一区视频 | 亚洲精品欧洲久久婷婷99 | 亚洲视频 中文字幕 | 久久精品国产亚洲7777小说 | 美国毛片亚洲社区在线观看 | 一级黄色毛片免费看 | 草久久久久 | 美女做爰视频在线观看免费 | 亚洲一区精品在线 | 成人久久18免费网站入口 | 91热久久免费频精品黑人99 | 久久精品一级 | 欧美一级片手机在线观看 | 成人黄色在线视频 | 国产精品日韩欧美 | 午夜性片 | 色噜噜国产精品视频一区二区 | 欧美一级毛片兔费播放 | 久久99精品久久久久久三级 | 欧美一区二区三区久久综 | 免费在线一级毛片 | 黄色毛片免费在线观看 | 欧美一级一极性活片免费观看 | 日本 片 成人 在线 日本68xxxxxxxxx老师 | 日本手机在线视频 | 欧美野外性xxxxfeexxxxx | 亚欧精品一区二区三区 | 在线观看成年人免费视频 |