web课程设计报告.docx

上传人:b****0 文档编号:12850876 上传时间:2023-04-22 格式:DOCX 页数:19 大小:633.59KB
下载 相关 举报
web课程设计报告.docx_第1页
第1页 / 共19页
web课程设计报告.docx_第2页
第2页 / 共19页
web课程设计报告.docx_第3页
第3页 / 共19页
web课程设计报告.docx_第4页
第4页 / 共19页
web课程设计报告.docx_第5页
第5页 / 共19页
点击查看更多>>
下载资源
资源描述

web课程设计报告.docx

《web课程设计报告.docx》由会员分享,可在线阅读,更多相关《web课程设计报告.docx(19页珍藏版)》请在冰豆网上搜索。

web课程设计报告.docx

web课程设计报告

鲜花网店课程设计

课程:

信息系统工程与实践

班级:

姓名:

学号:

指导教师:

 

目录

一、设计平台-3-

二、课程设计详细-3-

1、课题用户管理-3-

2、用户卡片管理-3-

3、用户留言管理-4-

三、课题系统设计-5-

1、系统架构设计(MVC)-5-

2、用户界面提前预览-6-

2.1系统前台-6-

2.2系统后台-8-

3、页面迁移图-8-

4、数据库设计-8-

四、核心代码-10-

五、经验总结-13-

六、原创性声明-13-

 

设计平台

Jsp/Servlet、MySQL、Tomcat、MyEclipse

二、课程设计详细

课题目标很明确,就是要鲜花店的online化,通过网上销售鲜花。

主要采用UML建模,这里只用Word画出用例图,而没有画类图、包图和动态图。

1、课题用户管理

如下图所示,管理员可以注册新的管理员、查询用户的信息、删除用户信息。

而普通用户可以注册为网站会员、修改用户信息和删除(也就是注销)用户。

 

 

管理员用户

 

用户管理

2、用户卡片管理

如下图所示:

管理员用户

卡片管理

3、用户留言管理

如下图所示:

 

管理员用户

 

留言管理

 

附:

鲜花网店系统的数据流图(DFD,非UML),如下图所示:

浏览鲜花购物车订单

 

 

鲜花信息表订单信息表

三、课题系统设计

1、系统架构设计(MVC)

系统采用MVC(Model-View-Controller)架构。

MVC应用程序由模型、视图、控制器这三个部分组成。

Event(事件)导致控制器改变模型或视图,或者同时改变两者。

只要控制器改变了模型的数据或者属性,所有依赖的视图都会自动更新。

类似的,只要控制器改变了视图,视图会从潜在的模型中获取数据来刷新自己。

MVC把一个应用的输入、处理、输出流程按照模型、视图、控制器的方式进行分离,这样一个应用被分成三个层——模型层、视图层、控制层。

视图代表用户交互界面,对于网络应用来说,可以概括为HTML界面,但有可能为XML和APPLET,一个应用可能有很多不同的视图。

模型:

就是业务流程/状态的处理以及业务规则的制定,是MVC最主要的核心。

控制器可以理解为从用户接收请求,将模型与视图匹配在一起,共同完成用户请求。

如下图所示:

更新更新

获得数据获得数据

改变

改变改变

 

2、用户界面提前预览

在WindowsXP下用IE浏览器测试。

2.1系统前台

2.1.1前台预览

左侧是会员登陆界面和鲜花导购信息,用户可以按照用途、材料和节日等分类导航找到所需的鲜花;右侧是各种商品的详细信息,显示了最新的鲜花商品。

录入商品类别和商品信息及上传图片后,以yaodi登陆,如下图所示:

前台主页(welcome.jsp)

2.1.2用户充值

充值功能是采用充值卡形式,充值卡在有效期内只能使用一次,不允许被次充值。

此功能的实现是在数据库的卡片表内设置了一个“是否有效”字段,每当用户进行充值,用户的账户余额改变的同时,数据库中此卡片信息中“是否有效”字段也被从“有效”改成“无效”。

这种同时操作数据库,是采用了事务(原子性操作)。

如下图所示:

用户充值

2.1.3购物车

选择鲜花商品--->订购--->放入购物车--->查看购物车,确定后就能填写订单了,购物车界面如下图所示:

购物车

2.2系统后台

后台包括:

用户信息管理、鲜花信息管理、订单管理、留言管理、充值卡管理五大模块。

