第一篇:小型超市管理系统设计说明书
小型超市管理系统设计说明书
系统概述
小型超市管理系统的设计对一个超市的运转是十分重要的。改革开放以来,我国逐步进入市场经济,外国企业的进入,给我国的本土经济带来巨大的冲击。因此,为了使我们自身的企业更好地应对外来竞争的压力,我们的企业迫切地需要管理制度的完善。
小型超市管理系统是现存信息系统中较为复杂的一类,这是由超市自身的目标、任务和性质所决定的。它应用于用户权限管理、进货管理、销售管理、顾客管理和用户注册管理等几个方面,牵涉的信息种类较多。这也同时是一款信息查询系统,体现出超市当前的库存商品数量、价格以及销售情况。方便了顾客购买商品,而且对超市的管理、销售、进货以及经理决策起着至关重要的作用。依靠现代化信息处理技术来管理超市,大大节省了人力、物力,改善了员工的工作条件,方便了广大消费者,提高了企业的效率,增加其收益。
超市管理的信息化建设工作具有长期性、复杂性和多变性,所以超市管理系统也不是一个简单的、封闭的、静止的系统,它是会随时间推移在应用广度和深度上逐步变化和发展的系统。需求分析
需求分析分为三个部分:需求的文字表述、数据流图、数据字典。
一、需求分析:
小型超市管理系统的设计的服务对象是广大顾客及超市的管理人员。它涉及的面广、数据量大,如果对整个系统不能很好的
设计,将会给超市的效益带来巨大压力,如何在激烈的竞争中扩大销售额、降低经营成本、扩大经营规模,成为超市努力追求的目标。下面是我们队该系统所做的详细分析:
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.超市信息管理系统是一个面向超市用来进行超市日常信息处理的管理信息系统(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.系统部署图
在超市信息管理系统中,系统包括四种节点,分别是:前台售货节点,售货员使用,负责货物销售;库存管理节点,库存管理员通过该节点进行库存管理和维护;订货管理节点,订货管理员通过该节点进行订货管理;统计分析节点,统计分析员通过该节点进行统计分析;系统管理节点,系统管理员通过该节点进行系统维护和员工信息维护。
第三篇:基于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.引言 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)、经济可行性分析 传统的人工管理方式效率低,而且容易出错,并且经常会导致重复工作,浪费时间,在人力资源上来说也是一种浪费。影响了超市的工作效率,错误率高,浪费成本。在此情况下使用超市管理系统,超市管理系统的投入,能够提高工作效率,减少工作人员,从而减少人力资本的投入,使企业和经营者个人在最小的投入下获取最大的回报,小型超市网络设施健全,各部门电脑配置齐全,硬件投入不需要很大,只需要在技术上投资。大型连锁超市的资金雄厚,总部积极支持系统开发,由此可见,在超市使用此系统所获得的收入远大于项目开发所需要的费用,也就是超市盈利远大于开发费用,以最小的代价获得最高的收益。,从经济角度来说,本系统开发完全必要,在经济上可行。 七、结论意见 经过一系列的各个不同方面的可行性分析,从经济,操作,技术,和社会等各方面的可行性分析,可以确定本系统是完全有必要的,且是可行的,应当立项开发。第四篇:小型超市管理系统需求分析
第五篇:小型超市管理系统可行性报告