Java超市管理系统Word文件下载.docx
《Java超市管理系统Word文件下载.docx》由会员分享,可在线阅读,更多相关《Java超市管理系统Word文件下载.docx(51页珍藏版)》请在冰豆网上搜索。
操作难度小,易学易用。
第2章系统功能介绍
2.1系统功能总框图
小超市管理系统是一个专门针对小型的商店和超市的智能化、自动化的管理系统。
其功能总框图如图2-1所示。
图2-1系统功能总框图
2.2本系统模块功能介绍
2.2.1登录功能介绍
登录功能是进入系统必须经过的验证过程,其主要功能是验证使用者的身份,确认使用者的权限,从而在使用软件过程中能安全地控制系统数据,即不同的工作人员有不同的权限,每个使用人员不得跨越其权限操作软件,可以避免不必要的数据丢失事件发生。
登录的界面如图2-2所示:
图2-2登录的界面
2.2.2商品销售功能介绍
销售界面是本系统直接供销售的店员应用的专管销售功能的界面,首先要查询欲购买的商品,在左侧的查询框内输入商品代号,然后点击搜索按钮,相应的商品信息将显示在“商品信息”一栏中,确认是此商品后点击购买,购买的商品将出现在下面的购物信息一栏中,当所有欲购买的商品都已输入好,点击提交,购买的商品信息将记录到数据库中。
若输入有误,点击清除按钮,刚输入的信息将被清除,可重新输入。
界面的右下方右商品总价的标签,可以时时地显示已购买商品的总价,以供参考。
商品销售功能的主界面如图2-3所示:
图2-3销售窗口的主界面
2.2.3用户管理功能介绍
用户管理功能是管理人员使用的界面。
管理人员可以使用此功能管理所有登录用户的信息。
可以修改所有用户的帐号和密码,设置用户的权限,删除用户的帐号;
对于已存在的用户技术管理员可以查询他们的信息,在下面的显示用户信息处显示。
添加、修改、删除等操作后,单击“刷新”后,新的更改信息才可以在下面的用户信息显示处显示。
用户管理的主界面如图2-4所示:
图2-4用户管理的主界面
2.2.4销售管理功能介绍
销售管理功能主要是老板查看超市商品销售情况。
老板可以根据已售出的商品号查询该商品的信息,如可以查询该商品已售出的总数量。
还可以根据销售的账单号查询,就是在消费者每一次购买商品时,就分配一个账单号,如出现消费者退货情况时,老板可以查询账单号解决。
“按编号查询”输入商品的编号,在下面的商品信息处显示该商品的信息;
“按账单号查询”输入商品的账单号,在下面的商品信息处显示该商品的信息。
销售管理功能的主界面如图2-5所示:
图2-5商品管理功能主界面
2.2.5商品管理功能介绍
商品管理的功能是店员在进货、商品信息维护时所需要的界面,此界面功能是管理所有商品的信息,在这里可以添加、修改、删除任意商品信息,做到对商品信息的及时维护。
应用时,对应按钮的功能,进行应用,维护方便。
商品管理功能的主界面如图2-6所示:
图2-6商品管理系统的主界面
2.3组内任务分工
组内人员分工如表2-1所示:
表2-1组内分工
组内分工
姓名
主要任务
成绩
组长
王浩
数据库的设计、商品管理和用户管理等功能
组员
魏兴龙
销售管理界面及功能
王潇伯
商品销售界面及功能
夏恩亮
权限销售界面及功能
第3章数据库设计
在每个管理系统中都一定有储存机制,若单单以文件形式储存,查找和存储时速度比较缓慢,会降低系统的整体运行速度,一定要运用数据库的进行信息管理,所以我们的“小超市管理系统”运用了MicrosoftAccess数据库,存储其后台数据。
下面将介绍本系统的数据库设计。
3.1数据库需求分析
此系统需要有两个实体,账户和商品。
数据项如表3-1和3-2所示。
表3-1用户信息数据项
数据项名
数据项含义说明
别名
数据类型
长度
ID
用户登录的帐号
Id
字符型
50
PASSWORD
用户登录帐号对应的密码
Psw
PERSONTY
登录用户的权限
Pst
表3-2商品信息数据项
NUM
商品的编号
编号
NAME
商品的名称
名称
TIME
商品的进货时间
货时
ADD
商品的生产地址
产地
PRICE
商品的单价
价格
整型
COUNT
商品的库存数量
数量
3.2数据库概念结构设计
根据需求分析设计出E-R图如图3-1所示:
图3-1系统E-R图
3.3数据库表的设计
Password表,其中存储的是用户的帐号、密码及权限,用于登陆系统时确认身份。
此表设计如3-3表所示:
表3-3Password信息表
字段名称
长度
备注
文本
Goods表,其中存储的是商品的详细信息,作用是记录商品的信息及在本超市中的数量。
此表设计如3-4标所示。
表3-4Goods信息表
整型
Information表,其中存储的是顾客在超市中的消费情况,其中有帐单号、商品代号、数量及总价,用来记录超市中销售情况,此表设计如3-5表所示。
表3-5Information信息表
长整型
销售的每件商品有不同的编号
LISTNUM
每提交一次帐单帐单号增加1
GOODSNUM
ALLPRICE
每个帐单的最后合出此帐单的总价
第4章系统功能实现
4.1登录功能实现
登录界面是使用者在使用此软件时需要输入自已的账号和密码,从而使用自已的权限来管理超市的运行。
小超市登录界面如4-1所示。
图4-1小超市管理系统登录界面
模块核心代码:
publicclassLoginextendsFrameimplementsActionListener,WindowListener//登陆界面
{
publicintscreanWidth,screanHeight;
Stringidin=null;
Stringkeyin=null;
StringpasswordD=null;
publicstaticStringpersontyD=null;
MenuBarmenubar;
Menumenu;
MenuItemquet,help;
Labelid,key;
TextFieldidtf,keytf;
BoxboxV1,boxV2,boxV3,baseBox,boxx;
ButtonenterB;
Login()
{setTitle("
超市管理系统登陆界面"
);
Toolkittool=getToolkit();
Dimensiondim=tool.getScreenSize();
screanWidth=dim.width;
screanHeight=dim.height;
setBounds(dim.width/3,dim.height/3,320,215);
menubar=newMenuBar();
menu=newMenu("
功能"
help=newMenuItem("
帮助"
quet=newMenuItem("
退出"
quet.setShortcut(newMenuShortcut(KeyEvent.VK_E));
quet.addActionListener(newActionListener()//匿名类实例控制
{
publicvoidactionPerformed(ActionEventp){
System.exit(0);
}});
menu.add(help);
menu.add(quet);
menubar.add(menu);
setMenuBar(menubar);
id=newLabel("
请输入帐号:
"
Label.RIGHT);
key=newLabel("
请输入密码:
idtf=newTextField(10);
keytf=newTextField(10);
keytf.setEchoChar('
*'
enterB=newButton("
登陆"
boxV1=Box.createVerticalBox();
boxV1.add(Box.createVerticalStrut(35));
boxV1.add(id);
boxV1.add(Box.createVerticalStrut(15));
boxV1.add(key);
boxV2=Box.createVerticalBox();
boxV2.add(Box.createVerticalStrut(35));
boxV2.add(idtf);
boxV2.add(Box.createVerticalStrut(15));
boxV2.add(keytf);
baseBox=Box.createHorizontalBox();
baseBox.add(Box.createHorizontalStrut(25));
baseBox.add(boxV1);
baseBox.add(Box.createHorizontalStrut(5));
baseBox.add(boxV2);
baseBox.add(Box.createHorizontalStrut(70));
boxV3=Box.createHorizontalBox();
boxV3.add(Box.createHorizontalStrut(125));
boxV3.add(enterB);
boxx=Box.createVerticalBox();
boxx.add(baseBox);
boxx.add(Box.createVerticalStrut(15));
boxx.add(boxV3);
boxx.add(Box.createVerticalStrut(70));
add(boxx);
enterB.addActionListener(this);
addWindowListener(this);
setResizable(false);
setVisible(true);
}
publicvoidactionPerformed(ActionEvente)
{Connectioncon;
Statementsql;
ResultSetrs;
if(e.getSource()==enterB)
{idin=idtf.getText();
keyin=keytf.getText();
try{Class.forName("
sun.jdbc.odbc.JdbcOdbcDriver"
catch(ClassNotFoundExceptionf)
{System.out.println("
+f);
}
try
{con=DriverManager.getConnection("
jdbc:
odbc:
q"
"
sql=con.createStatement();
rs=sql.executeQuery("
SELECT*FROMpasswordwhereID='
+idin+"
'
while(rs.next()){
passwordD=rs.getString
(2);
persontyD=rs.getString(3);
con.close();
catch(SQLExceptiong)
{System.out.println(g);
if(keyin.equals(passwordD))
{View2frame=newView2();
this.setVisible(false);
else{JOptionPane.showMessageDialog(this,"
帐户或密码错误\n请重新输入"
提示"
JOptionPane.WARNING_MESSAGE);
}}}
publicvoidwindowActivated(WindowEvento)
{validate();
publicvoidwindowDeactivated(WindowEvento)
{setBounds(screanWidth/3,screanHeight/3,320,215);
validate();
publicvoidwindowClosing(WindowEvento)
{dispose();
publicvoidwindowClosed(WindowEvento)
{System.exit(0);
publicvoidwindowIconified(WindowEvento)
{}
publicvoidwindowDeiconified(WindowEvento)
validate();
publicvoidwindowOpened(WindowEvento){}
4.2销售界面功能介绍
该功能是此系统的最关键的模块,是消费者直接使用的功能。
消费者可以根据已看到的商,在搜索栏中打入商品的编号,进行查询商品的信息,然后可以依椐自已的需要购买。
最后单击提交,购买的商品就记录到系统的数据库中。
销售的主界面如图4-2所示:
图4-2销售的主界面
4.2.1搜索商品的信息
消费者可根据自已所需要的商品编号,在销售功能中搜索,查看商品的信息无误后,确定是否购买。
如搜索001号商品,查看它的信息,如图4-3所示。
图4-3搜索001号商品的信息
4.2.2购买商品
在确定自已需要的商品后,然后就是购买商品,消费者可以按“购买”键进行购买物品,购买一份就单击一次“购买”键,购买物品的信息显示在购物信息框中,最后单击“提交”,消费者所购买的物品就作为一个账单号存储在数据库中。
如购买004、005、006、008、010和011号商品时,购买信息如图4-4下:
图4-4购买信息
当购买人不想购买这些商品时,可以点击窗口左下角的清除按钮,来清除刚才购买的商品,数据库中也不会有此记录。
此外,本系统是每购买一件商品向数据库提交一次记录,当未点击提交按钮之前,若要结束此窗口进程,我们在代码中嵌入了一段删除当前帐单的数据库记录代码,以达到没有误提交的操作。
4.2.3模块的核心代码
⑴销售界面的实现
publicclassView2extendsJFrameimplementsActionListener//销售界面
Stringnum=null,name=null,time=null,add=null,t1=null,t2=null,t3=null;
intprice=0;
intn1,n2,ap,n3;
privateJPanelsM=newJPanel();
//supermarket面板
privateJButton[]pS={newJButton("
销售界面"
),newJButton("
销售管理"
),
newJButton("
商品管理"
权限管理"
)};
//personty按钮
privateJTextAreagoodsShow=newJTextArea(),searchShow=newJTextArea();
//文本区
privateJScrollPanejsp=newJScrollPane(goodsShow);
//滚动区域设定内容为商品显示的文本区
privateJTextFieldnumSearch=newJTextField(),showGoods=newJTextField();
//商品查询/显示商品
privateJButtonsearchGoods=newJButton("
搜索"
),buyGoods=newJButton("
购买"
),
clean=newJButton("
清空"
),ok=newJButton("
提交"
),print=newJButton("
打印并提交"
//查询按钮
privateJLabel[]goodsInformation={newJLabel("
商品编码"
JLabel.CENTER),newJLabel("
商品名称"
JLabel.CENTER),
newJLabel("
商品价格"
生产日期"
生产地"
JLabel.CENTER)};
privateJLabel[]goodsI={newJLabel("
JLabel.CENTER)};
privateJLabelallPrice=newJLabel("
商品总价:
\n"
JLabel.LEFT),label1=newJLabel("
商品信息"
JLabel.RIGHT),label2=newJLabel("
购物信息"
JLabel.RIGHT);
publicView2()
{
sM.setLayout(null);
for(inti=0;
i<
4;
i++)
{
pS[i].setBounds(550+i*110,50,100,22);
sM.add(pS[i]);
pS[i].addActionListener(this);
}
jsp.setBounds(100,180,800,500);
goodsShow.setLineWrap(true)
numSearch.setBounds(100,50,150,22);
searchGoods.setBounds(260,50,60,22);
searchGoods.addActionListener(this);
buyGoods.setBounds(330,50,60,22);
buyGoods.addActionListener(this);
showGoods.setBounds(100,120,800,22);
for(intb=0;
b<
5;
b++)
goodsInformation[b].setBounds(100+160*b,87,160,30);
sM.add(goodsInformation[b]);
goodsI[b].setBounds(100+160*b,150,160,30);
sM.add(goodsI[b]);
clean.setBounds(100,690,100,22);
clean.addActionListener(this);
ok.setBounds(690,690,100,22);
ok.addActionListener(this);
print.setBounds(800,690,100,22);
p