计算机专业毕业论文交互式网站2.docx
- 文档编号:29707209
- 上传时间:2023-07-26
- 格式:DOCX
- 页数:20
- 大小:396.39KB
计算机专业毕业论文交互式网站2.docx
《计算机专业毕业论文交互式网站2.docx》由会员分享,可在线阅读,更多相关《计算机专业毕业论文交互式网站2.docx(20页珍藏版)》请在冰豆网上搜索。
计算机专业毕业论文交互式网站2
计算机专业毕业论文交互式网站2
第1章概述1
1.1课题背景1
1.2课题意义1
1.3文献综述3
1.3.1技术综述1
1.4总体设计原则3
第2章系统实现3
2.1系统首页4
2.2用户注册模块4
2.3系统后台登陆模块5
2.4会员管理模块7
2.5菜品类别管理模块9
2.6菜品管理模块11
2.7订单管理模块13
第3章系统测试16
3.1测试目的16
3.2测试方法16
3.3测试结果16
第4章总结17
参考文献17
致谢18
摘要
本文对网络订餐系统的设计与开发过程进行了分析与叙述。
依照系统开发的实际操作步骤,文章从系统概述、系统分析、系统设计和系统实现这四大章节对系统开发过程进行分别阐述。
系统概述中主要进行了课题背景、课题意义和现状分析;系统分析中主要包括了系统设计前的需求分析、业务流程分析、数据流程分析和数据字典分析;而系统设计则是对系统体系结构、各功能模块、数据库结构设计等具体的系统实现过程进行剖析展示,在系统设计章节中有详细的文字解释并配有表图说明。
文章还列举了关键的功能模块实现代码。
本文力求可以网络订餐系统的开发设计找到一种切实可行的解决方案,在分析了目前国内外网络订餐系统的现状的基础上,并经过反复摸索和学习研究后,借助编程语言JSP和SQL数据库最终实现了网络订餐系统的开发,并在一系列测试后,达成了人性化、所需功能完善、操作清晰的设计目标。
关键词:
JSP;SQLServer2005;订餐
第1章概述
1.1课题背景
随着Internet的普及。
越来越多的企业建立了自己的WWW站点,企业可以通过网上展示自己的产品,发布最新动态信息,与用户进行交流和沟通,与合作伙伴建立系统,以及开展电子商务等。
其中网络订餐系统是电子商务网站的一种,随着信息时代的到来,人们对生活质量的追求不断提高,有用人们工作、学习的关系,常常无法正常吃饭,随着网络的普及。
网络订餐业务在中国开始盛行,人们也可以通过网络订餐的方式获取自己想要的食物,这样既节省了时间。
也可以为光大用户提供更多的口味,满足不同用户的需求。
1.2课题意义
本网络订餐系统的实现,满足消费者只要通过互联网就可以足不出户订购自己喜欢的菜品,节省用户外出就餐的时间,改变了传统商业交易,在互联网上进行交易,实现网上购买菜品和食物,大大方便了用户。
1.3文献综述
目前的网络订餐系统种类繁多,但依据各自不同的规模和功能需要,大体上所采取的技术体系采用Asp+MicrosoftAccess/SQLServer技术,或者Php+SQLServer,几乎有很少使用JSP体系结构技术。
1.3.1技术综述
尽管有着众多的网络开发体系,但如何决定一个系统使用何种方法开发仍然是基于系统的基本需求,本文不详细描述各种开发体系的性能优劣,这里选取了二家不同规模的网络系统,将各系统选用的开发体系列表比较如下:
表1.1各系统选用的开发体系列表
系统
开发语言
数据库
Web服务器
操作系统
肯德基网络订餐系统
Asp
softSQLServer2005
IIS6.0
WindowsServer2000
青青岛网络订餐系统
Php
softSQLServer2005
IIS6.0
WindowsServer2000
1.4总体设计原则
本系统为了设计、实现和后期维护的方便,以及系统用户使用的便利,所以必须采取一定的设计原则[3]。
其主要设计原则有:
简单性:
在实现系统的功能的同时,尽量让系统操作简单易懂,这对于一个系统来说是非常重要的。
针对性:
本系统设计是针对网络订餐系统的需求定向开发设计,所以具有专业突出和很强的针对性。
实用性:
要求本系统能够满足网络订餐系统的需求,因此具有良好的实用性。
一致性:
页面整体设计风格以及命名规则的一致性:
整体页面布局和用图用色风格及变量、类名和其他元素的命名规则保持一致。
功能一致性:
完成同样的功能应该尽量使用同样的元素。
元素风格一致性:
界面元素的美观风格、摆放位置在同一个界面和不同界面之间都应该是一致的。
变量命名规则的一致性:
变量应该用统一的规则进行命名,做到任意变量均能从上下文推断其义。
先进性:
本系统采用JSP技术、SQL等被广泛采用系统开发技术和数据库,因此本设计具有良好的先进性,具体表现在其具有良好的可扩展性,可开发性。
第2章系统实现
2.1系统首页
输入网址http:
//localhost:
8080/wldc,系统默认跳转到页面default.jsp,然后发送请求index.action,这个类负责提取相关的数据。
包括系统公告信息、菜品信息、菜品排行榜数据等,并把这些数据库绑定到request对象,跳转到view层index.jsp,本系统网站的主界面设计结构采用了上左右的结构,上部分为主功能菜单区,主要是显示网站的主功能,左侧为用户注册、登录,公告浏览,右部分为信息显示区,销售排行榜主要是为方便用户提供了一些最新的菜品信息。
界面设计如图4-1所示
2.2用户注册模块
用户单击注册后需要输入密码和确认密码、用户真实姓名、住址、性别、E_mail、QQ。
用户只须填写一个Web表单。
这里需要用户通过E_mail注册是考虑到两点:
第一,用户的E_mail是惟一的;第二,通过用户的E_mail可以很方便快捷的与用户取得联系。
用户在提交注册信息后,系统会对注册页面填写的正确性进行检查。
对于不符合要求的填写会给出必要的提示,并返回修改;对于符合要求的注册表单,用户提交信息后也要返回相应的欢迎信息,用户提交的正确注册信息将被存入系统的数据库中。
界面的设计如图4-2所示。
图4-2 用户注册模块
2.3系统后台登陆模块
要想使用本系统,必须先登陆到系统中,在登陆页面,首先将从前台页面提交的用户名和密码进行接受,之后在后台进行处理,按照用户名在数据库中进行查询如果查到该用户则将该用户的权限和密码全都取出来分别赋给两个字符串变量,判断从数据库中读出的密码与登录时输入的密码是否配比上,若两个密码相同则根据权限的值进入相应的页面,否则输出密码错误。
图4.3登陆模块界面
登陆模块关键代码
publicStringlogin(StringuserName,StringuserPw,intuserType)
{
System.out.println("userType"+userType);
try
{
Thread.sleep(700);
}catch(InterruptedExceptione)
{
//TODOAuto-generatedcatchblock
e.printStackTrace();
}
Stringresult="no";
if(userType==0)//系统管理员登陆
{
Stringsql="fromTAdminwhereuserName=?
anduserPw=?
";
Object[]con={userName,userPw};
ListadminList=adminDAO.getHibernateTemplate().find(sql,con);
if(adminList.size()==0)
{
result="no";
}
else
{
WebContextctx=WebContextFactory.get();
HttpSessionsession=ctx.getSession();
TAdminadmin=(TAdmin)adminList.get(0);
session.setAttribute("userType",0);
session.setAttribute("admin",admin);
result="yes";
}
}
if(userType==1)
{
}
if(userType==2)
{
}
returnresult;
}
2.4会员管理模块
管理员登陆系统后,点击左面的菜单“会员管理”,页面调转到会员管理界面,
图4.4会员管理模块界面
核心代码如下:
publicStringuserDel()
{
TUseruser=userDAO.findById(userId);
user.setUserDel("yes");
userDAO.attachDirty(user);
this.setMessage("删除成功");
this.setPath("userMana.action");
return"succeed";
}
publicStringuserXinxi()
{
TUseruser=userDAO.findById(userId);
Maprequest=(Map)ServletActionContext.getContext().get("request");
request.put("user",user);
returnActionSupport.SUCCESS;
}
publicStringuserMana()
{
ListuserList=userDAO.findAll();
Maprequest=(Map)ServletActionContext.getContext().get("request");
request.put("userList",userList);
returnActionSupport.SUCCESS;
}
2.5菜品类别管理模块
管理员登陆系统后,点击左面的菜单“菜品类别管理”,页面调转到菜品类别界面,录入菜品类别的的基本信息。
包括类别名称、类别介绍等,点击保存按钮,调用后台的java类把菜品类别信息保存到数据库。
界面如下图
图4.5菜品类别管理模块界面
关键代码如下:
publicStringcatelogMana()
{
Stringsql="fromTCatelogwherecatelogDel='no'";
ListcateLogList=catelogDAO.getHibernateTemplate().find(sql);
Maprequest=(Map)ServletActionContext.getContext().get("request");
request.put("cateLogList",cateLogList);
returnActionSupport.SUCCESS;
}
publicStringcatelogAll()
{
Stringsql="fromTCatelogwherecatelogDel='no'";
ListcateLogList=catelogDAO.getHibernateTemplate().find(sql);
Maprequest=(Map)ServletActionContext.getContext().get("request");
request.put("cateLogList",cateLogList);
returnActionSupport.SUCCESS;
}
publicStringcatelogAdd()
{
TCatelogcatelog=newTCatelog();
catelog.setCatelogName(catelogName);
catelog.setCatelogMiaoshu(catelogMiaoshu);
catelog.setCatelogDel("no");
catelogDAO.save(catelog);
this.setMessage("操作成功");
this.setPath("catelogMana.action");
return"succeed";
}
publicStringcatelogDel()
{
Stringsql="fromTGoodswheregoodsDel='no'andgoodsCatelogId="+catelogId;
ListgoodsList=goodsDAO.getHibernateTemplate().find(sql);
if(goodsList.size()>0)
{
this.setMessage("请先删除此类别下的苗圃");
this.setPath("catelogMana.action");
}
else
{
TCatelogcatelog=catelogDAO.findById(catelogId);
catelog.setCatelogDel("yes");
catelogDAO.attachDirty(catelog);
this.setMessage("操作成功");
this.setPath("catelogMana.action");
}
return"succeed";
}
2.6菜品管理模块
点击左侧的“菜品管理”菜单。
页面跳转到菜品管理界面。
图4.6菜品管理界面
关键代码如下:
publicStringgoodsNoTejiaAdd()
{
TGoodsgoods=newTGoods();
goods.setGoodsCatelogId(goodsCatelogId);
goods.setGoodsName(goodsName);
goods.setGoodsMiaoshu(goodsMiaoshu);
goods.setGoodsPic(fujian);
goods.setGoodsShichangjia(goodsShichangjia);
if(goodsTejia==0)//特格为0表示没有特价
{
goods.setGoodsTejia(goodsShichangjia);
goods.setGoodsIsnottejia("no");
}
else
{
goods.setGoodsTejia(goodsTejia);
goods.setGoodsIsnottejia("yes");
}
goods.setGoodsKucun(goodsKucun);
goods.setGoodsDel("no");
goodsDAO.save(goods);
this.setMessage("操作成功");
this.setPath("goodsManaNoTejia.action");
return"succeed";
}
publicStringgoodsNoTejiaDel()
{
TGoodsgoods=goodsDAO.findById(goodsId);
goods.setGoodsDel("yes");
goodsDAO.attachDirty(goods);
this.setMessage("操作成功");
this.setPath("goodsManaNoTejia.action");
return"succeed";
}
publicStringgoodsManaNoTejia()
{
Stringsql="fromTGoodswheregoodsDel='no'orderbygoodsIsnottejia";
ListgoodsList=goodsDAO.getHibernateTemplate().find(sql);
for(inti=0;i { TGoodsgoods=(TGoods)goodsList.get(i); System.out.println(goods.getGoodsCatelogId()); goods.setGoodsCatelogName(catelogDAO.findById(goods.getGoodsCatelogId()).getCatelogName()); } Maprequest=(Map)ServletActionContext.getContext().get("request"); request.put("goodsList",goodsList); returnActionSupport.SUCCESS; } publicStringgoodsShezhiTejia() { TGoodsgoods=goodsDAO.findById(goodsId); goods.setGoodsIsnottejia("yes"); goods.setGoodsTejia(goodsTejia); goodsDAO.attachDirty(goods); returnActionSupport.SUCCESS; } 2.7订单管理模块 点击左侧的“订单管理”菜单。 页面跳转到订单管理界面。 图4.7订单管理界面 关键代码如下: publicStringorderMana() { Stringsql="fromTOrderorderbyorderUserId"; ListorderList=orderDAO.getHibernateTemplate().find(sql); Maprequest=(Map)ServletActionContext.getContext().get("request"); request.put("orderList",orderList); returnActionSupport.SUCCESS; } publicStringorderDel()//用户自己删除订单 { TOrderorder=orderDAO.findById(orderId); orderDAO.delete(order); Mapsession=ServletActionContext.getContext().getSession(); TUseruser=(TUser)session.get("user"); this.setMessage("删除成功"); this.setPath("myOrder.action? userId="+user.getUserId()); return"succeed"; } publicStringorderDelByAd()//管理员删除订单 { TOrderorder=orderDAO.findById(orderId); orderDAO.delete(order); Stringsql="deletefromTOrderItemwhereorderId="+orderId; orderItemDAO.getHibernateTemplate().bulkUpdate(sql); this.setMessage("删除成功"); this.setPath("orderMana.action"); return"succeed"; } publicStringorderShouli() { TOrderorder=orderDAO.findById(orderId); order.setOrderZhuangtai("yes");//已经受理订单 orderDAO.attachDirty(order); this.setMessage("受理订单成功"); this.setPath("orderMana.action"); return"succeed"; } 第3章系统测试 3.1测试目的 系统测试是为了发现错误而执行程序的过程。 它不仅是软件开发阶段的有机组成部分,而且在整个软件工程(即软件定义、设计和开发过程)中占据相当大的比重。 系统测试是软件质量保证的关键环节,直接影响着软件的质量评估。 系统测试不仅要讲究策略,更要讲究时效性。 验收测试作为系统测试过程的最后一个环节,对软件质量、软件的可交付性和软件项目的实施周期起到"一锤定音"的作用。 3.2测试方法 测试任何产品都有两种方法: 如果已知道了产品应该具有的功能,可以通过测试来检验是否每个功能都能正常使用;如果知道产品内部工作过程,可以通过测试来检验产品内部动作是否按照规格说明书的规定正常进行。 前一个方法称为黑盒测试,后一个方法称为白盒测试。 对于软件测试而言,黑盒测试法把程序看成一个黑盒子,完全不考虑程序的内部结构和处理过程。 也就是说,黑盒测试是在程序接口进行的测试,它只检查程序功能是否能按照规格说明书的规定正常使用,程序是否能适当地接收输入数据产生正确的输出信息,并且保持外部信息的完整性。 黑盒测试又称为功能测试。 与黑盒测试法相反,白盒测试法的前提是可以把程序看成装在一个透明的白盒子里,也就是完全了解程序的结构和处理过程。 这种方法按照程序内部的逻辑测试程序,检验程序中的每条通路是否都能按预定要求正确工作。 白盒测试又称为结构测试。 [20]根据本系统的特点和完成的功能情况,在这里我采用黑盒测试法。 3.3测试结果 所有功能都可以实现,系统运行良好,但是还有很多不够完善的地方,需要以后在使用的过程中继续完善。 第4章总结 在本次网络订餐系统的设计与开发过程中,通过一次次的失败,我已能熟练运用“JSP”、“SQLSERVER”、“系统分析与设计”等技术,通过此次设计与开发,把所学的知识进行融会贯通,通过遇到的难题和想办法去解决它,从而获取新的知识,边用边学,完善自己的知识体系结构。 但由于时间仓促,个人经验的不足,还不能让这个系统各个功能都做到完美,JSP代码较为复杂,我相信我还要有一段漫长的研究过程,不过通过这次论文的写作和系统设计,我觉得我真的学到了很多,给我以后的工作中提供了很大帮助和经验。 参考文献 [1]刘志海,通用试题库系统的设计与实现.信息化建设,计算机与信息技术: 95-98 [2
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机专业 毕业论文 交互式 网站