网上书店设计与使用-实验报告

合集下载

网上书店实验报告

网上书店实验报告

南华大学
计算机科学与技术学院
实验报告
(2012 ~2013学年度第一学期)
课程名称高级数据库开发设计
实验名称网上书店
姓名皮志刚学号20094350229
专业软件工程班级092班
地点6-714 教师刘征海
一、需求分析
1.系统功能描述
客户能够在网站注册,填写个人基本信息,并对其进行管理,浏览图书列表、查看图书详细信息,将图书加入购物车,并可以修改购物车的货品和数量,然后下订单购买图书,在业务员确认前可以取消订单;业务员可以管理图书信息,查看图书信息和库存,并对客户的订单进行管理,确认客户的新订单并提交给库房管理员;库房管理员可以管理图书的库存并处理业务员提交的清单,对客户发货。

2.系统流程
3.用例图
二、系统设计
1.系统结构
3.数据流图设计
①顶层数据流图:
②合法性检查二层数据流图:
③权限分析二层数据流图:
4.1E—R图设计
4.2表设计
三、系统实现
1.部分代码
2.部分截图首页:
加入购物车:
购物车:
提交订单:
会员成长:
书店后台管理:
四、总结
网站采用类似于淘宝网的模式,对图书的入库,销售,配送等进行信息化管理,运用三层架构、Ajax、JavaScript、HTML等技术,采用Profile管理用户,基本实现了对网上书店的管理。

网上书店设计与使用-实验报告

网上书店设计与使用-实验报告

网上书店设计与使用-实验报告-CAL-FENGHAI.-(YICAI)-Company One1实验报告题目:网上书店专业软件工程学生姓名班级学号指导教师指导单位日期 2010-6-8网上书店一、课题内容和要求内容:创建一个网上书店平台。

实现网上书店的基本功能,例如:用户用可查看可购买的书。

用户可查看书的具体信息。

在此基础上可以增加相应功能。

要求:利用J2EE编程开发。

可以在实现基本功能的基础上增加其他功能。

界面良好。

用户可以通过互联网与浏览器访问网上书店平台。

二、需求分析用户:1、用户可以注册会员,利用已经注册的用户名来登录相关界面。

2、用户可以登记自己的相关性信息,并且可以查看、更改自己的相关信息。

3、用户根据已经注册的用户名来登录系统。

用户可以查看所有物品的信息。

4、用户可以将想要购买的物品加入购物车,对已经加入购物车的物品,用户可以查看其相关信息,并且可以删除已经加入的物品。

5、对于购物车功能,可以增加新书、修改数量、删除已选书籍等,确认后,完成交易;6、用户可以根据作者的姓名、书名、书号来检索书籍。

7、用户可以查看当前订单和以往订单的相关信息。

8、客户可以通过信息反馈系统跟书店员工进行交流。

管理员:1、管理员可以删除、更改用户信息。

2、管理员可以删除、更改订单信息,可以输入订单的发货日期。

3、管理员可以删除、更改所有商品信息。

其他需求:系统应该具有一定的安全性和可靠性。

数据库支持大量数据的使用。

