电子书店课程设计报告.docx
- 文档编号:1300234
- 上传时间:2023-04-30
- 格式:DOCX
- 页数:32
- 大小:539.04KB
电子书店课程设计报告.docx
《电子书店课程设计报告.docx》由会员分享,可在线阅读,更多相关《电子书店课程设计报告.docx(32页珍藏版)》请在冰点文库上搜索。
电子书店课程设计报告
课程设计报告
(JWEB程序设计)
设计题目电子书店系统
年级专业07级计算机1班
学生姓名李雪梅20074806
指导老师袁晓红
2010年06月
目录
一、课程设计目的…………………………………………2
二、课程设计内容……………………………………2——4
(1)设计任务
(2)开发环境描述
(3)数据库介绍
三、概要设计………………………………………4——10
(1)设计思路
(2)需求分析
(3)数据结构及E-R图:
(4)系统功能模块介绍
1,用户模块
2,管理员模块
四、详细设计…………………………………………11——19
关键代码的设计与分析
(1)用户模块。
(2)管理员模块
五、设计结果………………………………………20——25
各功能模块的运行窗口及使用方法
六、总结报告…………………………………………25——26
(1)遇到的问题及解决方法
(2)创新和得意之处
(3)课程设计中存在的不足,需要进一步改进的设想
(4)课程设计的感想和心得体会
七、参考资料………………………………………………26
一、课程设计的目的
课程设计为学生提供了一个既动手又动脑,独立实践的机会,将课本上的理论知识和实际有机的结合起来,锻炼学生的分析解决实际问题的能力。
提高学生适应实际,实践编程的能力。
二、课程设计内容:
(1)程序设计的任务
设计一个电子书店系统,
系统用户分成两级:
普通用户和系统管理员;
普通用户的功能:
注册新用户、登录电子书店、浏览图书、查看图书详细信息、查询图书、管理购物车、查看自己的订单、修改个人信息等;
管理员的功能:
用户管理(查询、删除、修改所有注册用户信息)、书店图书管理(查询、增加、删除、修改图书信息)、订单管理(订单信息、修改订单状态、删除订单)
(2)开发环境描述
本系统采用JSP与SQLServer2000相结合的网站方式。
语言使用HTML,JAVA,SERVLET。
数据库使用SQLServer2000以及TOMCAT软件
JSP(JavaServerPages)是由SunMicrosystems公司倡导、许多公司参与一起建立的一种动态网页技术标准。
JSP技术有点类似ASP技术,它是在传统的网页HTML文件(*.htm,*.html)中插入Java程序段(Scriptlet)和JSP标记(tag),从而形成JSP文件(*.jsp)。
用JSP开发的Web应用是跨平台的,既能在Linux下运行,也能在其他操作系统上运行。
JSP页面由HTML代码和嵌入其中的Java代码所组成。
服务器在页面被客户端请求以后对这些Java代码进行处理,然后将生成的HTML页面返回给客户端的浏览器。
JavaServlet是JSP的技术基础,而且大型的Web应用程序的开发需要JavaServlet和JSP配合才能完成。
JSP具备了Java技术的简单易用,完全的面向对象,具有平台无关性且安全可靠,主要面向因特网的所有特点。
(3)数据库介绍
本系统使用的数据库为SQLserver2000
在当今网络蓬勃发展的时代,数据库扮演的角色举足轻重。
如果仅仅依赖WE程序来处理这样的海量数据,简直是天方夜谭。
因此必须编写存取数据库的WEB应用程序。
现在市场上成熟的数据库系统很多。
应用得比较多的系统有Oracle8i/9,Sybase,MicrosoftSQLServer2000,MySQL3.23/4.0,IBMDB2,Access等,其中Oracle8i/9i,Sybase,MicrosoftSQLServer2000,IBMDB2是大型数据库系统,以Oracle8i/9i为代表,MySQL是中小型数据库系统,
Oracle8i号称是第一个面向Internet计算环境的数据库,它改变了信息管理和访问的方式。
MySQL是一个高性能、多线程、多用户建立在客户-服务器结构上的RDBMS专门为了速度和稳定性而设计的小型数据库。
MicrosoftSQLServer2000是Microsoft公司推出的大型数据库系统,其优秀的性能在重负载下表现的尤为突出[9]。
在微软介绍MicrosoftSQLServer2000的近40个新特性中,有二十多项直接或间接与Internet相关。
最明显的是它对XML的支持。
在综合比较和实际的使用后,考虑到开发应用方便及与Microsoft产品的无缝集成,最主要的是SQL功能丰富、语言简洁、使用方法灵活、具有功能的一体化、高度的描述性、基于集合的操作方式、两种使用方法语法结构的统一性等特征,故本次设计用ASP.NET与SQLServer2000相结合的站方式开发。
三、概要设计
(1)设计思路
1,首先对该系统进行可行性分析,清楚了解该系统需要实现的工能。
2,然后设计该系统工作的流程:
该书店的首页展示,然后用户注册----登陆----进行购买-----提交购物车-----查看自己定单。
而管理员方面主要负责对图书的管理。
登陆----对图书的添加-----删除-----修改------定单查看
3,确定该系统所需要的数据,并建立好数据库及表文件
4,设计好数据结构及其ER模型
5,给该系统划分好模块,并按各模块一个个设计。
(2)需求分析
电子书店系统主要是实现网上选书、购书、产生订单等功能的系统。
一个典型的网上商城一般都需要实现商品信息的动态提示、购物车管理、客户信息注册登录管理、订单处理等模块。
还包括管理员模块:
对图书的修改,添加,删除,以及定单管理等
根据网上书店的基本需求,本系统需要完成的具体任务如下:
A. 书图查询:
当客户进入网上书店时,应该在主页面中分类显示最新的书目信息,以供客户选择所需图书,同时也应该提供按照图书名称,或者作者信息快速查询所需书目信息的功能。
B. 购物车管理:
当客户选择购买某图书产品时,应该能够将对应图书信息,如:
价格、数量记录到对应的购物车中,并允许客户返回书目查询页面,选择其他商品,并添加到购物车中,当对应的购物订单生成后,应该能够自动清除以生成订单的购物车中的信息。
C. 订单处理:
对应客户购买图书商品信息的需求,在确定了所购图书商品的价格、数量等信息后,提示用户选择对应的送货方式及付款方式,最终生成对应的订单记录,以便于网站配货人员依据订单信息进行后续的出货、送货的处理。
D.用户注册:
为了能够实现图书商品的购买,需要管理客户相关的联系方式、送货地点等相关的信息。
E.修改图书。
当管理员登陆后,则进行管理员界面。
获取要修改图书的图书名,传递到要外理修改图书的JSP页面,管理员向表单里填入信息后,通过提交表单,检测之后,将表单数据更新到BOOKINFOR表中
F.添加图书。
当管理员登陆后,则进行管理员界面。
管理员向表单里填入信息后,通过提交表单,检测之后,将表单数据写入BOOKINFOR表中
G.删除图书。
当管理员登陆后,则进行管理员界面。
获取要删除图书的图书名,,检测之后,将表单数据从BOOKINFOR表中删除
H.查看订单。
当管理员登陆后,则进行管理员界面。
管理员通过点击左边的“查看订单”按扭,则链接到查看订单页面,通过读取TOTALINFOR表的记录。
查看各个用户的定单信息。
(3)数据结构及E-R图
依据网上书店的处理需求,对就数据表的设计及功能如下。
A.图书基本信息表:
存放网上书店所销售图书的基本信息。
B.图书分类基本信息表:
存放网上书店所提供图书分类的信息。
C.客户基本信息表:
存放书店客户的基本信息。
D.订单信息表:
存放与客户相关的订单的基本信息。
E.订单条目详细信息表:
存放所有用户订单中详细条目的基本信息。
分析后可以得知,这些表的基本关系如下
(4)系统功能模块图
客户界面功能模块
管理界面功能模块
四、详细设计
(1)用户模块
1,网上书店首页bookstore.jsp详细功能及描述
●获取图书分类信息以及图书基本信息集合
●显示图书分类信息
●显示书店推荐图书书信息
●显示用户登陆框
●显示管理员登陆入口
●提交书目搜索请求及搜索条件的表单
●提交搜索关键字的表单元素。
进行图书查询
●显示图书详细信息查看超链接
●显示请友情链接,到.和等网页
关键代码如下:
在本页面中,当单击选择书目分类时,将提交“bookSearch.do?
bookCatId=<%=bookCat.getId()%mode=1”请求,以便于获取对应图书分类的相关信息。
当选择了查询依据,并且输入了对应关键字,单击“搜索”按钮时,将提交“bookSearch.do”请求,同时提交查询条件,进行后续书目信息搜索的处理。
当在书目列表中单击查看详细信息请求时,将发出“bookDetail.do”请求,同时传递对应图书记录的编号,以获取指定图书更加详细的信息。
此外,在单击“首页”、“上页”、“下页”超链接后,将分别提交“bookPage.dopageId=<%=0%>”、“bookPage.dopageId=<%=schSta.getPageId()-1%>”、“bookPage.dopageId=<%=schSta.getPageId()+1%>”等请求,以实现页面的跳转
2,显示所有图书信息shouchang.jsp页面详细功能及描述
●显示书店所有图书名称、价格、作者、单价、总册数、现存数量等
Connectioncon=null;
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
con=DriverManager.getConnection("jdbc:
microsoft:
sqlserver:
//localhost:
1433;DatabaseName=bookstore","lixue1128","1234");
Stringstrquery="select*frombookInfor";//取得和图书信息表的连接
Statementstmtquery=con.createStatement();
ResultSetrs=stmtquery.executeQuery(strquery);
if(rs!
=null)
{
%>
<%
while(rs.next())
{
<%out.println(rs.getString("类别名"));%>
<%out.println(rs.getString("图书名"));%>
<%out.println(rs.getString("作者"));%>
<%out.println(String.valueOf(rs.getFloat("单价")));%>
<%out.println(String.valueOf(rs.getInt("总册数")));%>
<%out.println(String.valueOf(rs.getInt("现存数量")));%>
本页面是在控制器响应了网上书店主页提交的查看图书详细信息请求,即“bookDeatial.do”请求后,跳转到的页面。
在该页面中将获取到的指定图书详细信息显示出来,同时如果用户单击“购买”按钮,将提交“bookBuy.do?
bookId=<%=book.getId()%>”请求,进行后续放入购物车的处理。
3,网上书店客户登录功能及描述
●提交用户登录请求,同时提交登录用户信息的表单
●提交登录用户用户名及密码的表单元素
●登录按钮
●提交新用户注册请求的超链接
Stringmesg="";
if(request.getParameter("username")!
=null)
{
Stringusername=request.getParameter("username");
Stringpasswd=request.getParameter("passwd");
username=newString(username.getBytes("ISO8859-9"));
passwd=newString(passwd.getBytes("ISO8859-9"));
login.setUsername(username);
login.setPasswd(passwd);
out.print(username+passwd);
if(login.excute())
{
session.setAttribute("username",username);
Stringuserid=Long.toString(login.getUserid());
session.setAttribute("userid",userid);
response.sendRedirect("online_buy.jsp");
}elsemesg="登陆出错!
";
functioncheckform()
{
if(username.value==""||passwd.value=="")
{alert("用户名或密码为空!
");
returnfalse;
}
returntrue;
}
本页面是客户在购物车页面单击“结算付款”按钮后跳转过来的页面,在该页面中,用户在表单中输入用户名及密码,单击“用户登录”按钮后,将提交“login.do”请求,以便于进行后续获取用户相关信息的处理,对于没有用户身份的新客户,可以在本页面中单击“新用户注册”按钮,跳转到“userRegister.jsp”页面进行用户注册。
4,用户注册userRegister.jsp页面详细功能及描述
●提交新用户注册请求,同时提交新用户注册信息的表单
●提交注册用户姓名、、电话、用户名、密码以及确认密码的表单元素
●注册按钮
关键代码如下:
intid=Integer.parseInt(userid);
Stringusername=newString(request.getParameter("username")).trim();//获取注册表单数据
Stringpasswd1=newString(request.getParameter("password1")).trim();
Stringpasswd2=newString(request.getParameter("password2")).trim();
Stringtruename=newString(request.getParameter("name")).trim();
Stringsexinfor=request.getParameter("sex");
Stringtelnumber=request.getParameter("tellephone");
out.println(telnumber);
StringpersonID=newString(request.getParameter("personID")).trim();
if(passwd1!
=null&&passwd2!
=null&&username!
=null&&truename!
=null&&sexinfor!
=null&&telnumber!
=null&&personID!
=null)
{if(passwd1.equals(passwd2))
{intinsertResult=0;
Connectioncon=null;
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");con=DriverManager.getConnection("jdbc:
microsoft:
sqlserver:
//localhost:
1433;DatabaseName=bookstore","lixue1128","1234");
Statementstmt=con.createStatement();
Stringsql="INSERTINTOuserInforVALUES('"+id+"','"+username+"','"+passwd1+"','"+truename+"','"+sexinfor+"','"+telnumber+"','"+personID+"',1)";
insertResult=stmt.executeUpdate(sql);
在本页面中注册用户可以在表单中输入对应的注册信息,在单击“注册”按钮后,将提交“regist.do”请求,同时提交新用户的相关注册信息,以便于进行后续新用户注册的处理。
5,显示购物车信息ShopCart.jsp页面详细功能及描述
●获取该用户购物车中信息的集合
●提交更新购物车请求的表单
●循环显示购物车中的每一条购物记录信息
●设置购买数量的文本框
●显示图书销售价格
●显示图书总价
●从购物车中移除购买记录信息
●更新订单按钮
●提交继续购书请求的超链接
●提交清空购物车请求的超链接
●提交购物车的请求超链接
关键代码如下:
//显示用户所购书目
<%Stringstrp="select*fromorderInfor1";
Statementstmt=con.createStatement();
ResultSetps=stmt.executeQuery(strp);
if(ps!
=null)
{while(ps.next())
{Stringbkname=ps.getString("图书名");
%>
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 电子 书店 课程设计 报告