首页 起名知识 基于web的科普书城的设计与实现

基于web的科普书城的设计与实现

  电子互联时代冲击了传统行业,也带来了新的生机,线下销售的模式是目前变革最激烈的领域。在以网上商务为主流的今天,如何才能适应变革成为了传统商家共同思考的问题。对于书籍销售来说,已经涌现大批先驱者,但同质化的线上网站失去了核心竞争力。本次开发的科普书城着眼于满足科普爱好者需求,适应当今个性化发展的大环境,探索书籍类网站未来发展方向。科普书城将主要关注单一性特殊群体,着重实现对科普书籍的分类销售以及推广,也对后台管理者提供更加细致的性能。科普书城选择了Mysql数据库进行后台系统的搭建,通过Java技术实现相关连接,在开发前端上,除了传统的Html技术,还学习JSP语言实现动态编写。科普书城网上销售系统通过不断的编写和测试,将建立起小规模但充分考虑需求的系统网站,满足使用者多方需求。

  1.1研究背景

  信息时代催生了新的商务模式,即将商品交易由看的见摸得着的实体搬上网络,这在年轻人群体首先流行起来,随后通过系统化商业化运作,已经成熟起来。目前我国虚拟经济占据了重要地位,线上书城数量也得到了蓬勃发展,然而随着同质化网站的大量涌现,以及青少年消费群体具有较强的个性思想,如何才能突破以往固化网站,适应新时代要求,成为了各大商家需要考虑的问题。随着刘慈欣等一系列中国本土科幻作家在世界舞台上获得殊荣,激发了本土青年爱好者对于科普书籍的喜爱。本次开发的科普书城就是着眼于区分同质化销售书城,适应新时代个性化需求,探索符合互联网使用者个性化需求的网站,满足相关爱好者需求。对面临转型的企业提供线上销售新思路。科普书城在转移支付购买方式的同时,也对系统设计深入分析,把兴趣作为关注点,依托成熟的系统经验模式,发展适合当下商家和用户共同利益的书城设计,将优势从以往的便利吸引转向兴趣吸引。

  1.2研究意义

  以往的书店面临着诸多方面的压力,在实体经济整体被冲击的大环境下,思变成为必须要考虑的问题。而科普书城在充分采用新科技的前提下,会具备多方面优势。将经营地转移到线上,这就大大减少了对于日常店面运营的投入。用户的流入流出也不再受到天气等多方面的影响。依照新科技加持,将对营业时间产生扩展,在具有网络的情况下随时进行销售。科普书城的商品销售着眼于满足科普爱好者需求,改变以往对于书城过广不深的问题,满足当今发展。

  总而言之,科普书城的实现不仅打破了现实书店壁垒,也实现了科普爱好者的需求。在通过网络购物实现商品无界销售的同时,突破陈旧网上书城障碍,对于广大的消费者以及商家等都有着很强烈的影响力和吸引力,可以说在现如今的新经济时期,科普书城探索了互联网+兴趣的方向。

  1.3国内外文献综述

  书籍在线系统的发展是国外最先进行探索,目前已经在美国成为财富巨头的亚马逊便是一个成熟的在线网上书城,其无论是在股市规模还是发展前景都有巨大空间。国内对这方面的关注源于当当网的初步探索,在相当的时间内,当当网也获得了美企的风险投资高评级,推荐优先加持,这也验证了在国内发展在线书籍的前景价值。进入新时代后,随着互联网的普及,涌现出多种新销售模式,激烈竞争下也对企业发展提出更高要求,如何才能留住消费者,而不是依据前驱优势。天猫依托普通用户的量级推出天猫书城,在商品销售过程中实现了多类囊括。目前在一般的用户中,过多应用程序的安装已经造成困扰,京东等销售厂家提供的优质服务使得对于单一商品销售过于依赖的文轩网等书城造成了冲击[1]。这些改变也恰恰印证了新兴产业的蓬勃生机,但在下一互联网机遇期,面对已经形成独特品味,对于网站具有更高要求的用户,各大企业必须要借鉴新发展经验[2]。作为关注互联网科技的CSDN程序对于专一功能的细致探索,在互联网编程人员的用户量下,迅速区别传统论坛类程序得到巨大用户量,这对于书籍在线销售网站提出一个发展思路。不能在只追求对于广阔书籍的覆盖,单一黏性用户的支持也能让网站取得发展机遇。因此对于行业纵深度进行挖掘是具有可行意义的[3]。

  第2章开发技术

  本课题拟设计一个科普书城,采用B/S架构模式,设计出用户在浏览器端便可进行访问和业务处理的网站。前端界面运用HTML结合CS等技术进行设计,充分在相关功能详实的情况下,尽可能实现页面的美观。后台采用Java语言进行开发,运用MySQL数据库技术对系统的数据进行存储和查询,在进行充分分析后结合用户需求,设计出合理高效的数据库系统。

  2.1 B/S架构

  C/S传统架构过于繁琐,注重安全性的同时,加重了程序各方面支出,且要按时升级,也给后期维护造成不便,设备的更新也对程序开发提出轻量级要求,B/S架构合理满足轻量要求[4]。B/S架构下,用户不必在电脑上进行客户端的安装,只需使用自己的电脑上的浏览器即可。在传统的服务器模式中,对于用户电脑负荷以及服务商都造成了不便。目前,网络技术突飞猛进,且用户追求简约化实现,这就对B/S架构的普及创造了有利条件。且编写技术在目前的编程语言对比中,关于网站类的实现也较为简单,区别于要设计出基于Android技术的客户端,这类网页设计的编码量有极大的缓解[5]。而且可服务满足的对象也更加广泛,C/S架构下有些程序无法在手机端进行安装,B/S在任意设备都可进行搜索。

  2.2 Java简介

  面向对象的语言避免了实现细节,本程序采用Java语言不仅提高了编写人员效率,同时为解决问题提供了多种可能[6]。经过开发者长期的研究,Java技术已能实现很多功能,这让开发人员在进行程序开发操作过程中,遇到问题也能通过各种方案解决问题。

  作为目前应用最广泛的语言,Java在使用上具有多方面优势。它实现了将以往的对象化进行封装,即对与一些想要使用功能的具体实现进行了归纳,使用后不再通过书写具体的代码这就将代码量进行了大量缩减。在创建对象化实体用户时,动态的在堆内进行分配,这就避免了指针会造成的泄露和内存的不便。Java将可靠性进行了发挥,对于会出现的问题提供了try和catch捕捉或者让函数进行throw,这就通过将问题进行exception等划分同一归纳,不必再去实际的处理,例如在C语言中因考虑不足造成的问题编程人员要自己逐句摸索改写。在应用的广度和范围上,Java也具有不可比拟的优势,因为其虚拟环境的模拟,可以让写好的编程移植到不同的用户及其他环境进行运行[8]。此外,相对于其他语言对于整体进程的分配,其实现了多线程,将用户任务同时进行,同时通过锁机制以防发生资源争夺的情况。在进行数据库连接时,JDBC采用的是Java语言,因此通过这个语言可以直接进行数据库连接,减少了其他学习的时间支出。

  2.3 Html/Css简介

  Html的学习过程是较为简单的,通过以往的技术课程已对大部分功能进行了掌握,不同于其他的语言要求的算法思想,其不要求算法基础,甚至可以毫无其他语言基础。它的实现也较为直观,进行编写时可实时对内容进行修改。图像化的同时也提供了添加超链接的功能,这对于网页的跳转提供了便利,在科普书城的设计过程中,涉及到的功能跳转都可以通过这来实现。Html可创造出要填充的页面尺寸大小,在书写时也可直接在记事本内进行,之需之后改成.html后缀即可[9]。但仅仅只使用Html无法实现设计的美观及丰富,作为Html的配合,Css对于页面进行美化升级,主要是通过图层样式的编写添加将不同样式输出。Html在使用中将功能分为几块,但整体属于一个文件,在这里面可使用多个样式表,充分满足需要。

  2.4 Mysql数据库

  数据库的使用是在程序编写过程中不可或缺的,要统计的商品类别作为实体,都具有不同的属性,在他们当中,要进行大量的考虑以及总结。而在前期分析完成后就要进行库的创建,在这次编写中,选择了Mysql数据库,主要是因为它开源的方式减少了投入,而且在编写过程中,作为基于SQL的工具,大部分编写代码与学习过的数据库课程相似。在这里面,最重要的是进行表的设计,数据表作为数据库的存储形式,里面放置了许多具体要描述的对象。对于要存储的对象,可进行属性的划分,对于主属性设置为KEY主键,对于外键设置PRIMARY KEY外键。存放内容要根据情况使用不同类型,商品名等因其不确定性,可用变长数据类型,即设置为varchar,诸如性别等定长类型,则可用char类型,不同类型也对应设置不同的数值长度,例如商品名字段可设置为10。

  数据库对于信息的死锁设置了锁机制,即在出现争用时会根据设置的程序避免死锁,这就实现了资源的安全利用。此外Mysql数据库具有日志文件的生成,这对于在书写过程中出现失误时提供了修改的备注。

  第3章系统需求分析

  3.1可行性研究

  在科普书城进行正式编写前,要对这个项目的可行性进行分析,这个过程其实是探索是否具有实际价值以及能否完成的一个过程。通过对收益以及技术方面的分析,得出网站系统将是否可开始进行。当得出科普书城能够实现既定目标,产生良好收益,开发者具备完成水平时,可进行下一步开发。以下是论证的一些方面:

  经济可行性:开发所使用工具为个人笔记本电脑,开发程序选用的是开源的Mysql以及Myeclipse等,这些都是电脑上已安装的程序。从后期产生的社会价值看,设计完成后可用于对于书籍的销售,对于科普爱好者来说能够在较少成本支持下进行科普书籍的购买选择。在对商家来说,可以将打算出售的优质书籍放入系统,通过这个方式扩宽销售渠道,也扩展了销路。

  技术可行性:在经过自学后,进行了一些对于前端的设计,已经能够独立运用Html技术进行相关设计[11]。目前自己也已经掌握了Java开发程序的流程以及方法,也实践过一些课程设计上面的程序开发项目,所以程序开发的软件操作以及程序编码不会存在太大难题。通过对数据库系统的学习,也加强了运用技术,可以保证程序的数据库设计。

  综上所述,此程序软件既能够使用编程技术进行开发,又能产出大于投入成本的效益。投入开发是可以进行的。

  3.2系统需求分析

  3.2.1系统功能需求分析

  这次科普书城设计将对整体框架功能进行研究,总结出要进行设计的功能。根据使用者的不同,分为用户和管理员,下面将分析梳理出这两方面模块。

  科普书城对管理员设置的功能包括了:用户信息的管理,新闻信息的发布与管理,商品类别信息的添加与管理,也包括商品信息的添加与管理。订单详情的查看与订单发货管理。

  科普书城对用户设置的功能包括:商品的搜索与查看,对商品的购买以及对订单的确认收货与评价,对用户余额进行充值。下图是系统功能分析图。

  图1系统功能分析图

  3.2.2系统流程分析

  3.2.2.1用户注册流程

  用户使用之前要进行注册,流程进行时要先填写个人用户名和密码等信息进行申请,密码需要进行重复输入以保证正确性,而且系统应能进行判断,若密码信息不同,则发生问题[12]。这个过程中要充分考虑数据信息的处理,比如用户在设置登录程序的密码信息时,需要用户两次填写同样的密码信息,密码的位数信息以及格式信息都要保持一样,否则程序就会判定用户注册失败,用户也就不能正常提交注册信息。当用户正常完成注册之后,用户的注册信息就会保存到程序配套的数据库文件里面。下图展示的就是满足用户注册的分析图。

  图2用户注册流程图

  3.2.2.2用户登录流程

  经过注册需求完成后,用户可根据个人意愿进入登录页面,这部分功能要求将在注册时的信息进行重复输入,即通过检查信息是否对照后,根据结果反馈实现相应的不同功能。所填写数据信息既不能为空,也不能错误填写。这部分功能对于使用者和管理员都具有好处,使用者避免了重复输入全部信息带来的弊端,管理者也可以根据用户独特信息确定其以往交易情况。用户在完成后可进入相关页面进行下一步使用,在满足条件后可以进行购买等情况,商家也可根据已录入用户信息进行商品出售[13]。下图展示的就是满足用户登录分析图。

  图3用户登录流程图

  3.2.2.3添加信息流程

  用户在执行这方面功能时,主要要实现将想要添加信息正确更新,例如订单等加入购物车,在登录之后要满足数据的增删,这就要保证格式的正确下顺利完成任务,对于符合条件的信息要及时录入至系统内,更新用户数据库,最后在查询时可得到这部分数据。下图展示的就是满足添加信息分析图。

  图4添加信息流程图

  3.2.2.4购物流程

  购物流程功能模块则已经进入了最后的销售阶段,即用户应能根据需求和意向对于想要购买的书籍数据进行付款和相关订单细节的处理。将已经保存的个人信息进行使用,比如地址等信息。下图就是满足购物业务分析图。

  图5购物流程图

  第4章系统设计

  系统是要让各方在使用过程中得到良好功能使用和体验的,因此要关注各方需求,在进行具体实施时充分的将各类情况进行实现,让用户可以很方便的操作程序的各个功能,同时程序的功能操作以及处理逻辑上不能太复杂,要让用户容易理解,在程序的界面设计上也需要严格参照用户的需求进行设计,也需要把用户对程序的日常操作行为考虑进去,让用户使用程序能够没有过多的担忧,也要让设计出来的系统在今后的很长的一段时间内始终保持系统开发技术的先进性[14]。同时系统的设计也需要遵守低成本以及低维护量的程序设计原则。

  4.1系统功能模块设计

  科普书城对管理员设置的功能包括了:用户信息的管理,新闻信息的发布与管理,商品类别信息的添加与管理,也包括商品信息的添加并管理。订单详情的查看与订单发货管理。下图就是管理员功能结构图。

  图6管理员功能结构图

  科普书城对用户设置的功能包括:商品的搜索与查看,对商品的购买以及对订单的确认收货与评价,对用户账户余额进行充值。下图就是用户功能结构图。

  图7用户功能结构图

  4.2数据库设计

  数据库里面数据库设计是进行程序设计之前的步骤,要求将用户的各种需求以相应的形式列出,同时研究如何最大限度的避免冗余进行实现,这就要用到已经成熟化的结构,从各种要添加的事物和联系里提取出相应的关键和其他附属[15]。数据库是系统实施前的重要一环,在这要将实体的属性以及它们之间的关系通过主键等实现连接,在关系数据库的设计前提下,优化查询数据,当符合相关范式后设计出的数据库必然是简洁且具备完整性的,这样使用过程中便减少了很多空间。

  4.2.1数据库E-R图

  数据库的表结构设计之前就是进行数据库E-R图设计,这个是数据库设计的必经设计步骤。一般来说,数据库E-R图设计就是绘制E-R图,确定好程序的存储数据信息之后,区分数据库实体,并确认实体的属性,规划好实体间的关系,最后把实体以及属性,还有关系相结合绘制E-R图[16]。

  (1)下图就是用户实体E-R图

  图8用户实体E-R图

  (2)下图就是商品实体E-R图库

  图9商品实体E-R图

  (3)下图就是订单实体E-R图

  图10订单实体E-R图

  (4)下图就是新闻资讯实体E-R图

  图11新闻资讯实体E-R图

  (5)下图就是系统E-R图

  图12系统E-R图

  4.2.2数据库表结构

  表1商品类别信息表

  序号列名数据类型长度小数位标识主键外键允许空默认值说明

  1 Thid int 10是是否id

  2 Tame varchar 30是类别名称

  表2商品信息表

  序号列名数据类型长度小数位标识主键外键允许空默认值说明

  1 Thingd int 10是是否id

  2 Fileid int 10是分类id

  3 Thimg varchar 300是图片

  4 Tname varchar 200是商品名称

  5 Notion text是内容

  6 Tprice double是价格

  7 Saving varchar 10是是否特价

  8 Respec varchar 10是是否推荐

  9 Writer varchar 300是作者

  10 Publis varchar 300是出版社

  11 Trasit varchar 300是译者

  表3商品展示表

  序号列名数据类型长度小数位标识主键外键允许空默认值说明

  1 Thingid int 11是是否id

  2 Thiimg varchar 300是图片

  3 Puname varchar 300是标题

  4 Notaion text是内容

  5 Givtime varchar 50是发布时间

  表4用户信息表

  序号列名数据类型长度小数位标识主键外键允许空默认值说明

  1 Persid int 11是是否id

  2 Pername varchar 20是账号

  3 Persosex varchar 10是性别

  4 Location varchar 100是地址

  5 Pwords varchar 30是密码

  6 Ptype varchar 40是会员权限

  7 Phone varchar 20是电话

  8 Persoage varchar 20是年龄

  9 Safeque varchar 40是密保问题

  10 Answer varchar 30是答案

  11 Email varchar 50是邮箱

  12 Starttime varchar 30是注册时间

  13 Reaname varchar 50是姓名

  14 Paying double是余额

  表5订单信息表

  序号列名数据类型长度小数位标识主键外键允许空默认值说明