具体又分为普通用户管理和管理员信息管理,鲜花的增删改查,订单的处理,生成充值卡,删除无效的充值卡,回复留言等功能。

2.2.1后台预览

管理员从左边导航进行花店的各项管理工作(部分功能待完善),包括:

用户信息管理、鲜花信息管理、订单管理、留言管理、充值卡管理。

以yingying登陆,如下图所示:

后台主页

2、页面迁移图

4、数据库设计

(1)用户信息表

字段名称

数据类型

长度

允许为空

是否为主键

含义

user_id

int

10

用户ID

username

varchar

40

用户名

truename

varchar

40

真实姓名

password

varchar

40

密码

address

varchar

200

地址

telephone

varchar

40

电话

postalcode

varchar

40

邮编

userrole

int

11

权限

zhuce_time

date

注册时间

advancePayment

float

(8,2)

账户余额

(2)鲜花信息表

字段名称

数据类型

长度

允许为空

是否为主键

含义

id

int

11

鲜花ID

flowerName

varchar

20

鲜花名称

cailiao

varchar

20

材料

yongtu

varchar

20

用途

xingshi

varchar

20

形式

jieri

varchar

20

适合节日

briefInfo

varchar

100

简介

ifPreference

int

11

是否优惠

price

float

(5,2)

价格

preferencePrice

float

(5,2)

优惠价格

pictureSRC

varchar

200

图片路径

storeCount

int

11

库存量

createDate

date

创建日期

(3)卡片信息表

字段名称

数据类型

长度

允许为空

是否为主键

含义

id

int

11

卡片ID

cardNumber

varchar

50

卡片账号

password

varchar

20

密码

createDate

date

生成日期

deadline

date

截止日期

price

float

金额

sfyx

int

2

是否有效

(4)订单信息表

字段名称

数据类型

长度

允许为空

是否为主键

含义

id

int

11

订单ID

orderNumber

varchar

50

订单号

username

varchar

20

用户名

createDate

date

创建日期

receivePersonName

varchar

20

接收人姓名

receiveAddress

varchar

100

接收人地址

receivePostalcode

varchar

20

接收地邮编

receiveTel

varchar

20

接收人电话

bz

varchar

200

备注

ifConfirm

int

2

是否确认

confirmDate

date

确认时间

status

int

5

状态

totalPrice

float

(8,2)

总价格

sfyx

varchar

20

是否有效

(5)订单详细内容表

字段名称

数据类型

长度

允许为空

是否为主键

含义

id

int

11

ID

orderNumber

varchar

50

订单号

flowerid

int

11

鲜花ID

discount

int

11

数量

oneprice

float

(8,2)

单价

(6)留言信息表

字段名称

数据类型

长度

允许为空

是否为主键

含义

id

int

11

ID

username

varchar

20

用户名

liuyanTime

varchar

20

留言时间

content

varchar

500

留言内容

huifu

varchar

500

回复内容

四、核心代码

1.生成卡片的servlet:

CreateCardServlet.java中的doPost()方法:

publicvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse)

throwsServletException,IOException{

request.setCharacterEncoding("UTF-8");

Stringprice1=request.getParameter("price");

intshuliang=Integer.parseInt(request.getParameter("shuliang"));

Card[]cardlist=newCard[shuliang];

for(inti=0;i

Cardcard=newCard();

StringcardNumber="";

Stringpassword="";

StringcreateDate="";

Stringdeadline="";

intsfyx;

floatprice;

longfirst=(long)(Math.random()*Math.pow(10,5));

longtimeMillis=System.currentTimeMillis();

Datetoday=newDate(timeMillis);

longlast=(long)(Math.random()*1000);

cardNumber=Long.toString(first)+Long.toString(timeMillis)+Long.toString(last);

longpassword1=(long)(Math.random()*Math.pow(10,9));

password=Long.toString(password1);

createDate=today.toString();

intdeadlineyear=today.getYear()+1903;

intdeadlinemonth=today.getMonth()+1;

intdeadlineday=today.getDate();

deadline=Integer.toString(deadlineyear)+"-"+Integer.toString(deadlinemonth)+"-"+Integer.toString(deadlineday);

sfyx=1;

price=Float.parseFloat(price1);

card.setCardNumber(cardNumber);

card.setPassword(password);

card.setCreateDate(createDate);

card.setDeadline(deadline);

card.setPrice(price);

card.setSfyx(sfyx);

cardlist[i]=card;

}

CardDAOdao=newCardDAO();

booleanflag=dao.insertCard(cardlist);

if(flag==true)

{

request.setAttribute("cardinfo",cardlist);

request.getRequestDispatcher("common/successpage/insertCard.jsp").forward(request,response);

}else{

request.getRequestDispatcher("common/errorpage/insert.jsp").forward(request,response);

}

}

