小型自选商场商品管理课设报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
武汉工业学院《数据库系统》课程设计说明书
设计题目:小型自选商场商品管理
姓名:周翔
学院:数学与计算机学院
专业:计算机大类1003班
学号:100511310
指导教师:林菁
2012 年6 月8 日
一、读书笔记
Jigloo:Eclipse 的GUI 构造器
Jigloo 是一个Eclipse 插件,使您可以快速构建在Java™ 平台上运行的复杂图形用户界面(GUI)。它可用于构建基于Swing 的应用程序和基于Standard Widget Toolkit (SWT) 的应用程序。它是一个易于使用的可视化编辑器,因此您可以为桌面应用程序快速创建UI。在本教程中,将构建一个简单的工作流应用程序并将使用Jigloo 创建它的UI。了解开始使用Jigloo 并进而使用其高级功能(例如可视化继承)是多么轻松。
如果您以前开发过Swing 或SWT 应用程序,则可能熟悉多种可用的布局管理器。布局管理器一直都是Java GUI 应用程序的强大功能。对GUI 布局时,布局管理器将允许应用各种算法。Java 的座右铭一直都是“编写一次,可在任何位置运行”,并且这些布局算法都是与这个座右铭一致的。不管显示GUI 的屏幕或窗口的几何尺寸如何,这些布局算法都允许GUI 应用程序的布局正常运行。
这些布局算法惟一的弊端是它们向开发人员呈现一种学习曲线,尤其是那些曾经使用绝对定位元素的其他平台的开发人员。使用绝对定位,您只需将组件放置在屏幕上的所需位置,并且那就是它将在的位置。此类布局的问题在于当屏幕尺寸发生改变时它会被“破坏”。
Jigloo可以帮助你快速开发UI界面,当你用在Jigloo设计框中画出你想要的界面时,后台会自动生成相应的代码,在本次试验中,我负责前台界面的开发与制作,Jigloo工具给我提供了很大的方便。
二.设计要求
对小型自选商场的商品进货、销售、库存等环节进行管理
三.需求分析
3.1信息要求
本系统包含商场库存基本信息,供应商基本信息,进货单记录信息,销售单记录信息以及操作员权限信息等。
3.2功能要求
本系统要求能对小型自选商场的商品进货、销售、库存等环节进行管理。主要有:
1)能记录每一笔进货,查询商品的进货记录,并能按月进行统计。
2)能记录每一笔售货,查询商品的销售情况,并能进行日盘存、月盘存。
3)在记录进货及售货的同时,必须动态刷新库存。
4)能查询某个厂商或供应商的信息。
5)设计收银台程序,能根据输入的商品编号、数量,显示某顾客所购商品的清单,并显示收付款情况。
3.3可行性分析
系统数据库采用目前比较流行的MySQL,开发本地数据库。该数据库系统在安全行、准确性、运行速度方面有绝对的优势,并且处理数据库量大,效率高;开发工具采用eclipse。Eclipse中的GUI可以快速创建界面。本次开发我用了eclipse中的一个插件Jigloo开发界面,手动画出需要的界面,代码自动生成。
1.设计模式:
○1人员表(职工编号、密码、职工姓名、职位、工资)
○2进货表(顺序码、条形码、进价、采购数量、采购日期、职工编号)
○3售货表(顺序码、条形码、数量、零售价、销售日期、职工编号、一次交易每
种商品总价)
○4库存表(条形码、商品名称、库存量、生产厂商、商品规格、零售价)
2.E-R图:
总体功能图:
四.各功能模块详细设计
1)用MySQL可视化工具分别创建雇员表(employee)、进货表
(in_goods)、售货表(sale)、库存表(storage)四张表,并建立各种约束条件。
建立的个如下图:
雇员表(employee):
进货表(in_goods):
售货表(sale):
库存表(storage):
五.前台界面的设计与实现
在这个模块中,主要有两个操作:“登陆”和“退出”。
1) 登录模块
“登陆”主要是将输入的编号、密码和数据库中的数据进行校验,如果数据库中存在则允许登陆,否则不能登陆。主要代码如下:
q.initSQLLink(null, null, null);
q.setRs(q.getStmt().executeQuery("select * from employee"));
while(q.getRs().next()){
if(jTextField_id.getText().equals(q.getRs().getString("eid")) && pwd.equals(q.getRs().getString("pwd"))){
setVisible(false);
if(q.getRs().getString("job").equals("saler")){
JFrame_saler jf_s = new JFrame_saler();
jf_s.setLog_eid(jTextField_id.getText());
}else if(q.getRs().getString("job").equals("buyer")){ NewJFrame_buyer njb = new NewJFrame_buyer();
njb.setLog_eid(jTextField_id.getText());
}else if(q.getRs().getString("job").equals("administrator")){ NewJFrame_adm nja = new NewJFrame_adm();
nja.setLog_eid(jTextField_id.getText());
}
dispose();//关闭本窗口
System.gc();//建议垃圾回收机制回收本窗口
flag = false;
}
}
if(flag){
JOptionPane.showMessageDialog(null, "您输入的编号与密码有误,请您重新输入!");
jTextField_id.setText("");
jTextField_password.setText("");
flag = true;