第一篇:网上书店系统设计文档
网上书店信息系统分析设计报告
网上书店网站实验报告
1、 项目说明
网上书店:顾名思义,网站式的书店。是一种高质量,更快捷,更方便的购书方式。网上书店不仅可用于图书的再线销售,也有音碟、影碟的在线销售。而且网站式的书店对图书的管理更加合理化,信息化。售书的同时还具有书籍类商品管理、购物车、订单管理、会员管理等功能,非常灵活的网站内容和文章管理功能。但网上书店的真实性是消费者的最大顾虑,这也是网上书店还不被大多数消费者所接受的原因之一。
在网上书店买书,可以查到所买图书的更多信息,因为网上书店是一个网站,它有它独特的售书方式和功能。如用户注册会员功能等,会员类型有:高级会员、金牌会员等。有的网上书店有会员积分设置,如达到一定积分时自动成为高级会员,高级会员会有优惠和特别的服务。还有就是支付方式了,一般网上书店都有三种类型的支付方式:汇款类支付、在线支付、其他支付方式,其中在线支付只要到支付平台开户后,将所获开户信息填入即可。当在网上书店购书后,用户所购图书都在网站上有记录,方便用户查询。
2、 需求分析
网上书店和现实书店区别比较:
网上书店的优势:涉及范围广,经营成本低,劣势:信用度如果低,影响
生意;
现实书店的优势:直观,信用度高。劣势:涉及范围有限,经营成本高;
现在有部分现实书店已经开始从网上书店进货了。本系统开发的目的是为 了学习这样去做一个交互式的网页以及了解这种强大的网络编程工具,方 便客户端和浏览器端之间的交流。
数据库采用实用,易学的SQL Sever 2000,以Tomcat作为JSP的WEB服务器,XP作为系统运行平台。
3、 总体设计
(1) 实验目的:
1.利用本次机会来了解JSP一般的技术及使用模式,并能够使用这种技术,建立
一个简单的论坛网站。
2.通过本次学习,使自己巩固所学过的书本理论知识,加深对相关内容的理解。
(2) 实验要求:
要基本了解JSP编程技术,学会使用JSP开发一个小型网站的基本知识,巩固数据库基本理论,并用于开发一个小型的网站。
三技术简介
JavaServer Pages(JSP)是一种实现普通静态HTML和动态HTML混合编码的技术,许多由CGI程序生成的页面大部分仍旧是静态HTML,动态内容只在页面中有限的几个部分出现。但是包括Servlet在内的大多数CGI技术及其变种,总是通过程序生成整个页面。JSP使得我们可以分别创建这两个部分。 (3)系统设计特点:
网上书店具有:
(1)提供了全面,详细的图书购物入口,轻松实现快捷购买。
(2)可以通过不同分类进行导航,用最方便,最快捷的方式找到你需要的图书。
(3)提供了图书购物所需的各种工具与网站,满足你的图书购买需求。
(4)公正性很强 (大站.专站.小站)排列顺序分明.公平公正的图书网址TOP排行
4、 数据库设计
本系统使用数据库引擎为HSQLDB。数据库文件SIMS(student information management system)。该系统表: 1 图书基本信息表(book)
2 图书分类基本信息表(bookcat)
3 客户基本信息表(storeuser)
4 订单信息表(orders)
5 订单条目详细信息表(orderdetails)
== 1 =========================================== 字段名 描述
类型
id 图书编号
int catid 图书分类编号 int
name 图书名称
varchar price 图书价格
int saleprice 销售价格
int descript 图书介绍
varchar author 图书作者
varchar contents 图书目录
varchar image 图书封面图片存放路径 varchar
== 2 =========================================== 字段名 描述
类型
id 图书分类编号 int
catname 图书分类名称 varchar
== 3 =========================================== 字段名 描述
类型
username 用户名
varchar password 密码
varchar name 客户姓名
varchar tel 客户电话
varchar
address 客户地址
varchar email 客户电子邮件地址 varchar
== 4 =========================================== 字段名 描述
类型
id 订单编号 int
username 订单对应用户名 varchar time 产生订单的时间 smalldatetime delivery 订单对应送货方式 varchar payment 订单对应付款方式 varchar
== 5 =========================================== 字段名 描述
类型
orderid 订单编号
int bookid 图书编号
int count 订购数量
int price 该条目对应价格 int 建立数据库
1、
2、 数据库连接
package s2jsp.lg.dao.impl; import java.sql.*; public class BaseDao {
public final static String DRIVER = "com.microsoft.jdbc.sqlserver.SQLServerDriver";
// 数据库驱动
public final static String URL
= "jdbc:microsoft:sqlserver://localhost:1433;DataBaseName=bbs";
// url
public final static String DBNAME = "";
// 数据库用户名
public final static String DBPASS = "sa";
// 数据库密码
/**
* 得到数据库连接
* @throws ClassNotFoundException
* @throws SQLException
* @return 数据库连接
*/
public Connection getConn() throws ClassNotFoundException, SQLException{
Class.forName(DRIVER);
//注册驱动
Connection conn = DriverManager.getConnection(URL,DBNAME,DBPASS);
//获得数
据库连接
return conn ;
//返回连接
}
/**
* 释放资源
* @param conn 数据库连接
* @param pstmt PreparedStatement对象
* @param rs 结果集
*/
public void closeAll( Connection conn, PreparedStatement pstmt, ResultSet rs ) {
/* 如果rs不空,关闭rs */
if(rs != null){
try { rs.close();} catch (SQLException e) {e.printStackTrace();}
}
/* 如果pstmt不空,关闭pstmt */
if(pstmt != null){
try { pstmt.close();} catch (SQLException e) {e.printStackTrace();}
}
/* 如果conn不空,关闭conn */
if(conn != null){
try { conn.close();} catch (SQLException e) {e.printStackTrace();}
}
}
/**
* 执行SQL语句,可以进行增、删、改的操作,不能执行查询
* @param sql 预编译的 SQL 语句
* @param param 预编译的 SQL 语句中的‘?’参数的字符串数组
* @return 影响的条数
*/
public int executeSQL(String preparedSql,String[] param) {
Connection
conn = null;
PreparedStatement pstmt = null;
int
num
= 0;
/* 处理SQL,执行SQL */
try {
conn = getConn();
// 得到数据库连接
pstmt = conn.prepareStatement(preparedSql);
// 得到PreparedStatement对象
if( param != null ) {
for( int i = 0; i < param.length; i++ ) {
pstmt.setString(i+1, param[i]);
// 为预编译sql设置参数
}
}
num = pstmt.executeUpdate();
// 执行SQL语句
} catch (ClassNotFoundException e) {
e.printStackTrace();
// 处理ClassNotFoundException异常
} catch (SQLException e) {
e.printStackTrace();
// 处理SQLException异常
} finally {
closeAll(conn,pstmt,null);
// 释放资源
}
return num;
} }
5.详细设计
(1) JSP概述
网上书店系统中把数据库的连接参数写在dbconn.properties文件中,再用一个Java类来生成一个数据库连接对象以供其他程序使用。 网上书店的首页显示的内容最多,但源代码并不长,原因是:一是因为一些多个页面共用的代码被放入另一个文本文件或JSP文件中,在需要的地方包含进来,减少了代码量,提高了代码的可复用程度;二是系统较好地进行了模块化的设计与开发,在JSP页面中很少用到Java代码,所有业务逻辑都用Java类来完成,JSP页面中只是简单的展现数据。JSP是Sun公司在Java和Servlet技术基础上推出的一种新型的服务器端动态脚本技术。它已经逐渐成为架设电子商务网站的主流技术。它的以下特点决定了本系统为什么采用JSP作为Web应用程序的开发工具。 ⒈JSP将内容的生成和显示进行分离 2.JSP程序运行在服务端
3.高性能的编译运行机制 4.继承了Java的跨平台特性 5.可重用组件 6.可扩展标签库 7.强大的数据库支持
( 2 ) 封装的操作;
*/ public class bookTypeOPBean extends dbOpertaion{ public ArrayList bookTypeArray=new ArrayList(); public String bookTypeIdStr=new String(""); /**。
(3)构造函数,将所有书藉类型信息查询出来:
*/
public bookTypeOPBean() { String sqlString="select * from book_type"; ResultSet rs=this.executeQuery(sqlString); try{ int i=0; while(rs.next()){ bookTypeBean bookType=new bookTypeBean(); bookType.setBookTypeId(rs.getInt("type_id")); bookType.setBookTypeName(rs.getString("type_name")); bookTypeArray.add(i,bookType); i++; } } catch (SQLException e) { e.printStackTrace(); bookTypeArray=null; } } /**
(4) 通过书藉分类名称查找类型信息:
*/
public bookTypeBean selectBookTypeByName(String bookTypeName){ if(bookTypeName==null) return null; bookTypeBean bookType=new bookTypeBean(); String sqlString="select * from book_type where type_name= +bookTypeName+"; ResultSet rs=this.executeQuery(sqlString); try{ int i=0; if(rs.next()){ bookType.setBookTypeId(rs.getInt("type_id")); bookType.setBookTypeName(rs.getString("type_name")); } } catch (SQLException e) { e.printStackTrace(); }
return bookType; } /**
(5) 根据属性bookTypeIdStr查找书藉类型信息:
*/ public bookTypeBean selectBookTypeId(){ int bookTypeId=0; if(bookTypeIdStr!=null&&bookTypeIdStr.length()>1) try{ bookTypeId=Integer.parseInt(bookTypeIdStr); }catch (Exception e) { e.printStackTrace(); } if(bookTypeId==0) return null; bookTypeBean bookType=new bookTypeBean(); String sqlString="select * from book_type where type_id="+bookTypeId; ResultSet rs=this.executeQuery(sqlString); try{ if(rs.next()){ bookType.setBookTypeId(rs.getInt("type_id")); bookType.setBookTypeName(rs.getString("type_name")); } } catch (SQLException e) { e.printStackTrace(); }
return bookType; } /**
(6) 更新书藉分类:
* @param bookTypeId:类型ID号
* @param bookTypeName:类型名称
* @return int:返回更新的行数
*/ public int updateBookType(int bookTypeId,String bookTypeName){ if(bookTypeId==0||bookTypeName==null||bookTypeName.length()<=0) return 0; //------构造SQL语句------ String sqlString="update book_type set type_name=+bookTypeName + where type_id="+bookTypeId; //------执行SQL语句------ int i=this.executeUpdate(sqlString); return i; } /**
(7)新增一个书藉类型:
*/ public int insertBookType(String bookTypeName){ int i=0; //------构造SQL语句------ String sqlString="insert into book_type(type_name) values(+bookTypeName+)"; //------执行SQL语句------ i=this.executeUpdate(sqlString); return i; } /**
(8)删除一个书藉类型:
* @param bookTypeId:要删除的类型ID号
* @return int:返回删除的类型个数
*/ public int deleteBookType(int bookTypeId){ int i=0; //------构造SQL语句------ String sqlString="delete book_type where type_id="+bookTypeId;
//------执行SQL语句------ i=this.executeUpdate(sqlString); return i; } public ArrayList getBookTypeArray() { return bookTypeArray; } public void setBookTypeArray(ArrayList bookTypeArray) { this.bookTypeArray = bookTypeArray; } public String getBookTypeIdStr() { return bookTypeIdStr; } public void setBookTypeIdStr(String bookTypeIdStr) { this.bookTypeIdStr = bookTypeIdStr; } } (9)网上书店系统中所有的报错信息都保存在一个“.properties”文件中,文件内容如下:book.bookNameNull=书藉名没有输入!
book.typeIdNull=书藉所属类型没有选择!
book.priceNotFloat=价格不为数字!
book.priceRebateNotFloat=折扣输入不正确!
book.publishDateError=出版日期输入有误!
book.pageCountError=页数不为数字!
addbook.insertError=插入新书时出错!
updatebook.updateError=更新书藉信息时出错!
bookType.bookTypeHaved=书藉类型已存在!
bookType.insertError=插入新的书藉类型时出错!
booktype.updateError=更新书藉类型信息时出错!
user.userNameNull=用户名输入为空!
user.userPasswordNull=用户密码输入为空!
user.passwordNotEqual=两次输入的密码不一致!
user.insertError=插入新的用户时出错!
user.certCodeError=验证码不对!
user.userError=用户名或密码输入有误!
user.sessionError=用户会话已失效!
orderform.newError=生成新的订单时出错!
orderform.saveError=保存订单时出错!
(10):CREATE TABLE members (
member_id
int auto_increment primary key,
member_login
varchar(20) NOT NULL,
member_password
varchar(20) NOT NULL,
member_level
int NOT NULL DEFAULT 1,
first_name
varchar(50) NOT NULL,
last_name
varchar(50) NOT NULL,
varchar(50) NOT NULL,
phone
varchar(50) NULL,
address
varchar(50) NULL,
notes
text NULL,
card_type_id
int NULL,
card_number
varchar(50) NULL ); (11):CREATE TABLE items (
item_id
int auto_increment primary key,
category_id
int NOT NULL,
name
varchar(255) NOT NULL,
author
varchar(100) NULL,
price
float NOT NULL,
product_url
varchar(255) NULL,
image_url
varchar(100) NULL,
notes
text NULL,
is_recommended
tinyint NULL DEFAULT 0,
rating
int default 0,
rating_count
int default 0 );
6 用户手册:
(1) 本程序运行环境为JDK1.4.2,可在windows98/windows2000/windows XP下运行。
(2) 为了发布应用程序,我把本JAVA应用程序中涉及到的类文件压缩成一个JAR文件,名为StudentManager.jar,现在只要将StudentManager.jar文件拷贝到任何一个安装了JAVA运行环境(版本应为1.4.0及以上)的计算机上,双击鼠标就可以运行JAVA应用程序了。但如果计算机上安装了中文版的WinRAR解压缩软件并将该JAR文件与压缩软件做了关联,WinRAR解压缩软件会自动运行进行解压缩操作,使的JAVA程序无法运行。因此,创建了一个StudentManager.bat的批处理文件。所以,只要双击这个批处理文件就可以直接运行本程序了,省去了每次运行程序都要运行JDK软件的麻烦。
7.参考书籍
1.java面向对象程序设计 (清华大学出版社) 2. java课程设计 (清华大学出版社)
3. java信息系统设计与开发实例 (机械工业出版社)
8.心得体会:
通过这次课程设计我对JAVA面向对象的编程语言有了深刻的了解,对JAVA语言的简洁性和高效性有了自己进一步的体会,同时对JAVA的一些设计模式也有了一个大致的认识与了解,这门语言对于异常的控制非常有用,写出来的程序有更高的容错能力,系统稳定性也很好。
在整个程序的设计过程中,对软件编程的流程,包括需求分析、概要设计、详细设计等步骤又有了一个新的认识,尤其是需求分析的好坏在整个程序的设计中有着举足轻重的作用。需求分析没有做好,后面的步骤很容易受到负面的影响。
另外,在程序设计过程中,我们加强了团队的合作,了解了团队精神对于程序设计是至关重要的,这将会对我们以后的工作有很大的启发。
八.教师评语
第二篇:网上书店电子商务系统设计
《管理信息系统》课程报告
课题名称:网上书店电子商务系统设计
第一部分,可行性分析
1、 引言
1.1 项目背景与问题提出
随着信息技术在国际贸易和商业领域的广泛应用,利用计算机技术、网络通信技术和Internet来实现商务活动的国际化、信息化和无纸化,已成为各国商务发展的—大趋势。电子商务(Electronic Commerce)正是为了适应这种以全球为市场的变化而出现和发展起来的。它可以使销售商与供应商更紧密地联系起来,以更快地满足客户的需求,也可以让商家在全球范围内选择最佳供应商,在全球市场上销售图书。电子商务基于网络技术.网络技术提供了实现电子商务的技术平台,而电子商务是网络技术的最新应用和最终目标。
从形式上看,电子商务利用计算机网络检索和获取信息,对个人和公司提供决策服务,解决了组织、商家和客户的需求,减少了用于改善货物和服务质量的投入,加快了商品交易的速度。Internet正在将不同形式的电子商务结合起来,产生出许多创新的、混合的电子商务形式。
从电子商务的目标上看,电子商务能够扩大顾客群,获取更高收益,开拓目标市场,节省费用和开支,加速商品流通,加快顾客信息反馈,并提高服务质量。在过去的几年间,随着Internet的迅速发展,通过网络使在家庭办公的个人用户也积极投入到了电子商务中。由于激烈的市场竞争和对成本的关注,大量企业正在改进原有的电子商务系统来支持新兴的网络经济。
1.2 研究意义
网上书店系统作为一个小型电子商务交易平台,简单清晰的将电子商务的开发过程和基本模式呈现出来,具有启发和向导作用。
根据网上书店的基本需求,本系统需要完成的具体任务有:
书图查询: 当客户进入网上书店时,应该在主页面中分类显示最新的书目信息,以供客户选择所需图书,同时也应该提供按照图书名称,或者作者信息快速查询所需书目信息的功能。
购物车管理:当客户选择购买某图书图书时,应该能够将对应图书信息,如:价格、数量记录到对应的购物车中,并允许客户返回书目查询页面,选择其他商品,并添加到购物车中,当对应的购物订单生成后,应该能够自动清除以生成订单的购物车中的信息。
订单处理:对应客户购买图书商品信息的需求,在确定了所购图书商品的价格、数量等信息后,提示用户选择对应的送货方式及付款方式,最终生成对应的订单记录,以便于网站配货人员依据订单信息进行后续的
出货、送货的处理。
会员注册:为了能够实现图书商品的购买,需要管理客户相关的联系方式、送货地点等相关的信息。
1.3 建设目标
主要是实现网上选书、购书、产生订单等功能的系统。具备一个典型的电子书店一般需要实现的服务。
1.4 论文内容
本论文详细介绍了整个网上书店系统的数据模型设计以及数据库设计,在设计中把本系统的数据库根据其功能划分4个基本的模块,即图书信息的动态提示、购物车管理、客户信息注册登录管理、订单处理模块。
二 、相关技术
2.1 WEB SERVICE简介
Web service 是自包含的、模块化的应用程序,它可以在网络中被描述、发布、查找以及调用。
Web service 是基于网络的、分布式的模块化组件,它执行特定的任务,遵守具体的技术规范,这些规范使得Web service 能与其他兼容的组件进行交互操作
Web service 是一种可编程的应用程序,它使用一系列标准协议来对各种请求作出响应。作为传统计算机技术同互联网应用与创意的结晶,web service 是使用标准技术在互联网网上运行的商务流程。
2.2 JAVA语言在网络上的应用
Java是一种简单易用、完全面向对象、具有平台无关性且安全可靠的主要面向Internet的开发工具。自从1995年正式问世以来,Java的快速发展已经让整个Web世界发生了翻天覆地的变化。在早期,Java比较多的用在浏览器上,插入到网页中(即是Java Applet程序),成为最灵活、最强大的网页多媒体的载体,但由于Java虚拟机相对于个人电脑而言,有占用资源大,安全性相对较差等缺点,Applet逐渐的被后起之秀Flash所替代,但随着Java Servlet的推出,Java在电子商务方面开始崭露头角,最新的JSP(Java Server Page)技术的推出,更是让Java成为基于Web的应用程序的首选开发工具,目前的Java技术已成为所有大型电子商务项目的必然选择
Java程序可以获取网络上结点的图象、声音、HTML文档及文本等资源,并可以对获得的资源进行处理。例如Java程序可以每隔一定时间读取某结点提供的最新数据,并以图表的形式显示出来。在编程处理上,一般先生成一个URL类型的对象,然后用 Java中相应的方法(method)获取该对象所代表的资源。
2.3 JSP的基础——Servlet 技术
Java Servlet是JSP技术的基础,JSP本身就是预先被编译成Servlet,然后再运行的,而且
大型的Web应用程序的开发需要Java Servlet和JSP配合才能完成,Servlet这个名称大概源于Applet,现在国内的翻译方式很多,本文为了避免误会,本文直接采用Servlet这个名称而不做任何翻译,读者如果愿意,可以称之为“小服务程序”。Servlet其实和传统的CGI程序和ISAPI、NSAPI等Web程序开发工具的作用是相同的,在使用Java Servlet以后,用户不必再使用效率低下的CGI方式,也不必使用只能在某个固定Web服务器平台运行的API方式来动态生成Web页面。许多Web服务器都支持Servlet,即使不直接支持Servlet的Web服务器也可以通过附加的应用服务器和模块来支持Servlet。得益于Java的跨平台的特性,Servlet也是平台无关的,实际上,只要符合Java Servlet规范,Servlet是完全平台无关且是Web服务器无关的。由于Java Servlet内部是以线程方式提供服务,不必对于每个请求都启动一个进程,并且利用多线程机制可以同时为多个请求服务,因此Java Servlet效率非常高。但Java Servlet也不是没有缺点,和传统的CGI、ISAPI、NSAPI方式相同,Java Servlet是利用输出HTML语句来实现动态网页的,如果用Java Servlet来开发整个网站,动态部分和静态页面的整合过程简直就是一场噩梦。这就是为什么SUN还要推出Java Server Pages的原因。
2.4 Struts概述 —— 由来和发展
Struts 框架工具是 Apache 基金会 Jakarta 项目中推出的一个子项目。 Struts 在英文中是支架、支撑的意思,这也体现出 Struts 在开发 Web 应用程序过程所起到的重要作用, Struts 为 Web 应用提供了通用的框架,让开发人员可以把主要精力集中在如何解决实际业务问题上,与此同时 Struts 框架也允许开发人员根据实际需要进行扩展和定制,从而可以更好的适应用户的需求。采用 Struts 可以简化遵循 MVC 设计模式的 Web 应用的开发工作,很好地实现代码重用,使开发人员从一些繁琐的工作中解脱出来,快速开发能够充分发挥 JSP/Servlet 优点、并具有强可扩展性的 Web 应用。总之, Struts 的出现使得 Web 应用的开发过程大大简化,从而能够缩短开发周期、提高开发效率。 Struts 架构一经推出,即受到 Java 开发群体的广泛重视,从 2004 年开始逐渐升温,并日渐成为 Java 创建 Web 应用开发的最流行的框架工具。
2.5 SQL Server 2000 简介
SQL Server 2000 是Microsoft 公司2000年推出的SQL Server 数据库管理系统的版本。它是一个杰出的数据库平台,可用于大型联机事务处理、数据仓库、以及电子商务等。 其特点有如下几点:
1.真正的客户机/服务器体系结构。
2.图形化用户界面。
3.丰富的编程接口工具。
4.SQL Server与Windows NT完全集成。
5.具有很好的伸缩性。
6.对Web技术的支持。
6.SQL Server提供数据仓库功能。
三、 体系结构 —— 采用MVC构架
3.1 MVC简介
M——模型 是应用程序的主体部分。模型表示业务数据,或者业务逻辑.V——视图 是应用程序中用户界面相关的部分,是用户看到并与之交互的界面。C——控制器 就是根据用户的输入,控制用户界面显示数据和更新对象状态。
MVC是80年代Smalltalk-80出现的一种软件设计模式,现在已经被广泛的使用。MVC 构架的出现不仅实现了功能模块和显示模块的分离,同时它还提高了应用系统的可维护性、可扩展性、可移植性和组件的可复用性。
早期的程序中,如果不注意对数功能和显示的解耦合,常常会导致程序的复杂及难以维护。很多VB, Delphi 等 RAD 程序都有这种问题。甚至现在的 C#,Java 有时候也会出现把业务逻辑写在显示模块中的现象 。
尽管MVC设计模式很早就提出,但在Web项目的开发中引入MVC却是步履维艰。主要原因:一是在早期的Web项目的开发中,程序语言和HTML的分离一直难以实现。CGI程序以字符串输出的形式动态地生成HTML内容。后来随着脚本语言的出现,前面的方式又被倒了过来,改成将脚本语言书写的程序嵌入在HTML内容中。这两种方式有一个相同的不足之处即它们总是无法将程序语言和HTML分离。二是脚本语言的功能相对较弱,缺乏支持MVC设计模式的一些必要的技术基础。
3.2 Struts的工作流程
Struts提供了多种Action供选择使用。普通的Action只能通过调用execute执行一项任务,而DispatchAction可以根据配置参数执行,而不是仅进入execute()函数,这样可以执行多种任务。如insert,update等。LookupDispatchAction可以根据提交表单按钮的名称来执行函数。
4、 实现准备
4.1 逻辑层次
1) 用户服务层(User Services Tier),也称为表现服务(Presebtation Services),是用户与应用程序进行交互的端点。通常由WIN32或者基于浏览器的图形用户界面应用构成。在该层用户可以查看、输入和处理数据。从用户的角度来看,用户服务层就是整个应用。在该电子商务系统中,用户服务层由内嵌java语句的jsp呈现Http forms,它可以让消费客户浏览和搜索图书,向他们的购物车增加图书,并且下订单。
第三篇:网上购物系统设计
《软件课程设计》
项目名称:
年、班级:
小组成员:朱勇
------项目设计书
《网络购物综合平台》
2012级软工二班
张振宇 2014/8/16
1、 需求分析:
1.1开发背景:
随着科学和网络的飞速发展,信息技术逐渐融入社会各个阶层,改变着人们的日常出行、行为习惯、工作态度和生活方式,不断为人们的生活增添新的靓丽色彩。在计算机硬件配置不断更新换代的时候,互联网的飞速发展也是一股同样不亚于其他任何领域的新生力量不断崛起,到如今,有点知识、地位的人,面前都会放上一台电脑或是一部智能手机,而在网络如此便捷的今天,网上购物也逐渐成为一种潮流在人群中如雨后春笋般迅速生长与传播,以一种骇人的速度发展壮大……
如此热闹的互联网,岂又缺少英雄豪杰,各方才俊大显神通,作为在校大学生,了解并体验信息网络潮流不仅是一种感受吸收,更是不错的训练机会,选择网上购物系统,不仅贴合当今信息时代的潮流,更是对未来大数据时代来临的前瞻。
1.2功能需求:
(1)、实现基本的查询、交易功能;
(2)、采用注册用户会员制,游客仅有查询信息功能;
(3)、用户登录使用验证码密码相结合;
(4)、注册会员拥有产品、商铺评论、打分功能;
(5)、各系统信息由管理员统一管理,具有最高权限;
(6)、
1.3系统定义:
本系统是一个基于SSH构架,辅以网页设计、Javascript等技术的模拟实现简易网络购物体系流程的小型实验项目。通过分布式设计思路以及密码权限的约定实现面向对象的稳定性。项目内部本身多采用接口式设计,充分发挥Java EE企业级项目的封装性及内部可拓展性。
2、 系统总体设计:
2.1系统构架:
Struts
2、Spring、Hibernate + Ajax + extJS或JQuery(可选);
2.2系统流程:
2.2.1 管理员:
2.2.2 用户:
2.3系统结构:
2.3.1 结构图:
3、 数据库设计与构架:
3.1 E-R结构图(图中只列出了键属性):
3.2数据库表设计:
3.2.1 概要: (1)、管理员:
Manager(Manager_id,Manager_name,Manager_mail,Manager_tel, Manager_password) (2)、注册用户:
User(User_id, User_name, User_mail,User_tel, User_password, User_Vlevel,User_marks,User_leftmoney,User_headphoto) (3)、店长/老板:
Boss(Boss_id,Boss_name,Boss_mail,Boss_tel, Boss_password,Shop_id,Boss_truename,Boss_adress) (4)、店:
Shop(Shop_id,Shop_name,Shop_level,Shop_type,Shop_adress,Shop_introduce) (5)、商品/货物:
Cargo(Cargo_id, Cargo_name, Shop_id, Cargo_type, Cargo_num, Cargo_price,Cargo_logo,Cargo_introduce,Cargo_mark) (6)、银行:
Bank(Bank_id, Bank_name) (7)、银行账户:
BAccount(Bank_id,account,password,funds)
(8)、送货信息:
SendMessage(Send_id,Send_adress,Send_post,Send_toname) (9)、订单:
Order(Order_id, FromDate,Deadline,AmountPay,Order_status,PayWay,Send_id)
(10)、交易记录:
Trecord(Record_id,Cargo_id,Shop_id,Cargo_num,Trans_date,Trans_amount)
(11)、评论列表:
Comment(Comment_id,Comments_text)
3.2.2 详细设计:
(1)、管理员: 名称
数据类型
长度
备注 Manager_id Manager_name Manager_mail Manager_tel Manager_password
int String String String String
<10000 20 20 20 15
不可为空
(2)、注册用户: 名称 User_id User_name User_mail User_tel User_password User_Vlevel User_marks User_leftmoney User_headphoto 数据类型 int String String String String int int double Varchar(200)
长度 >10000 20 20 20 15 <10 >0 >=0
备注 不可为空
(3)、店长/老板: 名称 Boss_id Boss_name Boss_mail Boss_tel Boss_password Shop_id 数据类型 int String String String String int
长度 >10000 20 20 20 15
>10000
备注 不可为空
不可为空
(4)、店: 名称 Shop_id Shop_name Shop_level Shop_type Shop_adress Shop_introduce 数据类型 int String char String String text
长度 >10000 20 2 20 30
备注 不可为空
(5)、商品/货物: 名称 Cargo_id Cargo_name Shop_id Cargo_type Cargo_num Cargo_price Cargo_logo Cargo_introduce Cargo_mark 数据类型 int String int String int double Varchar(200) text int
长度 >10000 20
>10000 20 >0 >0
>0
备注 不可为空 不可为空
(6)、银行: 名称 Bank_id Bank_name Bank_record 数据类型 int String int
长度 >10000 20 >0
备注 不可为空
(7)、银行账户: 名称 Bank_id account password funds 数据类型 int int String double
长度 >10000 >10000 15 >0
备注 不可为空 不可为空
(8)、送货信息: 名称 Send_id Send_adress Send_post Send_toname 数据类型 int String String String
长度 >10000 30 10 20
备注 不可为空
(9)、订单:
名称 Order_id FromDate Deadline AmountPay Order_status PayWay Send_id 数据类型 int Date Date double bool int int
长度 >10000 10 10 >0 1 1,2 >10000
备注 不可为空
不可为空
(10)、交易记录: 名称 Record_id Cargo_id Shop_id Cargo_num Trans_date Trans_amount 数据类型 int int int int Date double
长度 >10000 >10000 >10000 >0 10 >0
备注 不可为空 不可为空 不可为空
(11)、评论列表: 名称 Comment_id Comment_text 数据类型 int text
长度 >10000
备注 不可为空
4、 模块功能分配介绍:
4.1用户信息管理:
(1)、管理员可以更改所有用户的资料; (2)、管理员负责用户账户的注册及注销; (3)、用户可以修改自己账户的除ID以外的所有信息; (4)、用户可以查看当下自己账户的交易记录及订单信息; (5)、用户设VIP等级,积分制度,可申请开店,由管理员负责; (6)、
4.2商品信息管理:
(1)、管理员可以管理所有商品的资料; (2)、店主可以管理店内所有商品资料;
(3)、管理员负责添加、删除商店信息,店主管理商店信息; (4)、商品及商店分类,提供搜索便利; (5)、
4.3交易信息管理:
(1)、管理员管理所有交易记录;
(2)、用户可以查看当下自己账户的交易记录及订单信息;
(3)、用户可选择支付方式及银行;
(4)、店主可查看店内交易记录;
(5)、支持选择时间段查看交易记录;
(6)、银行支付采用账号密码即时验证; (7)、
4.4论坛信息管理:
(1)、用户可选择发表评论和商店评级;
(2)、提供好评推荐制度;
(3)、管理员支持查看、删除评论;
(4)、
4.5系统安全管理:
(1)、登陆和支付采取账号密码和验证码相结合;
(2)、设置用户权限;
(3)、管理员拥有最高权限,可检查和修改所有数据库信息;
(4)、管理员在线管理;
(5)、购物支付采用即时验证; (6)、
5、 详细处理及流程介绍:
5.1 内部设计(命名未定——按照命名约定):
5.1.1 数据库连接与操作:建立相应包将所有连接相关的类与方法封装起来,实现面向对象,采用Hibernate技术实现;
5.1.2 数据库表与对象:对应JavaBean对相应表,并建立相应包封装; 5.1.3 外部操作:建立相应的操作类,以命名规则命名,并放入相应功能命名的包内(与对象命名无关);
5.1.4 异常与错误:用一个对应名称的包封装起来,内部添加对于各种异常与错误操作的页面与提示;
5.1.5 其他文件:按照文件类型建立相应包,再对号入座,各自包内再根据需要进行详细划分;
5.1.6
5.2 内部流程及处理:
5.2.1 管理员:
1)、基本操作流程:
2)、细节说明:
(1)、图中讲述了基本流程;
(2)、图中重复区块代表同一内容,为防止混乱而重复;
(3)、任何页面均有返回动能,图中特别突出出错后的返回;
(4)、详细页面设计内容会更为丰富,此图中只突出管理员权限。
3)、主要页面介绍:
(1)、初始页面:因参考淘宝、京东页面,所以风格有些类似,不过毕竟不可能那么丰富,因此也是暂定为三个板块:热门商品展示区域、分类及搜索区域、注册登录区域。
(2)、登陆界面:此界面包括分类登陆选择区,账号填写区、密码填写区、验证码填写区、链接区。
(3)、系统管理员界面:此界面包括:基础信息展示板块、管理员功能操作区。
(4)、查询、增删改信息处理界面:内容展示板块、搜索版块。
(5)、用户信息处理界面(管理员):对应用户信息查询、增删改信息处理界面;
(6)、商品信息处理界面(管理员):对应商品信息查询、增删改信息处理界面;
(7)、交易记录界面:内容展示区、功能处理板块(删除)。
(8)、错误处理界面:信息提示区、错误展示区、链接区。
5.2.2 用户:
1)、基本操作流程:
2)、细节说明:
(2)、图中用户为注册用户(未注册用户则先注册,但依然拥有查询信息的功能,不过要交易则需注册登录)
(3)、支付方式的不同会影响相应页面流程;
(4)、用户评论相应商品时会验证其是否购买产品,放置恶意评论;
3)、主要页面介绍:
(1)、注册页面:包括:用户基本信息填写区、密码填写区、密码确认区、链接区、功能操作区。
(2)、商店店铺界面:商品分类区、商品介绍区、商品推荐区、商店介绍区、功能操作区、评论区。
(3)、交易处理界面:订单信息填写区、功能链接区。
(4)、支付界面:账户信息填写区、功能链接区。
(5)、用户个人信息界面:用户信息显示区、用户功能操作区、链接区。
(6)、用户信息处理界面(用户):功能处理区(权限)、链接区。
(7)、评论处理界面:评论信息填写区、功能确认区。
5.2.3 店主:
1)、基本操作流程:
2)、细节说明:
(1)、店主的操作修改只针对于店内信息;
(2)、店主不能自己删除用户评论,可向管理员申请删除恶意评论;
3)、主要页面介绍:
(1)、店铺信息界面(店主):店铺基本信息展示区、功能操作区。
(2)、店铺信息修改界面:店铺信息修改区(权限)、功能链接区。
(3)、店铺评论界面:搜索区、链接区。
(4)、店铺交易记录界面:交易信息展示区、功能操作区、链接区。
(5)、商品信息管理界面(店主):商品信息展示区、功能操作区、搜索区、链接区。 5.3 命名约定(英文):
5.3.1 数据库表:表名_字段类型;
5.3.2 对象JavaBean类:表名+Bean;
5.3.3 对象操作类:对象名+动作名;
5.3.4 二级操作间用: ”_”
隔开;
5.3.5 包名一般作为第一级名称;
5.3.6 功能操作函数:操作对象名+操作名;
5.3.7 遵循首字母大写优先原则。
6、 后记:
6.1 开发平台:
代码编程:Myeclipse +Tomcat
页面设计:Dreamweaver
数据库设计:MySQL
其他:… 6.2 说明:
部分细节在本设计书中未清楚说明,到时视情况添加。
第四篇:高校学生网上评教系统的设计
摘 要随着社会的进步,提高教学质量、增强高校之间的生源竞争力已成为每一所高校的重要工作。提高教学质量首要处理的问题即对教学质量以及水平进行改进和提高,因此对高校进行客观、合理的评教,大大有助于及时改进教学,提高高校整体教学质量。传统的以“座谈会”和“问卷调查”为主进行的教学质量评价和分析其主要的弊端在于测评工作量大、费用高、耗时长,测评指标权重的确定缺实时调整与角度的可观性等等。目前随着网络信息化技术的不断成熟和完善,提出了“网上评教”的新的评教模式,渐渐地,学生网上评教成为当前高校学生评教活动的主流方式。
【关键词】高校评教 在线教学 质量管理 b/s模式
1 高校网上评教系统设计目标和原则
1.1 系统设计目标
网上评教系统的设计目标是设计一套符合高校需求的应用系统,满足需求分析的结果。从软硬件的架构、功能构成、实施方案等方面开展工作。
完成高校网上评教基础平台建设,分别对评教参数管理开发、评教方案管理开发、评教结果管理开发和系统管理开发,实现了高校内部教务管理尤其是教学质量评价管理的统一化、集成化、标准化。
通过网上评教系统的实施带动高校教学质量意识的提高,重视教学数据的收集与分析挖掘,实现信息资源共享,保证该局域网与将来建成的全国高校网络之间的联接和信息交换。
1.2 系统设计原则
本系统的设计原则如下:
1.2.1 实用性原则
系统的实用性是一个系统能推广应用的前提,为了保证系统的实用性的要求,需要在系统的实施过程中严格按照软件工程的规范进行系统的需求分析、系统设计与实现。软件测试要贯穿系统开发始终,测试用例的选择要根据需求分析结果制定,充分满足用户需求。实用性还体现在系统设计界面的人性化,界面要友好,用户的使用体验佳。
总之实用性是一个信息系统能够成功上线运行并最终通过验收的重要前提,本系统的设计严格遵守了这一原则。
1.2.2 安全性原则
高校网上评教系统不但关系教师的教学水平的评价而且还关系到学校教学质量的持续改进,该系统属于高校核心管理信息系统,系统内容会涉及高校的重要信息,为此系统的安全性就显得尤为重要。在系统设计时要充分考虑安全方面的需求,主要需要注意系统的账户安全、外部访问安全、系统防入侵、数据安全、系统安全审计等方面的因素。
1.2.3 稳定性原则
一个好的信息系统必须能够长期稳定的运行,系统具有较强的容错能力,在用户操作错误的情况下依然能够保证系统的正常运行,不能因为偶然的事件导致系统的崩溃,影响系统的正常使用。
1.2.4 规范性原则
任何系统的开发都要遵循一定的行业规范,对于高校网上评教系统来说要遵循高校的信息系统的统一要求,统一风格。规范性的原则还包括在系统实施过程中要严格按照软件工程的思想进行分阶段设计开发,阶段交付物也要按照标准的要求完整提供。规范性还要求系统开发过程要团队开发,分工清晰、任务明确,文档规范。
1.2.5 先进性原则
高校网上评教系统在国外已经运行多年,因此本系统在开发时要充分考虑系统设计的整体先进性,发挥系统的后发优势。系统的先进性硬件方面的服务器的选型、存储系统的配置,软件方面主要考虑采用稳定性更好有众多应用业绩的主流技术的采用。
1.2.6 易操作性原则
系统的最终目的是为了使用,达到对实际工作中的业务处理。要想用的好,就必须在易操作方面多加考虑。易操作性说的简单点就是能一步完成的工作在满足需求的情况下尽量不要两步完成。系统开发多站在使用者的角度考虑问题,用户测试过程要及早安排,用户体验反馈要认真对待,制定系统的解决方案。
1.2.7 可维护性原则
系统设计不但要考虑到正常运行的需求,还要考虑系统在各种极端情况下系统的运行。针对系统可能会出现的数据丢失、进程死掉等问题,逐一制定完整的可维护方案。最大程度的保证系统的可维护性。
2 高校网上评教系统数据访问架构设计
2.1 系统总体框架
考虑在我国高校内部多建成了自己的校园局域网,校园局域网络已经覆盖至每个学生寝室和每个学院办公室,因此本高校评教系统建议采用浏览器/服务器即b/s模式,浏览器/服务器b/s模式免去了客户机/服务器这种传统实施在客户端部署程序的过程,用户只需要借助本机的浏览器既可以访问和操作管理系统。在设计时考虑到信息的共享以及扩大系统的可访问覆盖范围,可以在服务器端设置防火墙与外网隔离,外部用户通过vpn的以授权专用数据隧道的方式与服务器交换数据。浏览器/服务器这样的模式是在客户机/服务器模式上的扩展和优化,该模式的采用使得设计者只需要关注服务器端业务逻辑的分析和开发,这样大大节省了系统的开发和测试的时间,用户使用通用浏览器就可进行操作和访问系统,不仅快速还减少了维护人员的工作量,真正做到终端系统的免安装;另外这种基于浏览器客户端的系统可以更好的支持跨平台提供的服务,不同的平台对于用户来说体验是一样的。
2.2 系统数据访问架构
结合诸多的安全机制策略采用基于角色访问控制的方案,拥有最高管理权限的角色只能为一小部分,一个用户的角色权限可以进行叠加。这种安全机制提供了比前两者更加丰富的保护内容,这种采用了自主访问控制型、强制访问控制模型和基于角色访问控制模型三种模式相融合的方式进行的模式更具有优越性和灵活性。
2.3 软件功能架构
高校网上教评系统的功能架构,如图1所示。
高校网上教评管理系统主要包括系统管理模块、评教参数管理模块、评教方案管理模块和评分结果管理四大管理功能模块。其中系统管理功能模块又包括角色权限管理子功能、用户账户管理子功能、数据维护管理子功能等。系统管理的权限分配给具有系统管理权限的系统管理员,本系统所有基础数据由系统管理员负责管理工作,如此的设计保证系统正常的运行。评教参数管理功能涵盖了评教项管理子功能、评教表管理子功能和评教标准管理子功能。在该功能模块中同时需要系统管理员对期初的评教标准进行相应的上传添加功能,同时需要对基本的评教项和评教表进行相应的设置界定。评教方案管理子功能涵盖了教师评教管理子功能、课程评教管理子功能和院系评教管理子功能。该模块是本高校网上评教系统的核心功能模块之一。评分结果管理包括评教结果统计子功能、教师评教统计子功能、学期教师评教汇总子功能,单项评估统计查询,评教总分统计查询子功能。
“网上评教”形式的运用,使高校管理人员和老师能够及时地收集和反馈教学信息,调整教学方法,改善教学质量,提高全校教师的整体教学水平;能够更好地满足客观、公正、透明、民主以及实现督导与教师、教师与教师、教师与学生三方及时沟通的要求,提高办学水平。
参考文献
[1]闫枫.高校“学生评教”存在的问题及改进措施[j].职业教育,2008,5:166.
[2]谢谷萍.高校学生网上评教探析[j].江西师范大学学报,2008,8:129.
[3]张祥瑛.我校“学生网上评教”探索与实践[j].中国高等医学教育,2009,11:55.
作者简介
李群英(1972-),女,四川省乐山市人。现供职于乐山职业技术学院。主要研究方向为计算机科学技术及应用。
第五篇:网上商城系统_设计题目
网上商城
一、需求分析
网上商城系统主要是实现网上选产品,购产品,产生订单等功能的系统,一个典型的网上商城一般需要实现商品信息的动态提示,购物车管理,客户信息注册登录管理,订单处理等模块
根据网上商城的基本需求,本系统需要完成的基本任务如下:
产品查询
当客户进入网上商城时,应该在主页面中分类显示最新的数目信息,以供客户选择所需产品,同时也应该提供产品的各种检索功能,包括模糊查询,按类别,价格范围,或者品牌等信息快速查询所需产品信息的功能。
购物车管理
当用户选择购买某产品时,应该能够将对应产品信息,如:价格,数量记录到对应的购物车中,并允许客户返回书目查询界面,选择其他商品,并添加到购物车中,当对应的购物订单生生成后,应该能够自动清除以生成订单的购物车中的信息。
订单处理
对应客户购买商品信息的需求,在确定了所购商品的价格数量等信息后,提示用户选择对应的送货方式及付款方式,最终生成对应的订单记录,以便于网站配货人员依据订单信息进行后续的出货,送货的处理。
产品评论
用户买完产品后可以对该产品进行评论,可选择好评中评差评,并可以提供文字评论,该评论为所用用户可见
会员注册
为了能够实现商品的购买,需要管理客户相关的联系方式,送货地点等信息。
二、基本功能要求
(1)网站后台:
1. 通过网站后台对产品信息进行维护。包括:产品信息的添加,修改,删除。产品信息的添加应该能够上传产品的图片,对产品的描述内容应该能实现格式的编辑(利用文本编辑器来实现)。按照类别,品牌 ,价格范围,等信息进行多条件的模糊查询(分页显示),对产品评论的信息的维护 2. 对产品类别进行维护。
3. 对网站前台的相应模块显示的数据进行控制(模块中列举或推荐的产品进行控制。)
4. 统计本站某段时间内各类产品或某类产品的销售情况,包括数量统计,销售统计,按类别,品牌,型号等相关信息统计 5. 网站系统的管理员可以对订单进行管理。
(2)网站前台:
1. 网站应当允许用户注册会员以方便送货上门或邮寄,用户可存储常用的邮寄地址
2. 按照产品类别,在不同区域中显示产品信息。
3. 有热点排行,能够根据关注或销量对产品进行排名。(例如:我们在音乐网站上看到的top10)
4. 网站的浏览者可以自动搜索产品信息(功能要灵活)。
5. 对搜索到的产品或某类产品有一个详细的列表,点击某个产品可以查看详细信息。
6. 网站注册用户(做成浏览者更人性化)可以,将某个产品添加到购物车中。并可以对购物车进行维护。
7. 注册用户可以更改购物车中的产品信息数量生成订单。
三、开发过程中的要求。
1. 在软件的开发过程中,每个阶段要有详细的文档,制作答辩ppt 2. 代码设计时要要良好的编程规范。 3. 必须保证程序的健壮性,安全性。
四、开发技术要求
1. 要求使用基于J2EE平台的MVC开发模式,使用Oracle数据库,Tomcat服务器开发本网站
2. 用户注册,产品添加等要求使用AJAX技术进行校验 3. 产品检索,省市县添加等要求使用联动效果 4. 要求产品信息使用文件上传来处理相关图片
5. 要求使用过滤器来校验用户是否登录,过滤其相关操作
6. 在客户端利用JavaScript提供完善的客户端校验,限制用户输入不合法的信息,提高网站安全性
五、参考网站
1. QQ商城 http://shop.qq.com/
2. 京东商城 http://
3. 天猫商城 http:/// 4. 淘宝网 http:///
相关文章:
工期保证承诺书 范文02-22
专项资金监管系统 文档02-22
仓库管理系统测试文档02-22
行政事业资产管理系统02-22
固定资产管理信息系统02-22
线性代数与空间解析几何(电子科技大)课后习题答案第三单元02-22
车辆管理系统设计文档02-22
利用P6和工程文档管理系统进行进度检测02-22
信息采集系统设计文档02-22