目錄
功能需求:
Soft function 軟件功能:
連鎖超市購物結算系統主要功能包括:顯示商品信息,購物清單,結算功能。
總體用例圖:
一、Use Case1 顯示商品信息列表:
顯示商品信息,供收銀員參考查詢。
二、Use Case 2 輸入購買商品編號
顧客在購物後要求結賬,收銀員輸入顧客購買的商品編號,準備由系統統計出顧客購物清單。
2、Preconditions 前置條件
系統提示“請輸入商品編號:(輸入0結束輸入)”
3、End Condition 後置條件
(1)Success End Condition 成功後置條件
收銀員輸入商品編號後按下“Enter”鍵,系統顯示出繼續輸入的提示:請輸入商品編號:(輸入0結束輸入)。
(2)Failed End Condition 失敗後置條件
a、收銀員輸入的商品編號非數字,提示“操作錯誤,系統退出!”,如圖:
b、收銀員輸入的商品編號不存在,顯示“查無此商品”,並允許繼續輸入商品編號,如圖:
三、Use Case 3顯示購物結算清單
收銀員將顧客購買的物品輸入完畢之後,系統顯示出顧客的購物清單,和購物總價。
需求分級:
Requirement ID 需求ID |
Requirement Name 需求名稱 |
Classification 需求分級 |
SC.01 |
顯示商品信息列表 |
A |
SC.02 |
輸入購買商品編號 |
A |
SC.03 |
顯示購物結算清單 |
A |
實現代碼:
1、Admin類
public class Admin {
public String userName;//用戶名
public String userPwd;//密碼
public boolean login() {
if ((userName.equals("admin"))&&(userPwd.equals("123"))) {
return true;
}else {
return false;
}
}
}
2、AdminServices類
import java.util.Scanner;
public class AdminServices {
Scanner sc = new Scanner(System.in);
Admin admin = new Admin();
public void adminServices() {
System.out.println("請輸入用戶名:");
admin.userName = sc.next();
System.out.println("請輸入密碼:");
admin.userPwd = sc.next();
boolean b = admin.login();
if (b) {
System.out.println("登錄成功!歡迎使用!");
}else {
System.out.println("登錄失敗,賬戶名或密碼錯誤,請重新輸入!");
adminServices();
}
}
}
3、Goods類
public class Goods {
public int id;//編號
public String name;//名稱
public double money;//價格
public String brand;//品牌
public String origin;//產地
public String taste;//口味
public String species;//種類
}
4、GoodsServices 類
import java.util.Scanner;
public class GoodsServices {
Scanner sc = new Scanner(System.in);
Goods goods[] = new Goods[3];//創建數組儲存商品信息
Goods userno[] = new Goods[10];//創建數組儲存用戶購買的商品編號
public void wareHouse() {//商品庫存信息
Goods a = new Goods();//商品A
a.id = 1;
a.name = "蘋果";
a.money = 5.00;
a.brand = "紅富士";
a.origin = "雲南昭通";
Goods b = new Goods();//商品B
b.id = 2;
b.name = "泡麪";
b.money = 3.00;
b.brand = "康師傅";
b.origin = "湖北武漢";
Goods c = new Goods();//商品C
c.id = 3;
c.name = "香蕉";
c.money = 4.00;
c.brand = "霸王椒";
c.origin = "香港地區";
goods[0] = a;//數組1
goods[1] = b;//數組2
goods[2] = c;//數組3
}
public void goodsShow() {//展示庫存信息
wareHouse();//調用庫存信息,這一步一定要有
for (int i = 0; i < goods.length; i++) {
System.out.print("編號:"+goods[i].id);
System.out.print("\t名稱:"+goods[i].name);
System.out.print("\t價格:¥"+goods[i].money);
System.out.print("\t品牌:"+goods[i].brand);
System.out.print("\t產地:"+goods[i].origin);
System.out.println();//輸出一次換行一次
}
}
public void userbuy(){//收銀員輸入顧客購買的商品編號
int i = 0;//循環數組的下標
int goodsNo;//聲明用於,接收用戶購買的商品編號
do {
System.out.println("請輸入商品編號:(輸入0結束輸入)");
goodsNo = sc.nextInt();//商品編號
if (1<=goodsNo&&goodsNo<=3) {
userno[i] = goods[goodsNo-1];
i++;
}else {
if(goodsNo!=0) {
System.out.println("查無次商品!");
}
}
} while (goodsNo!=0);
}
public void listing() {//系統統計出顧客購物清單
System.out.println("“服務一百,滿意一百”,歡迎光臨中百超市!您的購物清單如下:");
int j = 0;
double sum = 0;
for (int i = 0; i < userno.length; i++) {
if (userno[i]!=null) {
System.out.print("編號:"+userno[i].id);
System.out.print("\t名稱:"+userno[i].name);
System.out.print("\t價格:¥"+userno[i].money);
System.out.print("\t品牌:"+userno[i].brand);
System.out.print("\t產地:"+userno[i].origin);
System.out.println();//輸出一次換行一次
sum += userno[i].money;
}
}
System.out.println("***********************************************************************");
System.out.println("總價: ¥"+sum);
}
}
5、userUI 類
public class userUI {
public static void main(String[] args) {
AdminServices adminServices = new AdminServices();
GoodsServices goodsServices = new GoodsServices();
adminServices.adminServices();//管理員登錄界面
System.out.println("**********************中百集團聯合超市購物系統**************************");
goodsServices.goodsShow();//商品信息
System.out.println("***********************************************************************");
goodsServices.userbuy();//收銀員輸入顧客購買的商品編號
System.out.println("***********************************************************************");
goodsServices.listing();//進行結算
}
}