基于web的科普书城的设计与实现

  1 Buyingid int 10是是否id

  2 Thingfid int 10是商品id

  3 Thinum int 10是数量

  4 Personid int 1是用户id

  5 Creatime varchar 40是时间

  6 Sisin varchar 10是状态

  7 Thingnu varchar 300是订单编号

  第5章系统的编码与实现

  5.1管理员功能模块编码实现

  5.1.1新闻管理

  这部分主要是实现对于推荐商品信息的公布,要满足系统可根据需要动态修改。数据增删查改要能够正确执行,操作要简易[17]。下面就是新闻管理的编码和页面。

  img=fileUpload(file,request,img);

  news.setImg(img);

  Timestamp time=new Timestamp(System.currentTimeMillis());

  news.setPubtime(time.toString().toString().substring(0,19));

  news.setIsdel(“1”);

  newsService.add(news);

  图13新闻管理页面

  5.1.2用户列表

  这部分主要是对相关已添加数据进行信息的处理,包括对于身份的选择,系统应提供清晰的权限设置。也要可进行身份修改以及删除等。下面就是用户列表的编码和页面。

  Sysuser u=(Sysuser)session.getAttribute(“auser”);

  map.put(“user”,userService.getById(u.getId()));

  图14用户列表页面

  5.1.3商品管理

  这部分要将产品的具体部分加以描述和编排,对于有些已经需要处理的信息要可删除。对于将要上新的产品能够进行更新。下面就是商品管理的编码和页面。

  img=fileUpload(file,request,img);

  if(img!=null&&!img.equals(“zanwu.jpg”)){

  Goods.setImg(img);

  }

  goodsService.update(Goods);

  图15商品管理页面

  5.1.4订单管理

  这个模块要对用户已生成的购物信息进行编号以及备注,并在需要时将查看相关销售订单的具体数据。能够快速处理订单。下面就是订单管理编码和页面。

  var name=$(“#uname”).val();

  if(name==””||(name.length<2||name.length>12)){

  $(“#checku”).html(“订单账号不能为空且长度在2~12位之间!”);

  $(“input[id=uname]”).focus();

  if(result.info==”ng”){

  $(“#checku”).html(“订单名存在,请更换!”);

  }else{

  $(“#checku”).html(“可以用”);}

  图16订单管理页面

  5.1.5数据统计

  主要是将网站日常变更的数据进行铜价编排,并将最后结果实时刷新。下面就是数据统计编码和页面。

  xmlstr+=”</graph>”;

  System.out.println(“xml==”+xmlstr);

  JSONObject obj=new JSONObject();

  obj.put(“xmlstr”,xmlstr);

  response.setContentType(“text/html;charset=utf-8”);

  PrintWriter out=null;

  图17数据统计页面

  5.2用户功能模块编码实现

  5.2.1商品信息

  这是具体商品的展示部分,要能将基本信息进行展示,例如图片介绍和姓名等。作为网站的主体部分,要在用户点击时刷新细节,及时反馈。下面就是商品详细信息编码和页面。

  System.out.println(“id====”+id);

  map.put(“jz”,goodsService.getById(id));

  omap.put(“fid”,id);

  omap.put(“status”,”评价”);

  map.put(“ulist”,userService.getAll(null));

  map.put(“list”,orderService.getAll(omap));

  图18商品详细信息页面

  5.2.2购物车

  主要是显示心仪商品进行支付前的具体细节。要能够将支付点击页面展示出来。。

  Sysuser u=(Sysuser)session.getAttribute(“user”);

  Timestamp time=new Timestamp(System.currentTimeMillis());

  fshop.setStatus(“购物车”);

  fshop.setUid(u.getId());

  shopService.add(fshop);

  图19购物车页面

  5.2.3我的订单

  这主要是用户自己进行已添加订单的查看,应提供评价功能。主要还是要满足进行购买后可进行商品的确认。下面就是我的订单编码和页面。

  Forder order=orderService.getById(id);

  gmap.put(“oid”,order.getOno());

  map.put(“list”,shopService.getAll(gmap));

  map.put(“order”,order);

  map.put(“glist”,goodsService.getAll(null));

  map.put(“ulist”,userService.getAll(null));

  图20我的订单页面

  5.2.4用户充值

  对于购买所需资金要可以充值,这要能得出充值前后结果。下面就是用户充值编码和页面。

  Sysuser u=userService.getById(user.getId());

  u.setMoney(u.getMoney()+user.getMoney());

  userService.update(u);

  Sysuser u=(Sysuser)session.getAttribute(“auser”);

  map.put(“user”,userService.getById(u.getId()));

  userService.update(user);

  map.put(“user”,userService.getById(user.getId()));

  session.setAttribute(“suc”,”cc”);

  图21用户充值页面

  第6章系统测试

  6.1测试的目的

  在对科普书城的设计完成后,对于其可执行性以及稳定性需要进行确定。首先在实现时要通过测试将经过分析后要达到的基本功能进行满足,这一部分可以保证连贯性,通过评测知晓所完成结果是否达到预期。其次要进行不同人员使用的测试,通过有效的反馈,解决在使用中是否存在问题,保证系统投入使用后的安全性。测试要保证系统在完成基本功能后的整体衔接性,要通过不同前端后端的测试确定各个功能在实现后的全方位模块。对于网站类的测试要通过不同平台的环境搭建,在出现的问题后要进行充分的修改,网站的使用者具有多而广的特点,若是在其他平台无法运行势必会影响使用的普及。在投入运行之前的测试主要是基于以上几方面的目的。若是一个网站系统没法实现以上的要求,那投入使用后的后果会让需求方产生极差印象,对后期的工作也不利。一个充分实现的测试,对于后期系统的维护和运行都能产生巨大帮助。

  6.2测试的作用

  测试对后期的应用以及完善系统具有重要作用,对于一个网站系统,长期的总结扩展是必须的。而通过测试过程中出现的问题,可以进行改错纠正并生成日志,对于其他系统维护人员可进行参考。产品上线后的使用会提出更高的要求,对于测试文档便可进行对应的参考升级,后期的测试可进行更多的需求满足。评估问题严重性以实现针对性的改正。系统的使用是要经过多方面反馈的,当正确性无法确保,那一个系统便是没有意义的。用户体验关系到今后的预期效果能否被接受,系统的设计终极结果是将用户利益充分体现,而进行测试后,能更好的满足用户需求,确保以最小的代价保证所进行网站的正确性,贴近用户。

  6.3系统测试用例

  6.3.1登录功能测试

  关于测试的基础模块便是要首先保证用户使用登录的功能,在系统的其他功能之前,应能保证可进行已和以前等同注册账号密码的权限一致性。每个用户独有独特的专属私密信息,这些必须要在登录功能前进行实现保证,若是无法对这一功能进行验证,势必会在后期运行中产生不可估计的后果。测试数据信息见下表。

  表6登录功能测试数据

  测试项目测试数据期望结果测试结果

  填写数据库里面的用户名,密码用户名:aaa

  密码:aaa登录通过登录通过

  填写的用户名,密码在数据库中并不存在用户名:ccc

  密码:ccc登录不通过登录不通过

  填写数据库的用户名,但填写密码有误用户名:aaa

  密码:ccc登录不通过登录不通过

  填写的用户名在数据库里面没有,但填写的密码无误用户名:ccc

  密码:aaa登录不通过登录不通过

  6.3.2注册功能测试

  游客作为系统网站的兴趣者,在进行例如商品购买时应能保证独自账号信息,这就需要进行注册功能,其主要是包括信息输入不合法时的信息提示以及正确时的及时反馈。测试结果详细见下表[20]。

关于作者: guimow

热门文章