zoukankan      html  css  js  c++  java
  • 超市账单管理系统设计思路

    一.设计需求

    图1
    注意事项:
    1.登录界面应该有用户名和密码非空验证,登录错误有错误信息提示;
    2.根据用户权限不同,左侧菜单树展示内容不同(普通用户和管理员之分),普通用户只能修改自己账户的信息,不能修改其他用户信息;
    3.管理员不能添加和修改账单信息,但是可以删除账单信息;
    4.账单、供应商和用户模块都具有组合查询功能(模糊查询);
    5.账单、供应商、用户和修改密码页应具有格式验证功能(js实现);
    6.关键操作应该具有提示功能(删除,修改,增加);
    7.浏览信息表信息时,各功能框不可修改(锁死);
    二.设计素材分析
    1.前端页面及样式已经提供:

    图2
    分别为:登录页面(login.html),系统主页面(admin_index.html:该页面使用HTML框架技术,分别由页面头部(admin_top.html),页面左侧(admin_left.html),页面右侧(实际自行添加admin_right页面,素材暂时使用admin_bill_list.html替代)),账单列表页面(admin_bill_list.html),账单增加页面(modify.html),供应商列表页面(providerAdmin.html),供应商增加页面(providerAdd.html),用户列表页面(userAdmin.html),用户增加页面(userAdd.html)。
    2.数据库代码分析:
    --创建供应商表
    create table provider(--供应商管理:provider
    providerID number primary key,--编号
    providerName varchar2(30),--供应商名称
    providerDesc varchar2(100),--供应商描述
    contact varchar2(20),--联系人
    phone varchar2(20),--电话
    address varchar2(50)--地址
    );
    --创建用户表
    create table users(--用户管理:users
    userID number primary key,--编号
    userName varchar2(20),--用户名称
    userPassword varchar2(20),--用户名密码
    gender varchar2(2),--性别
    age number ,--年龄
    phone varchar2(20),--电话
    address varchar2(50),--地址
    auth number--权限
    );
    --创建账单表
    create table bill(--账单管理:modify
    billID number primary key,--账单编号:
    goodname varchar2(20),--商品名称
    goodnumber number,--商品数量
    goodunit varchar2(10),--商品单位
    payMoney number,--交易金额
    payStatus number,--是否付款(0:否;1:是)
    providerID number references provider(providerID),--供应商编号 外键
    usersID number references users(userID),--用户编号 外键
    goodDescription varchar2(100),--商品描述
    billDate date --账单时间
    );
    --创建三张表对应的序列
    create sequence sep_provider
    start with 0
    minvalue 0;
    create sequence sep_users
    start with 0
    minvalue 0;
    create sequence sep_bill
    start with 0
    minvalue 0;
    根据数据库的实际情况创建对题的实体类。
    三.设计思路
    1.本项目的系统框架结构:MVC架构
    模型(Model ):
    实现数据操作和业务处理,它对应的组件就是JavaBean,模型能够提供和处理数据,它的代码能被其他组件调用,可以达到代码重用的目的。
    对应与本项目中的entity,util,dao和service包。
    视图(View):
    显示信息与用户交互的界面,它对应的组件是JSP页面或者HTML文件,视图一般不处理用户的请求,它只显示数据并接收用户的操作。
    控制器(Control):
    它的作用是接收请求,调用模型实现业务,调用视图显示数据,最终完成操作。
    对应本项目中的servlet。
    2.编写思路
    针对该类型项目,编写思路很清晰:
    (1)首先根据数据库及系统需求,尽可能的全面把模型牵扯的代码编写包成,具体如下:
    参考数据库中表单的属性编写实体类,属性名尽量与数据库表属性一致。本项目中为Bill.java,Providers.java,Users.java;
    因为设计到数据库操作,所以需要BaseDao.java;
    为了实现系统的业务操作,所以需要DAO类和Service类,DAO类具体为BillDao,ProvidersDao,UserDao极其对应的接口实现类,Service类则完成所有DAO类的封装,为控制器所调用。
    注意:编写完成,应先验证各个业务功能是否正确,防止后面系统功能调试时麻烦。

    图3
    (2)JSP页面改造
    针对系统功能的需要大致需要如下JSP页面来实现界面功能:
    登录页面:
    Login.jsp——依照login.html
    主要编写功能js登录验证,登录失败故障信息显示。
    登录成功主界面:
    Admin_index.jsp——依照admin_index.html
    由frameset元素把admin_top.jsp(admin_top.html)、admin_left.jsp(admin_left.html)和admin_right.jsp(新建,欢迎图片)组成。
    注意点:admin_left.jsp会根据用户的权限做相应的显示判断。
    商品账单操作页面:
    bill_list.jsp——依照admin_bill_list.html,主要实现商品信息列表显示。
    Bill_add.jsp——依照modify.html,主要实现商品信息添加的功能(输入验证由js完成)。
    Bill_update.jsp——新建页面,主要显示单个商品的具体信息(input文本框无法编辑),提供修改、删除功能。
    Bill_doupdate.jsp——新建页面,主要完成商品修改信息功能(文本框可以编辑)。
    供应商操作页面:
    Provider_list.jsp——依照providerAdmin.html,主要实现供应商信息列表显示。
    Provider_add.jsp——依照providerAdd.html,主要实现供应商信息添加功能(输入验证由js完成)。
    Provider_update.jsp——新建页面,显示需要修改的供应商信息(文本框不能编辑)。
    Provider_doupdate.jsp——新建页面,完成商品信息的修改(文本框可以修改)。
    用户操作页面:
    User_list.jap——依照userAdmin.html,显示用户信息列表。
    User_add.jsp——依照userAdd.html,实现用户增加功能。
    User_update.jsp——新增页面,实现单个用户信息显示(文本框不能编辑)。
    User_doupdate.jsp——新增页面,编辑单个用户信息。
    Password_update.jsp——新增页面,修改用户密码功能。
    Common.jsp——实现页面正常登录判断功能。
    注:以上页面的数据提交均指向servlet类,如下所示:

    图4
    数据操作指向servlet文件,并携带op参数,op参数负责引导相应的具体操作。
    (3)servlet编写
    servlet可由商品列表、供应商和用户独立的servlet组成,也可以由一个组合的servlet组成,针对复杂系统,建议编写单元模块功能的servlet。
    通过不同的op标志位信息,servlet选择不同的逻辑操作,通过serviceImpl对象实现相应的增删改查动作,完成页面上的功能。

    组合查询知识点:
    Sql语句:select * from provider where providername like '%查询信息1%' and providerdesc like '%查询信息2%';(查询信息可以为空)

    Java实现方式:

    图5
  • 相关阅读:
    windows下部署MySQL 8.0.11
    基于beego构建Restful API服务
    Go 并发
    Go语言的面向对象(OOP)
    Go基础语法纪要
    软件工程基础图式(第四章 系统设计-面向过程的系统设计)
    概率论与数理统计图式(第三章 多维随机变量)
    编译技术图式(第四章 语法分析)01文法和语法的定义
    计算机组成原理和结构图式(第三章 CPU子系统)
    Java图式(第三章 流程控制、数组)
  • 原文地址:https://www.cnblogs.com/archermeng/p/7537541.html
Copyright © 2011-2022 走看看