色综合图-色综合图片-色综合图片二区150p-色综合图区-玖玖国产精品视频-玖玖香蕉视频

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

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

瀏覽:2日期: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
相關文章:
主站蜘蛛池模板: 中国美女一级看片 | 欧美成人h | 久久99国产精一区二区三区 | 奶交性视频欧美 | 国产精品美女久久久久网站 | 欧美一区二区在线观看 | 亚洲欧美一区二区三区国产精品 | 91久久国产口精品久久久久 | 日本一区二区三区高清在线观看 | 纯欧美一级毛片_免费 | 亚洲性网 | 欧美一级一片 | 中文字幕福利视频 | 99视频只有精品 | 香蕉久久夜色精品国产2020 | 欧美国产高清 | 亚洲情a成黄在线观看动 | 黄色美女视频免费看 | 手机在线一区二区三区 | 免费在线观看一区二区 | 69福利网 | 很黄的网站在线观看 | 69交性视频 | 99久久99久久精品免费看子 | 久久精品免费一区二区视 | 欧美亚洲国产片在线观看 | 成人国产片免费 | 中文精品99久久国产 | 国产成人精品视频一区 | 亚洲的天堂 | 亚洲精品xxxx | 久草国产在线观看 | 午夜影院h | 在线观看视频一区二区三区 | 欧美在线播放成人免费 | 成年美女黄网站色视频大全免费 | 免费人成在线观看网站视频 | 国产精品区一区二区免费 | 日韩 欧美 国产 师生 制服 | 天天欲色成人综合网站 | 步兵社区在线观看 |