手机销售系统说明书

手机销售系统说明书
手机销售系统说明书

┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊

目录

一、设计题目 (1)

二、设计目的 (1)

三、设计分析 (1)

四、总体设计 (3)

五、详细设计 (6)

六、程序调试 (12)

七、结论 (12)

┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊一、设计题目

手机销售系统

二、设计目的

1.运用已学过的知识进行一个JSP应用程序站的开发。

2.基本掌握设计课题的基本步骤和方法。

3.掌握应用系统开发中的需求分析。

4.基本掌握应用网站开发中设计文档的编制。

三、设计分析

1.目的

随着计算机的普及和计算机科学技术的飞速发展,人们开始越来越多地利用计算机解决实际问题。手机销售管理是商业信息管理的重要部分面对大量的商品信息,采用人力处理将浪费大量的时间、人力和物力,且数据的准确性低。因此,开发一个界面友好,易于操作的手机销售管理软件进行自动化处理变得十分重要,这正是本系统开发的目的和意义。

一套比较系统的手机销售管理理念,并建立了一整套比较规范的手机销售管理方法。在积极建立商业现代商业管理机制的今天,仅仅靠原始的手工管理或简单的单机管理,商品部门面对大量的信息,无法有效率地将其中的重要部分提取出来,并做出相应的判断和处理。公司管理者的决策只能依据报表数据,在浪费大量人力、物力的同时无法做到实时监控,难以保证数据的准确性和及时性。因此,先进的管理思想在商业中实现就成为了一个可望而不可及的目标。公司集团非常急需一套既有先进管理思想又适合国内大商业的手机销售管理信息系统,作为实现目标和提高现有水平的一种重要手段!

手机销售管理系统是一个公司不可缺少的部分,它的内容对于公司的决策

者和管理者来说都至关重要, 随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来

越重要的作用

手机销售管理系统是信息管理系统,其开发的功能主要包括:通过计算机管理商品档案,日常办公,实现无纸化办公,通过计算,统计出各项数据,分析出手机销售现状和员工的工作表现,通过强大的查询和索检高效的索检出数据,提高办事效率。

手机行业销售管理系统可随企业业务的成长状况而适时加以调整和更新,

┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊是面向大中型手机经销企业的进销存加财务等资源计划系统。系统以手机串号为轴心,引进了先进的条形码自动识别技术,将科学的管理概念融入软件中,从根本上简化公司的业务流程,提高了员工的工作效率。

2.系统特点

现在随着网络、计算机以及数据库的快速发展,手机的销售也不再是传统的实体店铺模式,已经转向网络。本系统就是面向一个企业的手机销售管理系统。此系统是一种比较智能化的管理系统,它能够实现手机销售的基本功能商品管理和订单管理,用户管理和网站管理。可以很好的实现于用户之间的互动。

手机销售管理系统是一个公司不可缺少的部分,它的内容对于公司的决策

者和管理者来说都至关重要, 随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来

越重要的作用

手机销售管理系统是信息管理系统,其开发的功能主要包括:通过计算机管理商品档案,日常办公,实现无纸化办公,通过计算,统计出各项数据,分析出手机销售现状和员工的工作表现,通过强大的查询和索检高效的索检出数据,提高办事效率。

这个系统分为销售人员和管理员两个操作员。销售人员的职责是为顾客销售登记、预定登记、手机资料录入与查询、随时打印囤货报表等。售后服务员的职责是手机类型、付款方式、手机价格等。在系统中,只有管理员才能修改手机的价格。

基于成本、安全性、可扩展3个因素进行考虑,本系统的架构是B/S结构,具体采用JSP为开发技术(选用“JSP+JavaBean”模式)、Tomcat为Web服务器、Mysql为后台数据库。

在“JSP+JavaBean”模式下,将与数据库连接池相关的操作、读写数据库的操作、需经常使用的数据库的数据进行的操作人别定义成一个类。考虑到某个功能可能需要用到上述建立的多个类,而JSP动作元素中的标签每次只能创建一个Bean实例。为避免出现JSP页面中多次重复使用标签的情况,在开发时单独建立一个JSP文件,在该JSP文件中,用若干条标签将上述类的实例一起创建好。这样就可以再各个JSP页面中仅用一条JSP指令元素中的include指令即可透明地读写数据库,也便于修改和统一管理。

┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊

各个角色经统一的登录页面成功登录后,界面均是一个被拆分为常见的“左窄右宽型”的框架集,其中左侧是功能选择区,右侧是具体操作区。