三、概要设计体系结构设计:用户使用流程:用户应用系统模块设计:管理员应用模块:四、源程序代码Base:/** 供JSON-RPC组件远程调用的AjaxBean */public class AjaxBean extends BaseLog {/**取得商品分类列表*/public String[][] getCategory(){String[][] options = null;MerService service = new MerServiceImpl();try{List list = service.browseCategory();Category cate = null;int i = 0;if (list!=null){options = new String[list.size()][2];Iterator it = list.iterator();while(it.hasNext()){cate = (Category)it.next();options[i][0] =cate.getId().toString();options[i][1]=cate.getCateName().trim();i++;}}else{options = new String[1][2];options[0][0] ="0";options[0][1] ="无商品分类";}}catch(Exception ex){("在执行AjaxBean类中的getCategory方法时出错:\n");ex.printStackTrace();}return options;}/**取得会员级别*/public String[][] getMemberLevel(){String[][] options = null;MemService service = new MemServiceImpl();try{List list = service.browseMemberLevel();Memberlevel ml = null;int i = 0;if (list!=null){options = new String[list.size()][2];Iterator it = list.iterator();while(it.hasNext()){ml = (Memberlevel)it.next();options[i][0] =ml.getId().toString();options[i][1] =ml.getLevelName().trim();i++;}}else{options = new String[1][2];options[0][0] ="0";options[0][1] ="无会员级别";}}catch(Exception ex){("在执行AjaxBean类中的getMemberLevel方法时出错:\n");ex.printStackTrace();}return options;}/**注册登录帐号有效性验证*/public boolean chkLoginName(String loginName){MemService service = new MemServiceImpl();boolean result = false;try{result = service.chkLoginName(loginName);}catch(Exception ex){("在执行AjaxBean类中的chkLoginName方法时出错:\n");ex.printStackTrace();}return result;}/**修改选购商品数量*/public boolean modiCart(int id,int number){CartService service = new CartServiceImpl();boolean result = false;try{result = service.modiCart(Integer.valueOf(id), number);}catch(Exception ex){("在执行AjaxBean类中的modiCart方法时出错:\n");ex.printStackTrace();}return result;}/**调整会员级别*/public boolean updateLevel(Integer id,Integer levelId){MemService service = new MemServiceImpl();boolean result = false;try{Member member = service.loadMember(id);Memberlevel level =service.loadMemberLevel(levelId);member.setMemberlevel(level);service.updateMember(member);result = true;}catch(Exception ex){("在执行AjaxBean类中的updateLevel方法时出错:\n");ex.printStackTrace();}return result;} }ORM:Mysessionfactory:public class MySessionFactory {private static String CONFIG_FILE_LOCATION = "/hibernate.cfg.xml";private static final ThreadLocal threadLocal = newThreadLocal();private static Configuration configuration = new Configuration(); private static org.hibernate.SessionFactory sessionFactory;private static String configFile = CONFIG_FILE_LOCATION;static {try {configuration.configure(configFile);sessionFactory =configuration.buildSessionFactory();} catch (Exception e) {System.err.println("%%%% Error Creating SessionFactory %%%%");e.printStackTrace();}}private MySessionFactory() {}public static Session getSession() throws HibernateException {Session session = (Session) threadLocal.get();if (session == null || !session.isOpen()) {if (sessionFactory == null) {rebuildSessionFactory();}session = (sessionFactory != null) sessionFactory.openSession(): null;threadLocal.set(session);}return session;}/**Rebuild hibernate session factory*/public static void rebuildSessionFactory() {try {configuration.configure(configFile);sessionFactory =configuration.buildSessionFactory();} catch (Exception e) {System.err.println("%%%% Error Creating SessionFactory %%%%");e.printStackTrace();}}/*Close the single hibernate session instance.*/public static void closeSession() throws HibernateException {Session session = (Session) threadLocal.get();threadLocal.set(null);if (session != null) {session.close();}}/*return session factory*/public static org.hibernate.SessionFactory getSessionFactory() {return sessionFactory;}/*return session factory session factory will be rebuilded in the next call*/public static void setConfigFile(String configFile) {MySessionFactory.configFile = configFile;sessionFactory = null;}/*return hibernate configuration*/public static Configuration getConfiguration() {return configuration;}}SERVICE:AdminServiceImpl:/** 系统用户管理接口实现 */public class AdminServiceImpl extends BaseLog implements AdminService {/** 系统管理员登录 */public Admin adminLogin(String loginName, String loginPwd) throws Exception {Session session = MySessionFactory.getSession();Transaction tx = null;Admin admin = null;try{String hql = "select a from Admin as a wherea.loginName=:loginName and a.loginPwd=:loginPwd";Query query = session.createQuery(hql);query.setString("loginName", loginName);query.setString("loginPwd", loginPwd);query.setMaxResults(1);tx = session.beginTransaction();admin = (Admin)query.uniqueResult();mit();}catch(Exception ex){if(tx!=null)tx.rollback();("在执行AdminServiceImpl类中的adminLogin方法时出错:\n");ex.printStackTrace();}finally{MySessionFactory.closeSession();}return admin;}/** 新增管理员 */public boolean addAdmin(Admin admin) throws Exception {Session session = MySessionFactory.getSession();Transaction tx = null;boolean status = false;try{tx = session.beginTransaction();session.save(admin);mit();status = true;}catch(Exception ex){if(tx!=null)tx.rollback();("在执行AdminServiceImpl类中的addAdmin 方法时出错:\n");ex.printStackTrace();}finally{MySessionFactory.closeSession();}return status;}/** 浏览管理员 */public List browseAdmin() throws Exception {Session session = MySessionFactory.getSession();Transaction tx = null;List list = null;try{Query query = session.createQuery("from Admin as a order by a.id");tx = session.beginTransaction();list = query.list();mit();if(!Hibernate.isInitialized(list))Hibernate.initialize(list);}catch(Exception ex){if(tx!=null)tx.rollback();("在执行AdminServiceImpl类中的browseAdmin方法时出错:\n");ex.printStackTrace();}finally{MySessionFactory.closeSession();}return list;}/** 删除指定的管理员 */public boolean delAdmin(Integer id) throws Exception {Session session = MySessionFactory.getSession();Transaction tx = null;boolean status = false;try{tx = session.beginTransaction();Admin admin = (Admin)session.load(Admin.class, id);session.delete(admin);mit();status = true;}catch(Exception ex){if(tx!=null)tx.rollback();("在执行AdminServiceImpl类中的delAdmin 方法时出错:\n");ex.printStackTrace();}finally{MySessionFactory.closeSession();}return status;}/** 装载指定的管理员 */public Admin loadAdmin(Integer id) throws Exception {Session session = MySessionFactory.getSession();Transaction tx = null;Admin admin = null;try{tx = session.beginTransaction();admin = (Admin)session.get(Admin.class, id);mit();}catch(Exception ex){if(tx!=null)tx.rollback();("在执行AdminServiceImpl类中的loadAdmin方法时出错:\n");ex.printStackTrace();}finally{MySessionFactory.closeSession();}return admin;}CartServiceImpl:public class CartServiceImpl extends BaseLog implements CartService {/** 选购商品 */ public boolean addCart(Member member,Merchandise mer, int number)throws Exception {Session session = MySessionFactory.getSession();Transaction tx = null;boolean status = false;try{Cartselectedmer sel = null;int favourable = member.getMemberlevel().getFavourable().intValue();//判断该会员是否已经有使用中的购物车String hql ="from Cart as a where a.member=:member and a.cartStatus=0";Query query = session.createQuery(hql);query.setEntity("member", member);query.setMaxResults(1);tx = session.beginTransaction();Cart cart = (Cart)query.uniqueResult();if (cart==null){cart = new Cart();cart.setCartStatus(new Integer(0));cart.setMember(member);cart.setMoney(Double.valueOf(number*mer.getPrice().doubleValue()) ); cart.getMerchandises().add(mer);session.save(cart);}else{//如果选购的是已经选购过的商品则只增加商品数量即可hql = "select a from Cartselectedmer as a where a.cart=:cartid and a.merchandise=:merid order by a.id desc";query = session.createQuery(hql);query.setInteger("cartid",cart.getId().intValue());query.setInteger("merid",mer.getId().intValue());query.setMaxResults(1);sel = (Cartselectedmer)query.uniqueResult();int total = number;System.out.println((total*mer.getPrice().doubleValue()*favourable /100)); if(sel!=null){total = number+sel.getNumber().intValue();sel.setNumber(Integer.valueOf(total));if (mer.getSpecial().intValue()==1){//特价商品sel.setPrice(mer.getSprice());sel.setMoney(Double.valueOf(total*mer.getSprice().doubleValue());}else{//普通商品sel.setPrice(Double.valueOf(mer.getPrice().doubleValue()*favour able/100));sel.setMoney(Double.valueOf(total*mer.getPrice().doubleValue()*fa vourable/100)); }session.update(sel);}else{cart.getMerchandises().add(mer);}if(mer.getSpecial().intVal ue()==1){cart.setMoney(Double.valueOf(cart.getMoney().doubleValue()+number*mer.getSprice().doubleValue()));}else{//普通商品cart.setMoney(Double.valueOf(cart.getMoney().doubleValue()+numb er*mer.getPrice().doubleValue()*favourable/100));}session.update(cart);}mit();//如果是尚未选购过的则要修改选购记录的有关字段if(sel==null){tx = session.beginTransaction();hql = "select a from Cartselectedmer as a where a.cart=:cartid and a.merchandise=:merid order by a.id desc";query = session.createQuery(hql);query.setInteger("cartid",cart.getId().intValue());query.setInteger("merid",mer.getId().intValue());query.setMaxResults(1);sel = (Cartselectedmer)query.uniqueResult();if(sel!=null){sel.setNumber(Integer.valueOf(number));if (mer.getSpecial().intValue()==1){//特价商品sel.setPrice(mer.getSprice());sel.setMoney(Double.valueOf(number*mer.getSprice().doubleValue()) );}else{//普通商品sel.setPrice(Double.valueOf(mer.getPrice().doubleValue()*favour able/100));sel.setMoney(Double.valueOf(number*mer.getPrice().doubleValue()*f avourable/100));} session.update(sel);}mit();}status = true;}catch(Exception ex){if(tx!=null)tx.rollback();("在执行CartServiceImpl类中的addCart方法时出错:\n");ex.printStackTrace();}finally{MySessionFactory.closeSession();}return status;} }五、测试数据及其结果分析注册界面:错误提示:登陆后界面:物品展示:修改用户信息界面:(正文格式:宋体,小4号,不加粗,两端对齐,1.5倍行距)六、调试过程中的问题在系统设计阶段,要考虑很多的问题。

网上书店系统分析设计报告

网上书店系统分析设计报告

网上书店系统分析设计报告
一、引言
随着互联网的快速发展,网上购物已经成为人们日常生活中不
可或缺的一部分。

在这种背景下,网上书店系统应运而生。

网上书
店系统为用户提供了一个方便快捷的购书平台,使用户可以随时随
地浏览和购买各种图书。

本报告将对网上书店系统进行分析和设计,以确保其功能和性能的优化。

二、系统分析
1. 系统需求分析
(1)功能需求:用户注册与登录、图书浏览与搜索、购物车管理、订单管理、用户评价与推荐等。

(2)性能需求:系统应具备高并发能力、响应时间快、稳定性强等。

(3)安全需求:用户数据要保密,支付过程要安全可靠。

2. 系统结构分析
网上书店系统可以分为前端和后端两个主要部分。

(1)前端:包括用户界面和用户交互,用户可以在前端进行注册、登录、搜索图书、加入购物车和下订单等操作。

(2)后端:包括数据管理和业务逻辑处理,包括用户数据管理、图书数据管理、订单数据管理、支付处理等。

3. 数据库设计
(1)用户数据表:包括用户ID、用户名、密码、手机号、邮
箱地址等信息。

(2)图书数据表:包括图书ID、图书名称、图书作者、图书
价格、库存数量等信息。

(3)订单数据表:包括订单ID、用户ID、下单时间、订单状
态等信息。

三、系统设计
1. 前端设计
前端设计应注重用户友好性和可用性,包括以下关键设计要素:。

网上书店实习报告

网上书店实习报告

实习报告一、实习背景与目的随着互联网的普及和发展,网上书店逐渐成为人们购买图书的主要渠道之一。

为了深入了解网上书店的运营模式,提高自己的实践能力,我选择了在网上书店进行为期一个月的实习。

本次实习的主要目的是了解网上书店的运营流程,学习电子商务的基本知识,提高自己的网络营销和客户服务技能。

二、实习内容与过程在实习期间,我参与了网上书店的日常工作,主要包括以下几个方面:1. 商品管理:协助整理图书信息,上传新书信息,更新库存状态,确保商品信息的准确性和及时性。

2. 网站维护:参与网站页面的设计和修改,优化网站布局和功能,提高用户体验。

3. 网络营销:参与制定网络营销策略,进行微博、微信等社交媒体的宣传推广,提高店铺知名度和销售额。

4. 客户服务:负责解答客户咨询,处理订单和售后问题,提供优质的客户服务。

5. 数据分析:收集和分析销售数据,了解顾客需求和购买习惯,为营销策略提供依据。

三、实习收获与反思1. 了解了网上书店的运营流程和电子商务的基本知识,对电子商务有了更深入的认识。

2. 提高了自己的网络营销和客户服务技能,学会了如何通过社交媒体推广产品和提供优质的服务。

3. 学会了使用数据分析工具,掌握了数据分析的基本方法,能够根据数据提出营销建议。

4. 意识到电子商务市场竞争激烈,需要不断创新和提升自身能力才能在市场中立足。

四、实习总结通过本次实习,我对网上书店的运营模式有了更深入的了解,也积累了宝贵的实践经验。

我认识到,作为一名电子商务专业的学生,需要不断学习和提升自己的专业知识和技能,以适应不断变化的市场环境。

同时,我也明白了实践是检验真理的唯一标准,只有通过实践才能真正掌握所学知识,并将知识运用到实际工作中。

在今后的学习和工作中,我将继续努力,不断提高自己的实践能力,为将来的职业发展打下坚实的基础。

网上书店课程设计报告

网上书店课程设计报告

网上书店课程设计报告一、课程目标知识目标:1. 让学生理解并掌握网上书店的基本概念、功能与操作流程。

2. 使学生了解电子商务的基本原理,以及其在网上书店中的应用。

3. 帮助学生掌握网络购物的安全知识,提高网络安全意识。

技能目标:1. 培养学生运用网络技术进行购物、比价、评价等操作的能力。

2. 提高学生运用电子商务平台进行信息检索、筛选和整理的能力。

3. 培养学生分析、评价网络购物中潜在风险的能力。

情感态度价值观目标:1. 培养学生热爱科学、积极探索网络技术的兴趣和热情。

2. 增强学生的网络安全意识,树立正确的网络道德观念。

3. 培养学生合作、分享、尊重他人意见的良好品质。

课程性质分析:本课程为信息技术课程,旨在帮助学生了解并掌握网上书店的相关知识,提高学生的网络素养。

学生特点分析:六年级学生具备一定的计算机操作能力和网络知识,对新事物充满好奇,但网络安全意识相对薄弱。

教学要求:1. 结合课本内容,注重理论与实践相结合,提高学生的实际操作能力。

2. 关注学生个体差异,因材施教,确保每个学生都能掌握课程内容。

3. 创设情境,激发学生的学习兴趣,培养学生主动探索、合作学习的良好习惯。

二、教学内容依据课程目标,本章节教学内容主要包括以下三个方面:1. 网上书店基本概念与功能- 了解网上书店的定义、发展历程及其与传统书店的区别。

- 学习网上书店的主要功能,如搜索、分类、购物车、订单管理等。

2. 电子商务原理与应用- 掌握电子商务的基本概念、类型及其在网上书店中的应用。

- 学习网上支付、物流配送、客户服务等电子商务相关知识。

3. 网络购物安全与道德- 认识网络安全的重要性,学习防范网络诈骗、保护个人信息的方法。

- 培养正确的网络道德观念,尊重知识产权,遵循网络购物规范。

教学大纲安排如下:第一课时:网上书店基本概念与功能第二课时:电子商务原理与应用第三课时:网络购物安全与道德教学进度:第一周:完成第一、二课时的学习,进行网上书店实际操作练习。

网上书店系统实训报告

网上书店系统实训报告

课程实训报告书课程名称:电子商务网站建设姓名:唐玲学号:0 3专业班级:电商S09-2 系(院):经济管理系设计时间:第14周设计地点:5408目录一实训目的 (3)二实训题目及要求 (3)2.1 设计要求: (3)2.2 应用程序界面设计 (3)2.21 登录和密码验证系统 (3)2.22 商品信息维护系统 (3)2.23 集成的购物车系统 (4)三需求分析与可行性分析 (4)3.1需求分析 (4)3.12网上购书的优势 (4)1.2 可行性分析 (4)四整体图示 (5)4.1 网站拓补结构图 (5)4.2整体操作流程图 (6)4.3功能模块描述 (6)4.31销售模块 (6)4.32会员操作模块 (7)4.33 后台操作模块 (7)五实训步骤 (8)5.1数据库设计 (8)5.2 用户登录 (9)5.3 添加书籍 (11)5.4 查看商品 (12)5.5 购买商品 (13)六实训心得 (16)3一实训目的网上书店又名电子书店、线上书店和虚拟书店,其内涵都一样,都是利用信息技术、数字技术、虚拟技术和网络技术在因特网上进行图书贸易的一种新型书店,是图书出版发行的另一个新型市场。

二实训题目及要求实训题目:设计一个网上书店系统,功能模块包括:登录和密码验证系统,商品信息维护系统和集成的购物车系统。

2.1 设计要求:数据库设计:account表包括username、password、authlevel和name4个字段;shopingcart表包括username、productID和quantity;catalog表包括productID、name、description、image、listprice、numinstock和category;orde表包括orderID、username、productID、listprice、quantity和orderdate。

2.2 应用程序界面设计2.21 登录和密码验证系统1 系统功能与组成2 数据库设计3 实现用户登录功能4 实现新用户注册功能5 实现密码修改功能2.22 商品信息维护系统1 实现商品信息输入功能2 实现商品信息修改功能3 实现商品信息查询功能2.23 集成的购物车系统1 实现商品搜索功能2 实现专门的放入购物车功能3 完善购物车系统4 实现下订单功能三需求分析与可行性分析3.1需求分析3.12网上购书的优势(1)网上书店挤压盗版空间(2)网上书店浓缩了图书的库存空间(3)数量、种类多,出版时间跨度大(4)不受时间、地域限制(5)信息丰富(6)多途径综合检索(7)价格低廉(8)个性服务1.2 可行性分析随着计算机技术的发展和网络人口的增加,网络世界也越来越广博,越来越丰富,电子商务已经成为网上的一股潮流。

网上书店实验报告

网上书店实验报告

实验四软件概要设计实验目的和任务目的:完成系统的体系结构的建立和概要设计,并给出相应的规格说明书。

任务:认真分析实验三的结果,给出系统合理的体系结构,描绘系统结构图,并合理划分系统的各组成模块,最后给出系统的各部分设计规格说明书。

预习内容参考资料和阅读相关的国家有关软件开发的标准文档。

实验内容及要求功能结构图设计,软件处理流程设计,输出设计,存储文件格式设计(数据库结构设计),输入设计。

实验结果1功能结构图本软件具有如下主要功能:●图书管理数据添加数据删除数据修改●会员管理会员注册会员查询图书查询●查询管理条件查询模糊查询●购物车管理图书添加图书查询图书修改●订单管理订单查询订单修改功能描述●身份验证功能对登录用户的身份进行验证,通过者才可以进入系统;●条件查询功能(1)如按书名、名号、作者、出版社等(2)模糊查询●数据添加功能增加一条新记录●数据删除功能删除一条记录,并且提供确认机制。

●数据修改功能修改任意一条记录的所有域,其中书名不能为空●用户管理功能添加用户功能删除用户功能修改用户功能2处理流程系统启动后,进入主界面,然后通过身份验证进入系统里,根据系统配置文件将数据库导入,并设置各全局变量;由退出系统事件激活退出系统模块,退出系统;系统总体结构如图s3.1所示。

图s3.1 系统总体结构和模块外部设计功能分配系统控制功能初始化模块(M1)会员验证模块(M2)游客模块(M3)管理员验证模块(M4)图书查询(M21)购物车(M22)订单(M23)退出(M24)会员管理(M41)图书管理(M42)订单管理(M43)退出(M44)(1)图书查询功能条件查询模块(M211)模糊查询模块(M212)(2)购物车功能添加图书模块(M221)查询图书模块(M222)修改图书模块(M223)(3)订单功能订单查询模块(M231)订单修改模块(M232)(4)会员管理会员登陆模块(M411)会员注册模块(M412)会员注销模块(M413)(5)图书管理图书添加模块(M421)图书删除模块(M422)图书修改模块(M423)(6)订单管理执行订单模块(M431)查看订单模块(M432)3数据结构设计逻辑结构设计(1) 全局变量<1>记录总数RecordTotal: Int<2>浏览顺序数组Browse: INt Browse[max]<3>焦点记录FocusRecord: Int<4>表From: Action=”.link.jsp” method=”post”<5>内存记录缓冲区RecordBuffer: NameAdd RecordBufferNameAdd=: [max]Struct{ INt Index;Char Name[20];Char Company[80];Char Telnump[40];}NameAdd;(2)文件名adminlist.aspx 管理员首页addbook.aspx 添加图书信息bookdetail.spx 图书详情Booklist.aspx 管理员图书列表Cartok.aspx 填写购物车客户信息Headad.aspx 管理员登录首页头部Index.aspx 主页面Login.aspx 用户登录页面Morebookin.aspx 更多图书页面Reg.aspx 用户注册页面Tail.aspx 首页底部页面Updatesearchbook.aspx 修改查询图书(管理员)Userlist.aspx 用户信息列表(3)数据库Name-CarD Tabel 定义思考题1系统设计与需求分析的关系是什么?两者必须前后关联吗?2怎样描绘系统的体系结构?3怎样绘制符合规范的流成图?1在软件工程中,需求分析指的是在建立一个新的或改变一个现存的电脑系统时描写新系统的目的、范围、定义和功能时所要做的所有的工作。

网络书城系统实验报告(3篇)

网络书城系统实验报告(3篇)

第1篇一、实验目的本次实验旨在通过设计与实现一个网络书城系统,掌握以下技能:1. 理解电子商务网站的基本架构和功能模块。

2. 掌握使用Java编程语言进行Web开发。

3. 熟悉SSM(Spring、SpringMVC、MyBatis)框架在Web开发中的应用。

4. 学习使用MySQL数据库进行数据存储和管理。

5. 提高团队协作能力和项目管理能力。

二、实验环境1. 开发工具:IntelliJ IDEA/Eclipse2. 服务器:Tomcat 9.03. 数据库:MySQL 5.74. 版本控制:Git三、系统需求分析网络书城系统主要面向广大读者,提供图书浏览、购买、评论、搜索等功能。

系统分为前台和后台两个部分。

前台功能模块:1. 首页:展示最新图书、热销图书、新品推荐等信息。

2. 商品分类:按图书类别展示图书信息。

3. 图书详情:展示图书详细信息,包括封面、简介、价格、评论等。

4. 购物车:用户可以将图书添加到购物车,进行结算。

5. 订单管理:用户可以查看订单状态、取消订单、申请退款等。

6. 个人中心:用户可以查看个人信息、修改密码、查看历史订单等。

7. 搜索:用户可以通过关键词搜索图书。

后台功能模块:1. 管理员登录:管理员登录系统进行管理。

2. 商品管理:管理员可以添加、修改、删除图书信息。

3. 订单管理:管理员可以查看、处理订单,包括发货、取消、退款等。

4. 用户管理:管理员可以查看、修改、删除用户信息。

5. 评论管理:管理员可以查看、删除用户评论。

四、系统设计1. 技术选型:采用SSM框架进行开发,数据库使用MySQL。

2. 系统架构:采用B/S架构,前端使用HTML、CSS、JavaScript等技术,后端使用Java编程语言。

3. 数据库设计:根据系统需求,设计图书、用户、订单、评论等数据表。

4. 功能模块设计:根据需求分析,将系统划分为多个功能模块,如首页模块、商品模块、购物车模块等。

UML实验报告-网上书店

UML实验报告-网上书店

本科实验报告课程名称:系统分析与设计实验项目:《网上书店系统》实验实验地点:逸夫楼402专业班级:学号:学生姓名:指导教师:**2013年10月21、28日2013年11月4、11日目录1.实验准备:熟悉UML建模环境2.实验一用例图3.实验二类图4.实验三顺序图及通信图5.实验四活动图、状态图、组件图及部署图实验一用例图一、实验目的初步掌握UML用例图的创建方法及其用例的描述。

二、实验要求1.结合工具StartUML,熟悉UML用例图的模型元素。

2.使用StartUML工具建模网上书店系统的用例图。

三、实验主要设备:HP6460b四、实验内容:根据下面给出的网上书店问题陈述,分析该系统总体需求,建模网上书店系统的用例图并提供一个主要用例的事件流文档。

网上书店陈述:书店经理:我们原本是一个传统的实体书店,顾客要买书都是亲自到书店里来的,这样挺不方便。

面且随着书店销售图书种类和数量的增加以及顾客的增长,尤其是大量顾客到书店选购图书,使得书店场地不足,工作人员也很忙碌。

其实,还有一点就是,有不少人进入书店后并不买书,只是查找一些资料。

有的甚至会在这呆上很长的时间直到把书免费看完。

这种行为,工作人员一般是不阻止的,结果最后这些被看过的书会因为有阅读过的痕迹而影响销售。

而且现在电子商务已经发展起来了,所以我们想到借助网络,让顾客通过网上书店购买图书。

这样我们书店可以省掉大量的场地维护和工作人员成本支出,同时计算机可以方便的检索图书信息,让顾客可以足不出户以更优惠的价格买到需要的书。

系统分析员:能谈谈您对网上书店的要求吗?书店经理:网上书店要能实现对外和对内的功能,对外是顾客能在网上书店订购图书,提交订单。

对内,书店工作人员能够通过网上书店及时的看到这些订单,并进行处理。

为了把书送到顾客手里,我们已经联系了快递公司,初步达成协议,由他们往返场客和书店之间把图书送到顾客手里。

书店管理员受理订单后,就会通知快递公司送货。

网上书店实验报告

网上书店实验报告

网上书店实验报告网上书店实验报告一、引言随着互联网的快速发展,电子商务成为了人们购物的一种方便而受欢迎的方式。

其中,网上书店作为电子商务的一种形式,为读者提供了更加便捷的购书体验。

本实验旨在探讨网上书店的优势和不足之处,以及对传统实体书店的影响。

二、实验设计1. 实验对象:本实验选择了一家知名的网上书店作为研究对象,以其为基础进行实验设计。

2. 实验方法:通过对网上书店进行深入调研和用户体验分析,了解其优势和不足之处。

三、网上书店的优势1. 便捷的购书体验:网上书店提供了24小时不间断的购书服务,无论何时何地,用户都可以随时购买自己喜欢的图书。

这种便捷性使得用户不再受时间和地点的限制,大大提高了购书的便利度。

2. 丰富的图书资源:相比传统实体书店,网上书店拥有更为庞大的图书资源。

用户可以轻松搜索到各种类型的图书,包括畅销书、学术著作、小众读物等。

这种丰富性为读者提供了更多的选择空间,满足了不同人群的阅读需求。

3. 个性化推荐系统:网上书店通过用户的浏览和购买记录,利用智能算法进行个性化推荐。

这种推荐系统能够根据用户的兴趣和偏好,提供更加准确的推荐结果。

用户可以更快地找到自己感兴趣的图书,提高了购书的效率。

四、网上书店的不足1. 无法亲身感受图书:与实体书店相比,网上书店无法让用户亲身感受图书的纸质质感和味道。

对于一些喜欢翻阅书页、品味纸张的读者来说,网上书店的购书体验可能无法完全取代传统书店。

2. 物流速度和服务质量:虽然网上书店提供了便捷的购书方式,但是物流速度和服务质量也是用户关注的重点。

一些用户反映,网上书店的物流速度不够快,而且在售后服务方面存在一定的问题。

这些问题需要网上书店进一步改进,提高用户的购书体验。

五、网上书店对传统实体书店的影响1. 竞争压力加大:随着网上书店的兴起,传统实体书店面临着巨大的竞争压力。

一些用户更倾向于选择网上购书,导致实体书店的销售额下降。

传统实体书店需要寻找创新的方式,吸引更多的读者前来购书。

JSP网上书店系统实验报告

JSP网上书店系统实验报告

JSP网上书店系统实验报告一、引言随着互联网的普及,电子商务逐渐深入人们生活中的各个领域。

传统的实体书店面临着越来越大的市场压力,越来越多的人选择在网上购买书籍。

因此,网上书店系统逐渐成为了现代书店的一种主要经营方式。

本次实验旨在设计并实现一款JSP网上书店系统。

通过该系统,用户可以在网上浏览、购买、评论书籍,完成对书籍的全方位了解;管理员可以对网上书店的内容进行管理并生成订单。

二、需求分析1. 用户系统用户需求是网上书店系统的核心。

网上书店系统需要支持用户登录和注册,并保证账户安全。

同时,用户需要可浏览、搜索、评价、购买书籍。

网站还要根据用户书籍评价生成用户评分和热门书籍推荐。

2. 管理员系统网上书店系统还需要管理员,通过管理员功能,可以实现对网上书店的内容管理。

管理员需要实现书籍、分类的增删查改,订单的管理等功能。

3. 交互界面用户和管理员都需要一个友好的交互界面,书籍分类需要图文展示,购物车和支付功能需要简单易用。

三、系统设计1. 架构设计网上书店系统采用B/S架构,前端使用JSP、HTML、CSS等技术,后端使用Java技术,采用MySQL数据库,Tomcat服务器进行部署。

2. 功能模块划分网上书店系统主要分为用户模块和管理员模块。

具体模块如下:•用户模块:登录、注册、书籍浏览、书籍搜索、评价、购买、个人信息管理等。

•管理员模块:登录、添加书籍、删除书籍、修改书籍信息、订单管理等。

•其他功能模块:购物车、订单管理。

3. 系统流程图系统流程图系统流程图四、实现步骤1. 开发环境准备开发环境:JDK8.0、MySQL5.7、Tomcat8.5、Eclipse。

2. 前端页面设计使用JSP、HTML、CSS等技术实现前端页面设计。

其中,书籍分类展示使用Bootstrap框架实现。

3. 后端代码实现后端代码采用基于MVC模式的Servlet和JSP技术实现。

基于JavaBean实现模型层,采用DAO设计模式进行数据库访问操作。

网上书店系统实验报告

网上书店系统实验报告

INTERNET 课程设计实验报告网上书店系统院系:信息工程学院班级:信息管理与信息系统学号:***************指导教师:***2014年6月10日~ 2014年6 月20日第一章.引言 (4)1.1编写目的 (4)1.2项目背景 (4)1.3可行性研究.................................. 错误!未定义书签。

第二章.系统开发的目标 (4)第三章.系统需求分析 (5)3.1总体需求 (5)3.2功能需求 (5)3.3技术要求 (6)3.4 性能需求 (6)第四章.系统架构设计 (6)4.1系统技术架构设计 (6)4.2系统功能架构设计 (7)4.2.1系统整体功能架构图 (7)4.2.2系统功能架构说明 (8)第五章.系统详细设计 (9)5.1系统系统界面设计 (9)5.1.1前台管理界面 (9)5.1.2后台管理界面 (9)5.2数据库设计 (11)5.2.1书籍类别表 (11)5.2.2书籍详细信息表 (11)5.2.3会员注册信息列表 (12)5.2.4消费者订单列表: (12)5.2.5购买书籍详细列表: (12)5.2.6购物车信息列表 (13)5.2.7会员购买书籍评价列表:....... 错误!未定义书签。

第六章.总结第一章.引言1.1编写目的本需求分析文档的目的是说明网上书店管理系统最终需要满足的条件和限制,为进一步设计和实现提供依据1.2项目背景1)系统名称:网上书店管理系统2)需求背景分析:近年来,电子商务伴随着IT的成熟,逐渐发展壮大,成为网络经济的核心。

在电子商务的发展过程中,人们逐渐意识到在线购物的无地域界限、安全、方便快捷及其价格优势,在线购物的队伍也随之扩大.3)系统用途:管理员将书籍信息整理归类发布到网上,用户登录该网站后,首先要注册为会员才能购买书籍。

4)系统用户:该系统的使用者主要分为三类:浏览者、注册用户和管理员。

