基于jsp的小型超市信息管理系统_毕业论文(编辑修改稿)内容摘要:

如果以前存在同名的商品,则在原来的商品的基础上,对数量作出修改。 如果查不到填入的商品名,则在商品表中新建一条记录。 最后,在进货单表中生成相应的进货记录。 4 管理员信息管理模块 在管理员管理欢迎界面,点击“管理员信息管理页面”。 系统跳转至管理员信息管理界面。 在此界面上,可以实现对管理员信息的增删改,在此不再一一赘述。 5 交易信息查看模块 12 顾客每次在超市的消费都会有相应的记录。 由于小型超市规模的限制,不可能大量保存每笔交易的详细信息,因此系统以交易流水号的形式表示每笔交易。 此模块就是供管理员查看交易信息的记录。 由于交易信息是对超市中已存在的交易行为的记录,因此不允许管理员对交易信息进行修改,只能在记录较多时删除某条记录。 6 退出模块 管理员在左侧菜单点击“退出”链接,进入“ 确认退出页面”。 7 购物模块 在开始页面点击“开始购物旅程”链接,跳转到购物页面。 点击一项商品后的添加至购物车链接,会提示添加成功,并选择查看购物车或继续购物。 点击“查看购物车”进入购物车管理页面。 可以实现对购物车中商品数量的修改,查看目前已购买商品的价格总计,或者选择删除购物车中的某项商品,甚至清空购物车。 点击“结账”链接,系统在新页面中会生成一个交易流水号,继续点击“结账”,如果后台保存成功,则提示交易完成,点击链接离开。 商品基本信息表见表 41。 表 41 商品基本信息表 名称 含义 类型 约束 备注 GoodsID 商品 ID Int 20 主键 自动增长 GoodsName 商品名称 Varchar 10 唯一值 GoodsType 商品类型 Int 20 不为空 GoodsPrice 单价 Int 10 不为空 GoodsPurchasePrice 进价 Int 10 不为空 GoodsAmount 商品数量 Int 10 不为空 GoodsGetTime 进货日期 Date 不为空 GoodsMaintainTime 保质期 Int 10 不为空 单位为(天) GoodsFactory 生产厂家 Varchar 50 不为空 13 员工信息表见表 42。 表 42 员工信息表 名称 含义 类型 约束 备注 MemberID 员工 ID Int 20 主键 自动增长 MemberName 员工姓名 Varchar 10 不为空 MemberPassword 员工密码 Varchar 6 不为空 MemberSex 员工性别 Int 1 不为空 1:男 2:女 MemberAge 员工年龄 Int 10 可为空 进货单表见表 43。 表 43 进货单表 名称 含义 类型 约束 备注 Input_ID 进货单 ID Int 50 主键 自动增长 Input_GoodsID 商品 ID Int 20 不为空 Input_GoodsName 商品名称 Varchar 10 唯一值 Input_GoodsType 商品类型 Int 20 不为空 Input_GoodsPrice 单价 Int 10 不为空 Input_GoodsPurchasePrice 进价 Int 10 不为空 Input_GoodsAmount 商品数量 Int 10 不为空 Input_GoodsGetTime 进货日期 Date 不为空 Input_GoodsMaintainTime 保质期 Int 10 不为空 单位为(天) Input_GoodsFactory 生产厂家 Varchar 50 不为空 订单表见表 44。 表 44 订单表 名称 含义 类型 约束 备注 Account__ID 订单 ID Int 20 主键 自动增长 Account_GoodsID 商品 ID Int 20 不为空 Account_Code 交易流水号 Varchar 50 外键 参照Sale 表 code 不为空 Account_GoodsCount 购买商品数量 Int 10 不为空 14 交易单表见表 45。 表 45 交易单表 名称 含义 类型 约束 备注 Sale_ID 交易单 ID Varchar 20 主键 自动增长 Sale_Date 交易日期 Date 不为空 Sale_Accountcode 交易流水号 Varchar 50 不为空 在进行小型超市信息管理系统的数据库设计时,要综合考虑到超市的经营成本,维护成本,员工素质等问题。 因此在设计表时,要尽量做到简洁有效,结构清晰。 过多的外键,约束,甚至于不必要的字段等都是在小型超市设计中所要避免的。 因此在设计商品表时,只涉及了关于货物的基本信息,在人员信息表设计时,只涉及了人员最基本的信息,避免了其他冗杂的字段带来的大量数据空间消耗以及维护上和开发上的困难,从而为商品信息及交易信息的存贮留下了充裕的空间。 当然,随着超市的经营,规模上的扩大在所难免,员工信息,交易记录的复杂度将会日渐上升。 但由于 小型超市信息管理系统采用了 MVC 框架结构,因此在系统升级,表结构改变上相对简单,成本较低。 15 5 系统详细设计与实现 由于小型超市信息管理系统结构比较简单,相对大型的,成熟的超市采用的管理系统来说,无论在系统的性能,结构复杂度,安全性上面都无法与之相比。 因此在进行系统设计时,应尽量做到结构清晰,编码方式合理,代码与系统的可维护性较高。 在本章节中,选取小型超市信息管理系统关键模块进行设计阐述。 主要模块有登录模块,商品信息查看模块,购物车模块三部分。 有关本系统的文件结构见图 51,图 52。 图 51 系统文件结构 16 描述: controller 包主要是存放 servlet 类,实现业务逻辑与功能函数,接受表单传参。 每个 servlet 类都要在 xml 文件中进行注册,以便系统进行调用。 Dao 包主要是存放数据库操作类。 每个 controller 类的功能都是通过 dao 类的函数实现对数据库的操作。 Entity 包主要是存放数据库实体类,每个 java 类都对应着数据中的表,除了shoppingcart 类。 实体类主要是实现接受参数,返回查询结果。 图 52 超市信息管理系统页面 17 描述:小型超市信息管理系统中主要页面包括 , , 等。 主要实现商品信息展示,购物车模块结果。 为框架网页,实现后台管理的主页面布局。 此处为小型超市信息管理系统关键模块的详细描述,并附上相关代码以及截图。 在代码的关键处加以说明,以方便读者阅读。 登录模块 登录流程如图 53。 管理员在登录表单填写用户名,密码,将表单与 Flag 标志提 交至 Servlet。 系 统根 据 XML 文件 的配 置, 调用 相关 的 Servlet 类( )。 Servlet 根据 Flag 的值,调用相应的函数,查询数据库表( member)并进行判断,如果用户名与密码匹配,则跳转到管理页面( ),否则,输出登录失败页面。 L o g i n . j s pM e m b e r C o n t r o l l e r . j a vaM e m b e r _N a m eM e m b e r _P a s s w o rdF L A G = 1L o g i n ( )是 否 存 在M e m b e r表M a n a g e .j s pt r u eL o g i n F a i lf a l s e 图 53 登录 模块流程图 相关代码如下: : form action=?flag=1 name=form1 method=post tr td请输入您的姓名: /tdtdinput type=text name=Member_Name/td /tr tr 18 td请输入您的密码: /tdtdinput type=password name=Member_Password /td /tr trtdinput type=submit name=Submit value=登陆 /tdtdinput type=reset name=Reset value=取消 /td/tr 说明:登录表单中, 将姓名与密码字段 “ name ”属性分别设置为“ Member_Name”,“ Member_Password”,向后台进行参数传递。 点击 submit按钮,按照 action 中的路径调用方法,传递方法的类型为“ post”,将提交至 servlet的 dopost 方法。 : public void login(HttpServletRequest req,HttpServletResponse response){ try{ ToChinese to=new ToChinese()。 Member user=new Member()。 MemberDAO memberdao=new MemberDAO()。 ((Member_Name))。 ((Member_Password))。 Member member=(user)。 if(member==null){ PrintWriter out=()。 (HTML)。 ( HEADTITLE/TITLE/HEAD)。 ( BODY background=+./image/+)。 (h1 align=+center+login fail+/h1)。 ( /BODY)。 (/HTML)。 ()。 ()。 } else{ ().setAttribute(Member, member)。 RequestDispatcher rd=()。 (req, response)。 19 } }catch(Exception e){ ()。 } } 说明: login 方法,接受前台页面传递过来的用户名与密码,并利用编码转换类将用户名转换为 UTF8 编码类型,解决了乱码问题。 实例化一个 MemberDao 类,调用其 Login 方法,返回实体类 Member。 如果返回值为空,则输出登录失败页面。 否则,跳转至管理员管理页面。 Login.() public Member login(Member member)throws SQLException{ String sql=select * from member where MemberName=? and MemberPassword=?。 PreparedStatement psmt=(sql)。 (1, ())。 (2, ())。 ResultSet rs=()。 Member member1=new Member()。 if(()){ ((MemberID))。 ((MemberName))。 ((MemberPassword))。 ((MemberSex))。 ((MemberAge))。 ()。 return member1。 } else{ return null。 } } } 20 说明: Login 方法对数据库进行操作。 首先连接至数据库,利用前台传来的用户名,密码字段对数据库进行查询,以结果集形式进行返回。 并实例化 member 类,将结果集中的数据输出,返回 Member 类型。 相关界面设计见图 54,图 55,图 56。 图 54 超市信息管理系统欢迎界面 图 55 超市管理员登陆界面 21 图 56 登陆失败页面 商品信息查看模块 在 中点击“商品信息管理页面”,链接为 ”?flag=1”。 系统根据 XML 配置文件,调用。 接受到 Flag=1 ,调用 FindAll()方法,查询 MysqL 数据库中 goods 表,查询所有商品信息,返回一个 ListGoods 集合,名为 list。 利用 (goods, list) 将集合存入 request 范围内,然后跳转至商品信息展示页面( )。 在商品信息展示页面,创建一个。 新建一个ListGoods list.。 将 requ。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。