用java實現基於字元的簡易收銀臺系統
從整體上來說,這個簡易系統分為以下四個部分:店主、顧客、關於、退出。各部分應該實現的功能如下圖:
整體框架程式碼
public static Scanner reader = new Scanner(System.in);
public static void main(String[] args) {
Boolean condi = true;
GoodsCenter.initGoodsArray();
while (condi) {
beginMune();
System.out.println("請選擇您的操作:" );
String id = reader.nextLine();
switch (id) {
case "S": //店主操作
case "s": {
owner();
continue;
}
case "C": //顧客操作
case "c": {
customer();
break;
}
case "A": //關於
case "a": {
abort();
break;
}
case "Q": //退出系統
case "q": {
quitMenu();
condi = false;
break;
}
default: {
System.out.println ("輸入有誤,請重新輸入:");
break;
}
}
}
reader.close();
}
框架很簡單,有了框架之後,接著實現各個介面的工作就可以了。
開始、退出、關於選單
//開始選單
public static void beginMune() {
System.out.println("*********************************");
System.out.println("******welcome to the market******");
System.out.println("*********************************");
System.out.println("*********************************");
System.out.println("*****[S]店主 [C]顧客*****");
System.out.println("*****[A]關於 [Q]退出*****");
System.out.printf("*********************************\n\n");
}
//退出選單
public static void quitMenu() {
System.out.println("*********************************");
System.out.println("***********歡迎下次光臨**********");
System.out.printf("*********************************\n\n");
}
//關於
public static void abort(){
System.out.println("*********************************");
System.out.println("**** author:cottonrose ****");
System.out.println("****e-mail:[email protected]****");
System.out.println("**** version:1.1.0 ****");
System.out.println("**** date:2018-12-01 ****");
System.out.printf("*********************************\n\n");
}
讀取輸入流資訊
在java中,讀取輸入流的資訊需要通過Scanner來實現,通過Scanner讀取控制檯使用者輸入的一行資訊,將該資訊轉換為商品型別,並存放入物件中,來實現對商品的控制。程式碼如下:
public static Goods readGoods(){
while(true){
String goods = reader.nextLine(); //讀取一行資訊存入到goods中
goods = goods.trim(); //將資訊中的前後空格去掉
String[] goodInfo = goods.split(" "); //以資訊中空格為界限,將資訊存入一個字串陣列中
if(goodInfo!=null && goodInfo.length==6 || goodInfo.length==2){ //當字元陣列中有6個或2個元素時,執行以下程式碼
if(goodInfo.length==6) { //建立一個商品類物件,內容是使用者輸入的商品資訊
Goods good = new Goods(
Integer.parseInt(goodInfo[0]),
goodInfo[1],
Float.parseFloat(goodInfo[2]),
Integer.parseInt(goodInfo[3]),
LocalDate.parse(goodInfo[4].subSequence(0,goodInfo[4].length())),
LocalDate.parse(goodInfo[5].subSequence(0,goodInfo[5].length())),
LocalDate.now()
);
return good; //返回該商品
}
if(goodInfo.length==2){
Goods good = new Goods(Integer.parseInt(goodInfo[0]),goodInfo[1]);
return good;
}
}else{
System.out.println("格式有誤,請重新輸入");
}
}
}
店主操作
public static void owner() {
boolean con = true;
while (con){
ownerMenu(); //列印店主操作選單
int num = GoodsCenter.isToTime(); //判斷商品是否到期
if(num!=0){
System.out.printf("上架商品中出現過期商品共"+num+"件,請及時下架!\n");
}
System.out.println("請選擇您的操作:");
String op = reader.nextLine();
switch (op) {
case "P": //商品上架
case "p": {
GoodsCenter.printGoods();
System.out.println("請輸入上架商品資訊:格式如下:(不用填寫上架日期)");
System.out.println("1 麵包 5 20 2018-02-03 2018-11-15");
Goods goods = readGoods();
GoodsCenter.addGood(goods);
GoodsCenter.printGoods();
break;
}
case "D": //商品下架
case "d": {
GoodsCenter.printGoods();
System.out.println("請輸入下架商品編號及商品名稱:格式如下:");
System.out.println("1 麵包");
Goods goods = readGoods();
GoodsCenter.deleteGood(goods);
GoodsCenter.printGoods();
break;
}
case "M": //修改商品資訊
case "m": {
GoodsCenter.printGoods();
System.out.println("請輸入要修改的商品編號及商品名稱:格式如下:");
System.out.println("1 麵包");
Goods goods = readGoods();
GoodsCenter.modifyGood(goods);
GoodsCenter.printGoods();
break;
}
case "Q": //退出店主模組
case "q": {
con = false;
break;
}
default: {
System.out.println("輸入有誤,請重新輸入:");
break;
}
}
}
}
//店主選單
public static void ownerMenu() {
System.out.println("*********************************");
System.out.println("***** 店主 *****");
System.out.println("*********************************");
System.out.println("*****[P]上架 [D]下架*****");
System.out.println("*****[M]修改 [Q]退出*****");
System.out.printf("*********************************\n\n");
}
顧客操作
public static void customer(){
boolean con = true;
Order order = new Order(); //建立一個訂單物件,將顧客選購的商品放入該物件中
while(con){
Scanner input = new Scanner(System.in);
customerMenu(); //列印顧客操作選單
switch (input.nextLine()){
case"A": //顧客選購商品
case"a":{
GoodsCenter.printGoods();
System.out.println("請選擇要購買的商品:格式如下:");
System.out.println("1 2 (商品編號 數量)");
String[] info = input.nextLine().split(" ");
if(info!=null && info.length==2){
Goods goods = GoodsCenter.getGood(Integer.parseInt(info[0]));
if(goods!=null){
order.add(Integer.parseInt(info[0]),Integer.parseInt(info[1]));
order.printOrder();
}else{
System.out.println("商品不存在,請重新選擇");
continue;
}
}else{
System.out.println("輸入格式有誤,請重新輸入");
continue;
}
break;
}
case"S": //列印訂單
case"s":{
order.printOrder();
break;
}
case"M": //修改商品訂單
case"m":{
System.out.println("請選擇需要修改的商品:格式如下:");
System.out.println("1 2 (商品編號 要減少的數量)");
String[] info = input.nextLine().split(" ");
if(info!=null && info.length==2){
if(order.isInOrder(Integer.parseInt(info[0]))){
order.modify(Integer.parseInt(info[0]),Integer.parseInt(info[1]));
order.printOrder();
}else{
System.out.println("該商品目前不在商品訂單中,請重新輸入");
continue;
}
}else{
System.out.println("輸入格式有誤,請重新輸入");
continue;
}
break;
}
case"Q": //退出顧客操作模組
case"q":{
con = false;
break;
}
default:{
System.out.println("輸入有誤,請重新輸入");
}
}
input.close();
}
}
//顧客選單
public static void customerMenu(){
System.out.println("*********************************");
System.out.println("***** 顧客 *****");
System.out.println("*********************************");
System.out.println("*****[A]選購 [S]結算*****");
System.out.println("*****[M]修改 [Q]退出*****");
System.out.printf("*********************************\n\n");
}
商品資訊類
通過建立一個商品資訊類,來實現對商品資訊的控制。程式碼如下:
class Goods{
private int no; //商品貨號
private String name; //商品名稱
private float price; //商品價格
private int num; //商品數量
private LocalDate toTime; //截止日期
private LocalDate proTime; //生產日期
private LocalDate upTime; //上架日期
//構造方法
public Goods(int no, String name, float price, int num, LocalDate proTime, LocalDate toTime, LocalDate upTime) {
this.no = no;
this.name = name;
this.price = price;
this.num = num;
this.proTime = proTime;
this.toTime = toTime;
this.upTime = upTime;
}
public Goods(int no,String name){
this.no = no;
this.name = name;
}
public int getNo() {
return this.no;
}
public String getName() {
return this.name;
}
public float getPrice() {
return this.price;
}
public int getNum() {
return this.num;
}
public LocalDate getUpTime() {
return this.upTime;
}
public LocalDate getProTime() {
return this.proTime;
}
public LocalDate getToTime() {
return this.toTime;
}
public void setNo(int no) {
this.no = no;
}
public void setName(String name) {
this.name = name;
}
public void setPrice(float price) {
this.price = price;
}
public void setNum(int num) {
this.num = num;
}
public void setUpTime(LocalDate upTime) {
this.upTime = upTime;
}
public void setProTime(LocalDate proTime) {
this.proTime = proTime;
}
public void setToTime(LocalDate toTime) {
this.toTime = toTime;
}
}
商品位類(貨架)
建立一個可以存放商品的類,相當於貨架,控制商品的上架、下架、修改等操作。程式碼如下:
class GoodsCenter{
private static int maxGoods = 10; //最大容量
private static Goods[] goodsArray; //商品資訊陣列
//初始化商品儲存容器
public static void initGoodsArray(){
goodsArray = new Goods[maxGoods];
int i = 0;
while(i<goodsArray.length){
goodsArray[i] = new Goods(i+1
相關推薦
用java實現基於字元的簡易收銀臺系統
從整體上來說,這個簡易系統分為以下四個部分:店主、顧客、關於、退出。各部分應該實現的功能如下圖:
整體框架程式碼
public static Scanner reader = new Scanner(System.in);
public static void main
用java實現一個簡易編譯器1-詞法解析入門
new 概念 自加 我們 sta 數字 獲得 () 操作系統 本文對應代碼下載地址為:
http://download.csdn.net/detail/tyler_download/9435103
視頻地址:
http://v.youku.com/v_show/id_XMT
用java實現簡易加密和解密
實現原理:
通過位運算的異或運算子“^”把字串與一個指定的值進行異或運算,從而改變字串中的每個字元的值,這樣就可以得到一個加密後的字串。傳送後再將加密後的字串通過源程式實現解
(2) 用java實現一個簡易編譯器1-詞法解析入門
轉載地址 : http://blog.csdn.net/tyler_download/article/details/50668983/
視訊地址 : http://study.163.com/course/courseLearn.htm?courseId=10028300
用Java 實現簡單的推薦系統
例子:
package recommender;
import java.util.Arrays;
/**
* Created by legotime
*/
public class r
用java實現一個簡單的學生管理系統
用Java如何實現一個用陣列作為儲存結構的簡易的學生管理系統?
首先,我們定義一個student類,在其中新增私有化的成員變數,通過getter和setter方法進行呼叫
public class Students {
// 學號,姓名,性別,年
【20171210】用java實現簡易貪吃蛇
一、各個類之間的關係
之前學軟體工程不努力,現在徒傷悲啊,不會用visio畫類圖…大致的類、方法之間的關係就是這樣。
二、遊戲介面
三、具體實現:
1.遊戲視窗
要考慮的問題有
利用java實現基於文字的圖書管理系統(有介面)
我覺得最難的一部分就是如何實現實現增刪改查
增加:使用write直接向檔案寫入資料即可
刪除:例如通過圖書號(x)找到圖書資料,刪除圖書資料。要想實現此功能,利用一個字元陣列(Arraylist)儲存文字每行資料,分割文字每一行資料(每一行分割成書號,書名,價格等資訊等等,
init.rc文件中面啟動c++程序,通過jni調用java實現
mini val sni ril urn runtime sport mco env
</pre><p>註:假設是自己的myself.jar包,還要修改例如以下:</p><p>target/product/core_bas
再談用java實現Smtp發送郵件之Socket編程
~~ 成功 剛才 還要 登陸 computer and ont sys
很多其它內容歡迎訪問個人站點 http://icodeyou.com
前幾天利用Socket實現了用java語言搭建webserver,全程下來應該會對Socket這
用java實現一個簡單的單用戶登陸功能的思路
get 單用戶 這樣的 簡單的 lock ref 數據庫 清除 一個
引用
所謂“單用戶單賬戶登錄”是指:在同一系統中,一個用戶名不能在兩個地方同時登錄。
我們參照 QQ 實現效果:當某賬號在 A 處登錄後,在未退出的情況下,如果再到 B 處登錄,那麽,系統會擠下 A 處
用java實現的strstr函數的一些問題
符號 clas bsp 問題: pub spa 操作 記錄 位置 用java實現過程如下:
1 public static int strstr(char[] cArray1,char[] cArray2){
2 if(cArray1!=null &&
用Java實現的選擇排序和冒泡排序
auth main sta -i str public java index 選擇 選擇排序
package cn.hxd.sort;
/**
* 選擇排序
* @author Administrator
*
*/
public class SelectionSo
用Java實現字母排列的三角形
int true bst 字母 main println logs abcd rgs
public class HomeWork03 {
public static void main(String[] args) {
String st
用java實現從命令行接收多個數字,求和之後輸出結果
system 程序流程圖 sta num 思想 pri for循環 含義 自動 1.設計思想
首先要了解從命令行輸入數字的含義,不需要在程序中自己定義。需要定義int類的num和sum。之後利用num=Integer.parseInt(arg);將String型轉化為int
數據結構(三) 用java實現七種排序算法。
得到 最簡 上傳 根節點 位置 中間 log 說明 堆排序 很多時候,聽別人在討論快速排序,選擇排序,冒泡排序等,都覺得很牛逼,心想,臥槽,排序也分那麽多種,就覺得別人很牛逼呀,其實不然,當我們自己去了解學習後發現,並沒有想象中那麽難,今天就一起總結一下各種排序
用Java實現AES加密(轉)
密鑰 工具 mex 嚴格 keys 生產 ner for 創建 一)什麽是AES?
高級加密標準(英語:Advanced Encryption Standard,縮寫:AES),是一種區塊加密標準。這個標準用來替代原先的DES,已經被多方分析且廣為全世界所使用。
那麽為什麽
java算法面試題:排序都有哪幾種方法?請列舉。用JAVA實現一個快速排序。選擇冒泡快速集合至少4種方法排序
算法 err div println rda print 算法面試 ++ 快速排序
package com.swift;
import java.util.ArrayList;
import java.util.Collections;
import java.util
用java實現類似於中原六仔源碼搭建
void class a 分別是 super util ava 數據 import count() 由於是用Java實現的所以圖形顯示界面是通過java的GUI實現中原六仔源碼搭建的。企 娥:217 1793 408
首先先來介紹一下我們的最終成果。寫了四個類文件分
用Python實現簡單的名片管理系統
rem 代碼 card 刪除 import val 字典 fin pytho 首先新建項目,包含主程序cards_main和工具庫cards_tools:
如下:main函數主主要使用while和if實現4功能切換,切換的具體操作由cards_tools中的函數執行。不說了