第一篇:基于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(“ttt歡迎使用商超購物管理系統 n”);
System.out.println(“tttt1.登錄系統n”);
System.out.println(“tttt2.退出 ”);
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(“tttt商超購物管理系統”);
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(“請選擇,輸入數字或按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(“tttt商超購物管理系統 商品維護”);
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(“請選擇,輸入數字或按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(“商品名稱ttt” + “商品價格ttt” + “商品數量ttt”
+ “備注”);
showgoods();
break;
case 5:
System.out.println(“執行查詢商品操作”);
loadmenu5();
break;
default:
break;
} } /* * 在商超購物管理系統中按2鍵時
*/ static void loadmenu6(){
System.out.println(“tttt商超購物管理系統 前臺收銀”);
System.out
.println(“********************************************************************************”);
System.out.println(“tttt1.購物結算”);
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(“ttt商超購物管理系統 商品管理”);
System.out
.println(“********************************************************************************”);
System.out.println(“tttt1.庫存查詢”);
System.out.println(“tttt2.已出售商品”);
System.out.println(“tttt3.售貨員管理”);
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(“員工姓名” + “ttt密碼”);
System.out.println(cname[k] + “ttt” + 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(“商品名稱ttt” + “商品價格ttt” + “商品數量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” + “商品數量ttt”
+ “備注”);
System.out.println(goodname[t] + “ttt” + goodprice[t]
+ “ttt” + goodnum[t] + “ttt”);//按下標輸出商品相應的信息
} 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 + “ttt” + goodprice[fl] + “ttt”
+ “購買數量” + bnum + “ttt” + 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(“商品名稱ttt” + “商品價格ttt” + “商品數量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”);
}
}
} /* * 按商品的關鍵字進行查找
*/ 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(“商品名稱ttt” + “商品價格ttt” + “商品數量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(“是否繼續(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(“商品名稱ttt” + “商品價格ttt” + “商品數量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(“選擇您要更改的內容:”);
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(“商品名稱 tt” + “商品價格 tt” + “商品數量 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(”是否繼續(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(“執行添加商品操作: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(“輸入添加商品數量:”);
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(” “, ”"); 小型超市管理系統一:需求分析 1.超市信息管理系統是一個面向超市用來進行超市日常信息處理的管理信息系統(MIS)。該信息系統能夠方便的為超市的售貨員提供各種日常售貨功能,也能夠為超市的管理者提供各種管理功能,如進貨、統計商品等。 (1)超市信息管理系統能夠支持售貨員日常售貨功能。每一個售貨員通過自己的用戶名稱和密碼登錄到售貨系統中,為顧客提供服務。在售貨員為顧客提供售貨服務時,售貨員接收顧客購買商品,根據系統的定價計算出商品的總價,顧客付款并接受售貨員打印的貨物清單,系統自動保存顧客購買商品記錄。 (2)超市信息管理系統能夠為超市的管理者提供管理功能。超市的管理包括庫存管理、訂貨管理、報表管理和售貨人員管理和系統維護等。庫存管理員負責超市的庫存管理;訂貨員負責超市的訂貨管理;統計分析員負責超市的統計分析管理;系統管理員負責超市的售貨人員管理和系統維護。每種管理者都通過自己的用戶名稱和密碼登錄到各自的管理系統中。 (3)庫存管理包括商品入庫管理、處理盤點信息、處理報銷商品信息和一些信息的管理設置信息。這些設置信息包括供應商信息、商品信息和特殊商品信息。庫存管理員每天對商品進行一次盤點,當發現庫存商品有損壞時,及時處理報損信息。當商品到貨時,庫存管理員檢查商品是否合格后并將合格的商品進行入庫。當商品進入賣場時,商品進行出庫處理。 (4)訂貨管理是對超市所缺貨物進行的訂貨處理,包括統計訂貨商品和制作訂單等步驟。當訂貨員發現庫存商品低于庫存下限時,根據系統供應商信息,制作訂單進行商品訂貨處理。 (5)統計分析管理包括查詢商品信息、查詢銷售信息、查詢供應商信息、查詢缺貨信息、查詢報表信息和查詢特殊商品信息,并制作報表。統計分析員使用系統的統計分析功能,了解商品信息、銷售信息、供應商信息、庫存信息和特殊商品信息,以便能夠制定出合理的銷售計劃。 (6)系統管理包括維護員工信息、維護會員信息和系統維護。系統管理員通過系統管理功能,能夠了解公司員工信息、會員信息,還能夠對系統進行維護工作。二:創建系統用例模型 1.員工用例圖 ? 員工是超市售貨員和超市管理者的抽象,它所包含的行為是超市售貨員和超市管理者共同的行為。員工在本系統中通過合法的身份驗證;能夠修改自身信息和密碼。 2.售貨員用例圖 ? 售貨員能夠通過該系統進行銷售商品活動。當售貨員銷售商品時,首先獲取商品信息,然后將銷售信息更新,如果顧客需要打印購物清單,則需要打印購物清單,在購物清單中需要對商品信息進行計價處理。 3.庫存管理員用例圖 ? 庫存管理員能夠通過該系統進行如下活動: (1)處理盤點。超市庫存管理員每天需要對超市商品信息進行盤點。(2)處理報銷。超市庫存管理員對超市損壞商品進行報銷處理。(3)商品入庫。當商品到貨時,庫存管理員檢查商品是否合格后并將合格的商品進行入庫。 (4)商品出庫。當商品進入賣場時,商品進行出庫處理。(5)管理設置。庫存管理員負責供應商信息、商品基本信息和特殊商品信息的管理設置。 4.訂貨員用例圖 ? 訂貨員能夠通過該系統進行訂貨管理活動。訂貨員首先根據商品缺貨信息統計訂貨商品,根據需要訂貨商品信息制定出訂單。 5.統計分析員用例圖 ? 統計分析員負責超市的統計分析管理,它能夠通過該系統進行如下活動: (1)查詢基本信息。統計分析員能夠查詢商品的基本信息,根據商品的基本信息,制定出相應的方案。 (2)查詢銷售信息。統計分析員根據銷售情況,制定合理的銷售方案。 (3)查詢供應商信息。統計分析員能夠查詢供應商信息。 (4)查詢缺貨信息。統計分析員能夠查詢缺貨信息。 (5)查詢報損信息。統計分析員能夠查詢報損信息。 (6)查詢特殊商品信息。統計分析員能夠查詢特殊商品信息 6.系統管理員用例圖 ? 系統管理員能夠通過該系統進行如下活動: (1)維護會員信息。系統管理員能夠維護超市會員的信息,如添加會員、刪除會員和修改會員信息等。 (2)維護員工信息。系統管理員能夠維護超市員工的信息,如添加員工、刪除員工和修改員工信息等。 (3)系統設置。系統管理員能夠根據一些需要進行必要的系統設置。 三:創建系統靜態模型 ? 在獲得系統的基本需求用例模型以后,我們通過考察系統對象的各種屬性,創建系統靜態模型。 (1)首先,我們先確定系統的參與者的屬性。每一個超市員工在登錄系統時,都需要提供員工的用戶名稱和密碼,因此每一個超市員工應該擁有用戶名稱和密碼屬性。超市員工還擁有在超市中的唯一標識——員工編號。此外,員工屬性中還包含員工的年齡、頭銜和照片等信息。超市的售貨員和管理者都繼承自員工,擁有員工的屬性。在系統中記錄的顧客包括顧客的名稱、顧客的編號、顧客地址、顧客級別和顧客的總消費金額等記錄。 (2)其次,我們確定在系統中的主要業務實體類,這些類通常需要在數據庫中進行存儲。例如,我們需要存儲商品的信息,因此需要一個商品類,同樣,根據供應商信息我們可以確定供應商類。(2)其次,我們確定在系統中的主要業務實體類,這些類通常需要在數據庫中進行存儲。例如,我們需要存儲商品的信息,因此需要一個商品類,同樣,根據供應商信息我們可以確定供應商類。 四:創建系統動態模型 1.售貨員銷售商品序列圖和交互圖 工作流程如下: (1)顧客希望通過售貨員購買商品,售貨員希望通過售貨管理子系統處理商品銷售。 (2)顧客將購買商品提交給售貨員。 (3)售貨員通過銷售管理子系統中的管理商品界面獲取商品信息。 (4)管理商品界面根據商品的編號將商品類實例化并請求該商品信息。 (5)商品類實例化對象根據商品的編號加載商品信息并提供給管理商品界面。(6)管理商品界面對商品進行計價處理。 (7)管理商品界面更新銷售商品信息。 (8)管理商品界面顯示處理商品。 (9)售貨員將貨物提交給顧客。 2.統計分析員查詢商品信息序列圖和交互圖 工作流程如下: (1)統計分析員希望通過統計分析子系統查詢商品信息。 (2)統計分析員通過統計分析子系統中的查詢商品信息界面獲取商品信息。 (3)查詢商品信息界面根據商品的屬性或特征將商品類實例化并請求該類商品信息。 (4)商品類實例化對象加載商品信息,并提供給管理商品界面。 (5)查詢商品信息界面顯示該類商品信息。 (6)統計分析員請求查詢商品信息界面制定出該類商品報表。 (7)查詢商品信息界面制定該類商品報表。 (8)查詢商品信息界面將該類商品報表顯示給統計分析員。 3.庫存管理員處理商品入庫 工作流程如下: (1)庫存管理員希望通過庫存管理子系統將購買的貨物處理入庫(2)庫存管理員通過庫存管理子系統中的商品入庫界面獲取商品信息。 (3)商品入庫界面根據商品的編號將商品類實例化并請求該類商品信息。 (4)商品類實例化對象根據商品的編號加載商品信息并提供給商品入庫界面。 (5)庫存管理員通過商品入庫界面增加商品數目。(6)商品入庫界面通過商品類實例化對象修改商品信息。(7)商品類實例化對象向商品入庫界面返回修改信息。(8)商品入庫界面向庫存管理員顯示添加成功信息。 4.訂貨員進行訂貨管理 工作流程如下: (1)訂貨員希望通過訂貨管理子系統處理商品訂貨管理。(2)訂貨員通過訂貨管理子系統中的訂貨管理界面獲取待訂貨商品信息。 (3)訂貨管理界面將商品類實例化并根據商品的數量應當滿足的條件請求有關商品信息。 (4)商品類實例化對象根據商品的數量應當滿足的條件加載商品信息并提供給訂貨管理界面。 (5)訂貨員通過訂貨管理子系統中的訂貨管理界面獲取待訂貨廠商信息。 (6)訂貨管理界面將供應商類實例化并根據商品的類型請求有關供應商信息。 (7)供應商類實例化對象加載供應商信息并提供給訂貨管理界面。(8)訂貨員通過訂貨管理子系統中的訂貨管理界面制作相關訂單。(9)訂貨管理界面制作相關訂單并顯示給訂貨員。 5.商品狀態圖 ? 在超市信息管理系統中,我們將有明確狀態轉換的類進行描述,以下我們以商品的狀態圖為例,簡單進行說明。? 商品包含以下的狀態:剛被購買還未入庫后的商品、被添加能夠出售的商品、商品被出售、商品被回收。它們之間的轉化規則是: (1)剛被購買后的商品可以通過庫存管理員添加成為入庫的商品。(2)當入庫商品被出售,商品處于被銷售狀態。(3)當商品由于過期、損壞等因素造成的不合格時,商品被剔除。 6.員工驗證登錄活動圖 ? 在利用系統的活動圖來描述在超市信息管理系統中的參與者如何協同工作時,我們還可以建立相關參與者的活動圖進行說明。以下我們以員工驗證密碼為例進行說明。? 我們可以通過以下的方式描述員工驗證登錄的活動:(1)員工需要通過身份驗證后進入相關子系統才能夠進行相關操作。 (2)首先,系統運行后系統進入初始化登錄界面。(3)員工輸入自己的用戶名稱和密碼。 (4)登錄界面對用戶輸入的用戶名稱和密碼進行判斷。(5)如果是合法的用戶,則系統對用戶的權限進行判斷,員工進入相關的管理界面,登錄成功。 (6)如果是非法的用戶,系統提示用戶名稱或密碼錯誤,登錄失敗。 五:創建系統部署模型 1.系統構件圖 在超市信息管理系統中,我們通過構件映射到系統的實現類中,說明該構件物理實現的邏輯類。例如,在超市信息管理系統中,我們可以對商品類和供應商類分別創建對應的構件進行映射。 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)根據不同的目的取得不同的商品權限。 《小型超市管理系統》需求分析報告 小型超市管理系統需求分析 1.引言 1.1 編寫目的 自改革開放以來,社會市場經濟不斷發展,人們生活水平不端提高,由小型小賣部、小型零售商等小而雜的商店逐漸演變成今天市區里我們無處不在東西品種繁多的價格便宜的大小中型流行超市。超市之流行是以顧客自選方式經營的大型綜合性零售商場。又稱為自選商場,大大方便了人們購物,為大量忙碌的工作人員節省了大量的時間。 本系統采用microsoft visual C# 2010程序設計及SQL Sever 2005數據庫管理知識進行功能的實現。能夠提高超市信息管理系統各項工作地效率和質量,改善經營管理,減輕各類事務性工作的工作量,使超市的職員能夠更輕松并且更好地服務于顧客,保證顧客的購物需求,同時也間接地為超市帶來更多的盈利。最終達到為超市服務的效果。 1.2 項目風險 具體說明本軟件開發項目的全部風險承擔者,以及各自在本階段所需要承擔的主要風險,首要風險承擔者包括: 任務提出者: 軟件開發者: 產品使用者:面向小型超市、小型零售店 本系統無風險,為學生作品。 1.3 預期讀者和閱讀建議 列舉本軟件產品需求分析報告所針對的各種不同的預期讀者,例如,可能包括: 用戶; 1.開發人員; 2.銷售經理; 3.庫存管理員;4.商品錄入人員。 5.系統使用者(經營中小型超市法律主體)6.收銀人員; 并且描述了文檔中,其余部分的內容及其組織結構,并且針對每一類讀者提出最適合的文檔閱讀建議。 《小型超市管理系統》需求分析報告 1.4 產品范圍 本軟件適合于中小型超市管理用于采購管理、銷售管理,庫存管理及財務管理及商品數據錄入,修改、查詢。我們不僅能夠快而準的知道我們的一天的進出貨及銷售情況,又能夠準確無誤的生成知道我們想要擁有的銷售報表、季銷售報表、年銷售報表。通過一些基本查詢功能,查詢自己想要的結果,知道自己的盈利情況。通過此系統,我們能夠及時查詢到我們的存貨情況,通過系統警報及時補缺商品。 1.5 參考文獻(具體開發過程中外加參考資料) 列舉編寫軟件產品需求分析報告時所用到的參考文獻及資料,可能包括: 1.百度文庫(小型超市管理系統) 本項目的合同書; 上級機關有關本項目的批文; 本項目已經批準的計劃任務書; 用戶界面風格指導; 開發本項目時所要用到的標淮; 系統規格需求說明; 使用實例文檔; 屬于本項目的其它己發表文件; 本軟件產品需求分析報告中所引用的文件、資料; 相關軟件產品需求分析報告; 為了方便讀者查閱,所有參考資料應該按一定順序排列。如果可能,每份資料都應該給出: 標題名稱; 作者或者合同簽約者; 文件編號或者版本號; 發表日期或者簽約日期; 出版單位或者資料來源。 2.綜合描述 這一部分概述了正在定義的軟件產品的作用范圍以及該軟件產品所運行的環境、使用該軟件產品的用戶、對該軟件產品己知的限制、有關該軟件產品的假設和依賴。 本系統采用microsoft visual C# 2010程序設計及SQL Sever 2005數據庫管理知識進行功能的實現。能夠提高超市信息管理系統各項工作地效率和質量,改善經營管理,減輕各類事務性工作的工作量,使超市的職員能夠更輕松并且更好地服務于顧客,保證顧客的購物需求,同時也間接地為超市帶來更多的盈利。最終達到為超市服務的效果。 《小型超市管理系統》需求分析報告 2.1 產品的狀況 超市管理系統,該系統是現有應用軟件的替代品(升級產品);是新一代新型的,自主型的產品。它是一個大系統的組成部分,它與POS機連接在一起收銀及會員及時消費。能夠達到快速提升的收銀效率和一系列的管理有機的結合起來。 2.2 產品的功能 該系統包括:前臺管理(普通收銀部分和會員收銀包括與后臺折扣情況結合起來,達到高效率結算)和后臺管理(銷售管理,存貨管理,財務管理,基本資料管理,每日提醒)。 一.前臺管理: 1.登陸人員管理:使用人員賬號密碼登陸 2.銷售信息管理:添加商品的單價價格以及銷售數量等 二.后臺管理: 1.存貨管理:主要是了解某一類商品的庫存情況,并對商品進行添加、修改、刪除; 2.供貨商管理:記錄供貨商的個人資料(姓名,地址,聯系方式等); 3.基本資料管理:里面包含產品的概況、人員管理、商品管理等。 2.3 運行環境 描述了本軟件的運行環境,一般包括: 硬件平臺; 操作系統和版本:Windows XP 支撐環境(例如:數據庫等)和版本:Microsoft VisualC#和Microsoft SQL Server2005 其它與該軟件有關的軟件組件; 與該軟件共存的應用程序。 2.4 設計和實現上的限制 確定影響開發人員自由選擇的問題,并且說明這些問題為什么成為一種限制。可能的限制包括下列內容: 必須使用的特定技術、工具、編程語言和數據庫; 避免使用的特定技術、工具、編程語言和數據庫; 要求遵循的開發規范和標準; 例如,如果由客戶的公司或者第三方公司負責軟件維護,就必須定義轉包者所使用的設計符號表示和編碼標準; 硬件的限制 例如,定時需求或存儲器限制; 《小型超市管理系統》需求分析報告 數據轉換格式標淮的限制。 2.5 假設和約束(依賴)列舉出對軟件產品需求分析報告中,影響需求陳述的假設因素(與己知因素相對立)。如果這些假設因素不正確、不一致或者被修改,就會使軟件產品開發項目受到影響。這些假設的因素可能包括: 計劃使用的商業組件,或者其它軟件中的某個部件; 假定產品中某個用戶界面將符合一個特殊的設計約定; 有關本軟件用戶的若干假定(例如:假定用戶會熟練使用SQL語言。); 有關本軟件開發工作的若干假定(例如:用戶承諾的優惠、方便、上級部門給予的特殊政策和支持等。); 有關本軟件運行環境的一些問題; 此外,確定本軟件開發項目對外部約束因素所存在的依賴。有關的約束可能包括: 1.工期約束; 2.人員約束; 3.設備約束; 4.地理位置約束; 其它有關項目約束; 3.外部接口需求 3.1 用戶界面 3.1.1 用戶登錄界面 用戶名 密碼 組件:文本框、標準按鈕 快捷鍵:Enter鍵 《小型超市管理系統》需求分析報告 3.1.2商品信息管理 商品的增、刪、查、改 存貨管理界面 庫存錄入 《小型超市管理系統》需求分析報告 存貨查詢 組件:文本框、標準按鈕、消息框、數據網格 基本資料管理界面 產品概況 人員管理 供應商管理 商品管理 組件:標準按鈕、文本框、數據網格、下拉列表框 《小型超市管理系統》需求分析報告 3.2 軟件接口 描述該軟件產品與其它外部組件的連接,這些外部組件必須明確它們的名稱和版本號以資識別,可能的外部組件包括: 操作系統:Windows XP; 數據庫:Microsoft SQL Server2005; 工具:Microsoft Visual C# 2010; 函數庫; 集成的商業組件:中間件; 4.系統功能需求 4.1 用戶登錄 用戶登錄界面主要提供用戶的登錄。 4.2 前臺管理 4.2.1 人員管理 提供用戶的注冊、注銷、修改以及刪除。 《小型超市管理系統》需求分析報告 4.2.1 銷售管理 提供商品銷售的信息,以便及時補貨。 4.3 后臺管理 4.3.1 存貨管理 存貨管理提供了庫存的錄入、查詢、修改登錄功能,還包括缺貨提醒的提醒功能。 1.庫存錄入,包括庫存的添加、刪除、修改等功能提供添加舊商品或添加新商品的選擇功能。 2.存貨查詢,主要提供庫存的查詢功能 4.3.2 銷售信息管理 《小型超市管理系統》可行性報告 曹劍濤李成軍 目錄 一、前言...................................................................................................................................3 二、系統建立的背景及意義:...............................................................................................3 三、項目開發目標、系統功能...............................................................................................4 1.開發目標:............................................................................................................................4 2.系統功能................................................................................................................................4 四、ER圖................................................................................................................................5 五、數據流程圖.......................................................................................................................5 六、系統可行性分析...............................................................................................................6 (1)可行性研究.....................................................................................................................6(2)系統實施運行的可行性:.............................................................................................7(3)、技術可行性分析...........................................................................................................7(4)、社會可行性、法律可行性分析...................................................................................7(5)、用戶操作可行性...........................................................................................................7(6)、經濟可行性分析...........................................................................................................8 七、結論意見...........................................................................................................................8 一、前言 如今我們的生活越來越離不開超市,超市已經是我們的生活的一部分。超市需要處理大量的庫存信息,還要時刻更新產品的銷售信息,不斷添加商品信息。面對不同種類的信息,需要合理的數據庫結構來保存數據信息,需要有效的程序結構支持各種數據操作的執行。讓管理人員對超市的進貨情況、銷售情況和庫存情況了如指掌,進而能更好的對商品進行調度。可以加大人力工作的效率和商品的進出貨效率并且可以減輕使用者繁雜的工作。 可行性研究的目的是為了對問題進行研究,以最小的代價在最短的時間內確定問題是否可解。再經過對此項目進行詳細調查研究,初步擬定系統的實現報告,對軟件開發中將要面臨的問題及其解決方案進行初步設計及合理安排。明確開發風險及其所帶來的經濟效益。通過可行性研究,該計劃是否應該執行,便顯而易見。 二、系統建立的背景及意義: 超市是一個我們很熟悉的詞語,在我們生活中經??梢钥吹?,21世紀,全球市場經濟和現代信息技術的不斷發展,人民的生活不斷提高,以及人們消費需求的不斷豐富,商品種類多樣化日漸增多。消費水平提高,超市這樣的零售商之間的競爭也日益激烈,競爭已不再是規模的競爭,而是技術的競爭、管理的競爭、人才的競爭。技術的提升和管理的升級是超市業的競爭核心。商家不斷采取各種銷售手段吸引顧客眼球,也因而工作量增大,增多。在價格懸殊不大,商品種類類似,規模實力等同的情況下,高效率,高質量,低成本,低損失等等則成為了競爭的優勢。而超市的進貨、銷售、存貨、數量、種類、商品出庫以及員工等等都是影響這些的重要因素。然后,這些信息,量大而復雜,想要得到合理安排處理需要有很大的工作量,靠傳統的人工管理方式效率低,而且容易出錯,并且經常會導致重復工作,浪費時間,在人力資源上來說也是一種浪費。影響了超市的工作效率,錯誤率高,浪費成本。在此情況下如何使用現代化的工具,使企業和經營者個人在最小的投入下獲取最大的回報。成為每一個人的夢想。因此,在超市管理中引進現代化的辦公軟件,就成為時下最好的解決辦法。超市銷售管理信息系統的開發和應用是非常必要的,它能夠簡便快速的記錄倉庫存貨、銷售以及進貨情況;及時了解庫存商品種類、數量,和所售商品種類、價格、數量;它還可以統計核算日常的不斷變化的數據,并登記有關文件;在當天匯總時修改相應文件,如總金額、總數量等;并且可以根據日常統計,制作月統計,并制作月報表;并且利用它,我們可以了解人員的調配使用狀況,避免人員閑置或者人員緊張的狀況;另外可以通過它合理安排商品出庫順序及日期,避免商品過期浪費的情況發生。這一切都大大提高超市的經濟效益。 三、項目開發目標、系統功能 1.開發目標: 為超市提供方便,快捷的結賬體系; 為超市提供準確,高效的庫存和財務管理系統; 為超市管理人員提供強大的管理和統計商品,資金的功能。 2.系統功能 A功能 ① 記錄倉庫存貨、銷售以及進貨情況 ② 了解超市進貨渠道、商品單價、數量 ③ 了解庫存商品種類數量,所售商品種類、價格、數量 ④ 統計核算日常的不斷變化的數據,并登記有關文件 ⑤ 分項顯示銷售商品后開出的發票的內容,并且詳細顯示商品價格數額 ⑥ 在當天匯總時修改相應文件,如總金額、總數量 ⑦ 根據日常統計,制作月統計,并制作月報表 四、ER圖 用戶名密碼商品總額銷售價格商品名稱員工銷售日期銷售顧客商品編號銷售數量庫存管理供貨價格銷售價格庫存數量商品名稱商品進貨供應商商品編號進貨價格商品編號商品名稱供應商電話供應商編號供應商名稱 五、數據流程圖 預售商品付款訂貨單供貨單小型超市管理系統與訂貨單不符的供貨單購貨款顧客商品發票供貨廠商 六、系統可行性分析 (1)可行性研究 超市需要一套管理信息系統,能夠從進貨開始,實現進貨,上架,銷售,庫存,財務,人力資源等等一系列信息的全面管理。通過系統實現各部門的分工合作,信息共享。是原來管理更加系統,更全面,更快捷。 根據超市的狀況,迫切需要一套超市銷售管理系統。主要有兩個選擇: 1.購置商品化的系統 2.根據自身實際情況,自行開發軟(2)系統實施運行的可行性: 各部門人員都已熟練掌握計算機的基本使用方法和操作技能,可以對新的系統進行管理,和操作。 (3)、技術可行性分析 1.信息系統開發方法。在開發小組中有熟練掌握面向對象開發軟件系統的資深系統分析員和程序員,在信息系統開發方法上不存在任何問題。 2.網絡和通訊技術開發小組有專門的網絡技術人員,有N年的大型網絡組網經驗。3.C/S結構規劃和設計技術開發小組有豐富的C/S開發經驗。4.數據庫技術有專業開發數據庫的團隊。 5.Java開發技術開發小組的所有成員均可熟練使用Java編程。綜上,在技術方面本系統開發完全可行。 (4)、社會可行性、法律可行性分析 本團隊開發的超市管理信息系統符合社會需求,社會的發展也需要超市管理的現代化和信息化。且本團隊開發的系統與國家的法律法規不存在任何的抵觸之處。且符合工作人員的操作習慣。 (5)、用戶操作可行性 超市的經營者大多具備電腦基本操作知識,對于必要的專業操作經短期培訓即可;管理基礎工作和各項管理制度比較健全,執行嚴格,原始數據采集完整,保存良好。 ● 操作簡單:簡單的操作規則使操作人員能輕松掌握。● 查詢方便:用戶可設定任意條件和任意的查詢項目進行檢索。 ● 統計靈活:任意條件下任意項目的產品入庫時間、數量等的統計及查詢項目均可進行交叉統計。(6)、經濟可行性分析 傳統的人工管理方式效率低,而且容易出錯,并且經常會導致重復工作,浪費時間,在人力資源上來說也是一種浪費。影響了超市的工作效率,錯誤率高,浪費成本。在此情況下使用超市管理系統,超市管理系統的投入,能夠提高工作效率,減少工作人員,從而減少人力資本的投入,使企業和經營者個人在最小的投入下獲取最大的回報,小型超市網絡設施健全,各部門電腦配置齊全,硬件投入不需要很大,只需要在技術上投資。大型連鎖超市的資金雄厚,總部積極支持系統開發,由此可見,在超市使用此系統所獲得的收入遠大于項目開發所需要的費用,也就是超市盈利遠大于開發費用,以最小的代價獲得最高的收益。,從經濟角度來說,本系統開發完全必要,在經濟上可行。 七、結論意見 經過一系列的各個不同方面的可行性分析,從經濟,操作,技術,和社會等各方面的可行性分析,可以確定本系統是完全有必要的,且是可行的,應當立項開發。第二篇:小型超市管理系統
第三篇:小型超市管理系統設計說明書
第四篇:小型超市管理系統需求分析
第五篇:小型超市管理系統可行性報告