水果售卖系统课程设计
信息科学与工程学院 |
课程设计报告
学 号 201610411209 姓 名 何星林
学 号 201610411227 姓 名 姚永盟
班 级 2016级计科2班
题 目 水果售卖系统
授课老师 袁飞
目录
第1章 概述............................................................................................................................ 2
1.1 课程设计的核心任务................................................................................................... 2
1.2 课程设计工作进程....................................................................................................... 2
第2章 需求分析..................................................................................................................... 3
2.1 用户需求..................................................................................................................... 3
2.1.1 业务需求............................................................................................................. 3
2.1.2 特殊需求............................................................................................................. 3
2.2 可行性分析................................................................................................................. 3
2.2.1 技术可行性......................................................................................................... 3
2.2.2 经济可行性......................................................................................................... 4
2.3 系统功能..................................................................................................................... 4
第3章 概要设计..................................................................................................................... 4
3.1 系统设计模式.............................................................................................................. 4
3.2 系统总体结构............................................................................................................ 15
3.3 持久层设计............................................................................................................... 18
第4章 详细设计与系统实现................................................................................................. 20
4.1 业务逻辑设计与实现................................................................................................. 20
4.2 表现层设计与实现..................................................................................................... 23
4.3 项目难点及解决方案................................................................................................. 27
4.4 典型代码片段与设计过程.......................................................................................... 29
第5章 测试与部署............................................................................................................... 38
5.1 系统测试................................................................................................................... 38
5.2 系统部署................................................................................................................... 43
第6章 课程设计总结............................................................................................................ 45
6.1 系统基本软件度量数据.............................................................................................. 45
6.2 课程设计项目的收获与展望....................................................................................... 45
第1章 概述
正文
1.1 课程设计的核心任务
商业性进销存管理系统软件越来越走进人们的生活,囊括了企业日常经营管理的全过程。商品的采购、销售、库存、管理决策支持等各个环节极大的方便了人们的日常生活。软件帮助系统图文并茂,让用户可以在最短的时间内掌握软件的使用方法。水果销售系统是便于水果销售店家记录水果销售情况的系统,它的内容对于销售者来说都是至关重要的,所以水果销售统应该要为用户提供充足的信息和快捷的查询手段。但是一直以来销售者使用的管理方式存在着许多缺点:它使用传统的人工方式记录销售信息,填写各种表格,过程复杂繁琐,并且效率低下,已然不能满足实际的需求,对信息的查找、更新和维护都面临着不少的困难。但是对于这种相对复杂的信息管理,计算机就能够充分发挥它的优越性,所以使用计算机进行信息管理与信息管理系统的开发密切相关,系统的开发是系统管理的前提。
1.2 课程设计工作进程
4.16-4.20进行需求分析
4.21-5.8进行概要设计
5.9-5.29进行详细设计
5.30-6.19进行测试与部署
6.19进行课程设计总结
第2章 需求分析
2.1 用户需求
2.1.1 业务需求
用户登录:对用户输入的用户名,密码进行验证,验证通过后,该用户可以使用此系统中
自己拥有权限的那部分功能,否则拒绝使用。
商品资料维护:用户修改,删除,新增或查询数据,系统根据用户的操作,对资料进行更新。
商品入库:用户通过录入采购入库单增加采购的货物,并可对采购入库单及其单据中的货物明细进行修改、删除与查询。
销售出库:用户通过录入销售出库单记录销售的货物,并可对销售出库单及其单据中的货物明细进行修改、删除与查询。
2.1.2 特殊需求
库存查询:用户通过组合不同条件,对库存进行查询、盘点。
用户修改密码:用户重新设定自己的密码。
2.2 可行性分析
2.2.1 技术可行性
开发软件使用NetBeans,NetBeans是Sun公司(2009年被甲骨文收购)在2000年创立的开放源代码供开发人员和客户社区的家园,旨在构建世界级的Java IDE。NetBeans当前可以在Solaris、Windows、Linux和Macintosh OS X平台上进行开发,并在SPL(Sun公用许可)范围内使用。
NetBeans包括开源的开发环境和应用平台,NetBeans IDE可以使开发人员利用Java平台能够快速创建Web、企业、桌面以及移动的应用程序,NetBeans IDE已经支持PHP、Ruby、JavaScript、Groovy、Grails和C/C++等开发语言。
2.2.2 经济可行性
现如今网上购物及其便利,水果而又是大家生活中不可或缺的一部分,因此我们作为开发水果售卖系统者,出售给有想在网上售卖水果的商家。
2.3 系统功能
水果销售系统是便于水果销售店家记录水果销售情况的系统,它的内容对于销售者来说都是至关重要的,所以水果销售系统应该要为用户提供充足的信息和;快捷的查询手段。但是一直以来销售者使用的管理方式存在着许多缺点:它使用传统的人工方式记录销售信息,填写各种表格, 过程复杂繁琐,并且效率低下,已然不能满足实际的需求,对信息的查找、更新和维护都面临着不少的困难。但是对于这种相对复杂的信息管理,计算机就能够充分发挥它的优越性,所以使用计算机进行信息管理与信息管理系统的开发密切相关,系统的开发是系统管理的前提。本系统就是为了更好管理学生水果信息而设计的。本系统主要分为五大功能模块,分别为:登录界面、管理员管理模块、用户管理模块、商品浏览模块、购物车管理模块。
用户登录分为管理员登录和用户登录,管理员的授权是在数据库设计时直接插入,管理员可以管理增加修改删除用户信息,为了保证一定的私密性,除管理员添加时,不显示用户登录密码,但为了预防用户密码遗忘的情况,设置了密码恢复,可以直接将已授权的用户的密码改为一个固定的初始密码(本系统设置为11111)。管理员还可以设置水果的信息,包括名称,价格,库存和介绍。用户登录可以授权管理员设置用户名和密码及其他基本信息,也可以直接注册,用户可以成功登录后,可随意添加想购买的产品及其数量加入购物车,等购物结束后转到购物车进行结算。
第3章 概要设计
3.1 系统设计模式
Spring MVC
即模型(model)-视图(view)-控制器(controller)
用一种业务逻辑、数据与界面显示分离的方法来组织代码,将众多的业务逻辑聚集到一个部件里面,在需要改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑,达到减少编码的时间。
M:即model模型是指模型表示业务规则。在MVC的三个部件中,模型拥有最多的处理任务。被模型返回的数据是中立的,模型与数据格式无关,这样一个模型能为多个视图提供数据,由于应用于模型的代码只需写一次就可以被多个视图重用,所以减少了代码的重复性;
V:即View视图是指用户看到并与之交互的界面。比如由html元素组成的网页界面,或者软件的客户端界面。MVC的好处之一在于它能为应用程序处理很多不同的视图。在视图中其实没有真正的处理发生,它只是作为一种输出数据并允许用户操纵的方式;
C:即controller控制器是指控制器接受用户的输入并调用模型和视图去完成用户的需求,控制器本身不输出任何东西和做任何处理。它只是接收请求并决定调用哪个模型构件去处理请求,然后再确定用哪个视图来显示返回的数据。
本项目的设计模式就是MVC中的 jsp+service+javabean模式
例如本项目中:
用户在首页查看商品,搜索商品;
显示商品的详细信息页面。
展示“添加到购物车”表单,对应的URL包含addShoppingCar
弹窗“前往购物车”,选择前往购物车或者继续浏览。
举例三个关联类:
- Product类
package com.shopping.entity;
import org.hibernate.annotations.GenericGenerator;
import javax.persistence.*;
@Entity
@Table(name="products")
public class Product {
private int id;
private String name;
private String description;
private String keyWord;
private int price;
private int counts;
private int type;
@Id
@GenericGenerator(name = "generator", strategy = "increment") //设置主键自增
@GeneratedValue(generator = "generator")
@Column(name="id")
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
@Column(name="name")
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@Column(name="description")
public String getDescription() {
return description;
}
publi