第二章.系统开发的目标浏览者可以浏览网上书店中的书籍信息;注册用户除了可以浏览网上书店中的书籍信息外,还可以进行网上购书;管理员可以对网上书店中的书籍信息进行管理、处理客户的订单等。

数据库.网上书店实验报告

数据库.网上书店实验报告

数据库课程设计实验报告网上书店目录1.引言 (2)1.1实验目的 (2)1.2 问题描述 (2)2.系统概述 (2)2.1 功能简述 (2)2.2 性能需求 (2)2.3 数据库中的关系模型 (2)3.整体设计 (3)4.软件环境和高级语言的使用 (3)5.详细设计 (4)5.1数据库的建立 (4)5.1.1 建立客户账户信息的表 (4)5.1.2 建立出版商的表 (4)5.1.3 建立图书表 (4)5.1.4 建立用户登录的表 (4)5.1.5 插入图书信息 (5)5.2 功能实现的部分代码 (5)6.系统测试 (17)7.实验总结 (20)1.引言1.1实验目的巩固复习曾经学习过的数据库课程,并通过实际的实验对所学的知识加以巩固以达到模拟现实生活中实际用例的目的。

1.2问题描述设计一个网上书店系统,满足用户需求。

2.系统设计2.1功能简述网上书店主要分为前台浏览和后台管理两个部分。