3..对性能的要求和约束

该系统属于实用型网站,需要对数据的处理,比如对货物的统计并把结果显示出来,故对数据的及时更新要求较高,保证数据的真实性.该系统在任何操作系统下都可以运行,但必须装有MySQL数据库。

四、总体设计

本次设计在功能需求上可分为以下3个方面:

1.前台

设计页面实现手机销售管理系统管理员登录,商品搜索,用户登录,用户注册,以现有手机的列表。

2.后台

(1) 系统管理:管理员管理,可以新增管理员及修改管理员密码,对用户信息的保存,修正。

(2) 登记手机:登记手机具体信息,填写手机信息。

(3) 查询销售记录:具体查看手机售出信息。

(4) 查询手机库存:查询剩余手机库存信息。

软件下载中心后台的组织结构图如图4-1所示。

图4-1 后台组织结构

手机系统

系统管理登记手机查询销售

记录

查询库存

┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊

3.数据库

用户的注册与登录是大多数软件系统中必不可少的内容。在用户登录的时候要判断其是前台服务人员还是管理员,因为二者将看到不同的页面显示。

所以本数据库的E-R图如图4-2、图4-3所示:

图4-2 前台及管理员E-R图

图4-3 操作内容E-R图

用户表包括用户名和密码,操作内容包括修改密码、用户添加和用户撤销及用户信息查询。

通过概念结构设计阶段的E-R图可以直接在MySql数据库中创建表了,如表4-1、表4-2、表4-3所示。

修改密码

操作内容

查询销售

用户登录查询库存

操作员

用户名密码

┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊

表4-1 user表的描述

字段名数据类型是否为空备注

name Varchar 否用户名password Varchar 否用户密码Type Varchar 否用户类型address Varchar 否用户住址

tel Varchar 否用户电话

表4-2 product表的描述

字段名数据类型是否为空备注number Varchar 否手机型号name Varchar 否手机品牌money Varchar 否手机价格style Varchar 否手机类型checkstyle Varchar 否付款类型

id Varchar 否手机编号adress Varchar 否手机生产地址

表4-3 phone表的描述

字段名数据类型是否为空备注number Varchar 否手机编号phonestyle Varchar 否手机类型price Varchar 否手机价格state Varchar 否是否售出

┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊

五、详细设计

根据功能模块设计:

1.手机人员登录模块,首先选择要登录的对象,普通用户或者是管理员,如图5-1所示。

图5-1 用户登录界面

实现代码如下:

method="post">

账号:

密码:

注册

主要过程如下:

在用户登录之前要选择所属权限,本设计设计了两个权限,即前台服务人员和管理员。用户需要输入自己的用户名和密码,如果有一个输入错误或者是对用户名和密码没有输入任何信息就会显示错误信息并且要求用户从新输入用户名和密码。当用户名和密码都正确的时候点击登录按钮,系统会自动跳转到另外一个界面,然后进行别的操作。

┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊

2.手机添加模块,首先用户注册要填写个人信息以便日后的管理工作,如图5-2。

图5-2用户注册填写个人信息

实现代码如下:

账号:

密码:

重复密码:

住址:

电话:

QQ:

  

  

┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ 装 ┊ ┊ ┊ ┊ ┊ 订 ┊ ┊ ┊ ┊ ┊ 线 ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊

主要过程如下:

用户首先填写个人信息如账号、密码、重复密码、住址、电话、QQ 、联系

方式。首先定义这些属性,然后用request.getParameter()方法来读取用户填写的个人信息。启动数据库,用conn.prepareStatement()和stmt.setString()方法将注册信息录入到数据库当中。request,response 参数分别处理请求与响应,抛出ServletException 和OException 异常。当录入成功时网页会显示一些提示信息,如图5-3所示。

图5-3 用户注册成功

2.手机查询模块,如图5-6所示。

图5-6所有库存信息

实现代码如下: 二手物品管理系统

┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊

主要过程如下:

首先连接数据库,当点击查询货物链接时,系统就会自动的将数据库的全部货物信息包括手机型号,手机类型,手机价格和是否现在有存货等显示在网页上。利用session.setAttribute()方法将货物信息进行封装,让后利用rs.getString()放发将这些信息显示在网页上。request,response参数分别处理请求与响应,抛出ServletException和OException异常。

5.用户人员修改密码模块,首先输入旧密码,然后设置新密码,如图5-7所示。

图5-7修改密码信息

┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊实现代码如下:

当前用户: readonly>
旧密码:
新密码:
 

 

      

<% int message=0;

String p=null;

String username = request.getParameter("username");

String pswd = request.getParameter("password");

String pswd1 = request.getParameter("password1");

Connection conn = null;

Statement stmt = null;

try {

Class.forName("com.mysql.jdbc.Driver");

conn = DriverManager.getConnection("jdbc:mysql://localhost/test","root","root");

stmt=conn.createStatement();

String sub = "update table1 set password='" + pswd1 + "' where username='" + username+"'";

message=stmt.executeUpdate(sub);

stmt.close();

conn.close();

}

catch (Exception e) {

e.printStackTrace();

}

if(message==1) {p="修改密码成!";}

else {p="修改密失败!";}

%>

┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊主要过程如下:

网页用户名处会显示当前用户的用户名,用户需要输入旧密码,如果输入的旧密码有误,系统会显示提示信息要求用户从新输入,或者是用户不输入任何信息系统同样会有提示信息显示在网页上。旧密码输入正确后就是从新设置新密码,如果新密码处用户没有输入任何信息,系统会提示用户要求从新输入新设置的密码。用(String)session.getAttribute("name")来直接接受当前登录用户的用户名并使其显示在用户名一栏,而且还是不准许修改的。用request.getParameter("username")方法来接收用户的用户名,request.getParameter("password")方法来接收用户输入的旧密码,用request.getParameter("password1")方法来接收用户输入的新密码。

┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊六、程序调试

在设计的过程中遇到了很多的问题,比如说用户在登录的时候需要填写用户名和密码,而且本系统还设置了登录权限。如果你选择了前台用户人员登录,而你却是输入管理员的用户名和密码,这样的话系统不会做出任何反应,用的用户会很迷惑,此时我们用该首先检查一下我们的登录权限是否正确。在用户注册的时候,用户需要填写个人信息,但是完成这些信息以后再数据库中显示的却有些是乱码。经过长时间调试才发现原来是没有设置过滤器,否则系统对汉语是不识别的。往往在网页上进行手机录入的时候,在数据库中却没有该手机的型号信息,这就是数据没有能够录入的到数据库当中用户注销的时候却不能找到该用户的注册信息,这将给销售方和买家带来很大的不便和利益损失。手机销售管理系统在删除商品的基本信息的时候,没有选择的删除,经常把所有的商品信息全部删除,这样给日后的工作带来很大的麻烦,还有就是对于删除模块与数据可相连接不当,往往在页面删除时,却没有将数据库中的数据删除,待下次使用查询用户信息的时候,已经删除的数据再次出现,给用户及网站带来不必要的工作。

七、结论

经过几周的奋战我的课程设计终于完成了。在没有做课程设计以前觉得课程设计只是对这几年来所学知识的单纯总结,但是通过这次做课程设计发现自己的看法有点太片面。课程设计不仅是对前面所学知识的一种检验,而且也是对自己能力的一种测试。通过这次课程设计使我明白了自己对原来知识的理解还是比较欠缺。自己要学习的东西还有太多,以前老是觉得自己什么东西都会,什么东西都懂,有点眼高手低。通过这次课程设计,我才明白学习是一个长期积累的过程,在以后的工作、生活中都应该不断的学习,努力提高自己知识和综合素质。

在这次课程设计中也使我们的同学和老师关系更进一步了,同学之间互相帮助,有什么不懂的大家在一起商量或者是找老师来解决,听听不同的看法对我们更好的理解知识,所以在这里非常感谢帮助我的同学和老师。

┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊附录(程序源代码)

package com.secondhand.servlet;

import java.io.IOException;

import java.io.PrintWriter;

import javax.servlet.ServletException;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

import javax.servlet.http.HttpSession;

import com.secondhand.query.gettime;

import com.secondhand.query.update;

@SuppressWarnings("serial")

public class ProductBuyServlet extends HttpServlet {

@Override

protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {

String name = req.getParameter("name");

HttpSession session = req.getSession();

String username = (String)session.getAttribute("username");

if(null == username){

PrintWriter out = resp.getWriter();

out.print("");

req.getRequestDispatcher("/index.jsp").forward(req, resp);

}else{

String date_out = gettime.gettimeinfo();

String sql = "UPDATE product SET date_out = '"+date_out+"' WHERE name = '"+name+"'";

//PrintWriter out = resp.getWriter();

update up = new update();

up.product(sql);

//out.print("