第一篇:java小型超市管理系統
基于java小型超市管理系統
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數組第一個空下標號
static int sign1=0;//cname數組第一個空下標號
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];//存放商品數量
public static void main(String[] args)throws Exception { cname[0]="ZhouTian";//初始的售貨員名稱
cpass[0]="723"; //初始的售貨員密碼 createArrays(); readArrays("goodname");//將文件中的內容讀入到相應的數組里
readArrays("goodprice"); readArrays("goodnum"); readArrays("cname"); readArrays("cpass"); readArrays("goodout"); menu();//登入之后加載的主菜單
} /** * 加載登入菜單
*/ private static void menu() {
Scanner scan = new Scanner(System.in);
System.out.println(" 歡迎使用商超購物管理系統 ");
System.out.println(" 1.登錄系統 ");
System.out.println(" 2.退出 ");
System.out.println("*************************************************");
System.out.println("請選擇,輸入數字: ");
int a = scan.nextInt();
switch (a) {
case 0:
System.out.println("退出!");//按0不登入
case 1:
System.out.println("請輸入用戶名:");// 查找售貨員姓名是否存在,與所對應的密碼是否匹配
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("該用戶名不具有權限");
}
break;
case 2:
System.out.println("謝謝您的使用!");
break;
default:
break;
} }
/** * ,創建文件,將數組信息存入到各文件中, */ 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);//數組內容轉換成字符串
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);//數組內容轉換成字符串
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);//數組內容轉換成字符串
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);//數組內容轉換成字符串
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);//數組內容轉換成字符串
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);//數組內容轉換成字符串
bw.write(content5);//寫入
bw.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
/** * 登入之后加載商超購物管理系統
*/ static void loadmenu1() {
System.out.println("歡迎進入商超購物管理系統!");
System.out.println(" 商超購物管理系統");
System.out
.println("********************************************************************************");
System.out.println(" 1.商品維護");
System.out.println(" 2.前臺收銀");
System.out.println(" 3.商品管理");
System.out.println(" 4.退出");
System.out.println("********************************************************************************");
System.out.println("請選擇,輸入數字或按0退出:");
Scanner scan = new Scanner(System.in);
int a = scan.nextInt();
switch (a) {
case 0:
System.out.println("謝謝您的使用!");
break;
case 1:
System.out.println("執行顯示商品維護菜單");
loadmenu2();
break;
case 2:
System.out.println("執行前臺收銀");
loadmenu6();
break;
case 3:
System.out.println("執行商品管理");
loadmenu7();
break;
default:
break;
} } /* * 在商超購物管理系統中按1鍵時 */ static void loadmenu2() {
System.out.println(" 商超購物管理系統 商品維護");
System.out
.println("********************************************************************************");
System.out.println(" 1.添加商品 ");
System.out.println(" 2.更改商品 ");
System.out.println(" 3.刪除商品 ");
System.out.println(" 4.顯示所有商品 ");
System.out.println(" 5.查詢商品 ");
System.out
.println("********************************************************************************");
System.out.println("請選擇,輸入數字或按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("執行更改商品操作");
loadmenu3();// 修改商品
break;
case 3:
System.out.println("執行商品刪除操作");
loadmenu4();// 商品刪除
break;
case 4:
System.out.println("顯示所有商品");
System.out.println("商品名稱 " + "商品價格 " + "商品數量 "
+ "備注");
showgoods();
break;
case 5:
System.out.println("執行查詢商品操作");
loadmenu5();
break;
default:
break;
} } /* * 在商超購物管理系統中按2鍵時
*/ static void loadmenu6() {
System.out.println(" 商超購物管理系統 前臺收銀");
System.out
.println("********************************************************************************");
System.out.println(" 1.購物結算");
Scanner scan = new Scanner(System.in);
int ch = scan.nextInt();
switch (ch) {
case 0:
loadmenu1();
break;
case 1:
pay();
break;
default:
break;
}
} /* * 在商超購物管理系統中按3鍵時
*/ static void loadmenu7() {
Scanner scan = new Scanner(System.in);
System.out.println(" 商超購物管理系統 商品管理");
System.out
.println("********************************************************************************");
System.out.println(" 1.庫存查詢");
System.out.println(" 2.已出售商品");
System.out.println(" 3.售貨員管理");
System.out.println("請選擇,輸入數字或按0返回上一級菜單:");
int ch = scan.nextInt();
switch (ch) {
case 0: loadmenu1();
break;
case 1:
System.out.println("執行庫存查詢操作:");
kusear();
break;
case 2:
System.out.println("執行已出售商品查詢操作");
besold();
break;
case 3:
System.out.println("執行售貨員管理操作");
salesman();
break;
default:
break;
}
} /* * 對售貨員信息的增添,修改 */ static void salesman()
{
Scanner scan = new Scanner(System.in);
System.out.println("
1、添加售貨員");
System.out.println("
2、修改售貨員信息");
System.out.println("請選擇,輸入數字或按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);//將新信息添加到相應數組中
System.out.println("添加售貨員登陸密碼:");
String addpass = scan.next();
add(cpass, addpass, sign1);//將新信息添加到相應數組中
// writeArray();
sign1++;//新信息添加后數組下標加1
writeArray();
System.out.println("是否繼續(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);//查詢需要改的售貨員的信息,并返回其在數組中的下標
if (k >= 0) {//判斷售貨員是否存在
System.out.println("員工姓名" + " 密碼");
System.out.println(cname[k] + " " + cpass[k]);
System.out.println("選擇您要更改的內容:");
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("是否繼續(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("是否繼續(y/n)");
// System.out.println("是否繼續(y/n)");
f = scan.next();
if (f.equals("y")) {
modifysale();
}
salesman();
break;
default:
break;
}
} } /* * 查詢ename姓名的售貨員在數組中的下標 */ 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("商品名稱 " + "商品價格 " + "商品數量 " + "備注");
for (int i = 0; i < goodout.length; i++) {
if (goodout[i] != 0) {
System.out.println(goodname[i] + " " + goodprice[i]
+ " " + 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("商品名稱 " + "商品價格 " + "商品數量 "
+ "備注");
System.out.println(goodname[t] + " " + goodprice[t]
+ " " + goodnum[t] + " ");//按下標輸出商品相應的信息
} else {
System.out.println("沒有此商品");
}
System.out.println("是否繼續(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;//沒查詢到時
}
/* * 商品結算
*/ static void pay() {
Scanner scan = new Scanner(System.in);
double sum = 0;
String f;
do {
dimsearch1();//按關鍵字進行模糊查詢,查找可能需要的商品
System.out.println("請選擇商品:");
String bnam = scan.next();//按查詢到的相關商品中選擇要購買的商品
System.out.println("請輸入購買數量:");
int bnum = scan.nextInt();
int fl = seargood(bnam);
System.out.println(bnam + " " + goodprice[fl] + " "
+ "購買數量" + bnum + " " + bnum * goodprice[fl]);
goodnum[fl] = goodnum[fl]sum));
writeArray();//將對數組的更改寫入到文件中
loadmenu1();//結束購買返回
} /* * 查找商品返回下標 */ 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、按商品數量升序查詢");
System.out.println("
2、按商品價格升序查詢");
System.out.println("
3、輸入關鍵字查詢商品");
System.out.println("請選擇,輸入數字或按0返回上一級菜單:");
int choice = scan.nextInt();
switch (choice) {
case 0:
loadmenu2();//返回上一級
break;
case 1:
numshenxu();//按商品數量升序進行查找
break;
case 2:
priceshenxu();//按商品價格升序進行查找
break;
case 3:
dimsearch();//按商品的關鍵字進行查找
break;
default:
break;
}
}
static void dimsearch1() {
int[] k;
Scanner scan = new Scanner(System.in);
System.out.println("輸入商品關鍵字:");
String sear = scan.next();
k = Arrays.copyOf(index(sear), index(sear).length);
System.out.println("商品名稱 " + "商品價格 " + "商品數量 " + "備注");
if (k != null) {
for (int i = 0; i < k.length; i++) {
System.out.println(goodname[k[i]] + " " goodprice[k[i]]
+ " " + goodnum[k[i]] + " ");
}
}
} /* * 按商品的關鍵字進行查找
*/ static void dimsearch()
+ {
String f;
do {
int[] k;
Scanner scan = new Scanner(System.in);
System.out.println("輸入商品關鍵字:");
String sear = scan.next();
k = Arrays.copyOf(index(sear), index(sear).length);
System.out.println("商品名稱 " + "商品價格 " + "商品數量 "
+ "備注");
if (k != null) {
for (int i = 0; i < k.length; i++) {
System.out.println(goodname[k[i]] + " "
+ goodnum[k[i]]
+ " ");
}
goodprice[k[i]]
+
" "
+
}
System.out.println("是否繼續(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; } /* * 按商品數量升序進行查找
*/ 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;//相應的下標在不同的數
newname
=
Arrays.copyOf(goodname, 組里進行挑換,商品的信息才能保持一致
}
}
}
System.out.println("商品名稱 " + "商品價格 " + "商品數量 " + "備注");
for (int k = 0; k < newnum.length; k++) {
if (newprice[k] != 0) {
System.out.println(newname[k] + " " + newprice[k]
+ " " + newnum[k] + " ");
}
}
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("選擇您要更改的內容:");
System.out.println("
1、更改商品名稱::");
System.out.println("
2、更改商品價格:");
System.out.println("
3、更改商品數量:");
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("是否繼續(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;//新價格寫入數組
System.out.println("是否繼續(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("請輸入已更改商品數量");
int cnum = scan.nextInt();
goodnum[b] = cnum;
counnt++;
writeArray();
System.out.println("是否繼續(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("商品名稱 " + "商品價格 " + "商品數量 " + "備注");
System.out.println(goodname[b] + " " + goodprice[b] + " "
+ goodnum[b] + " ");
} /* * 刪除商品菜單
*/ 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("是否繼續(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] +
" " goodprice[i] + " "
+
+ goodnum[i] + " ");
if (goodnum[i] < 10) {
System.out.println(" *該商品已不足10件!");
}
System.out.println();
i++;
}
loadmenu2();
} /* * 商品添加操作 */ static void addgoods() {
System.out.println("執行添加商品操作: ");
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("輸入添加商品數量:");
int c = scan.nextInt();
add(goodnum, c, sign);
sign++;
System.out.println("是否繼續(y/n)");
a = scan.next();
writeArray();
} while (a.equals("y"));
loadmenu2();
} /* * 將數組信息寫入到相應的文件里,啟動程序時就要調用這個函數 */ 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; } /* * 添加商品數量
*/ static void add(int[] aa, int cc, int b) {
if (b == aa.length) {
aa = (int[]) Arrays.copyOf(aa, aa.length * 2);
}
aa[b] = cc;
}
/** * 從文件中讀取信息到相應的數組里
*/ 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();
}
} /* * 將字符串轉換成字符串數組 */ 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(); } /* * 將字符串轉換成字符串數組 */ static String[] strToString(String ar) {
String[] arry = ar.split(","); return arry; } /* * 將int型數組轉換成字符串 */ static String intToString(int[] arrr) {
String ss = "";
ss = Arrays.toString(arrr);
String sss
=
ss.replace("[",
"").replace("]", "").replace(" ", "");
第二篇:小型超市商品信息管理系統
計算機系統開發綜合訓練(3)
課
程
設
計
小型超市商品信息管理系統
目錄
1. 引言 .......................................................................................................................... 3
1.1系統開發目的 ................................................................................................. 3 1.2背景說明 ......................................................................................................... 3 1.3項目確立 ......................................................................................................... 3 1.4應用范圍 ......................................................................................................... 3 2. 主要步驟 .................................................................................................................. 4
2.1建立系統功能模型 ......................................................................................... 4
2.1.1需求說明: .......................................................................................... 4 2.1.2 系統頂級用例圖 ................................................................................. 5 2.1.3主要業務系統的用例圖 ...................................................................... 5
1.員工用例圖: .................................................................................... 5 2.售貨員用例圖 .................................................................................... 6 3. 庫存管理員用例圖 .......................................................................... 7 4.訂貨員用例圖 .................................................................................... 7 5.統計分析員用例圖 ............................................................................ 8 6. 系統管理員用例圖 .......................................................................... 9 2.1.4 主要業務活動圖 ............................................................................... 10 貨物管理活動圖.................................................................................. 10 2.2建立系統靜態結構模型 ............................................................................... 11 2.2.1業務系統的詳細類圖 ........................................................................ 11 1.員工登錄模塊類圖 .......................................................................... 11 2. 訂貨模塊類圖 ................................................................................ 12 3.庫存管理模塊類圖 .......................................................................... 12 4. 統計分析模塊類圖 ........................................................................ 13 5. 銷售模塊類圖 ................................................................................ 14 2.3建立系統動態模型 ....................................................................................... 15 2.3.1主要業務用例的順序圖和合作圖 .................................................... 15 1.商品銷售順序圖和合作圖 .............................................................. 15 2.商品入庫順序圖和合作圖 .............................................................. 17 3. 商品出庫順序圖 ............................................................................ 18 4.商品查詢順序圖 .............................................................................. 19 2.3.2主要業務對象的狀態圖 .................................................................... 19 1.商品狀態圖 ...................................................................................... 19 2.商品銷售狀態圖 .............................................................................. 20 2.4 繪制系統實現模型 ...................................................................................... 21 2.4.1商品信息管理系統構件圖 ................................................................ 21 2.4.2 商品信息管理系統配置圖 ............................................................... 22 3.系統的主要框架 .............................................................................................. 22 4.實驗心得體會 .......................................................................................................... 30
1.引言
隨著網絡辦公系統的方便性及其進一步普及,越來越來的公司、企業在管理上都采用了專門的系統來管理公司的業務和流程。 由此,系統管理應運而生。
本項目針對超市管理系統進行需求說明,旨在為超市提供方便,快捷的結賬體系,準確,高效的庫存和財務管理系統,等。讓顧客在超市購物更加快捷方便,讓超市的管理和運行工作更加完善,方便。因為超市管理系統是基于超市內部普通員工和管理人員的系統,所以非本超市員工是無權進行操作的。該超市管理系統的用戶:庫存管理員,售貨員,統計分析員,顧客,系統管理員,訂貨員。
1.1系統開發目的
1.大大提高超市的運作效率;
2.通過全面的信息采集和處理,輔助提高超市的決策水平;
3.使用本系統,可以迅速提升超市的管理水平,為降低經營成本, 提高效益,增強超市擴張力, 提供有效的技術保障。
1.2背景說明
任何一個超市需要一個超市管理系統。該系統需要有顧客查詢計算機、庫存查詢計算機、柜員終端機及中央計算機組成的網絡系統。超市需要處理大量的庫存信息,還要時刻更新產品的銷售信息,不斷添加商品信息。面對不同種類的信息,需要合理的數據庫結構來保存數據信息,需要有效的程序結構支持各種數據操作的執行。如何在激烈的競爭中擴大銷售額、降低經營成本、擴大經營規模,成為超市營業者努力追求的目標。
1.3項目確立
該超市管理系統主要分為兩大系統,分別是前臺銷售系統和后臺管理系統:前臺銷售系統包括對商品信息的錄入和進行收銀業務,后臺管理系統分為統計系統、銷售管理、庫存管理、和人員管理。實現對超市的更加方便又好管理。
1.4應用范圍
本系統適應于各種小型的超市。 2.主要步驟
2.1建立系統功能模型
2.1.1需求說明:
超市信息管理系統是一個面向超市用來進行超市日常信息處理的管理信息系統。該信息系統能夠方便的為超市的售貨員提供各種日常售貨功能,也能夠為超市的管理者提供各種管理功能,如進貨、統計商品等。
(1)超市信息管理系統能夠支持售貨員日常售貨功能。每一個售貨員通過自己的用戶名稱和密碼登錄到售貨系統中,為顧客提供服務。在售貨員為顧客提供售貨服務時,售貨員接收顧客購買商品,根據系統的定價計算出商品的總價,顧客付款并接受售貨員打印的貨物清單,系統自動保存顧客購買商品記錄。
(2)超市信息管理系統能夠為超市的管理者提供管理功能。超市的管理包括庫存管理、訂貨管理、報表管理和售貨人員管理和系統維護等。庫存管理員負責超市的庫存管理;訂貨員負責超市的訂貨管理;統計分析員負責超市的統計分析管理;系統管理員負責超市的售貨人員管理和系統維護。每種管理者都通過自己的用戶名稱和密碼登錄到各自的管理系統中。
(3)庫存管理包括商品入庫管理、處理盤點信息、處理報銷商品信息和一些信息的管理設置信息。這些設置信息包括供應商信息、商品信息和特殊商品信息。庫存管理員每天對商品進行一次盤點,當發現庫存商品有損壞時,及時處理報損信息。當商品到貨時,庫存管理員檢查商品是否合格后并將合格的商品進行入庫。當商品進入賣場時,商品進行出庫處理。
(4)訂貨管理是對超市所缺貨物進行的訂貨處理,包括統計訂貨商品和制作訂單等步驟。當訂貨員發現庫存商品低于庫存下限時,根據系統供應商信息,制作訂單進行商品訂貨處理。
(5)統計分析管理包括查詢商品信息、查詢銷售信息、查詢供應商信息、查詢缺貨信息、查詢報表信息和查詢特殊商品信息,并制作報表。統計分析員使用系統的統計分析功能,了解商品信息、銷售信息、供應商信息、庫存信息和特殊商品信息,以便能夠制定出合理的銷售計劃。
(6)系統管理包括維護員工信息、維護會員信息和系統維護。系統管理員通過系統管理功能,能夠了解公司員工信息、會員信息,還能夠對系統進行維護工作。 2.1.2 系統頂級用例圖
銷售管理售貨員系統管理員顧客庫存管理庫存管理員訂貨 管理員工訂貨員身份 驗證統計分析員統計查詢
整個超市管理系統的每個用例之間的關系的描述如上述“頂級用例圖”所示,可以通過此用例圖來明確各執行者和用例之間的關系。
2.1.3主要業務系統的用例圖
1.員工用例圖:
修改員工信息身份驗證員工<><>修改密碼
員工是超市售貨員和超市管理者的抽象,它所包含的行為是超市售貨員和超市管理者共同的行為。員工在本系統中通過合法的身份驗證;能夠修改自身信息和密碼。 2.售貨員用例圖
獲取商品信息<>銷售商品售貨員<>更新銷售信息<>打印購物清單顧客<>計算價格
售貨員能夠通過該系統進行銷售商品活動。當售貨員銷售商品時,首先獲取商品信息,然后將銷售信息更新,如果顧客需要打印購物清單,則需要打印購物清單,在購物清單中需要對商品信息進行計價處理。 3.庫存管理員用例圖
盤點商品報銷處理<>商品入庫庫存管理員檢查商品商品出庫<>更新供應商信息庫存信息管理<>更新商品信息
庫存管理員能夠通過該系統進行如下活動:
(1)盤點商品。超市庫存管理員每天需要對超市商品信息進行盤點。 (2)報銷處理。超市庫存管理員對超市損壞商品進行報銷處理。
(3)商品入庫。當商品到貨時,庫存管理員檢查商品是否合格后并將合格的商品進行入庫。
(4)商品出庫。當商品進入賣場時,商品進行出庫處理。
(5)管理設置。庫存管理員負責供應商信息和商品基本信息的管理設置。 4.訂貨員用例圖
<>統計訂貨商品訂貨管理訂貨員<>制作訂單 訂貨員能夠通過該系統進行訂貨管理活動。訂貨員首先根據商品缺貨信息統計訂貨商品,根據需要訂貨商品信息制定出訂單。
5.統計分析員用例圖
查詢商品基本信息查詢銷售信息統計分析員查詢供應商信息查詢缺貨信息查詢報損信息
統計分析員負責超市的統計分析管理,它能夠通過該系統進行如下活動:
(1)查詢商品基本信息。統計分析員能夠查詢商品的基本信息,根據商品的基本信息,制定出相應的方案。
(2)查詢銷售信息。統計分析員根據銷售情況,制定合理的銷售方案。 (3)查詢供應商信息。統計分析員能夠查詢供應商信息。 (4)查詢缺貨信息。統計分析員能夠查詢缺貨信息。 (5)查詢報損信息。統計分析員能夠查詢報損信息。 6.系統管理員用例圖
維護會員信息維護員工信息系統管理員系統設置
系統管理員能夠通過該系統進行如下活動:
(1)維護會員信息。系統管理員能夠維護超市會員的信息,如添加會員、刪除會員和修改會員信息等。
(2)維護員工信息。系統管理員能夠維護超市員工的信息,如添加員工、刪除員工和修改員工信息等。
(3)系統設置。系統管理員能夠根據一些需要進行必要的系統設置。
2.1.4 主要業務活動圖
貨物管理活動圖
管理員系統驗證登錄【用戶名,密碼】登錄【失敗】顯示錯誤驗證不通過【成功】驗證成功登錄失敗選擇貨物加載貨物加載選擇的貨物顯示 加載貨物加載錯誤數據加載錯誤加載成功顯示貨物貨物信息已加載修改貨物保存貨物信息顯示報錯錯誤錯誤加載數據已保存數據保存錯誤
“貨物管理活動圖”描述了完成一個貨物管理信息操作所需要的活動,同時描述了該活動的序列.超市工作人員從“管理員”泳道開始“登錄”活動,首先進入系統泳道驗證用戶名及其密碼是否正確,“驗證登錄”泳道開展登錄驗證活動,通過與數據庫連接判斷登錄是否合法。登錄成功后通過邏輯判斷加載貨物是否成功,進而轉移到用戶界面中顯示加載成功信息或顯示加載出錯信息。最后成功后保存數據。
2.2建立系統靜態結構模型
2.2.1業務系統的詳細類圖
下面各個系統的詳細類圖描述了超市商品信息管理系統中所有的類及其屬性與功能,還有類之間的直接關系。 1.員工登錄模塊類圖
個人信息*-員工號:Integer-員工名字:String-數據:Date員 工-員工號:Integer-姓名:String-性別:String+個人信息()+修改密碼()***密碼-數據:Date 2.訂貨模塊類圖
訂單信息1..*-貨物:String-數據:Date訂貨 員-員工號-姓名-性別+統計訂單信息()+制作訂單()111..*訂單-訂單號:Integer-貨物:String-數據:Date
3.庫存管理模塊類圖
供應商信息-供應商編號:Integer-供應商名稱:String-詳細信息:Date庫存管理 員-員工號:Integer-姓名:String-性別:String+檢查商品()+供應商信息()+基本信息()+盤點商品()+報銷處理()11..*11..*商品基本信息-商品編號:Integer-商品名稱:String-數據:Date 4.統計分析模塊類圖
供應商信息1..*-供應商編號:Integer-供應商名稱:String-詳細信息:Date銷售信息-商品編號:Integer-商品名稱:String-數據:Date11..*統計分 析員-員工號:Integer-姓名:String-性別:String+查詢商品基本信息()+查詢銷售信息()+查詢供應商信息()+查詢缺貨信息()+查詢報損信息()11商品基本信息111..*-商品編號:Integer-商品名稱:String-數據:Date1..*缺貨信息-商品編號:Integer-商品名稱:String-數據:Date報銷信息1..*-商品編號:Integer-商品名稱:String-數據:Date 5.銷售模塊類圖
銷售信息*-商品編號:Integer-商品名稱:String-數據:Date*銷售員-員工號I:nteger-姓名:String-性別:String*+商品信()息+更新銷售記錄()+打印購物清單()**商品基本信息*-商品編號:Integer-商品名稱:String-數據:Date顧 客-顧客編號:Integer-數據:Date+請求打印購物清單()**購物清單-清單編號:integer-數據:Date
2.3建立系統動態模型
2.3.1主要業務用例的順序圖和合作圖
1.商品銷售順序圖和合作圖
顧客售貨員商品管理界面1 : 購買商品()2 : 處理銷售()3 : 獲取商品信息()4 : 返回商品信息5 : 計價處理()8 : 付錢()7 : 顯示處理商品9 : 交付商品6 : 更新商品記錄()10 : 帶走商品()
工作流程如下:
(1)顧客希望通過售貨員購買商品,售貨員希望通過售貨管理子系統處理商品銷售。
(2)顧客將購買商品提交給售貨員。
(3)售貨員通過銷售管理子系統中的管理商品界面獲取商品信息。 (4)管理商品界面根據商品的編號將商品類實例化并請求該商品信息。
(5)商品類實例化對象根據商品的編號加載商品信息并提供給管理商品界面。 (6)管理商品界面對商品進行計價處理。 (7)管理商品界面更新銷售商品信息。 (8)管理商品界面顯示處理商品。 (9)售貨員將貨物提交給顧客。 2.商品入庫順序圖和合作圖
庫存管理員入庫單商品入庫單數據庫商品數據庫1 : 輸入入庫單對象()2 : 錄入數據庫()3 : 返回入庫單對象4 : 修改商品信息()5 : 錄入數據庫()6 : 返回更新
工作流程如下:
(1)庫存管理員希望通過庫存管理子系統將購買的貨物處理入庫
(2)庫存管理員通過庫存管理子系統中的商品入庫單獲取商品信息。 (3)商品入庫單根據商品的編號將商品類實例化并錄入入庫單數據庫中。 (4)商品類實例化對象根據商品的編號加載商品信息并返回給庫存管理員。 (5)庫存管理員通過商品入庫界面修改商品信息。
(6)商品界面通過商品類實例化對象修改商品信息并錄入到商品數據庫中。 (7)商品類實例化對象庫存管理員返回更新修改信息。 3.商品出庫順序圖
庫存管理員進貨訂單商品商品出庫缺貨清單商品數據庫缺貨單數據庫1 : 返回訂單2 : 審核訂單()3 : 查詢商品庫存量()4 : 進入數據庫查詢()5 : 返回查詢結果6 : 商品出庫()7 : 返回出庫信息8 : 添加缺貨清單()9 : 錄入數據庫()10 : 返回缺貨信息工作流程如下:
(1)訂貨員希望通過訂貨管理子系統處理商品訂貨管理。
(2)訂貨員通過訂貨管理子系統中的進貨訂單界面獲取待訂貨商品信息。 (3)商品界面將商品類實例化并根據商品的數量應當滿足的條件請求有關商品信息。
(4)商品類實例化對象根據商品的數量應當滿足的條件加載商品信息并提供給缺貨清單界面。
(5)訂貨員通過訂貨管理子系統中的缺貨清單界面獲取待訂貨廠商信息。 (6)訂貨管理界面將供應商類實例化并根據商品的類型請求有關供應商信息。 (7)供應商類實例化對象加載供應商信息并提供給缺貨清單界面。 (8)訂貨員通過訂貨管理子系統中的缺貨清單界面制作相關訂單。 (9)訂貨管理界面制作相關缺貨清單并顯示給訂貨員。 4.商品查詢順序圖
售貨員商品管理商品商品數據庫1 : 輸入查詢條件()2 : 搜索查詢商品()3 : 由數據庫獲取商品信息()5 : 返回商品信息6 : 返回查詢對象的信息4 : 返回查詢的信息
工作流程如下:
(1)售貨員希望通過商品管理系統查詢商品信息。
(2)售貨員通過商品管理系統中的查詢商品信息界面獲取商品信息。
(3)查詢商品管理界面根據商品的屬性或特征將商品類實例化并請求該類商品信息。
(4)商品類實例化對象加載商品信息,并返回給商品管理界面。 (5)查詢商品信息界面顯示該類商品信息。
(6)查詢商品信息界面將該類商品報表顯示給銷售員。
2.3.2主要業務對象的狀態圖
1.商品狀態圖
商品庫存管理商品被銷售合格未入庫商品商品入庫入庫商品不合格商品報損
在超市信息管理系統中,我們將有明確狀態轉換的類進行描述,以下我們以商品的狀態圖為例,簡單進行說明。
商品包含以下的狀態:剛被購買還未入庫后的商品、被添加能夠出售的商品、商品被出售、商品被回收。它們之間的轉化規則是:
(1)剛被購買后的商品可以通過庫存管理員添加成為入庫的商品。 (2)當入庫商品被出售,商品處于被銷售狀態。
(3)當商品由于過期、損壞等因素造成的不合格時,商品報損并回收。
2.商品銷售狀態圖
商品銷售售貨員輸入購物清單更新庫存庫存更新后有貨顯示庫存更新后無貨缺貨清單統計分析員入庫缺貨商品采購訂貨單
商品銷售狀態圖描述了商品對象所具有的各種狀態和這個對象從一種狀態到另一種狀態的轉換,以及影響商品這些狀態的流通事件。 2.4 繪制系統實現模型
2.4.1商品信息管理系統構件圖
管理員數據庫銷售員數據庫商品信息頁面貨物數據庫銷售信息頁面Persistent,增加,刪除,更新頁面
在超市信息管理系統中,我們通過構件映射到系統的實現類中,說明該構件物理實現的邏輯類。例如,在超市信息管理系統中,我們可以對創建貨物管理構件圖所對應的構件進行映射。 2.4.2 商品信息管理系統配置圖
系統管理子系統:員工登錄管理售貨管理子系統:售貨員庫存管理子系統:商品庫存SQL數據庫服務器:商品數據庫統計分析子系統:商品統計分析訂貨管理子系統:商品訂貨管理在超市信息管理系統中,系統包括五種子系統,分別是:前臺售貨管理子系統,系統管理子系統,庫存管理子系統,訂貨管理子系統,統計分析子系統。售貨員通過售貨管理子系統進行商品更新跟收銀;系統管理員通過系統管理子系統進行系統維護和員工信息維護;庫存管理員通過其子系統進行商品庫存管理和維護;訂貨管理員通過訂貨管理子系統進行商品訂貨管理;統計分析員通過統計分析子系統進行商品統計分析。最后這些數據都存儲在商品數據庫中。
3.系統的主要框架
選取Java設計語言,執行正向工程后得出各個類的代碼如下:
// // // Generated by StarUML(tm) Java Add-In // // @ Project : Untitled // @ File Name : 報銷信息.java // @ Date : 7/8 // @ Author : // // public class 報銷信息 { private Object 商品編號:Integer; private Object 商品名稱:String; private Object 數據:Date; } // // // Generated by StarUML(tm) Java Add-In // // @ Project : Untitled // @ File Name : 訂貨 員.java // @ Date : 7/8 // @ Author : // //
public class 訂貨 員 { private Object 員工號; private Object 姓名; private Object 性別; public void 統計訂單信息() {
}
public void 制作訂單() {
} } // // // Generated by StarUML(tm) Java Add-In // // @ Project : Untitled // @ File Name : 購物清單.java // @ Date : 7/8 // @ Author : // //
public class 購物清單 { private Object 清單編號:integer; private Object 數據:Date; } // // // Generated by StarUML(tm) Java Add-In // // @ Project : Untitled // @ File Name : 密碼.java // @ Date : 7/8 // @ Author : // //
public class 密碼 extends 員 工 { private Object 數據:Date; } // // // Generated by StarUML(tm) Java Add-In // // @ Project : Untitled // @ File Name : 訂單.java // @ Date : 7/8 // @ Author : // //
public class 訂單 { private Object 訂單號:Integer; private Object 貨物:String; private Object 數據:Date; } // // // Generated by StarUML(tm) Java Add-In // // @ Project : Untitled // @ File Name : 個人信息.java // @ Date : 7/8 // @ Author : // //
public class 個人信息 extends 員 工 { private Object 員工號:Integer; private Object 員工名字:String; private Object 數據:Date; } // // // Generated by StarUML(tm) Java Add-In // // @ Project : Untitled // @ File Name : 顧 客.java // @ Date : 7/8 // @ Author : // //
public class 顧 客 { private Object 顧客編號:Integer; private Object 數據:Date; public void 請求打印購物清單() {
} } // // // Generated by StarUML(tm) Java Add-In // // @ Project : Untitled // @ File Name : 缺貨信息.java // @ Date : 7/8 // @ Author : // //
public class 缺貨信息 { private Object 商品編號:Integer; private Object 商品名稱:String; private Object 數據:Date; } // // // Generated by StarUML(tm) Java Add-In // // @ Project : Untitled // @ File Name : 缺貨信息.java // @ Date : 7/8 // @ Author : // //
public class 缺貨信息 { private Object 商品編號:Integer; private Object 商品名稱:String; private Object 數據:Date; } // // // Generated by StarUML(tm) Java Add-In // // @ Project : Untitled // @ File Name : 銷售員.java // @ Date : 7/8 // @ Author : // //
public class 銷售員 { private Object 員工號:Integer; private Object 姓名:String; private Object 性別:String; public void 商品信息() {
}
public void 更新銷售記錄() {
}
public void 打印購物清單() {
} } // // // Generated by StarUML(tm) Java Add-In // // @ Project : Untitled // @ File Name : 員 工.java // @ Date : 7/8 // @ Author : // //
public class 員 工 { private Object 員工號:Integer; private Object 姓名:String; private Object 性別:String; public void 個人信息() {
}
public void 修改密碼() {
} } // // // Generated by StarUML(tm) Java Add-In // // @ Project : Untitled // @ File Name : 訂單信息.java // @ Date : 7/8 // @ Author : // //
public class 訂單信息 { private Object 貨物:String; private Object 數據:Date; } // // // Generated by StarUML(tm) Java Add-In // // @ Project : Untitled // @ File Name : 供應商信息.java // @ Date : 7/8 // @ Author : // //
public class 供應商信息 { private Object 供應商編號:Integer; private Object 供應商名稱:String; private Object 詳細信息:Date; } // // // Generated by StarUML(tm) Java Add-In // // @ Project : Untitled // @ File Name : 庫存管理 員.java // @ Date : 7/8 // @ Author : // //
public class 庫存管理 員 { private Object 員工號:Integer; private Object 姓名:String; private Object 性別:String; public void 檢查商品() {
}
public void 供應商信息() {
}
public void 基本信息() {
}
public void 盤點商品() {
} public void 報銷處理() {
} } // // // Generated by StarUML(tm) Java Add-In // // @ Project : Untitled // @ File Name : 商品基本信息.java // @ Date : 7/8 // @ Author : // //
public class 商品基本信息 { private Object 商品編號:Integer; private Object 商品名稱:String; private Object 數據:Date; } // // // Generated by StarUML(tm) Java Add-In // // @ Project : Untitled // @ File Name : 統計分 析員.java // @ Date : 7/8 // @ Author : // //
public class 統計分 析員 { private Object 員工號:Integer; private Object 姓名:String; private Object 性別:String; public void 查詢商品基本信息() {
}
public void 查詢銷售信息() {
}
public void 查詢供應商信息() {
}
public void 查詢缺貨信息() {
}
public void 查詢報損信息() {
} } // // // Generated by StarUML(tm) Java Add-In // // @ Project : Untitled // @ File Name : 銷售信息.java // @ Date : 7/8 // @ Author : // //
public class 銷售信息 { private Object 商品編號:Integer; private Object 商品名稱:String; private Object 數據:Date; } 4.實驗心得體會
這次UML的綜合訓練,是我對于這門課的基礎知識掌握得更加的堅牢可靠,類似于10中基本圖形,UML建模的各種方法和建模工具的使用方法。通過這次的實驗也使我更加認識到UML在軟件開發階段的重要性,它真的是一個很好的建模分析工具。
每次自己親手做實驗總是會有很多的收獲,從原因和結果的總結分析我就知道了知識是要靈活應用才行。所以,書本里的例題會了是遠遠不夠的,你或許會的只是這道題而不是解開這道題的方法。很高興這次實驗能夠把知識融會貫通,真正學會。
第三篇:小型超市系統分析報告
1 課題說明
1.1課題名稱小型超市管理系統
1.2 開發背景
眾所周知,超市的商品的存儲和調配是不可忽視的問題,好的后備調配對前臺的產品銷售有很大的幫助,也可以很大程度上提高產品的銷售效率,滿足消費者的消費需求。如果可以能夠實時掌握銷售流程及銷售情況,則可以有效地加速商品的周轉率并提高服務質量,而且可以減少產品售價不符等所產生的問題。顧客的消費要求的是希望在超市購物中能基本上都能購得所需的商品,并且還要既保證商品質量還要享受優質,方便的服務。但在超市日常管理中,商品的進、銷、存等決策以經驗為主,缺乏實時分析功能,管理人員對及時傳遞資料的要求始終得不到滿足。為此,在選題過程中,我們開發小組選擇了超市管理系統設計題目,依靠現代化的計算機信息處理技術來管理超市,從而節省了大量的人力、物力,改善了員工的工作條件,減輕了勞動強度,并且能夠快速反映出商品的進、銷、存等狀況和各種反饋信息分析,使管理人員快速對市場的變化做出相應的決策,加快超市經營管理效率。
1.3 開發思路
超市的管理至關重要,對商品的管理包括進、銷、存三個方面,將從這方面入手建立一個超市的管理系統,減輕了超市的管理員、營業員和庫存管理員等的工作量,從而是超市更加便于管理。
2 需求調查報告
2.1 功能需求
①在需要時生成商品庫存情況報告,實時報告商品庫存情況,如庫存量不足時,課生成缺貨報告,并提供商品種類、來源信息等。②采購員采購商品后,及時錄入商品信息等數據并更新。③貨架上商品賣到一定數量時實時生成提貨報告并提
供商品的庫存信息以及剩余信息。④在收銀處,隨時錄入賣出的商品信息。⑤當超市客戶大批量需要某商品時,允許直接從商品倉庫中提貨,此時應及時更新數據庫信息。⑥在某段時間內,當某商品賣出數量較大,受到歡迎,可將此類商品打印輸出,用于市場導購和商品采購指導。
第四篇: 小型超市管理系統開發實例
一.項目論證和計劃 1.1系統調查
社會生活的現代化,使得市場的走向發生巨大變化,由于經濟的發展,人們對生活的需求已經不再滿足于豐衣足食的低度要求,許多人們往往不是單純為滿足生活必需去購買,而是憑著喜歡、意欲和感觀去購買。如果一個商店能夠打動顧客、吸引顧客,自然會顧客盈門,而近幾年新興產業中超級市場的現代化管理方式和便捷的購物方式,尤其是它輕松的購物環境。往往是打動顧客,吸引顧客的最主要的原因,且良好的周密的銷售服務更是贏得信譽、吸引顧客的優勢所在。商品經濟的高速現代化發展也促進了競爭,使一切不甘落后的商家都爭先恐后地采用最新的管理方法來加強自己的競爭地位。因此,超市經營者如果不掌握當今市場發展的這一走向,不能將超市現代化經營作為努力開拓的目標,就無法使經營活絡、財源茂盛。隨著計算機網絡技術以及數據庫技術的迅速發展,管理信息系統得到了廣泛應用。對于一個超市來講:貨品數量少則數以百計,多則數以萬計;另外,不同超市的實際情況也有所不同。要對這些貨品進行統
一、高效的管理,靠人工完成工作量龐大、難免有錯漏之處。為此,一個自動化的超市貨品管理系統的開發非常必要。
當今社會,超市的競爭也進入到了一個全新的領域,競爭已不再是規模的競爭,而是技術的競爭、管理的競爭、人才的競爭。技術的提升和管理的升級是超市業的競爭核心。零售領域目前呈多元發展趨勢,多種業態:超市、倉儲店、便利店、特許加盟店、專賣店、貨倉等相互并存。如何在激烈的競爭中擴大銷售額、降低經營成本、擴大經營規模,成為超市營業者努力追求的目標。作為國內市場的一些中小型超市,它們在信息化過程中的步伐要落后于大中型超市,而對于這些企業的資源管理,信息的存儲和處理也顯得迫切需要。要適應市場競爭就需要有高效的處理方式和管理方法,因此加快超市的信息化進程是必可少的。
1.2 新系統的總體功能需求和性能要求
針對超市的特點,為了幫助超市解決現在面臨的問題,提高小型超市的競爭力,我們將開發以下系統:前臺POS銷售系統、后臺管理系統,其中這兩個子系統又包含其他一些子功能。并且系統要做到以下幾點:
(1).簡單性
系統設計盡量簡單,以實現使用方便,提高效率,節省開支,提高系統的運行質量。
(2).靈活性
系統對外界條件變化有較強的適應性
(3).完整性
系統是各個子系統的集合,作為一個有機的整體存在。因此,要求各個
子系統的功能盡量規范,數據采集統一,語言描述一致。 (4).可靠性
小型超市管理系統可以用于支持超市的各項管理工作。
1.3 系統開發的框架
二.可行性分析
1.管理可行性分析
管理可行性分析管理可行性分析管理可行性分析 超市的經營者大多具備電腦基本操作知識,對于必要的專業操作經短期培訓即可;管理基礎工作和各項管理制度比較健全,執行嚴格,原始數據采集完整,保存良好。 2.經濟可行性分析
經濟可行性分析經濟可行性分析經濟可行性分析 超市管理系統的投入,能夠提高工作效率,減少工作人員,從而減少人力資本的投入,根據核算,系統投入三個月后,就能夠基本收回開發系統的投資,從經濟角度來說,本系統開發完全必要。
3.技術可行性分析 (1).硬件:電腦一臺 (2).軟件:操作系統:中文Windows 2007開發系統:Microsoft Visual Foxpro 6.0,安裝SQL Server 2000的服務器版本 系統本身對硬件和軟件的要求都不高且系統兼容性很強,平臺的移植性也很好,因此無論在系統的硬件及軟件上都滿足開發的要求。
(3).本系統涉及到的技術因素: 管理系統的開發方法,使用面向對象開發方法開發軟件系統。網絡和通信技術,開發小組有基于C/S開發的經驗 ,C/S機構規劃和技術設計,開發小組有應用數據庫開發經驗 。數據庫技術,開發小組能使用Visual Foxpro 6.0 編程。
(4).運行上的可行性:操作簡單:簡單的操作規則使操作人員能輕松掌握。查詢方便:用戶可設定任意條件和任意的查詢項目進行檢索。 統計靈活:任意條件下任意項目的產品入庫時間、數量等的統計及查詢項目均可進行交叉統計。
三.需求分析
3.1 數據流分析
頂層數據流圖
零售前臺(POS)管理系統數據流圖
3.2 系統流程圖
3.3 數據字典
商品信息
包括品名,倉庫號,唯一標碼,條形碼,進貨價,銷售價,進貨地,供貨商號。 倉庫信息
包括倉庫號,倉庫名,類別,管理員工號,備注。 員工信息
包括姓名,電話,工號,部門編號。 會員信息
會員編號,會員名,電話,入會日期。 供貨商信息
包括供貨商號,名稱,地址,電話,聯系人。 銷售信息
包括正常銷售、促銷與限量、限期禁止銷售控制、銷售明細記錄、各地收銀員收銀記錄、交結賬信息,收銀員工號。 部門信息
包括部門編號,員工姓名,員工工號。
四.總體設計
4.1 功能模塊圖
4.2 層次方框圖
4.3 IPO圖
4.4 系統的功能結構圖
4.5 工作流程模擬圖
4.6系統數據庫關系說明圖
五.詳細設計
5.1 前臺銷售(POS)功能流程圖
5.2 后臺管理功能流程圖
第五篇:小型超市管理系統設計說明書
系統概述
小型超市管理系統的設計對一個超市的運轉是十分重要的。改革開放以來,我國逐步進入市場經濟,外國企業的進入,給我國的本土經濟帶來巨大的沖擊。因此,為了使我們自身的企業更好地應對外來競爭的壓力,我們的企業迫切地需要管理制度的完善。
小型超市管理系統是現存信息系統中較為復雜的一類,這是由超市自身的目標、任務和性質所決定的。它應用于用戶權限管理、進貨管理、銷售管理、顧客管理和用戶注冊管理等幾個方面,牽涉的信息種類較多。這也同時是一款信息查詢系統,體現出超市當前的庫存商品數量、價格以及銷售情況。方便了顧客購買商品,而且對超市的管理、銷售、進貨以及經理決策起著至關重要的作用。依靠現代化信息處理技術來管理超市,大大節省了人力、物力,改善了員工的工作條件,方便了廣大消費者,提高了企業的效率,增加其收益。
超市管理的信息化建設工作具有長期性、復雜性和多變性,所以超市管理系統也不是一個簡單的、封閉的、靜止的系統,它是會隨時間推移在應用廣度和深度上逐步變化和發展的系統。 需求分析
需求分析分為三個部分:需求的文字表述、數據流圖、數據字典。
一、 需求分析:
小型超市管理系統的設計的服務對象是廣大顧客及超市的管理人員。它涉及的面廣、數據量大,如果對整個系統不能很好的
設計,將會給超市的效益帶來巨大壓力,如何在激烈的競爭中擴大銷售額、降低經營成本、擴大經營規模,成為超市努力追求的目標。下面是我們隊該系統所做的詳細分析:
1、 用戶工作流程
與超市運轉相關的群體主要有顧客、銷售員和超市工作人員。圍繞著三大群體,我們設計了以下流程。進貨或銷售商品時,用戶要對訂單或銷售單進行核對審查,這時不同的用戶需要填寫與各自身份相對應的信息,經系統默認,進入到相應的界面,通過指導查詢所需信息,如進貨信息、銷售信息和商品信息等。
2、 用戶業務需求
(1)、該軟件將為不同的用戶提供不同的操作權限,當用戶不同時,根據對用戶權限的判斷,決定該用戶進入哪一界面; (2)、該管理軟件將對商品進行資料統計和管理,提供詳細的商品信息,方便顧客查詢;
(3)、該軟件將對商品的訂貨單和銷售單進行錄入管理和統計,使銷售員和超市管理人員及時了解超市的銷售情況; (4)、該軟件將為用戶提供賬號管理工具,以便對用戶賬號進行管理,包括用戶的添加、修改、編輯和刪除等操作。
3、系統的設計目標
實現超市數據的信息化管理,提高超市在運作中的效率,減少人力的消耗,提高管理質量,將超市信息管理環節簡單化。
4、 用戶對系統的要求
1)、信息要求
由于系統的使用主體是顧客和銷售員,因此對系統的信息要求可分為以下幾個方面: a. 用戶信息
用戶的基本信息,主要包括用戶的名稱,密碼,住址,權限,姓名及年齡信息; b. 商品信息
商品的基本信息,主要包括商品的名稱,數量,產地,價格,大小等信息; c. 訂貨信息
訂貨的基本信息,包括商品的名稱和數量,顧客姓名,銷售日期,商品的大小和價格等; d. 進貨信息
進貨的基本信息,主要包括所訂購商品的名稱和數量,訂購生產廠家,訂購日期,訂購狀態和訂購人姓名等。
2)、處理要求
a.用戶注冊或登錄
用戶通過這個功能,可以注冊成為會員或員工,也可以進入到系統主界面進行操作,用戶可以是系統管理員,顧客,或銷售員;
b.商品查詢與購買
顧客通過這個功能,可以瀏覽所有的商品,或者通過商品的某種信息,分項查詢找到需要的商品后進行訂貨購買;
c.訂貨單查詢
通過這個功能,顧客可以根據自己的需求修改訂單或下訂單; d.銷售情況查詢
通過這個功能,銷售員可以查詢到商品的所有銷售信息,了解超市的銷售情況。 安全性與完整性要求 1)、安全性要求
a.系統應設置訪問用戶的標識以鑒別用戶是否合法,并要求合法用戶設置密碼,保證用戶身份不被盜用;
b.系統應對不同的數據設置不同的訪問級別,限制訪問用戶可以查詢和處理的數據的類別和內容;
c.系統應對不同用戶設置不同的權限,區分不同的用戶,如顧客,超市管理人員和銷售員;
顧客:查詢某種或全部商品,下訂單購買商品; 超市管理人員:進行用戶管理,增加、刪除或修改用戶; 銷售員:查詢全部商品信息,或分享查詢銷售情況。 2)、完整性要求
a.各種信息記錄的完整性,信息記錄內容不能為空; b.各種數據間相互的聯系的正確性; c.相同的數據在不同記錄中的一致性。
5、確定系統的邊界
經過前面的需求分析,確定有計算機完成的工作時對數據進行各種管
理和處理,具體的工作內容見第二部分,由手工完成的工作主要有對原始數據的錄入;不能由計算機生成的,各種數據的更新,包括數據變化后的修改,數據的增加,失效數據或無用數據的刪除等;系統的日常維護。
二、 系統功能的設計和劃分
根據如上的需求分析,我們可將本系統按照所完成的功能劃分成以下幾個子系統: 用戶權限管理子系統 進貨管理子系統 銷售管理子系統 顧客管理子系統 用戶注冊管理子系統 后臺管理子系統 各子系統完成的功能如下:
1、 用戶權限管理子系統
(1) 系統管理員具有所有的數據和功能權限,能查看進貨管理表單、銷售管理表單,能管理普通用戶;
(2) 普通用戶具有查詢商品、訂購商品和修改個人信息等功能; (3) 銷售員除了具有一般用戶的權限外,還可以進行銷售報表的查詢等;
2、 進貨管理子系統
(1) 用戶查詢或分項查詢訂貨單;
(2) 下訂單或更改訂單狀態;
3、 銷售管理子系統
讓銷售員能夠進行銷售信息的查詢,及時了解超市的銷售情況;
4、 顧客管理子系統
(1) 顧客可以瀏覽所有的商品信息; (2) 可以通過分項功能查詢,找到所需商品; (3) 直接訂貨或購買商品;
5、 用戶注冊管理子系統
(1) 填寫個人信息,注冊成為會員; (2) 根據不同的目的取得不同的商品權限。