前台浏览部分,主要由普通的顾客进行操作,主要功能有浏览图书、查看图书详细信息,添加购物车和结账。

后台管理部分的用户是系统管理员,主要功能包括图书的增、删、改、查。

网上书店功能结构图2.2 性能需求网上书店应该能够提供友好的用户界面,使各类用户的工作量最大限度减少。

同时系统需要具有良好的运行效率,响应时间要尽可能短。

2.3数据库中的关系模型数据库中的关系主要有图书(ISBN号,书名,版权,版本号,出版商,价格),订单信息(书籍名称,数量,价格,小计),客户账户信息(客户名,邮编,电话,信用卡号,购书总额)。

E-R图如下:3.整体设计进入网上书店系统,首先是登陆页面,输入正确的用户名和密码后进入首页。

这时,可以选择“浏览图书”或者“书架维护”。

“浏览图书”是普通顾客操作的页面,进入后会出现所有图书的信息。

点击图书的ISBN,可以进入每本图书的详细信息页面,之后可以选择“放入购物车”和“查看购物车”。

点击“放入购物车”之后,可以选择“继续购物”或者“结账”,点击“继续购物”则回到“浏览图书”的页面,点击“结账”则显示订单处理页面。

网上书店的设计与实现毕业设计报告

网上书店的设计与实现毕业设计报告

