第一篇:小型超市管理系統(tǒng)
小型超市管理系統(tǒng)一:需求分析
1.超市信息管理系統(tǒng)是一個面向超市用來進行超市日常信息處理的管理信息系統(tǒng)(MIS)。該信息系統(tǒng)能夠方便的為超市的售貨員提供各種日常售貨功能,也能夠為超市的管理者提供各種管理功能,如進貨、統(tǒng)計商品等。
(1)超市信息管理系統(tǒng)能夠支持售貨員日常售貨功能。每一個售貨員通過自己的用戶名稱和密碼登錄到售貨系統(tǒng)中,為顧客提供服務(wù)。在售貨員為顧客提供售貨服務(wù)時,售貨員接收顧客購買商品,根據(jù)系統(tǒng)的定價計算出商品的總價,顧客付款并接受售貨員打印的貨物清單,系統(tǒng)自動保存顧客購買商品記錄。
(2)超市信息管理系統(tǒng)能夠為超市的管理者提供管理功能。超市的管理包括庫存管理、訂貨管理、報表管理和售貨人員管理和系統(tǒng)維護等。庫存管理員負責超市的庫存管理;訂貨員負責超市的訂貨管理;統(tǒng)計分析員負責超市的統(tǒng)計分析管理;系統(tǒng)管理員負責超市的售貨人員管理和系統(tǒng)維護。每種管理者都通過自己的用戶名稱和密碼登錄到各自的管理系統(tǒng)中。
(3)庫存管理包括商品入庫管理、處理盤點信息、處理報銷商品信息和一些信息的管理設(shè)置信息。這些設(shè)置信息包括供應(yīng)商信息、商品信息和特殊商品信息。庫存管理員每天對商品進行一次盤點,當發(fā)現(xiàn)庫存商品有損壞時,及時處理報損信息。當商品到貨時,庫存管理員檢查商品是否合格后并將合格的商品進行入庫。當商品進入賣場時,商品進行出庫處理。
(4)訂貨管理是對超市所缺貨物進行的訂貨處理,包括統(tǒng)計訂貨商品和制作訂單等步驟。當訂貨員發(fā)現(xiàn)庫存商品低于庫存下限時,根據(jù)系統(tǒng)供應(yīng)商信息,制作訂單進行商品訂貨處理。
(5)統(tǒng)計分析管理包括查詢商品信息、查詢銷售信息、查詢供應(yīng)商信息、查詢?nèi)必浶畔?、查詢報表信息和查詢特殊商品信息,并制作報表。統(tǒng)計分析員使用系統(tǒng)的統(tǒng)計分析功能,了解商品信息、銷售信息、供應(yīng)商信息、庫存信息和特殊商品信息,以便能夠制定出合理的銷售計劃。
(6)系統(tǒng)管理包括維護員工信息、維護會員信息和系統(tǒng)維護。系統(tǒng)管理員通過系統(tǒng)管理功能,能夠了解公司員工信息、會員信息,還能夠?qū)ο到y(tǒng)進行維護工作。二:創(chuàng)建系統(tǒng)用例模型 1.員工用例圖
? 員工是超市售貨員和超市管理者的抽象,它所包含的行為是超市售貨員和超市管理者共同的行為。員工在本系統(tǒng)中通過合法的身份驗證;能夠修改自身信息和密碼。
2.售貨員用例圖
? 售貨員能夠通過該系統(tǒng)進行銷售商品活動。當售貨員銷售商品時,首先獲取商品信息,然后將銷售信息更新,如果顧客需要打印購物清單,則需要打印購物清單,在購物清單中需要對商品信息進行計價處理。
3.庫存管理員用例圖
? 庫存管理員能夠通過該系統(tǒng)進行如下活動:
(1)處理盤點。超市庫存管理員每天需要對超市商品信息進行盤點。(2)處理報銷。超市庫存管理員對超市損壞商品進行報銷處理。(3)商品入庫。當商品到貨時,庫存管理員檢查商品是否合格后并將合格的商品進行入庫。
(4)商品出庫。當商品進入賣場時,商品進行出庫處理。(5)管理設(shè)置。庫存管理員負責供應(yīng)商信息、商品基本信息和特殊商品信息的管理設(shè)置。
4.訂貨員用例圖
? 訂貨員能夠通過該系統(tǒng)進行訂貨管理活動。訂貨員首先根據(jù)商品缺貨信息統(tǒng)計訂貨商品,根據(jù)需要訂貨商品信息制定出訂單。
5.統(tǒng)計分析員用例圖
? 統(tǒng)計分析員負責超市的統(tǒng)計分析管理,它能夠通過該系統(tǒng)進行如下活動:
(1)查詢基本信息。統(tǒng)計分析員能夠查詢商品的基本信息,根據(jù)商品的基本信息,制定出相應(yīng)的方案。
(2)查詢銷售信息。統(tǒng)計分析員根據(jù)銷售情況,制定合理的銷售方案。
(3)查詢供應(yīng)商信息。統(tǒng)計分析員能夠查詢供應(yīng)商信息。
(4)查詢?nèi)必浶畔?。統(tǒng)計分析員能夠查詢?nèi)必浶畔ⅰ?/p>
(5)查詢報損信息。統(tǒng)計分析員能夠查詢報損信息。
(6)查詢特殊商品信息。統(tǒng)計分析員能夠查詢特殊商品信息
6.系統(tǒng)管理員用例圖
? 系統(tǒng)管理員能夠通過該系統(tǒng)進行如下活動:
(1)維護會員信息。系統(tǒng)管理員能夠維護超市會員的信息,如添加會員、刪除會員和修改會員信息等。
(2)維護員工信息。系統(tǒng)管理員能夠維護超市員工的信息,如添加員工、刪除員工和修改員工信息等。
(3)系統(tǒng)設(shè)置。系統(tǒng)管理員能夠根據(jù)一些需要進行必要的系統(tǒng)設(shè)置。
三:創(chuàng)建系統(tǒng)靜態(tài)模型
? 在獲得系統(tǒng)的基本需求用例模型以后,我們通過考察系統(tǒng)對象的各種屬性,創(chuàng)建系統(tǒng)靜態(tài)模型。
(1)首先,我們先確定系統(tǒng)的參與者的屬性。每一個超市員工在登錄系統(tǒng)時,都需要提供員工的用戶名稱和密碼,因此每一個超市員工應(yīng)該擁有用戶名稱和密碼屬性。超市員工還擁有在超市中的唯一標識——員工編號。此外,員工屬性中還包含員工的年齡、頭銜和照片等信息。超市的售貨員和管理者都繼承自員工,擁有員工的屬性。在系統(tǒng)中記錄的顧客包括顧客的名稱、顧客的編號、顧客地址、顧客級別和顧客的總消費金額等記錄。
(2)其次,我們確定在系統(tǒng)中的主要業(yè)務(wù)實體類,這些類通常需要在數(shù)據(jù)庫中進行存儲。例如,我們需要存儲商品的信息,因此需要一個商品類,同樣,根據(jù)供應(yīng)商信息我們可以確定供應(yīng)商類。(2)其次,我們確定在系統(tǒng)中的主要業(yè)務(wù)實體類,這些類通常需要在數(shù)據(jù)庫中進行存儲。例如,我們需要存儲商品的信息,因此需要一個商品類,同樣,根據(jù)供應(yīng)商信息我們可以確定供應(yīng)商類。
四:創(chuàng)建系統(tǒng)動態(tài)模型
1.售貨員銷售商品序列圖和交互圖 工作流程如下:
(1)顧客希望通過售貨員購買商品,售貨員希望通過售貨管理子系統(tǒng)處理商品銷售。
(2)顧客將購買商品提交給售貨員。
(3)售貨員通過銷售管理子系統(tǒng)中的管理商品界面獲取商品信息。
(4)管理商品界面根據(jù)商品的編號將商品類實例化并請求該商品信息。
(5)商品類實例化對象根據(jù)商品的編號加載商品信息并提供給管理商品界面。(6)管理商品界面對商品進行計價處理。
(7)管理商品界面更新銷售商品信息。
(8)管理商品界面顯示處理商品。
(9)售貨員將貨物提交給顧客。
2.統(tǒng)計分析員查詢商品信息序列圖和交互圖 工作流程如下:
(1)統(tǒng)計分析員希望通過統(tǒng)計分析子系統(tǒng)查詢商品信息。
(2)統(tǒng)計分析員通過統(tǒng)計分析子系統(tǒng)中的查詢商品信息界面獲取商品信息。
(3)查詢商品信息界面根據(jù)商品的屬性或特征將商品類實例化并請求該類商品信息。
(4)商品類實例化對象加載商品信息,并提供給管理商品界面。
(5)查詢商品信息界面顯示該類商品信息。
(6)統(tǒng)計分析員請求查詢商品信息界面制定出該類商品報表。
(7)查詢商品信息界面制定該類商品報表。
(8)查詢商品信息界面將該類商品報表顯示給統(tǒng)計分析員。
3.庫存管理員處理商品入庫
工作流程如下:
(1)庫存管理員希望通過庫存管理子系統(tǒng)將購買的貨物處理入庫(2)庫存管理員通過庫存管理子系統(tǒng)中的商品入庫界面獲取商品信息。
(3)商品入庫界面根據(jù)商品的編號將商品類實例化并請求該類商品信息。
(4)商品類實例化對象根據(jù)商品的編號加載商品信息并提供給商品入庫界面。
(5)庫存管理員通過商品入庫界面增加商品數(shù)目。(6)商品入庫界面通過商品類實例化對象修改商品信息。(7)商品類實例化對象向商品入庫界面返回修改信息。(8)商品入庫界面向庫存管理員顯示添加成功信息。
4.訂貨員進行訂貨管理 工作流程如下:
(1)訂貨員希望通過訂貨管理子系統(tǒng)處理商品訂貨管理。(2)訂貨員通過訂貨管理子系統(tǒng)中的訂貨管理界面獲取待訂貨商品信息。
(3)訂貨管理界面將商品類實例化并根據(jù)商品的數(shù)量應(yīng)當滿足的條件請求有關(guān)商品信息。
(4)商品類實例化對象根據(jù)商品的數(shù)量應(yīng)當滿足的條件加載商品信息并提供給訂貨管理界面。
(5)訂貨員通過訂貨管理子系統(tǒng)中的訂貨管理界面獲取待訂貨廠商信息。
(6)訂貨管理界面將供應(yīng)商類實例化并根據(jù)商品的類型請求有關(guān)供應(yīng)商信息。
(7)供應(yīng)商類實例化對象加載供應(yīng)商信息并提供給訂貨管理界面。(8)訂貨員通過訂貨管理子系統(tǒng)中的訂貨管理界面制作相關(guān)訂單。(9)訂貨管理界面制作相關(guān)訂單并顯示給訂貨員。
5.商品狀態(tài)圖
? 在超市信息管理系統(tǒng)中,我們將有明確狀態(tài)轉(zhuǎn)換的類進行描述,以下我們以商品的狀態(tài)圖為例,簡單進行說明。? 商品包含以下的狀態(tài):剛被購買還未入庫后的商品、被添加能夠出售的商品、商品被出售、商品被回收。它們之間的轉(zhuǎn)化規(guī)則是:
(1)剛被購買后的商品可以通過庫存管理員添加成為入庫的商品。(2)當入庫商品被出售,商品處于被銷售狀態(tài)。(3)當商品由于過期、損壞等因素造成的不合格時,商品被剔除。
6.員工驗證登錄活動圖
? 在利用系統(tǒng)的活動圖來描述在超市信息管理系統(tǒng)中的參與者如何協(xié)同工作時,我們還可以建立相關(guān)參與者的活動圖進行說明。以下我們以員工驗證密碼為例進行說明。? 我們可以通過以下的方式描述員工驗證登錄的活動:(1)員工需要通過身份驗證后進入相關(guān)子系統(tǒng)才能夠進行相關(guān)操作。
(2)首先,系統(tǒng)運行后系統(tǒng)進入初始化登錄界面。(3)員工輸入自己的用戶名稱和密碼。
(4)登錄界面對用戶輸入的用戶名稱和密碼進行判斷。(5)如果是合法的用戶,則系統(tǒng)對用戶的權(quán)限進行判斷,員工進入相關(guān)的管理界面,登錄成功。
(6)如果是非法的用戶,系統(tǒng)提示用戶名稱或密碼錯誤,登錄失敗。
五:創(chuàng)建系統(tǒng)部署模型 1.系統(tǒng)構(gòu)件圖
在超市信息管理系統(tǒng)中,我們通過構(gòu)件映射到系統(tǒng)的實現(xiàn)類中,說明該構(gòu)件物理實現(xiàn)的邏輯類。例如,在超市信息管理系統(tǒng)中,我們可以對商品類和供應(yīng)商類分別創(chuàng)建對應(yīng)的構(gòu)件進行映射。
2.系統(tǒng)部署圖
在超市信息管理系統(tǒng)中,系統(tǒng)包括四種節(jié)點,分別是:前臺售貨節(jié)點,售貨員使用,負責貨物銷售;庫存管理節(jié)點,庫存管理員通過該節(jié)點進行庫存管理和維護;訂貨管理節(jié)點,訂貨管理員通過該節(jié)點進行訂貨管理;統(tǒng)計分析節(jié)點,統(tǒng)計分析員通過該節(jié)點進行統(tǒng)計分析;系統(tǒng)管理節(jié)點,系統(tǒng)管理員通過該節(jié)點進行系統(tǒng)維護和員工信息維護。
第二篇:基于java小型超市管理系統(tǒng)
import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.File;import java.io.FileNotFoundException;import java.io.FileReader;import java.io.FileWriter;import java.io.IOException;import java.util.Arrays;import java.util.Scanner;
public class Mytest { static int sign=0;//goodname數(shù)組第一個空下標號
static int sign1=0;//cname數(shù)組第一個空下標號
static String[] cpass=new String[20];//存放售貨員名稱
static String[] cname=new String[20];//存放售貨員登入密碼
static String[] goodname=new String[20];//存放商品名稱
static double[] goodprice=new double[20];//存放商品價格
static int[] goodout=new int[20];//存放商品銷售量
static int[] goodnum=new int[20];//存放商品數(shù)量
public static void main(String[] args)throws Exception { cname[0]=“ZhouTian”;//初始的售貨員名稱
cpass[0]=“723”;//初始的售貨員密碼 createArrays();readArrays(“goodname”);//將文件中的內(nèi)容讀入到相應(yīng)的數(shù)組里
readArrays(“goodprice”);readArrays(“goodnum”);readArrays(“cname”);readArrays(“cpass”);readArrays(“goodout”);menu();//登入之后加載的主菜單
} /** * 加載登入菜單
*/ private static void menu(){
Scanner scan = new Scanner(System.in);
System.out.println(“ttt歡迎使用商超購物管理系統(tǒng) n”);
System.out.println(“tttt1.登錄系統(tǒng)n”);
System.out.println(“tttt2.退出 ”);
System.out.println(“*************************************************”);
System.out.println(“請選擇,輸入數(shù)字: ”);
int a = scan.nextInt();
switch(a){
case 0:
System.out.println(“退出!”);//按0不登入
case 1:
System.out.println(“請輸入用戶名:”);// 查找售貨員姓名是否存在,與所對應(yīng)的密碼是否匹配
String name = scan.next();
System.out.println(“請輸入密碼:”);
String pass = scan.next();
int flage = 0;
int ff = 0;
for(int i = 0;i < cname.length;i++){
if(name.equals(cname[i])){
flage = 1;//售貨員的名稱匹配flage=1;
ff = i;
break;
}
}
if(flage == 1){//名稱匹配之后再匹配密碼
if(pass.equals(cpass[ff])){
loadmenu1();//密碼也匹配之后再允許登入
} else {
System.out.println(“密碼錯誤!”);
}
} else {
System.out.println(“該用戶名不具有權(quán)限”);
}
break;
case 2:
System.out.println(“謝謝您的使用!”);
break;
default:
break;
} }
/** * ,創(chuàng)建文件,將數(shù)組信息存入到各文件中, */ static void createArrays(){
BufferedWriter bw = null;
try {
File file1 = new File(“d:gname.txt”);
if(!file1.exists()){
bw
=
new
BufferedWriter(new FileWriter(“d:gname.txt”));
String content1 = strToString(goodname);//數(shù)組內(nèi)容轉(zhuǎn)換成字符串
bw.write(content1);//寫入
bw.close();
}
File file2 = new File(“d:gprice.txt”);
if(!file2.exists()){
bw
=
new
BufferedWriter(new FileWriter(“d:gprice.txt”));
String content2 = doubleToString(goodprice);//數(shù)組內(nèi)容轉(zhuǎn)換成字符串
bw.write(content2);//寫入
bw.close();
}
File file3 = new File(“d:gnum.txt”);
if(!file3.exists()){
bw
=
new
BufferedWriter(new FileWriter(“d:gnum.txt”));
String content3 = intToString(goodnum);//數(shù)組內(nèi)容轉(zhuǎn)換成字符串
bw.write(content3);//寫入
bw.close();
}
File file4 = new File(“d:cname.txt”);
if(!file4.exists()){
bw
=
new
BufferedWriter(new FileWriter(“d:cname.txt”));
String content4 = strToString(cname);//數(shù)組內(nèi)容轉(zhuǎn)換成字符串
bw.write(content4);//寫入
bw.close();
}
File file5 = new File(“d:cpass.txt”);
if(!file5.exists()){
bw
=
new
BufferedWriter(new FileWriter(“d:cpass.txt”));
String content5 = strToString(cpass);//數(shù)組內(nèi)容轉(zhuǎn)換成字符串
bw.write(content5);//寫入
bw.close();
}
File file6 = new File(“d:gout.txt”);
if(!file6.exists()){
bw
=
new
BufferedWriter(new FileWriter(“d:gout.txt”));
String content5 = intToString(goodout);//數(shù)組內(nèi)容轉(zhuǎn)換成字符串
bw.write(content5);//寫入
bw.close();
}
} catch(IOException e){
e.printStackTrace();
}
}
/** * 登入之后加載商超購物管理系統(tǒng)
*/ static void loadmenu1(){
System.out.println(“歡迎進入商超購物管理系統(tǒng)!”);
System.out.println(“tttt商超購物管理系統(tǒng)”);
System.out
.println(“********************************************************************************”);
System.out.println(“tttt1.商品維護”);
System.out.println(“tttt2.前臺收銀”);
System.out.println(“tttt3.商品管理”);
System.out.println(“tttt4.退出”);
System.out.println(“********************************************************************************”);
System.out.println(“請選擇,輸入數(shù)字或按0退出:”);
Scanner scan = new Scanner(System.in);
int a = scan.nextInt();
switch(a){
case 0:
System.out.println(“謝謝您的使用!”);
break;
case 1:
System.out.println(“執(zhí)行顯示商品維護菜單”);
loadmenu2();
break;
case 2:
System.out.println(“執(zhí)行前臺收銀”);
loadmenu6();
break;
case 3:
System.out.println(“執(zhí)行商品管理”);
loadmenu7();
break;
default:
break;
} } /* * 在商超購物管理系統(tǒng)中按1鍵時 */ static void loadmenu2(){
System.out.println(“tttt商超購物管理系統(tǒng) 商品維護”);
System.out
.println(“********************************************************************************”);
System.out.println(“tttt1.添加商品t”);
System.out.println(“tttt2.更改商品t”);
System.out.println(“tttt3.刪除商品t”);
System.out.println(“tttt4.顯示所有商品t”);
System.out.println(“tttt5.查詢商品t”);
System.out
.println(“********************************************************************************”);
System.out.println(“請選擇,輸入數(shù)字或按0返回上一級菜單:”);
Scanner scan = new Scanner(System.in);
int b = scan.nextInt();
switch(b){
case 0:
loadmenu1();
break;
case 1:
addgoods();
break;
case 2:
System.out.println(“執(zhí)行更改商品操作”);
loadmenu3();// 修改商品
break;
case 3:
System.out.println(“執(zhí)行商品刪除操作”);
loadmenu4();// 商品刪除
break;
case 4:
System.out.println(“顯示所有商品”);
System.out.println(“商品名稱ttt” + “商品價格ttt” + “商品數(shù)量ttt”
+ “備注”);
showgoods();
break;
case 5:
System.out.println(“執(zhí)行查詢商品操作”);
loadmenu5();
break;
default:
break;
} } /* * 在商超購物管理系統(tǒng)中按2鍵時
*/ static void loadmenu6(){
System.out.println(“tttt商超購物管理系統(tǒng) 前臺收銀”);
System.out
.println(“********************************************************************************”);
System.out.println(“tttt1.購物結(jié)算”);
Scanner scan = new Scanner(System.in);
int ch = scan.nextInt();
switch(ch){
case 0:
loadmenu1();
break;
case 1:
pay();
break;
default:
break;
}
} /* * 在商超購物管理系統(tǒng)中按3鍵時
*/ static void loadmenu7(){
Scanner scan = new Scanner(System.in);
System.out.println(“ttt商超購物管理系統(tǒng) 商品管理”);
System.out
.println(“********************************************************************************”);
System.out.println(“tttt1.庫存查詢”);
System.out.println(“tttt2.已出售商品”);
System.out.println(“tttt3.售貨員管理”);
System.out.println(“請選擇,輸入數(shù)字或按0返回上一級菜單:”);
int ch = scan.nextInt();
switch(ch){
case 0: loadmenu1();
break;
case 1:
System.out.println(“執(zhí)行庫存查詢操作:”);
kusear();
break;
case 2:
System.out.println(“執(zhí)行已出售商品查詢操作”);
besold();
break;
case 3:
System.out.println(“執(zhí)行售貨員管理操作”);
salesman();
break;
default:
break;
}
} /* * 對售貨員信息的增添,修改 */ static void salesman()
{
Scanner scan = new Scanner(System.in);
System.out.println(“
1、添加售貨員”);
System.out.println(“
2、修改售貨員信息”);
System.out.println(“請選擇,輸入數(shù)字或按0返回上一級菜單:”);
int b = scan.nextInt();
switch(b){
case 0:
loadmenu7();//返回上一級
break;
case 1:
addsale();//選擇1鍵,添加售貨員
break;
case 2:
modifysale();//更改售貨員的信息
break;
default:
break;
} } /* 添加售貨員 * */ static void addsale(){
Scanner scan = new Scanner(System.in);
String f;
// sign1 = sign1 + 1;
do {
System.out.println(“添加售貨員姓名:”);
String addname = scan.next();
add(cname, addname, sign1);//將新信息添加到相應(yīng)數(shù)組中
System.out.println(“添加售貨員登陸密碼:”);
String addpass = scan.next();
add(cpass, addpass, sign1);//將新信息添加到相應(yīng)數(shù)組中
// writeArray();
sign1++;//新信息添加后數(shù)組下標加1
writeArray();
System.out.println(“是否繼續(xù)(y/n)”);
f = scan.next();
// writeArray();
} while(f.equals(“y”));
salesman();} /* * 更改售貨員的信息 */ static void modifysale(){
String f;
Scanner scan = new Scanner(System.in);
System.out.println(“輸入更改員工名稱:”);
String newname = scan.next();
int k = searmember(newname);//查詢需要改的售貨員的信息,并返回其在數(shù)組中的下標
if(k >= 0){//判斷售貨員是否存在
System.out.println(“員工姓名” + “ttt密碼”);
System.out.println(cname[k] + “ttt” + cpass[k]);
System.out.println(“選擇您要更改的內(nèi)容:”);
System.out.println(“
1、更改員工姓名:”);
System.out.println(“
2、更改登錄密碼:”);
int kk = scan.nextInt();
switch(kk){
case 1:
System.out.println(“請輸入已更改員工姓名:”);
String newnname = scan.next();
cname[k] = newnname;
writeArray();
System.out.println(“是否繼續(xù)(y/n)”);
f = scan.next();
if(f.equals(“y”)){
modifysale();
} else {
salesman();
}
break;
case 2:
System.out.println(“請輸入已更改密碼:”);
String newpass = scan.next();
cpass[k] = newpass;
writeArray();
System.out.println(“是否繼續(xù)(y/n)”);
// System.out.println(“是否繼續(xù)(y/n)”);
f = scan.next();
if(f.equals(“y”)){
modifysale();
}
salesman();
break;
default:
break;
}
} } /* * 查詢ename姓名的售貨員在數(shù)組中的下標 */ static int searmember(String ename){
for(int i = 0;i < cname.length;i++){
if(cname[i].equals(ename)){
return i;
}
}
return-1;// 不存在時
} /* * 查詢已出售的商品信息 */ static void besold()
{
System.out.println(“商品名稱ttt” + “商品價格ttt” + “商品數(shù)量ttt” + “備注”);
for(int i = 0;i < goodout.length;i++){
if(goodout[i]!= 0){
System.out.println(goodname[i] + “ttt” + goodprice[i]
+ “ttt” + goodout[i]);
}
}
loadmenu7();} /* * 查詢庫存中售的商品信息
*/ static void kusear(){
Scanner scan = new Scanner(System.in);
String f;
do {
System.out.println(“輸入要查詢的商品名稱:”);
String sname = scan.next();
int t = ndimsear(sname);//按確切的商品名稱進行查詢,即非模糊查詢,找出商品名稱信息的下標
if(t >= 0){
System.out.println(“商品名稱ttt” + “商品價格ttt” + “商品數(shù)量ttt”
+ “備注”);
System.out.println(goodname[t] + “ttt” + goodprice[t]
+ “ttt” + goodnum[t] + “ttt”);//按下標輸出商品相應(yīng)的信息
} else {
System.out.println(“沒有此商品”);
}
System.out.println(“是否繼續(xù)(y/n)”);
f = scan.next();
} while(f.equals(“y”));
loadmenu7();
} /* * 按確切的商品名稱進行查詢,即非模糊查詢,找出商品名稱信息的下標
*/ static int ndimsear(String s){
for(int i = 0;i < goodname.length;i++){
if(goodname[i].equals(s)){
return i;
}
}
return-1;//沒查詢到時
}
/* * 商品結(jié)算
*/ static void pay(){
Scanner scan = new Scanner(System.in);
double sum = 0;
String f;
do {
dimsearch1();//按關(guān)鍵字進行模糊查詢,查找可能需要的商品
System.out.println(“請選擇商品:”);
String bnam = scan.next();//按查詢到的相關(guān)商品中選擇要購買的商品
System.out.println(“請輸入購買數(shù)量:”);
int bnum = scan.nextInt();
int fl = seargood(bnam);
System.out.println(bnam + “ttt” + goodprice[fl] + “ttt”
+ “購買數(shù)量” + bnum + “ttt” + bnum * goodprice[fl]);
goodnum[fl] = goodnum[fl]sum));
writeArray();//將對數(shù)組的更改寫入到文件中
loadmenu1();//結(jié)束購買返回
} /* * 查找商品返回下標 */ static int seargood(String bbnam){
for(int i = 0;i <= goodname.length;i++){
if(goodname[i].equals(bbnam)){
return i;
}
}
return-1;}
/* * 對商品進行各種查找
*/
static void loadmenu5(){
Scanner scan = new Scanner(System.in);
System.out.println(“
1、按商品數(shù)量升序查詢”);
System.out.println(“
2、按商品價格升序查詢”);
System.out.println(“
3、輸入關(guān)鍵字查詢商品”);
System.out.println(“請選擇,輸入數(shù)字或按0返回上一級菜單:”);
int choice = scan.nextInt();
switch(choice){
case 0:
loadmenu2();//返回上一級
break;
case 1:
numshenxu();//按商品數(shù)量升序進行查找
break;
case 2:
priceshenxu();//按商品價格升序進行查找
break;
case 3:
dimsearch();//按商品的關(guān)鍵字進行查找
break;
default:
break;
}
}
static void dimsearch1(){
int[] k;
Scanner scan = new Scanner(System.in);
System.out.println(“輸入商品關(guān)鍵字:”);
String sear = scan.next();
k = Arrays.copyOf(index(sear), index(sear).length);
System.out.println(“商品名稱ttt” + “商品價格ttt” + “商品數(shù)量ttt” + “備注”);
if(k!= null){
for(int i = 0;i < k.length;i++){
System.out.println(goodname[k[i]] + “ttt” goodprice[k[i]]
+ “ttt” + goodnum[k[i]] + “ttt”);
}
}
} /* * 按商品的關(guān)鍵字進行查找
*/ static void dimsearch()
+ {
String f;
do {
int[] k;
Scanner scan = new Scanner(System.in);
System.out.println(“輸入商品關(guān)鍵字:”);
String sear = scan.next();
k = Arrays.copyOf(index(sear), index(sear).length);
System.out.println(“商品名稱ttt” + “商品價格ttt” + “商品數(shù)量ttt”
+ “備注”);
if(k!= null){
for(int i = 0;i < k.length;i++){
System.out.println(goodname[k[i]] + “ttt”
+ goodnum[k[i]]
+ “ttt”);
}
goodprice[k[i]]
+
“ttt”
+
}
System.out.println(“是否繼續(xù)(y/n)”);
f = scan.next();} while(f.equals(“y”));loadmenu2();} static int[] index(String ss){ int countt = 0;int counttt = 0;for(int i = 0;i < goodname.length;i++){
if(goodname[i].indexOf(ss)>= 0){
countt++;
} } int[] location = new int[countt];for(int i = 0;i < goodname.length;i++){
if(goodname[i].indexOf(ss)>= 0){
location[counttt] = i;
counttt++;
}
}
return location;} /* * 按商品數(shù)量升序進行查找
*/ static void numshenxu(){
int[] newnum = Arrays.copyOf(goodnum, goodnum.length);
double[]
newprice
=
Arrays.copyOf(goodprice, goodprice.length);
String[] goodname.length);
for(int i = 0;i < newnum.lengthi1;i++){
for(int j = 0;j < newprice.length1;j++){
if(newprice[j] < newprice[j + 1]){
int temp = newnum[j];
newnum[j] = newnum[j + 1];
newnum[j + 1] = temp;
double temp1 = newprice[j];
newprice[j] = newprice[j + 1];
newprice[j + 1] = temp1;
String temp2 = newname[j];
newname[j] = newname[j + 1];
newname[j + 1] = temp2;//相應(yīng)的下標在不同的數(shù)
newname
=
Arrays.copyOf(goodname, 組里進行挑換,商品的信息才能保持一致
}
}
}
System.out.println(“商品名稱ttt” + “商品價格ttt” + “商品數(shù)量ttt” + “備注”);
for(int k = 0;k < newnum.length;k++){
if(newprice[k]!= 0){
System.out.println(newname[k] + “ttt” + newprice[k]
+ “ttt” + newnum[k] + “ttt”);
}
}
loadmenu5();} /* *更改商品信息的操作
*/ static void loadmenu3(){
Scanner scan = new Scanner(System.in);
System.out.println(“輸入更改商品名稱:”);
String nam = scan.next();
int b = showflage(nam);
print(b);
System.out.println(“選擇您要更改的內(nèi)容:”);
System.out.println(“
1、更改商品名稱::”);
System.out.println(“
2、更改商品價格:”);
System.out.println(“
3、更改商品數(shù)量:”);
int ch = scan.nextInt();
switch(ch){
case 0:
break;
case 1:
int counnt = 0;
String f = “y”;
while(f.equals(“y”)){
if(counnt!= 0){
// Scanner scan = new Scanner(System.in);
System.out.println(“輸入更改商品名稱:”);
nam = scan.next();
b = showflage(nam);//查找需要更改商品的下標
print(b);//輸出這個商品的各種信息
}
System.out.println(“請輸入已更改商品名稱”);
String cname = scan.next();
goodname[b] = cname;//更改名稱
System.out.println(“是否繼續(xù)(y/n)”);
f = scan.next();
counnt++;
writeArray();
}
loadmenu2();
break;
case 2:
counnt = 0;
f = “y”;
while(f.equals(“y”)){
if(counnt!= 0){
// Scanner scan = new Scanner(System.in);
System.out.println(“輸入更改商品名稱”);
nam = scan.next();
b = showflage(nam);
print(b);
}
System.out.println(“請輸入已更改商品價格”);
double cprice = scan.nextDouble();
goodprice[b] = cprice;//新價格寫入數(shù)組
System.out.println(“是否繼續(xù)(y/n)”);
f = scan.next();
counnt++;
writeArray();
}
loadmenu2();
break;
case 3:
counnt = 0;
f = “y”;
while(f.equals(“y”)){
if(counnt!= 0){
// Scanner scan = new Scanner(System.in);
System.out.println(“輸入更改商品名稱”);
nam = scan.next();
b = showflage(nam);
print(b);
}
System.out.println(“請輸入已更改商品數(shù)量”);
int cnum = scan.nextInt();
goodnum[b] = cnum;
counnt++;
writeArray();
System.out.println(“是否繼續(xù)(y/n)”);
f = scan.next();
}
loadmenu2();
break;
default:
break;
}
} /* * 查詢nama這個商品在goodname中的下標
*/ static int showflage(String nama){
int flag = 0;
for(int i = 0;i < goodname.length;i++){
if(goodname[i].equals(nama)){
flag = i;
break;
}
}
return flag;}
static void print(int b){
System.out.println(“商品名稱 tt” + “商品價格 tt” + “商品數(shù)量 tt” + “備注”);
System.out.println(goodname[b] + “tt” + goodprice[b] + “tt”
+ goodnum[b] + “ tt”);
} /* * 刪除商品菜單
*/ static void loadmenu4(){
String f;
int d;
do {
Scanner scan = new Scanner(System.in);
System.out.println(“請輸入要刪除的商品名稱:
String dname = scan.next();
d = showflage(dname);
delete(d);
System.out.println(”是否繼續(xù)(y/n)“);
f = scan.next();
writeArray();//刪除之后重新寫入文件
} while(f.equals(”y“));
loadmenu2();}
”);/* * 刪除商品 */ static void delete(int dd){
for(int i = dd;i < goodname.length1] = null;
goodprice[goodprice.length1] = 0;
} /* * 查詢所有商品
*/ static void showgoods(){
int i = 0;
while(goodprice[i]!= 0){
System.out.print(goodname[i] +
“ttt” goodprice[i] + “ttt”
+
+ goodnum[i] + “ttt”);
if(goodnum[i] < 10){
System.out.println(“ttt*該商品已不足10件!”);
}
System.out.println();
i++;
}
loadmenu2();
} /* * 商品添加操作 */ static void addgoods(){
System.out.println(“執(zhí)行添加商品操作:t”);
String a;
do {
Scanner scan = new Scanner(System.in);
System.out.println(“輸入商品名稱:”);
String na = scan.next();
add(goodname, na, sign);
System.out.println(“輸入添加商品價格:”);
double pr = scan.nextDouble();
add(goodprice, pr, sign);
System.out.println(“輸入添加商品數(shù)量:”);
int c = scan.nextInt();
add(goodnum, c, sign);
sign++;
System.out.println(“是否繼續(xù)(y/n)”);
a = scan.next();
writeArray();
} while(a.equals(“y”));
loadmenu2();
} /* * 將數(shù)組信息寫入到相應(yīng)的文件里,啟動程序時就要調(diào)用這個函數(shù) */ static void writeArray(){
BufferedWriter bw = null;
try {
bw
=
new
BufferedWriter(new FileWriter(“d:gname.txt”));
String content1 = strToString(goodname);
bw.write(content1);
bw.close();
bw
=
new
BufferedWriter(new FileWriter(“d:gprice.txt”));
String content2 = doubleToString(goodprice);
bw.write(content2);
bw.close();
bw
=
new
BufferedWriter(new FileWriter(“d:gnum.txt”));
String content3 = intToString(goodnum);
bw.write(content3);
bw.close();
bw = new BufferedWriter(new FileWriter(“d:cname.txt”));
String content4 = strToString(cname);
bw.write(content4);
bw.close();
bw
=
new
BufferedWriter(new FileWriter(“d:cpass.txt”));
String content5 = strToString(cpass);
bw.write(content5);
bw.close();
bw
=
new
BufferedWriter(new FileWriter(“d:gout.txt”));
String content6 = intToString(goodout);
bw.write(content6);
bw.close();
} catch(IOException e){
e.printStackTrace();
} } /* * 添加商品名稱 */ static void add(String[] aa, String n, int b){
if(b == aa.length){
aa =(String[])Arrays.copyOf(aa, aa.length * 2);
}
aa[b] = n;} /* * 添加商品價格
*/ static void add(double[] aa, double pr, int b){
if(b == aa.length){
aa =(double[])Arrays.copyOf(aa, aa.length * 2);
}
aa[b] = pr;} /* * 添加商品數(shù)量
*/ static void add(int[] aa, int cc, int b){
if(b == aa.length){
aa =(int[])Arrays.copyOf(aa, aa.length * 2);
}
aa[b] = cc;
}
/** * 從文件中讀取信息到相應(yīng)的數(shù)組里
*/ static void readArrays(String name)throws Exception {
BufferedReader br = null;
try {
if(“goodname”.equals(name)){
br
=
new
BufferedReader(new FileReader(“d:gname.txt”));
String content1 = br.readLine();
String[] arr = strToString(content1);
goodname arr.length);
for(int i = 0;i < goodname.length;i++){
if(!goodname[i].equals(“null”)){
sign++;
=
(String[])
Arrays.copyOf(arr,}
}
} else if(“goodprice”.equals(name)){
br
=
new
BufferedReader(new FileReader(“d:gprice.txt”));
String content2 = br.readLine();
double[] arr = doubleToString(content2);
goodprice arr.length);
} else if(“goodnum”.equals(name)){
br
=
new
BufferedReader(new
=
(double[])
Arrays.copyOf(arr, FileReader(“d:gnum.txt”));
String content3 = br.readLine();
int[] arr = intToString(content3);
goodnum =(int[])Arrays.copyOf(arr, arr.length);
} else if(“cname”.equals(name)){
br
=
new
BufferedReader(new FileReader(“d:cname.txt”));
String content4 = br.readLine();
String[] arr = strToString(content4);
cname arr.length);
=(String[])Arrays.copyOf(arr,for(int i = 0;i < cname.length;i++){
if(!cname[i].equals(“null”)){
sign1++;
}
}
} else if(“cpass”.equals(name)){
br
=
new
BufferedReader(new FileReader(“d:cpass.txt”));
String content5 = br.readLine();
String[] arr = strToString(content5);
cpass arr.length);
} else {
br
=
new
BufferedReader(new
=
(String[])
Arrays.copyOf(arr, FileReader(“d:gout.txt”));
String content6 = br.readLine();
int[] arr = intToString(content6);
goodout =(int[])Arrays.copyOf(arr, arr.length);
}
} catch(FileNotFoundException e){
e.printStackTrace();
} catch(IOException e){
e.printStackTrace();
}
} /* * 將字符串轉(zhuǎn)換成字符串數(shù)組 */ static String strToString(String[] arry){
// String arrys=“";
// for(int i=0;i // { // arrys=arry+arry[i]+”,“; // } // //arrys=arrys+arry[arry.length-1]; // System.out.println(arrys); // return arrys; StringBuilder sb = new StringBuilder(); for(int i = 0;i < arry.length;i++){ sb.append(arry[i]).append(”,“); } sb.deleteCharAt(sb.length()-1); // System.out.println(sb.toString()); return sb.toString();} /* * 將字符串轉(zhuǎn)換成字符串數(shù)組 */ static String[] strToString(String ar){ String[] arry = ar.split(”,“);return arry;} /* * 將int型數(shù)組轉(zhuǎn)換成字符串 */ static String intToString(int[] arrr){ String ss = ”“; ss = Arrays.toString(arrr); String sss = ss.replace(”[“,”“).replace(”]“, ”“).replace(” “, ”"); 小型超市管理系統(tǒng)設(shè)計說明書 系統(tǒng)概述 小型超市管理系統(tǒng)的設(shè)計對一個超市的運轉(zhuǎn)是十分重要的。改革開放以來,我國逐步進入市場經(jīng)濟,外國企業(yè)的進入,給我國的本土經(jīng)濟帶來巨大的沖擊。因此,為了使我們自身的企業(yè)更好地應(yīng)對外來競爭的壓力,我們的企業(yè)迫切地需要管理制度的完善。 小型超市管理系統(tǒng)是現(xiàn)存信息系統(tǒng)中較為復(fù)雜的一類,這是由超市自身的目標、任務(wù)和性質(zhì)所決定的。它應(yīng)用于用戶權(quán)限管理、進貨管理、銷售管理、顧客管理和用戶注冊管理等幾個方面,牽涉的信息種類較多。這也同時是一款信息查詢系統(tǒng),體現(xiàn)出超市當前的庫存商品數(shù)量、價格以及銷售情況。方便了顧客購買商品,而且對超市的管理、銷售、進貨以及經(jīng)理決策起著至關(guān)重要的作用。依靠現(xiàn)代化信息處理技術(shù)來管理超市,大大節(jié)省了人力、物力,改善了員工的工作條件,方便了廣大消費者,提高了企業(yè)的效率,增加其收益。 超市管理的信息化建設(shè)工作具有長期性、復(fù)雜性和多變性,所以超市管理系統(tǒng)也不是一個簡單的、封閉的、靜止的系統(tǒng),它是會隨時間推移在應(yīng)用廣度和深度上逐步變化和發(fā)展的系統(tǒng)。需求分析 需求分析分為三個部分:需求的文字表述、數(shù)據(jù)流圖、數(shù)據(jù)字典。 一、需求分析: 小型超市管理系統(tǒng)的設(shè)計的服務(wù)對象是廣大顧客及超市的管理人員。它涉及的面廣、數(shù)據(jù)量大,如果對整個系統(tǒng)不能很好的 設(shè)計,將會給超市的效益帶來巨大壓力,如何在激烈的競爭中擴大銷售額、降低經(jīng)營成本、擴大經(jīng)營規(guī)模,成為超市努力追求的目標。下面是我們隊該系統(tǒng)所做的詳細分析: 1、用戶工作流程 與超市運轉(zhuǎn)相關(guān)的群體主要有顧客、銷售員和超市工作人員。圍繞著三大群體,我們設(shè)計了以下流程。進貨或銷售商品時,用戶要對訂單或銷售單進行核對審查,這時不同的用戶需要填寫與各自身份相對應(yīng)的信息,經(jīng)系統(tǒng)默認,進入到相應(yīng)的界面,通過指導(dǎo)查詢所需信息,如進貨信息、銷售信息和商品信息等。 2、用戶業(yè)務(wù)需求 (1)、該軟件將為不同的用戶提供不同的操作權(quán)限,當用戶不同時,根據(jù)對用戶權(quán)限的判斷,決定該用戶進入哪一界面;(2)、該管理軟件將對商品進行資料統(tǒng)計和管理,提供詳細的商品信息,方便顧客查詢; (3)、該軟件將對商品的訂貨單和銷售單進行錄入管理和統(tǒng)計,使銷售員和超市管理人員及時了解超市的銷售情況;(4)、該軟件將為用戶提供賬號管理工具,以便對用戶賬號進行管理,包括用戶的添加、修改、編輯和刪除等操作。 3、系統(tǒng)的設(shè)計目標 實現(xiàn)超市數(shù)據(jù)的信息化管理,提高超市在運作中的效率,減少人力的消耗,提高管理質(zhì)量,將超市信息管理環(huán)節(jié)簡單化。 4、用戶對系統(tǒng)的要求 1)、信息要求 由于系統(tǒng)的使用主體是顧客和銷售員,因此對系統(tǒng)的信息要求可分為以下幾個方面: a.用戶信息 用戶的基本信息,主要包括用戶的名稱,密碼,住址,權(quán)限,姓名及年齡信息; b.商品信息 商品的基本信息,主要包括商品的名稱,數(shù)量,產(chǎn)地,價格,大小等信息; c.訂貨信息 訂貨的基本信息,包括商品的名稱和數(shù)量,顧客姓名,銷售日期,商品的大小和價格等; d.進貨信息 進貨的基本信息,主要包括所訂購商品的名稱和數(shù)量,訂購生產(chǎn)廠家,訂購日期,訂購狀態(tài)和訂購人姓名等。 2)、處理要求 a.用戶注冊或登錄 用戶通過這個功能,可以注冊成為會員或員工,也可以進入到系統(tǒng)主界面進行操作,用戶可以是系統(tǒng)管理員,顧客,或銷售員; b.商品查詢與購買 顧客通過這個功能,可以瀏覽所有的商品,或者通過商品的某種信息,分項查詢找到需要的商品后進行訂貨購買; c.訂貨單查詢 通過這個功能,顧客可以根據(jù)自己的需求修改訂單或下訂單; d.銷售情況查詢 通過這個功能,銷售員可以查詢到商品的所有銷售信息,了解超市的銷售情況。安全性與完整性要求 1)、安全性要求 a.系統(tǒng)應(yīng)設(shè)置訪問用戶的標識以鑒別用戶是否合法,并要求合法用戶設(shè)置密碼,保證用戶身份不被盜用; b.系統(tǒng)應(yīng)對不同的數(shù)據(jù)設(shè)置不同的訪問級別,限制訪問用戶可以查詢和處理的數(shù)據(jù)的類別和內(nèi)容; c.系統(tǒng)應(yīng)對不同用戶設(shè)置不同的權(quán)限,區(qū)分不同的用戶,如顧客,超市管理人員和銷售員; 顧客:查詢某種或全部商品,下訂單購買商品; 超市管理人員:進行用戶管理,增加、刪除或修改用戶; 銷售員:查詢?nèi)可唐沸畔?,或分享查詢銷售情況。2)、完整性要求 a.各種信息記錄的完整性,信息記錄內(nèi)容不能為空; b.各種數(shù)據(jù)間相互的聯(lián)系的正確性; c.相同的數(shù)據(jù)在不同記錄中的一致性。 5、確定系統(tǒng)的邊界 經(jīng)過前面的需求分析,確定有計算機完成的工作時對數(shù)據(jù)進行各種管 理和處理,具體的工作內(nèi)容見第二部分,由手工完成的工作主要有對原始數(shù)據(jù)的錄入;不能由計算機生成的,各種數(shù)據(jù)的更新,包括數(shù)據(jù)變化后的修改,數(shù)據(jù)的增加,失效數(shù)據(jù)或無用數(shù)據(jù)的刪除等;系統(tǒng)的日常維護。 二、系統(tǒng)功能的設(shè)計和劃分 根據(jù)如上的需求分析,我們可將本系統(tǒng)按照所完成的功能劃分成以下幾個子系統(tǒng): 用戶權(quán)限管理子系統(tǒng) 進貨管理子系統(tǒng) 銷售管理子系統(tǒng) 顧客管理子系統(tǒng) 用戶注冊管理子系統(tǒng) 后臺管理子系統(tǒng) 各子系統(tǒng)完成的功能如下: 1、用戶權(quán)限管理子系統(tǒng) (1)系統(tǒng)管理員具有所有的數(shù)據(jù)和功能權(quán)限,能查看進貨管理表單、銷售管理表單,能管理普通用戶; (2)普通用戶具有查詢商品、訂購商品和修改個人信息等功能;(3)銷售員除了具有一般用戶的權(quán)限外,還可以進行銷售報表的查詢等; 2、進貨管理子系統(tǒng) (1)用戶查詢或分項查詢訂貨單; (2)下訂單或更改訂單狀態(tài); 3、銷售管理子系統(tǒng) 讓銷售員能夠進行銷售信息的查詢,及時了解超市的銷售情況; 4、顧客管理子系統(tǒng) (1)顧客可以瀏覽所有的商品信息;(2)可以通過分項功能查詢,找到所需商品;(3)直接訂貨或購買商品; 5、用戶注冊管理子系統(tǒng) (1)填寫個人信息,注冊成為會員;(2)根據(jù)不同的目的取得不同的商品權(quán)限。 《小型超市管理系統(tǒng)》需求分析報告 小型超市管理系統(tǒng)需求分析 1.引言 1.1 編寫目的 自改革開放以來,社會市場經(jīng)濟不斷發(fā)展,人們生活水平不端提高,由小型小賣部、小型零售商等小而雜的商店逐漸演變成今天市區(qū)里我們無處不在東西品種繁多的價格便宜的大小中型流行超市。超市之流行是以顧客自選方式經(jīng)營的大型綜合性零售商場。又稱為自選商場,大大方便了人們購物,為大量忙碌的工作人員節(jié)省了大量的時間。 本系統(tǒng)采用microsoft visual C# 2010程序設(shè)計及SQL Sever 2005數(shù)據(jù)庫管理知識進行功能的實現(xiàn)。能夠提高超市信息管理系統(tǒng)各項工作地效率和質(zhì)量,改善經(jīng)營管理,減輕各類事務(wù)性工作的工作量,使超市的職員能夠更輕松并且更好地服務(wù)于顧客,保證顧客的購物需求,同時也間接地為超市帶來更多的盈利。最終達到為超市服務(wù)的效果。 1.2 項目風險 具體說明本軟件開發(fā)項目的全部風險承擔者,以及各自在本階段所需要承擔的主要風險,首要風險承擔者包括: 任務(wù)提出者: 軟件開發(fā)者: 產(chǎn)品使用者:面向小型超市、小型零售店 本系統(tǒng)無風險,為學生作品。 1.3 預(yù)期讀者和閱讀建議 列舉本軟件產(chǎn)品需求分析報告所針對的各種不同的預(yù)期讀者,例如,可能包括: 用戶; 1.開發(fā)人員; 2.銷售經(jīng)理; 3.庫存管理員;4.商品錄入人員。 5.系統(tǒng)使用者(經(jīng)營中小型超市法律主體)6.收銀人員; 并且描述了文檔中,其余部分的內(nèi)容及其組織結(jié)構(gòu),并且針對每一類讀者提出最適合的文檔閱讀建議。 《小型超市管理系統(tǒng)》需求分析報告 1.4 產(chǎn)品范圍 本軟件適合于中小型超市管理用于采購管理、銷售管理,庫存管理及財務(wù)管理及商品數(shù)據(jù)錄入,修改、查詢。我們不僅能夠快而準的知道我們的一天的進出貨及銷售情況,又能夠準確無誤的生成知道我們想要擁有的銷售報表、季銷售報表、年銷售報表。通過一些基本查詢功能,查詢自己想要的結(jié)果,知道自己的盈利情況。通過此系統(tǒng),我們能夠及時查詢到我們的存貨情況,通過系統(tǒng)警報及時補缺商品。 1.5 參考文獻(具體開發(fā)過程中外加參考資料) 列舉編寫軟件產(chǎn)品需求分析報告時所用到的參考文獻及資料,可能包括: 1.百度文庫(小型超市管理系統(tǒng)) 本項目的合同書; 上級機關(guān)有關(guān)本項目的批文; 本項目已經(jīng)批準的計劃任務(wù)書; 用戶界面風格指導(dǎo); 開發(fā)本項目時所要用到的標淮; 系統(tǒng)規(guī)格需求說明; 使用實例文檔; 屬于本項目的其它己發(fā)表文件; 本軟件產(chǎn)品需求分析報告中所引用的文件、資料; 相關(guān)軟件產(chǎn)品需求分析報告; 為了方便讀者查閱,所有參考資料應(yīng)該按一定順序排列。如果可能,每份資料都應(yīng)該給出: 標題名稱; 作者或者合同簽約者; 文件編號或者版本號; 發(fā)表日期或者簽約日期; 出版單位或者資料來源。 2.綜合描述 這一部分概述了正在定義的軟件產(chǎn)品的作用范圍以及該軟件產(chǎn)品所運行的環(huán)境、使用該軟件產(chǎn)品的用戶、對該軟件產(chǎn)品己知的限制、有關(guān)該軟件產(chǎn)品的假設(shè)和依賴。 本系統(tǒng)采用microsoft visual C# 2010程序設(shè)計及SQL Sever 2005數(shù)據(jù)庫管理知識進行功能的實現(xiàn)。能夠提高超市信息管理系統(tǒng)各項工作地效率和質(zhì)量,改善經(jīng)營管理,減輕各類事務(wù)性工作的工作量,使超市的職員能夠更輕松并且更好地服務(wù)于顧客,保證顧客的購物需求,同時也間接地為超市帶來更多的盈利。最終達到為超市服務(wù)的效果。 《小型超市管理系統(tǒng)》需求分析報告 2.1 產(chǎn)品的狀況 超市管理系統(tǒng),該系統(tǒng)是現(xiàn)有應(yīng)用軟件的替代品(升級產(chǎn)品);是新一代新型的,自主型的產(chǎn)品。它是一個大系統(tǒng)的組成部分,它與POS機連接在一起收銀及會員及時消費。能夠達到快速提升的收銀效率和一系列的管理有機的結(jié)合起來。 2.2 產(chǎn)品的功能 該系統(tǒng)包括:前臺管理(普通收銀部分和會員收銀包括與后臺折扣情況結(jié)合起來,達到高效率結(jié)算)和后臺管理(銷售管理,存貨管理,財務(wù)管理,基本資料管理,每日提醒)。 一.前臺管理: 1.登陸人員管理:使用人員賬號密碼登陸 2.銷售信息管理:添加商品的單價價格以及銷售數(shù)量等 二.后臺管理: 1.存貨管理:主要是了解某一類商品的庫存情況,并對商品進行添加、修改、刪除; 2.供貨商管理:記錄供貨商的個人資料(姓名,地址,聯(lián)系方式等); 3.基本資料管理:里面包含產(chǎn)品的概況、人員管理、商品管理等。 2.3 運行環(huán)境 描述了本軟件的運行環(huán)境,一般包括: 硬件平臺; 操作系統(tǒng)和版本:Windows XP 支撐環(huán)境(例如:數(shù)據(jù)庫等)和版本:Microsoft VisualC#和Microsoft SQL Server2005 其它與該軟件有關(guān)的軟件組件; 與該軟件共存的應(yīng)用程序。 2.4 設(shè)計和實現(xiàn)上的限制 確定影響開發(fā)人員自由選擇的問題,并且說明這些問題為什么成為一種限制??赡艿南拗瓢ㄏ铝袃?nèi)容: 必須使用的特定技術(shù)、工具、編程語言和數(shù)據(jù)庫; 避免使用的特定技術(shù)、工具、編程語言和數(shù)據(jù)庫; 要求遵循的開發(fā)規(guī)范和標準; 例如,如果由客戶的公司或者第三方公司負責軟件維護,就必須定義轉(zhuǎn)包者所使用的設(shè)計符號表示和編碼標準; 硬件的限制 例如,定時需求或存儲器限制; 《小型超市管理系統(tǒng)》需求分析報告 數(shù)據(jù)轉(zhuǎn)換格式標淮的限制。 2.5 假設(shè)和約束(依賴)列舉出對軟件產(chǎn)品需求分析報告中,影響需求陳述的假設(shè)因素(與己知因素相對立)。如果這些假設(shè)因素不正確、不一致或者被修改,就會使軟件產(chǎn)品開發(fā)項目受到影響。這些假設(shè)的因素可能包括: 計劃使用的商業(yè)組件,或者其它軟件中的某個部件; 假定產(chǎn)品中某個用戶界面將符合一個特殊的設(shè)計約定; 有關(guān)本軟件用戶的若干假定(例如:假定用戶會熟練使用SQL語言。); 有關(guān)本軟件開發(fā)工作的若干假定(例如:用戶承諾的優(yōu)惠、方便、上級部門給予的特殊政策和支持等。); 有關(guān)本軟件運行環(huán)境的一些問題; 此外,確定本軟件開發(fā)項目對外部約束因素所存在的依賴。有關(guān)的約束可能包括: 1.工期約束; 2.人員約束; 3.設(shè)備約束; 4.地理位置約束; 其它有關(guān)項目約束; 3.外部接口需求 3.1 用戶界面 3.1.1 用戶登錄界面 用戶名 密碼 組件:文本框、標準按鈕 快捷鍵:Enter鍵 《小型超市管理系統(tǒng)》需求分析報告 3.1.2商品信息管理 商品的增、刪、查、改 存貨管理界面 庫存錄入 《小型超市管理系統(tǒng)》需求分析報告 存貨查詢 組件:文本框、標準按鈕、消息框、數(shù)據(jù)網(wǎng)格 基本資料管理界面 產(chǎn)品概況 人員管理 供應(yīng)商管理 商品管理 組件:標準按鈕、文本框、數(shù)據(jù)網(wǎng)格、下拉列表框 《小型超市管理系統(tǒng)》需求分析報告 3.2 軟件接口 描述該軟件產(chǎn)品與其它外部組件的連接,這些外部組件必須明確它們的名稱和版本號以資識別,可能的外部組件包括: 操作系統(tǒng):Windows XP; 數(shù)據(jù)庫:Microsoft SQL Server2005; 工具:Microsoft Visual C# 2010; 函數(shù)庫; 集成的商業(yè)組件:中間件; 4.系統(tǒng)功能需求 4.1 用戶登錄 用戶登錄界面主要提供用戶的登錄。 4.2 前臺管理 4.2.1 人員管理 提供用戶的注冊、注銷、修改以及刪除。 《小型超市管理系統(tǒng)》需求分析報告 4.2.1 銷售管理 提供商品銷售的信息,以便及時補貨。 4.3 后臺管理 4.3.1 存貨管理 存貨管理提供了庫存的錄入、查詢、修改登錄功能,還包括缺貨提醒的提醒功能。 1.庫存錄入,包括庫存的添加、刪除、修改等功能提供添加舊商品或添加新商品的選擇功能。 2.存貨查詢,主要提供庫存的查詢功能 4.3.2 銷售信息管理 《小型超市管理系統(tǒng)》可行性報告 曹劍濤李成軍 目錄 一、前言...................................................................................................................................3 二、系統(tǒng)建立的背景及意義:...............................................................................................3 三、項目開發(fā)目標、系統(tǒng)功能...............................................................................................4 1.開發(fā)目標:............................................................................................................................4 2.系統(tǒng)功能................................................................................................................................4 四、ER圖................................................................................................................................5 五、數(shù)據(jù)流程圖.......................................................................................................................5 六、系統(tǒng)可行性分析...............................................................................................................6 (1)可行性研究.....................................................................................................................6(2)系統(tǒng)實施運行的可行性:.............................................................................................7(3)、技術(shù)可行性分析...........................................................................................................7(4)、社會可行性、法律可行性分析...................................................................................7(5)、用戶操作可行性...........................................................................................................7(6)、經(jīng)濟可行性分析...........................................................................................................8 七、結(jié)論意見...........................................................................................................................8 一、前言 如今我們的生活越來越離不開超市,超市已經(jīng)是我們的生活的一部分。超市需要處理大量的庫存信息,還要時刻更新產(chǎn)品的銷售信息,不斷添加商品信息。面對不同種類的信息,需要合理的數(shù)據(jù)庫結(jié)構(gòu)來保存數(shù)據(jù)信息,需要有效的程序結(jié)構(gòu)支持各種數(shù)據(jù)操作的執(zhí)行。讓管理人員對超市的進貨情況、銷售情況和庫存情況了如指掌,進而能更好的對商品進行調(diào)度。可以加大人力工作的效率和商品的進出貨效率并且可以減輕使用者繁雜的工作。 可行性研究的目的是為了對問題進行研究,以最小的代價在最短的時間內(nèi)確定問題是否可解。再經(jīng)過對此項目進行詳細調(diào)查研究,初步擬定系統(tǒng)的實現(xiàn)報告,對軟件開發(fā)中將要面臨的問題及其解決方案進行初步設(shè)計及合理安排。明確開發(fā)風險及其所帶來的經(jīng)濟效益。通過可行性研究,該計劃是否應(yīng)該執(zhí)行,便顯而易見。 二、系統(tǒng)建立的背景及意義: 超市是一個我們很熟悉的詞語,在我們生活中經(jīng)??梢钥吹剑?1世紀,全球市場經(jīng)濟和現(xiàn)代信息技術(shù)的不斷發(fā)展,人民的生活不斷提高,以及人們消費需求的不斷豐富,商品種類多樣化日漸增多。消費水平提高,超市這樣的零售商之間的競爭也日益激烈,競爭已不再是規(guī)模的競爭,而是技術(shù)的競爭、管理的競爭、人才的競爭。技術(shù)的提升和管理的升級是超市業(yè)的競爭核心。商家不斷采取各種銷售手段吸引顧客眼球,也因而工作量增大,增多。在價格懸殊不大,商品種類類似,規(guī)模實力等同的情況下,高效率,高質(zhì)量,低成本,低損失等等則成為了競爭的優(yōu)勢。而超市的進貨、銷售、存貨、數(shù)量、種類、商品出庫以及員工等等都是影響這些的重要因素。然后,這些信息,量大而復(fù)雜,想要得到合理安排處理需要有很大的工作量,靠傳統(tǒng)的人工管理方式效率低,而且容易出錯,并且經(jīng)常會導(dǎo)致重復(fù)工作,浪費時間,在人力資源上來說也是一種浪費。影響了超市的工作效率,錯誤率高,浪費成本。在此情況下如何使用現(xiàn)代化的工具,使企業(yè)和經(jīng)營者個人在最小的投入下獲取最大的回報。成為每一個人的夢想。因此,在超市管理中引進現(xiàn)代化的辦公軟件,就成為時下最好的解決辦法。超市銷售管理信息系統(tǒng)的開發(fā)和應(yīng)用是非常必要的,它能夠簡便快速的記錄倉庫存貨、銷售以及進貨情況;及時了解庫存商品種類、數(shù)量,和所售商品種類、價格、數(shù)量;它還可以統(tǒng)計核算日常的不斷變化的數(shù)據(jù),并登記有關(guān)文件;在當天匯總時修改相應(yīng)文件,如總金額、總數(shù)量等;并且可以根據(jù)日常統(tǒng)計,制作月統(tǒng)計,并制作月報表;并且利用它,我們可以了解人員的調(diào)配使用狀況,避免人員閑置或者人員緊張的狀況;另外可以通過它合理安排商品出庫順序及日期,避免商品過期浪費的情況發(fā)生。這一切都大大提高超市的經(jīng)濟效益。 三、項目開發(fā)目標、系統(tǒng)功能 1.開發(fā)目標: 為超市提供方便,快捷的結(jié)賬體系; 為超市提供準確,高效的庫存和財務(wù)管理系統(tǒng); 為超市管理人員提供強大的管理和統(tǒng)計商品,資金的功能。 2.系統(tǒng)功能 A功能 ① 記錄倉庫存貨、銷售以及進貨情況 ② 了解超市進貨渠道、商品單價、數(shù)量 ③ 了解庫存商品種類數(shù)量,所售商品種類、價格、數(shù)量 ④ 統(tǒng)計核算日常的不斷變化的數(shù)據(jù),并登記有關(guān)文件 ⑤ 分項顯示銷售商品后開出的發(fā)票的內(nèi)容,并且詳細顯示商品價格數(shù)額 ⑥ 在當天匯總時修改相應(yīng)文件,如總金額、總數(shù)量 ⑦ 根據(jù)日常統(tǒng)計,制作月統(tǒng)計,并制作月報表 四、ER圖 用戶名密碼商品總額銷售價格商品名稱員工銷售日期銷售顧客商品編號銷售數(shù)量庫存管理供貨價格銷售價格庫存數(shù)量商品名稱商品進貨供應(yīng)商商品編號進貨價格商品編號商品名稱供應(yīng)商電話供應(yīng)商編號供應(yīng)商名稱 五、數(shù)據(jù)流程圖 預(yù)售商品付款訂貨單供貨單小型超市管理系統(tǒng)與訂貨單不符的供貨單購貨款顧客商品發(fā)票供貨廠商 六、系統(tǒng)可行性分析 (1)可行性研究 超市需要一套管理信息系統(tǒng),能夠從進貨開始,實現(xiàn)進貨,上架,銷售,庫存,財務(wù),人力資源等等一系列信息的全面管理。通過系統(tǒng)實現(xiàn)各部門的分工合作,信息共享。是原來管理更加系統(tǒng),更全面,更快捷。 根據(jù)超市的狀況,迫切需要一套超市銷售管理系統(tǒng)。主要有兩個選擇: 1.購置商品化的系統(tǒng) 2.根據(jù)自身實際情況,自行開發(fā)軟(2)系統(tǒng)實施運行的可行性: 各部門人員都已熟練掌握計算機的基本使用方法和操作技能,可以對新的系統(tǒng)進行管理,和操作。 (3)、技術(shù)可行性分析 1.信息系統(tǒng)開發(fā)方法。在開發(fā)小組中有熟練掌握面向?qū)ο箝_發(fā)軟件系統(tǒng)的資深系統(tǒng)分析員和程序員,在信息系統(tǒng)開發(fā)方法上不存在任何問題。 2.網(wǎng)絡(luò)和通訊技術(shù)開發(fā)小組有專門的網(wǎng)絡(luò)技術(shù)人員,有N年的大型網(wǎng)絡(luò)組網(wǎng)經(jīng)驗。3.C/S結(jié)構(gòu)規(guī)劃和設(shè)計技術(shù)開發(fā)小組有豐富的C/S開發(fā)經(jīng)驗。4.數(shù)據(jù)庫技術(shù)有專業(yè)開發(fā)數(shù)據(jù)庫的團隊。 5.Java開發(fā)技術(shù)開發(fā)小組的所有成員均可熟練使用Java編程。綜上,在技術(shù)方面本系統(tǒng)開發(fā)完全可行。 (4)、社會可行性、法律可行性分析 本團隊開發(fā)的超市管理信息系統(tǒng)符合社會需求,社會的發(fā)展也需要超市管理的現(xiàn)代化和信息化。且本團隊開發(fā)的系統(tǒng)與國家的法律法規(guī)不存在任何的抵觸之處。且符合工作人員的操作習慣。 (5)、用戶操作可行性 超市的經(jīng)營者大多具備電腦基本操作知識,對于必要的專業(yè)操作經(jīng)短期培訓即可;管理基礎(chǔ)工作和各項管理制度比較健全,執(zhí)行嚴格,原始數(shù)據(jù)采集完整,保存良好。 ● 操作簡單:簡單的操作規(guī)則使操作人員能輕松掌握。● 查詢方便:用戶可設(shè)定任意條件和任意的查詢項目進行檢索。 ● 統(tǒng)計靈活:任意條件下任意項目的產(chǎn)品入庫時間、數(shù)量等的統(tǒng)計及查詢項目均可進行交叉統(tǒng)計。(6)、經(jīng)濟可行性分析 傳統(tǒng)的人工管理方式效率低,而且容易出錯,并且經(jīng)常會導(dǎo)致重復(fù)工作,浪費時間,在人力資源上來說也是一種浪費。影響了超市的工作效率,錯誤率高,浪費成本。在此情況下使用超市管理系統(tǒng),超市管理系統(tǒng)的投入,能夠提高工作效率,減少工作人員,從而減少人力資本的投入,使企業(yè)和經(jīng)營者個人在最小的投入下獲取最大的回報,小型超市網(wǎng)絡(luò)設(shè)施健全,各部門電腦配置齊全,硬件投入不需要很大,只需要在技術(shù)上投資。大型連鎖超市的資金雄厚,總部積極支持系統(tǒng)開發(fā),由此可見,在超市使用此系統(tǒng)所獲得的收入遠大于項目開發(fā)所需要的費用,也就是超市盈利遠大于開發(fā)費用,以最小的代價獲得最高的收益。,從經(jīng)濟角度來說,本系統(tǒng)開發(fā)完全必要,在經(jīng)濟上可行。 七、結(jié)論意見 經(jīng)過一系列的各個不同方面的可行性分析,從經(jīng)濟,操作,技術(shù),和社會等各方面的可行性分析,可以確定本系統(tǒng)是完全有必要的,且是可行的,應(yīng)當立項開發(fā)。第三篇:小型超市管理系統(tǒng)設(shè)計說明書
第四篇:小型超市管理系統(tǒng)需求分析
第五篇:小型超市管理系統(tǒng)可行性報告