亚洲精品久久久中文字幕-亚洲精品久久片久久-亚洲精品久久青草-亚洲精品久久婷婷爱久久婷婷-亚洲精品久久午夜香蕉

您的位置:首頁技術文章
文章詳情頁

Java基于字符界面的簡易收銀臺

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

用Java實現簡易收銀臺,供大家參考,具體內容如下

簡易收銀臺的實現并不難,主要實現這幾個類:

商品類 Goods (將商品根據編號,名稱,價格存放) 商品中心類 GoodsCenter (存放商品,可以添加商品,下架商品,修改商品信息,判斷商品是否存在或者貨架已滿,打印商品等功能) 訂單類 Order (處理訂單,主要實現買單功能,下單,計算總價) 功能實現

初始化界面

Java基于字符界面的簡易收銀臺

商品上架

Java基于字符界面的簡易收銀臺

修改商品信息

Java基于字符界面的簡易收銀臺

下架商品

Java基于字符界面的簡易收銀臺

返回并進入買單功能

Java基于字符界面的簡易收銀臺

選擇商品及數量進行買單

Java基于字符界面的簡易收銀臺

取消訂單

Java基于字符界面的簡易收銀臺

查看訂單

Java基于字符界面的簡易收銀臺

返回并退出

Java基于字符界面的簡易收銀臺

功能分析

Java基于字符界面的簡易收銀臺

代碼展示

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('==============歡迎使用簡易收銀臺=============');System.out.println(' [U]使用 [S]設置 [A]關于 [Q]退出 ');System.out.println(' 輸入 U S A Q 進行操作 ');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('================買單功能====================');System.out.println(' [S]查看 [A]下單 [D]取消 [L]瀏覽 [R]返回');System.out.println(' 輸入 S A D L R 進行操作 ');System.out.println('==========================================='); } public static void about() {System.out.println('==================關于=====================');System.out.println(' 名稱:簡易收銀臺 ');System.out.println(' 功能:基于字符界面的收銀臺操作 ');System.out.println(' 作者:weiwei ');System.out.println(' 版本:v0.0.1 ');System.out.println(' 意見反饋:liusz0501@163.com ');System.out.println('=========================================='); } public static void settingInfo() {System.out.println('=================設置功能==================');System.out.println(' [S]查看 [A]上架 [D]下架 [U]修改 [R]返回 ');System.out.println(' 輸入 S A D U R 進行操作 ');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('請輸入下單信息[編號][數量] (格式如: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('請按照格式要求輸入信息'); break;}case 'D':{ System.out.println('請輸入取消信息[編號 數量](如下格式: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('請按照格式要求輸入信息'); break;}case 'L': { GoodsCenter.printGoods(); break;}case 'R': { return;}default: { usageInfo();} }} } public static void setting() {settingInfo();if (GoodsCenter.isFull()) { System.out.println('!當前商品貨架已經滿了,如果要進行添加請下降部分商品');}while (true) { String line = scanner.nextLine(); switch (line.toUpperCase()) {case 'S': { GoodsCenter.printGoods(); break;}case 'A': { System.out.println('請輸入上架商品信息(如下格式:1 餐巾紙 1.4):'); Goods goods = readGoods(); if (goods == null) {System.out.println('!請按照格式要求輸入信息');break; } if (GoodsCenter.isFull()) {System.out.println('!當前商品貨架已經滿了,如果要進行添加請下降部分商品'); } else if (GoodsCenter.isExist(goods)) {System.out.println('!上架商品已經存在,注意編號不能重復'); } else {GoodsCenter.addGoods(goods);GoodsCenter.printGoods(); } break;}case 'D': { System.out.println('請輸入下架商品信息編號(如下格式:1 ):'); Goods goods = readGoods(); if (goods == null) {System.out.println('請按照格式要求輸入信息');break; } if (GoodsCenter.isPutaway(goods)) {GoodsCenter.soldOutGoods(goods);GoodsCenter.printGoods(); } else {System.out.println('請選擇上架的商品編號,當前下架商品未設置'); } break;}case 'U': { System.out.println('請輸入修改商品信息(如下格式:1 餐巾紙 1.4 )'); Goods goods = readGoods(); if (goods == null) {System.out.println('請按照格式要求輸入信息');break; } if (GoodsCenter.isPutaway(goods)) {GoodsCenter.modifyGoods(goods);GoodsCenter.printGoods(); } else {System.out.println('請選擇上架的商品編號,當前修改商品未設置'); } 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類

class GoodsCenter { //商品占位符 private static String placeholder = '--'; //最大商品數量 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' + '編號' + 't' +'產品名稱' + 't' + '單價');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類

class Goods{ //商品編號 private int id; //商品名稱 private String name; //商品價格 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類

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('編號' + this.getId() );System.out.println('打印時間' + LocalDate.now().toString());System.out.println('========================');System.out.println('編號 名稱 數量 單價');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('總價:%2f',this.getTotalPrice()));System.out.println('========================='); }}項目總結 用常用String類,Scanner類實現,代碼量不多,簡單易懂 有弊端存在,就是用數組存放商品,容易出現數組越界異常,而且如果商品多的話用數組存儲也是極其不方便的 還有就是未使用到數據庫,商品信息,訂單信息的保存有很多不方便的地方,如果建立連接了數據庫,這個問題就解決了

目前能力只能實現到這了,希望可以再努力一下,將數據庫加入到項目中,讓它的易用性再提升更多。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持好吧啦網。

標簽: Java
相關文章:
主站蜘蛛池模板: 日韩精品永久免费播放平台 | 真人视频一级毛片 | 中国大陆一级毛片 免费 | 夜夜综合| 国产农村一一级特黄毛片 | 99久久综合给久久精品 | 国产一区二区三区视频在线观看 | 成人精品视频 成人影院 | 538prom精品视频在放免费 | 在线看片免费 | 国产精品久久久亚洲第一牛牛 | 亚洲v日本v欧美v综合v | 国产丝袜视频在线观看 | 国内视频拍拍视频在线观看 | 久热香蕉在线爽青青 | 亚洲视频综合网 | 91久久夜色精品国产九色 | 亚洲视频精品在线 | 国产精品长腿丝袜第一页 | 国产精品免费看久久久 | 亚洲国产一区二区三区四区 | 国产日韩综合 | 天堂mv亚洲mv在线播放9蜜 | 99久久精品国产交换 | 91在线视| 国产成人啪午夜精品网站 | 免费国产小视频在线观看 | 欧美三级一区 | 国产精品不卡在线 | 亚洲综合网在线观看首页 | 91视频黄| 久久青青草原精品国产麻豆 | 在线精品福利视频你懂的 | 亚洲一级毛片免费观看 | 国内久久久久影院精品 | 国产亚洲精品久久久久久 | 性色生活片 | 日本一区毛片免费观看 | 欧美人一级淫片a免费播放 欧美人七十二式性视频教程一 | 欧美日韩亚洲国产一区二区综合 | 黄频在线播放观看 免费 |