学海无涯苦作舟!网上书店的设计与实现课程:计算机信息管理专业班级:***指导教师:**学生姓名:***1网站需求分析1.1功能需求 ............................................................. 3 1.2性能需求 ............................................................. 3.. 1.3开发环境 ............................................................. 3..2网站总体设计 ......................................................... 4.2.1系统层次模块图 ....................................................... 4.. 2.2模块设计 ............................................................. 4.. 2.3数据库设计 ........................................................... 5.. 2.4 E-R 图设计 ........................................................... 7.. 2.5业务流程图 ........................................................... 8.. 2.6数据流图 ............................................................. 9..3系统详细设计 ........................................................ 1.1.3.1前台管理模块 ......................................................... ..1. 3.1.1 Web 用户控件 .................................................... 11 3.1.2网站首页 ......................................................... 11. 3.1.3图书详细信息页面 ................................................ .2 3.1.4用户注册页面 .................................................... 13 3.1.5密码查找页面 ..................................................... 13 3.1.6最新商品查找 ..................................................... 14 3.1.7图书搜索页面 ..................................................... 15 3.1.8图书类别导航查找图书页面 ........................................ 15 3.1.9我的购物车页面 ................................................... 16 3.1.10已购商品页面 ................................................... 16 3.1.11个人中心页面 .................................................... 17 3.1.12留言板页面 ..................................................... 17 3.2后台管理模块 ......................................................... .8 3.2.1 Web 用户控件 ................................................... 18 3.2.2管理员登录页面 .................................................. 18 3.2.3管理员控制面板页面 .............................................. .9 3.2.4添加管理员页面 (19)、八 刖.言2..3.3.2.5管理管理员页面 (19)326管理用户页面 (20)327添加图书类别页面 (20)3.2.8添加图书页面 (21)3.2.9管理图书类别页面 (21)3.2.10管理图书页面 (22)3.2.11查看图书页面 (22)3.2.12审核订单页面 (23)小结 (24)参考文献 (24)摘要随着互联网络的发展,网上书店越来越为人们所关注。

网上书店毕业实践调研报告_调研报告_

网上书店毕业实践调研报告_调研报告_

网上书店毕业实践调研报告一、课题的来源及意义1.1 来源如今,网络电子商务已经得到越来越多的应用,网上购物使得交易的效率提高,节省了人们的宝贵时间,足不出户就可以购买到自己想要的东西,而且网上购物信息量大,且易于查询,大大方便了现在人们的生活。

人们在快节奏的生活中寻找快捷的生活方式,其中电子商务技术为人们提供了更加便利的购物方式。

随时代的发展,网上业务越来越受到人们的欢迎,其中给人们带来的最大的方便的便是互联网。

随之产生的网上购物更是网络中的新秀。

只要轻轻一点就会送货上门,真是既方便又快捷!于是网上购物逐渐被越来越多的人们所认识,成为了当今红火的商业形式之一。

本课题“网上书城”就是网络电子商务的一种。

1.2 意义随着Internet的发展,传统的商品购物运作模式被打破了,网络提供了一种新技术上的可行性的方案:利用Internet的技术和协议,建立各种网上商店,而本网上书店系统,正是通过互联网,将一个虚拟都呈现在用户面前:客户在网上与供应商联系,利用网络进行会计结算和支付服务。

从而通过简单、廉价、快捷、低成本的电子通信方式的通讯手段,将买家与卖家、书商和合作伙伴紧密结合在了一起,消除时间与空间带来的障碍,从而使买卖双方不谋面地进行的各种商贸活动。

从而大大的节约了交易成本,扩大了交易范围。

而在实际的生活中,这种方案已经被广泛的运用到了实际的商业活动中了,人们将这种交易模式称为:电子商务。

电子商务通过信息网络以电子数据信息流通的方式,其内容包含两个方面:一是电子方式,二是商贸活动。

网上书店正是以商贸方式展开的,电子商务可以在全中国范围内进行并完成的各种商务、交易、金融等相关的综合服务活动。

它是传统的计算机网络应用技术、信息处理技术和商务运做技术相互渗透的结果。

在网上书店买书,可以查到所买图书的更多信息,因为网上书店是一个网站,它有它独特的售书方式和功能。

如用户注册会员功能等,会员类型有:高级会员、金牌会员等。

网上书店系统实验报告

网上书店系统实验报告

实验报告一、实验题目编程实现“网上书店系统”二、题目分析1、需求分析要开发一个系统,首先要了解该系统到底想做什么,需要实现怎样的功能,这就是需求分析。