2.删除选择的所有用户的函数deleteUser(String)

publicbooleandeleteUser(Stringuserstr){

booleanresult=false;

Connectionconn=null;

PreparedStatementpsmt=null;

ResultSetrs=null;

String[]username=userstr.split("'");

try{

conn=DBConnection.getConnection();

conn.setAutoCommit(false);

Stringsql="deletefromuserwhereusername=?

";

psmt=conn.prepareStatement(sql);

for(inti=0;i

psmt.setString(1,username[i]);

psmt.addBatch();

}

int[]flag=psmt.executeBatch();

for(intj=0;j

if(flag[j]==0){

result=false;

break;

}

result=true;

}

}catch(SQLExceptione){

try{

conn.rollback();

}catch(SQLExceptione1){

e1.printStackTrace();

}

e.printStackTrace();

}finally{

try{

conn.setAutoCommit(true);

}catch(SQLExceptione){

e.printStackTrace();}

DBConnection.close(rs,psmt,conn);}

returnresult;}

3.根据不同的条件查询鲜花信息的函数selectFlowersByTJ

publicListselectFlowersByTJ(Flowerflower){

Listlist=newArrayList();

Connectionconn=null;

PreparedStatementpsmt=null;

ResultSetrs=null;

try{

conn=DBConnection.getConnection();

StringBuffersql=newStringBuffer();

sql.append("select*fromflowerwhere1=1");

if(flower.getFlowerName()!

=null&&!

flower.getFlowerName().trim().equals("")){

sql.append("andflowerName='"+flower.getFlowerName()+"'");}

if(flower.getXingshi()!

=null&&!

flower.getXingshi().trim().equals("")){

sql.append("andxingshi='"+flower.getXingshi()+"'");}

if(flower.getCreateDate()!

=null&&!

flower.getCreateDate().trim().equals("")){

sql.append("andcreateDate='"+flower.getCreateDate()+"'");

}

if(flower.getCailiao()!

=null&&!

flower.getCailiao().trim().equals("")){

sql.append("andcailiao='"+flower.getCailiao()+"'");

}

if(flower.getYongtu()!

=null&&!

flower.getYongtu().trim().equals("")){

sql.append("andyongtu='"+flower.getYongtu()+"'");

}

if(flower.getJieri()!

=null&&!

flower.getJieri().trim().equals("")){

sql.append("andjieri='"+flower.getJieri()+"'");

}

sql.append("orderbyid;");

psmt=conn.prepareStatement(sql.toString());

rs=psmt.executeQuery();

while(rs.next()){

Flowerflower1=newFlower();

FlowerDAOdao=newFlowerDAO();

flower1=dao.selectFlowerByID(rs.getInt("id"));

list.add(flower1);

}

}catch(SQLExceptione){

e.printStackTrace();}

returnlist;}

五、经验总结

通过自己近一个月的动手操作,已基本实现了一个鲜花网店的各项功能,应该说收获了很多很实际的经验,融合了JavaWeb课本上的知识,对以后的学习和工作都挺有帮助。

而且体会到,任何网店的体系和功能都是差不多的,无论是做书店、水果店还是本报告中的鲜花店。

由于本人水平有限,WEB中的许多安全与效率的问题,并没有考虑到。

希望在以后的学习中,可以弥补这方面的缺陷。

其次,需要改进的地方,一个是UML,在报告里只用Word画了3个用例图,复杂的时序图没有画,今后需要进一步学习RetionalRose来辅助建模;再就是MVC架构,只是画了解释性的示意图,没有真正用来开发程序,所以还是得继续体会学习MVC,特别是Struts这个框架,为以后的团队开发做好准备。

数据库的设计也还不够熟练,这里借用了MySQL的UI管理工具。

感谢老师的悉心教导,感谢自己终于把课程做出来了。

 

6、原创性声明

本web应用参考了“中国鲜花礼品网”,鲜花图片都是来源于此。

数据库的设计部分参考于网络资源,前台界面和后台界面系作者原创。

特此声明。

 

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 高等教育 > 医学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1