网上书店从大的需求方面看,就是要实现通过互联网能够进行书籍的购买及相关的管理等功能,大致需要提供下面的一系列功能:*浏览书籍(模糊查询)*选择需要购买的书籍*可以继续选择别的书籍,并且可以购买该书籍*选择了需要购买的书籍后,进行购买书籍操作*保存选中的图书和数量UML图:2、数据分析图书信息数据库购物车本次会话有效1、页面转移关系再次查询2、对象模型(1)界面对象(View)*查询页Search.jsp*图书目录页Directory.jsp*购物车页Cart.jsp*定单页Order.jsp(2)控制器(Control)*CtrlServlet 负责响应输入命令*包括:模糊查询key、查看购物车cart、结算order 、继续选书continue、再次查询search(3)业务模型*图书信息:BookBean 实体类的会话Bean*购物车信息:CartBean 会话Bean(1)图书信息(数据库表、查询结果)*书号ISBN char[24] 主键*书名Title char[64]*作者Author char[32]*出版社Press char[32]*价格Price double(2)购物车信息*书号ISBN char[24]*数量Number integer(3)共享数据*查询结果和选中的图书信息*作为session参数4、动态模型5、EJB接口设计(1)BookBean 管理图书信息(封装数据库)*find( string key )*根据关键字从数据库中查找出图书信息记录(数组)条件:书名、作者、出版社名中包含关键字get( string isbn )*根据书号,找出图书信息记录(2)CartBean 管理购物车信息(本次会话有效)*add( string isbn ) 添加记录*gest( ) 获得记录数组*set( string isbn, integer num ) 设置购买数量5、控制器(1)CtrlServlet 的输入*来自查询页page=“search”&key=关键字*来自图书目录页page=“directory”&submit=“cart”&choose=书号数组page=“directoty”&submit=“search”*来自购物车页page=“cart”&submit=“order”page=“cart”&submit=“continue”page=“cart”&submit=“search”(2)算法概要*模糊查询search按照key 从BookBean 查询图书,转交图书目录页*查看购物车将选定图书存入CartBean,转交购物车页*结算计算CartBean中的图书总价,从BookBean获得图书信息,连同地址,转交定单页*继续选书返回图书目录页*再次查询转向查询页*异常处理直接生成错误信息页面四、实现技术1、采用MVC 模式(1)JSP 实现页面视图View(2)Servlet 实现控制Control(3)EJB 实现业务模型Model2、交互关系(1)JSP 表单动作(form)⎝ CtrlServlet(2)Servlet 转发⎝ JSP 页面3、数据传输(1)Servlet 调用EJB 对象获得数据(2)Servlet 通过session 参数传递给JSP 页面五、实验源代码1、BooksOnline-ejb(1)Books①Books.java:import java.io.Serializable;import javax.persistence.Column;import javax.persistence.Entity;import javax.persistence.Id;dQueries;import dQuery;import javax.persistence.Table;@Entity@Table(name = "BOOKS")@NamedQueries({@NamedQuery(name = "Books.findByIsbn", query = "SELECT b FROM Booksb WHERE b.isbn = :isbn"), @NamedQuery(name = "Books.findByTitle", query = "SELECTb FROM Books b WHERE b.title = :title"), @NamedQuery(name = "Books.findByAuthor",query = "SELECT b FROM Books b WHERE b.author = :author"), @NamedQuery(name = "Books.findByPress", query = "SELECT b FROM Books b WHERE b.press = :press"), @NamedQuery(name = "Books.findByPrice", query = "SELECT b FROM Books b WHERE b.price = :price")})public class Books implements Serializable {private static final long serialVersionUID = 1L;@Id@Column(name = "ISBN", nullable = false)private String isbn;@Column(name = "TITLE")private String title;@Column(name = "AUTHOR")private String author;@Column(name = "PRESS")private String press;@Column(name = "PRICE")private Double price;public Books() {}public Books(String isbn) {this.isbn = isbn;}public String getIsbn() {return isbn;}public void setIsbn(String isbn) {this.isbn = isbn;}public String getTitle() {return title;}public void setTitle(String title) { this.title = title;}public String getAuthor() {return author;}public void setAuthor(String author) { this.author = author;}public String getPress() {return press;}public void setPress(String press) {this.press = press;}public Double getPrice() {return price;}public void setPrice(Double price) {this.price = price;}@Overridepublic int hashCode() {int hash = 0;hash += (isbn != null ? isbn.hashCode() : 0);return hash;}@Overridepublic boolean equals(Object object) {// TODO: Warning - this method won't work in the case the id fields are not setif (!(object instanceof Books)) {return false;}Books other = (Books) object;if ((this.isbn == null && other.isbn != null) || (this.isbn != null && !this.isbn.equals(other.isbn))) {return false;}return true;}@Overridepublic String toString() {return "Books.Books[isbn=" + isbn + "]";}}②BooksFacade.javaimport java.util.List;import java.util.ArrayList;import javax.ejb.Stateless;import javax.persistence.EntityManager;import javax.persistence.PersistenceContext;@Statelesspublic class BooksFacade implements BooksFacadeRemote {@PersistenceContextprivate EntityManager em;public void create(Books books) {em.persist(books);}public void edit(Books books) {em.merge(books);}public void remove(Books books) {em.remove(em.merge(books));}public Books find(Object id) {return em.find(Books.class, id);}public List<Books> findAll() {return em.createQuery("select object(o) from Books as o").getResultList(); }public ArrayList<Books> search(String key) {List<Books> all = this.findAll();if(all.isEmpty()) {return null;}ArrayList<Books> result = new ArrayList<Books>();for(Books current : all) {if(current.getTitle().toLowerCase().contains(key)||current.getAuthor().toLowerC ase().contains(key)||current.getPress().toLowerCase().contains(key)) {result.add(current);}}return result;}}③BooksFacadeRemote.javaimport java.util.List;import java.util.ArrayList;import javax.ejb.Remote;@Remotepublic interface BooksFacadeRemote {void create(Books books);(2)Cart①Cart.javaimport java.io.Serializable;public class Cart implements Serializable {private String isbn;private String title;private double price;private int number;public Cart(String isbn,String title,double price,int number) { this.isbn = isbn;this.title = title;this.price = price;this.number = number;}public String getIsbn() {return this.isbn;}public String getTitle() {return this.title;}public double getPrice() {return this.price;}public int getNumber() {return this.number;}public void setIsbn(String isbn) {this.isbn = isbn;}public void setTitle(String title) {this.title = title;}public void setPrice(double price) {this.price = price;}public void setNumber(int number) {this.number = number;}}②CartBean.javaimport javax.ejb.Stateful;import java.util.ArrayList;@Statefulpublic class CartBean implements CartRemote {private ArrayList<Cart> record;private boolean initialed = false;public void add(String isbn,String title,double price){ record.add(new Cart(isbn,title,price,1));}public void set(String isbn,int number){for(Cart current : record) {if(current.getIsbn().equals(isbn)) {current.setNumber(number);}}}public boolean exist(String isbn) {for(Cart current : record) {if(current.getIsbn().equals(isbn)) {return true;}}return false;}public ArrayList<Cart> get(){ArrayList<Cart> result = new ArrayList<Cart>();for(Cart current : record){ result.add(newCart(current.getIsbn(),current.getTitle(),current.getPrice() ,current.getNumber()));}return result;}public boolean initialed() {return this.initialed;}public void create(){record = new ArrayList<Cart>();initialed = true;}}void edit(Books books);void remove(Books books);Books find(Object id);List<Books> findAll();ArrayList<Books> search(String key);}③CartRemote.javaimport javax.ejb.Remote;import java.util.ArrayList;@Remotepublic interface CartRemote {public void add(String isbn,String name,double price);public void set(String isbn,int number);public boolean exist(String isbn);public ArrayList<Cart> get();public boolean initialed();public void create();}2、BooksOnline-warControlServlet.javaimport Books.BooksFacadeRemote;import Cart.CartRemote;import java.util.Enumeration;import java.io.IOException;import java.io.PrintWriter;import javax.ejb.EJB;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;public class ControlServlet extends HttpServlet {@EJBprivate CartRemote cartBean;@EJBprivate BooksFacadeRemote booksFacade;/*** Processes requests for both HTTP <code>GET</code> and <code>POST</code> methods.* @param request servlet request* @param response servlet response*/protected void processRequest(HttpServletRequest request,HttpServletResponse response)throws ServletException, IOException {response.setContentType("text/html;charset=UTF-8");request.setCharacterEncoding("UTF-8");PrintWriter out = response.getWriter();try {if(request.getParameter("page").equals("search")) {request.getSession().setAttribute("directory",booksFacade.search(request.getParameter("key").toLowerCase()));response.sendRedirect("Directory.jsp");}if(request.getParameter("page").equals("directory")&&request.getParameter("su bmit").equals("cart")) {if(!cartBean.initialed()) {cartBean.create();}Enumeration names = request.getParameterNames();while(names.hasMoreElements()) {String name = (String)names.nextElement();if(!name.equals("page")&&!name.equals("submit")) {if(!cartBean.exist(request.getParameter(name))) {cartBean.add(request.getParameter(name),booksFacade.find(request.getParameter (name)).getTitle(),booksFacade.find(request.getParameter(name)).getPrice()); }}}request.getSession().setAttribute("cart",cartBean.get());response.sendRedirect("Cart.jsp");}if(request.getParameter("page").equals("directory")&&request.getParameter("su bmit").equals("search")) {response.sendRedirect("Search.jsp");}if(request.getParameter("page").equals("cart")&&request.getParameter("submit" ).equals("order")) {double sum = 0;Enumeration names = request.getParameterNames();while(names.hasMoreElements()) {String name = (String)names.nextElement();if(!name.equals("page")&&!name.equals("submit")&&!name.equals("address")) {cartBean.set(name,Integer.parseInt(request.getParameter(name)));sum +=booksFacade.find(name).getPrice()*Integer.parseInt(request.getParameter(name) );}}request.getSession().setAttribute("cart",cartBean.get());request.getSession().setAttribute("fee",sum);request.getSession().setAttribute("address",request.getParameter("address")); response.sendRedirect("Order.jsp");}if(request.getParameter("page").equals("cart")&&request.getParameter("submit" ).equals("continue")) {response.sendRedirect("Directory.jsp");}if(request.getParameter("page").equals("cart")&&request.getParameter("submit" ).equals("search")) {response.sendRedirect("Search.jsp");}} finally {out.close();}}// <editor-fold defaultstate="collapsed" desc="HttpServlet 方法。

网上书店设计实验报告书

网上书店设计实验报告书

信息学院软件工程课程设计-----小组报告2011年12月20科技大学课程设计题目:科大网上书店学院:信息科学与工程学院班级:计算机09-1班组长:春生同组其他成员:王东升恒德新课程教师:红梅实验指导教师:红梅实验地点:信息学院软件实验室完成起止日期:2011年9月27----2011年12月20日[正文]目录第一章:课程设计概述1-1 实验目的1-2 实验容概述1-3 实验要求1-4 参考文献第二章:系统设计模型2-1 需求分析2-2 系统总体设计2-2-1 功能结构2-2-2 架构设计2-2-3 运行环境2-3 数据流图2-3-1 前台用户数据流图2-3-2 后台管理员数据流图2-4 系统E—R图2-4-1 系统总E-R图2-4-2 系统管理员实体图2-4-3 商品信息实体图2-4-4 用户信息实体图2-4-5 订单信息实体图第三章:实现项目的过程与步骤3-1系统数据库的设计3-2 系统数据库表关系图3-3 功能总体说明3-3-1 系统流程图3-3-2 目录结构说明3-4 各功能模块的实现3-4-1 数据库的连接3-4-2 的首页3-4-3 用户注册管理3-4-4 购物车管理3-4-5 图书管理3-4-6 订单管理3-4-7 用户登陆管理3-4-8 系统数据管理第四章:遇到的困难与获得的主要成果第五章:测试运行记录5-1 系统运行环境的搭建5-2 系统的测试5-2-1 系统关键部分测试分析5-2-2 测试结果分析与说明5-2-3 系统安全与性能分析5-3 系统中存在的问题及解决方法第一章系统设计概述1-1实验目的1. 通过本课程设计的实践及其前后的准备与总结,复习、领会、巩固和运用软件工程课堂上所学的软件开发方法和知识,比如,软件项目的完整设计与开发过程、结构化技术、快速原型法和面向对象方法等。

特别是结构化分析、结构化设计、快速原型开发、面向对象分析与面向对象设计。

2. 为学生适应毕业后团队合作开发规模稍大项目和综合应用本专业所学习的多门课程知识(例如,软件工程、程序设计语言、操作系统、数据库、网络编程等)创造实践机会。

网上书店实验报告

网上书店实验报告

网上书店实验报告一、实验背景随着互联网技术的飞速发展,电子商务在各个领域得到了广泛的应用,网上书店作为其中的一个重要组成部分,逐渐改变了人们的购书方式和阅读习惯。

为了深入了解网上书店的运营模式、用户体验和市场竞争力,我们进行了本次实验。

二、实验目的本次实验旨在通过对多家网上书店的实际操作和分析,研究以下几个方面:1、网上书店的页面设计和功能布局对用户体验的影响。

2、不同网上书店的图书种类、价格和促销策略。

3、网上书店的配送服务和售后服务质量。

4、用户对网上书店的满意度和忠诚度的影响因素。

三、实验对象我们选取了以下几家具有代表性的网上书店作为实验对象:1、网上书店 1 名称2、网上书店 2 名称3、网上书店 3 名称四、实验过程(一)页面设计和功能布局评估1、首先,我们对每家网上书店的首页进行了浏览,观察其整体布局、色彩搭配、导航栏设置等方面。

2、然后,我们对图书分类页面、搜索功能、购物车页面和结算页面进行了详细的操作和体验。

3、重点关注页面的加载速度、信息展示的清晰度、操作的便捷性和用户引导的有效性。

(二)图书种类、价格和促销策略分析1、对每家网上书店的图书分类进行了详细的查看,比较不同类别图书的丰富程度和更新速度。

2、随机抽取了一些热门图书和经典图书,对比它们在不同网上书店的价格。

3、关注了各家网上书店的促销活动,如满减、折扣、优惠券等,并分析其优惠力度和适用范围。

(三)配送服务和售后服务体验1、在每家网上书店购买了一本图书,选择不同的配送方式,记录配送的时间、费用和包裹的包装质量。

2、在收到图书后,模拟出现质量问题或不满意的情况,联系售后服务,评估其响应速度、解决问题的态度和能力。

(四)用户满意度和忠诚度调查1、通过在线问卷的方式,收集了用户对各家网上书店的评价和意见。

2、对问卷数据进行了统计和分析,了解用户对网上书店的满意度和忠诚度的整体情况。

五、实验结果(一)页面设计和功能布局1、网上书店 1 名称的页面设计简洁大方,色彩搭配舒适,导航栏清晰明确,用户能够快速找到自己想要的图书。

网上书店实训报告-

网上书店实训报告-

网上书店实训报告➢需求分析项目背景:随着时代的发展,传统的购物方式也越来越不能满足人们快节奏的生活需求,使得企业和许多的商业机构已经认识到Internet的优势,电子商务就是在这样一个背景下产生发展起来的。

伴随着电子商务技术的不断成熟,电子商务的功能也越来越强大,注册用户可以在网上搜索购买到自己想要的各种商品,初步让人们体会到了足不出户,便可随意购物的快感。

所以我们设计也就正是一个电子商务系统的开发---网上图书销售系统。

对于用户而言,方便人们进行图书的信息查看、分类查询、团体购买等等,并且加快书本的更新速度,使访问者足不出户就可以购买到自己想要的书籍,这种购书的方式打破了传统的单一购书方法,促使人们以更快的节奏、更搞的投入到现在的生活中来。

对于书店而言,电子购书系统无疑方便了书店的管理,使店主可以很容易了解店内类存,库存,订单处理,业务总结等工序都可以一目了然。

同时,还可以进行网上直接与客户沟通,跟踪等售后服务工作,大大拓展业务空间,缩短业务时间,为店主赢得更大的利益。

项目需求分析:本网上书店可以实现的功能为:1.新书及热门图书展示。

2.匿名用户可以浏览商品。

3.匿名用可以搜索商品。

4.匿名用户可以注册成为系统用户。

5.系统用户登陆后可以购物,下订单。

6.系统用户可以管理自己下的订单。

7系统用户可以管理自己的信息。

8.管理员通过后台进行用户管理。

9.管理员可以对商品进行管理。

10.管理员可以对订单管理。

➢系统总体设计一、系统功能目标:本系统在设计时应该满足以下几个目标:1.展示图书,并可展示最新上架图书及热门图书。

2.为顾客提供一个方便、快捷的图书信息查询功能。

3.用户注册功能和用户登录功能。

4用户登录后查询书籍详细信息功能。

5.用户查看并修改个人信息功能。

6.用户购物车管理功能。

7.用户修改订单功能。

8.用户结账功能(只显示结果)。

9.管理员登录功能。

10.管理员对图书管理功能。

11.管理员对用户信息管理功能。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验报告题目:网上书店专业软件工程学生姓名班级学号指导教师指导单位日期2010-6-8网上书店一、课题内容和要求内容:创建一个网上书店平台。

实现网上书店的基本功能,例如:用户用可查看可购买的书。

用户可查看书的具体信息。

在此基础上可以增加相应功能。

要求:利用J2EE编程开发。

可以在实现基本功能的基础上增加其他功能。

界面良好。

用户可以通过互联网与浏览器访问网上书店平台。

二、需求分析用户:1、用户可以注册会员,利用已经注册的用户名来登录相关界面。

2、用户可以登记自己的相关性信息,并且可以查看、更改自己的相关信息。

3、用户根据已经注册的用户名来登录系统。

用户可以查看所有物品的信息。

4、用户可以将想要购买的物品加入购物车,对已经加入购物车的物品,用户可以查看其相关信息,并且可以删除已经加入的物品。

5、对于购物车功能,可以增加新书、修改数量、删除已选书籍等,确认后,完成交易;6、用户可以根据作者的姓名、书名、书号来检索书籍。

7、用户可以查看当前订单和以往订单的相关信息。

8、客户可以通过信息反馈系统跟书店员工进行交流。

管理员:1、管理员可以删除、更改用户信息。

2、管理员可以删除、更改订单信息,可以输入订单的发货日期。

3、管理员可以删除、更改所有商品信息。

其他需求:系统应该具有一定的安全性和可靠性。

数据库支持大量数据的使用。

三、概要设计体系结构设计:用户使用流程:用户应用系统模块设计:管理员应用模块:四、源程序代码Base:/** 供JSON-RPC组件远程调用的AjaxBean */public class AjaxBean extends BaseLog {/**取得商品分类列表*/public String[][] getCategory(){String[][] options = null;MerService service = new MerServiceImpl();try{List list = service.browseCategory();Category cate = null;int i = 0;if (list!=null){options = new String[list.size()][2];Iterator it = list.iterator();while(it.hasNext()){cate = (Category)it.next();options[i][0] =cate.getId().toString();options[i][1] =cate.getCateName().trim();i++;}}else{options = new String[1][2];options[0][0] ="0";options[0][1] ="无商品分类";}}catch(Exception ex){("在执行AjaxBean类中的getCategory方法时出错:\n");ex.printStackTrace();}return options;}/**取得会员级别*/public String[][] getMemberLevel(){String[][] options = null;MemService service = new MemServiceImpl();try{List list = service.browseMemberLevel();Memberlevel ml = null;int i = 0;if (list!=null){options = new String[list.size()][2];Iterator it = list.iterator();while(it.hasNext()){ml = (Memberlevel)it.next();options[i][0] =ml.getId().toString();options[i][1] =ml.getLevelName().trim();i++;}}else{options = new String[1][2];options[0][0] ="0";options[0][1] ="无会员级别";}}catch(Exception ex){("在执行AjaxBean类中的getMemberLevel方法时出错:\n");ex.printStackTrace();}return options;}/**注册登录帐号有效性验证*/public boolean chkLoginName(String loginName){MemService service = new MemServiceImpl();boolean result = false;try{result = service.chkLoginName(loginName);}catch(Exception ex){("在执行AjaxBean类中的chkLoginName方法时出错:\n");ex.printStackTrace();}return result;}/**修改选购商品数量*/public boolean modiCart(int id,int number){CartService service = new CartServiceImpl();boolean result = false;try{result = service.modiCart(Integer.valueOf(id), number);}catch(Exception ex){("在执行AjaxBean类中的modiCart方法时出错:\n");ex.printStackTrace();}return result;}/**调整会员级别*/public boolean updateLevel(Integer id,Integer levelId){MemService service = new MemServiceImpl();boolean result = false;try{Member member = service.loadMember(id);Memberlevel level = service.loadMemberLevel(levelId);member.setMemberlevel(level);service.updateMember(member);result = true;}catch(Exception ex){("在执行AjaxBean类中的updateLevel方法时出错:\n");ex.printStackTrace();}return result;} }ORM:Mysessionfactory:public class MySessionFactory {private static String CONFIG_FILE_LOCATION = "/hibernate.cfg.xml";private static final ThreadLocal threadLocal = new ThreadLocal(); private static Configuration configuration = new Configuration(); private static org.hibernate.SessionFactory sessionFactory;private static String configFile = CONFIG_FILE_LOCATION;static {try {configuration.configure(configFile);sessionFactory = configuration.buildSessionFactory();} catch (Exception e) {System.err.println("%%%% Error Creating SessionFactory %%%%");e.printStackTrace();}}private MySessionFactory() {}public static Session getSession() throws HibernateException {Session session = (Session) threadLocal.get();if (session == null || !session.isOpen()) {if (sessionFactory == null) {rebuildSessionFactory();}session = (sessionFactory != null) ? sessionFactory.openSession(): null;threadLocal.set(session);}return session;}/**Rebuild hibernate session factory*/public static void rebuildSessionFactory() {try {configuration.configure(configFile);sessionFactory = configuration.buildSessionFactory();} catch (Exception e) {System.err.println("%%%% Error Creating SessionFactory %%%%");e.printStackTrace();}}/*Close the single hibernate session instance.*/public static void closeSession() throws HibernateException {Session session = (Session) threadLocal.get();threadLocal.set(null);if (session != null) {session.close();}}/*return session factory*/public static org.hibernate.SessionFactory getSessionFactory() { return sessionFactory;}/*return session factory session factory will be rebuilded in the next call*/public static void setConfigFile(String configFile) {MySessionFactory.configFile = configFile;sessionFactory = null;}/*return hibernate configuration*/public static Configuration getConfiguration() {return configuration;}}SERVICE:AdminServiceImpl:/** 系统用户管理接口实现 */public class AdminServiceImpl extends BaseLog implements AdminService { /** 系统管理员登录 */public Admin adminLogin(String loginName, String loginPwd) throws Exception {Session session = MySessionFactory.getSession();Transaction tx = null;Admin admin = null;try{String hql = "select a from Admin as a where a.loginName=:loginName and a.loginPwd=:loginPwd";Query query = session.createQuery(hql);query.setString("loginName", loginName);query.setString("loginPwd", loginPwd);query.setMaxResults(1);tx = session.beginTransaction();admin = (Admin)query.uniqueResult();mit();}catch(Exception ex){if(tx!=null)tx.rollback();("在执行AdminServiceImpl类中的adminLogin方法时出错:\n");ex.printStackTrace();}finally{MySessionFactory.closeSession();}return admin;}/** 新增管理员 */public boolean addAdmin(Admin admin) throws Exception {Session session = MySessionFactory.getSession();Transaction tx = null;boolean status = false;try{tx = session.beginTransaction();session.save(admin);mit();status = true;}catch(Exception ex){if(tx!=null)tx.rollback();("在执行AdminServiceImpl类中的addAdmin方法时出错:\n");ex.printStackTrace();}finally{MySessionFactory.closeSession();}return status;}/** 浏览管理员 */public List browseAdmin() throws Exception {Session session = MySessionFactory.getSession();Transaction tx = null;List list = null;try{Query query = session.createQuery("from Admin as a order by a.id");tx = session.beginTransaction();list = query.list();mit();if(!Hibernate.isInitialized(list))Hibernate.initialize(list);}catch(Exception ex){if(tx!=null)tx.rollback();("在执行AdminServiceImpl类中的browseAdmin方法时出错:\n");ex.printStackTrace();}finally{MySessionFactory.closeSession();}return list;}/** 删除指定的管理员 */public boolean delAdmin(Integer id) throws Exception {Session session = MySessionFactory.getSession();Transaction tx = null;boolean status = false;try{tx = session.beginTransaction();Admin admin = (Admin)session.load(Admin.class, id);session.delete(admin);mit();status = true;}catch(Exception ex){if(tx!=null)tx.rollback();("在执行AdminServiceImpl类中的delAdmin方法时出错:\n");ex.printStackTrace();}finally{MySessionFactory.closeSession();}return status;}/** 装载指定的管理员 */public Admin loadAdmin(Integer id) throws Exception {Session session = MySessionFactory.getSession();Transaction tx = null;Admin admin = null;try{tx = session.beginTransaction();admin = (Admin)session.get(Admin.class, id);mit();}catch(Exception ex){if(tx!=null)tx.rollback();("在执行AdminServiceImpl类中的loadAdmin方法时出错:\n");ex.printStackTrace();}finally{MySessionFactory.closeSession();}return admin;}CartServiceImpl:public class CartServiceImpl extends BaseLog implements CartService {/** 选购商品 */ public boolean addCart(Member member, Merchandise mer, int number)throws Exception {Session session = MySessionFactory.getSession();Transaction tx = null;boolean status = false;try{Cartselectedmer sel = null;int favourable = member.getMemberlevel().getFavourable().intValue();//判断该会员是否已经有使用中的购物车String hql ="from Cart as a where a.member=:member and a.cartStatus=0";Query query = session.createQuery(hql);query.setEntity("member", member);query.setMaxResults(1);tx = session.beginTransaction();Cart cart = (Cart)query.uniqueResult();if (cart==null){cart = new Cart();cart.setCartStatus(new Integer(0));cart.setMember(member);cart.setMoney(Double.valueOf(number*mer.getPrice().doubleValue()) ); cart.getMerchandises().add(mer);session.save(cart);}else{//如果选购的是已经选购过的商品则只增加商品数量即可hql = "select a from Cartselectedmer as a where a.cart=:cartid and a.merchandise=:merid order by a.id desc";query = session.createQuery(hql);query.setInteger("cartid", cart.getId().intValue());query.setInteger("merid", mer.getId().intValue());query.setMaxResults(1);sel = (Cartselectedmer)query.uniqueResult();int total = number;System.out.println((total*mer.getPrice().doubleValue()*favourable /100)); if(sel!=null){total = number+sel.getNumber().intValue();sel.setNumber(Integer.valueOf(total));if (mer.getSpecial().intValue()==1){//特价商品sel.setPrice(mer.getSprice());sel.setMoney(Double.valueOf(total*mer.getSprice().doubleValue());}else{//普通商品sel.setPrice(Double.valueOf(mer.getPrice().doubleValue()*favou rable/100));sel.setMoney(Double.valueOf(total*mer.getPrice().doubleValue()*fa vourable/100)); }session.update(sel);}else{cart.getMerchandises().add(mer);}if(mer.getSpecial().intVal ue()==1){cart.setMoney(Double.valueOf(cart.getMoney().doubleValue()+n umber*mer.getSprice().doubleValue()));}else{//普通商品cart.setMoney(Double.valueOf(cart.getMoney().doubleValue()+num ber*mer.getPrice().doubleValue()*favourable/100));}session.update(cart);}mit();//如果是尚未选购过的则要修改选购记录的有关字段if(sel==null){tx = session.beginTransaction();hql = "select a from Cartselectedmer as a where a.cart=:cartid and a.merchandise=:merid order by a.id desc";query = session.createQuery(hql);query.setInteger("cartid", cart.getId().intValue());query.setInteger("merid", mer.getId().intValue());query.setMaxResults(1);sel = (Cartselectedmer)query.uniqueResult();if(sel!=null){sel.setNumber(Integer.valueOf(number));if (mer.getSpecial().intValue()==1){//特价商品sel.setPrice(mer.getSprice());sel.setMoney(Double.valueOf(number*mer.getSprice().doubleValue()) );}else{//普通商品sel.setPrice(Double.valueOf(mer.getPrice().doubleValue()*favou rable/100));sel.setMoney(Double.valueOf(number*mer.getPrice().doubleValue()*f avourable/100));} session.update(sel);}mit();}status = true;}catch(Exception ex){if(tx!=null)tx.rollback();("在执行CartServiceImpl类中的addCart方法时出错:\n");ex.printStackTrace();}finally{MySessionFactory.closeSession();}return status;} }五、测试数据及其结果分析注册界面:错误提示:登陆后界面:物品展示:修改用户信息界面:(正文格式:宋体,小4号,不加粗,两端对齐,1.5倍行距)六、调试过程中的问题在系统设计阶段,要考虑很多的问题。

相关文档
最新文档