您好,欢迎来到年旅网。
搜索
您的当前位置:首页web结业论文

web结业论文

来源:年旅网
课程结业论文

课程名称:WEB技术应用基础 课程性质:选修课 课程学时:课程学分:论文题目:网上书店项目设计学生姓名:性 别:男学 号:专业班级:计应上课时间:任课教师:

课程分数:40学时 2.5学分

1081 2011年春季 2011年6月

目录

第一章 绪言

1.1 项目开发背景-----------------------------------------------------------3 1.2项目开发意义-----------------------------------------------------------------------3 第二章 系统分析

2.1 系统调查-----------------------------------------------------------------4

2.2可行性分析----------------------------------------------------------------4 2.3 软件系统的总目标------------------------------------------------------4 第三章 概要设计

3.1系统总体结构设计-------------------------------------------------------5 3.2 数据库的概念设计------------------------------------------------------5 第四章 详细设计

4.1 数据库的逻辑设计-------------------------------------------------------7 4.2数据库的实现--------------------------------------------------------------7 4.3 系统流程图----------------------------------------------------------------8 4.4部分程序源代码----------------------------------------------------------14 第五章 心得体会及参考文献----------------------------------------------------19

第一章 绪言

1.1

项目开发背景

随着Internet的高速发展和个人、企业上网的迅速普及,企业的WWW网站在商业活动中发挥着越来越大的作用。在信息时代,建立一个功能强大,界面美观的电子商务网站,建立电子商务系统平台,对企业的发展是至关重要的。 要想建立一个电子商城,就要了解电子商务的基本概念。所谓电子商务,是指各种具有商业活动能力的实体(如生产企业,商贸企业,金融机构,机构,个人消费者等)利用网络和先进的数字化传媒技术进行的各项商业贸业活动。其中要特别强调的特点,一是其商业背景,二是网络化和数字化。简而言之,电子商务就是通过电子网络渠道达成的商务活动。 电子商务是计算机网络的第二次,它通过电子手段建立新的经济秩序,不仅涉及电子技术和商业交易本身,而且涉及诸如金融,税务,教育等社会其它层面。对电子商务的研究始于20世纪70年代末,而其实施则要更晚些。实施又分为两步,其中电子数据交换(Electronic Data Interchange, EDI)始于20世纪80年代中期,Internet上的电子商务始于20世纪90年代初期。电子商务活动相应分为两大类:企业组织-— 企业组织(Business-Business, B2B)型和企业组织—消费者(Business-Consumer, B2C)型。根据统计,目前电子商务活动中80%的收入属于B2B型商务活动,这是由于企业组织的信息化程度和技术水平比个体消费者明显要高,主要面向的是企业与企业,为企业提供进行采购,销售和结算等业务的平台。

B2C则是我们最熟悉的,它直接面向终端的大众消费者。它通常也有两种形式,一种类似一个大的超市,里面摆着大量的商品,让消费者直接去购买,比如当当和卓越电子商务网站;而另一种形式则类似一个大商城,商城中有许多柜台,用户可以直接到柜台选购和购买自己中意的东西,然后去结算,这种商城只提供柜台和相关的服务,并收取相应的柜台使用费用。

1.2项目开发的意义

在信息化高速发展的今天,时间,效率这样的名词正主导着人们的生活和发展。进阅览室,上书城,书店这样的事情已逐渐的成了一种奢望。然而,人们对知识的渴求与书籍的需要却是有增无减。于是一种便捷、快速的购书方式—网上书店的出现就成了必然!

作为《web程序设计》课程的延伸,在学生完成了《web程序设计》课程的理论学习后,安排的课程设计,旨在提高学生web程序开发水平,培养学生网络编程的能力。

第二章 系统分析

系统分析阶段是最主要的工作,在于明确系统的目标和用户对新系统的具体需求,同时以文件表达的方式详细而完整地描述需求的内容,即新系统将要“做什么”,并定义新系统的各项功能和性能。

在需求分析中,主要运用组织机构图、业务流程图、数据流图和数据字典这几种工具进行描述。

2.1 系统调查

了解系统需求是进行系统分析和设计的重要基础工作,因此必须对购书系统的需求进行全面、细致而充分的调查研究。而购书系统的需求是由潜在用户体现出来的,因此只有对用户需求做全面深入的调查分析,才能找出要解决的问题的关键所在,从而确保新系统的有效性。

经初步调查,用户进入书城会有三种行为模式:1,浏览图书;2,选购图书;3,提出意见、建议。

2.2 可行性分析

可行性分析是需求分析的重要活动,是对系统进行全面、概要的分析。

虽然现在图书馆的分类越来越严密和明细,但要在茫茫书海找到一本自己需要的图书,仍然是大海捞针。

因此,我们需要建立新的信息自动化的管理系统,充分利用现有资源,改进工作方式,提高图书检索效率。

2.2.1 经济可行性

今天,计算机的价格已经十分低廉,性能却有着长足的进步,它已经被应用于许多领域。网上购书系统所需的开发费用并不是很昂贵,然而这套系统的成功投入使用可以大量节约人力、物力,两至三个管理人员,一台服务器就可以成功经营一个面向全球化的书店。

2.2.2 技术可行性

配备两台高性能的计算机,在现在是非常容易做到的事情,具有计算机管理方面的人才也是越来越多,在今后的系统维护上存在技术上的可行性。

2.3 软件系统的总目标

用户在浏览完了商品信息后,满意的话,可以单击将其放入购物车。你的购物车就增加了你此次选购的商品。在选择完商品后,你就可以去查看购物车的内容了,在这里你可以修改购物车中商品的数量、清空购物车等。然后或者在本站继续购物,或者确认付款方式、送货方式,提交定单。用户有什么好的意见、建议,可以通过留言板进行发表,网站管理员在收到用户留言后可以将好的贴子放到网上供用户浏览。网站管理员根据需要能够随时向网上增加新的图书,更改图书库存数量,查询图书销售情况等。

第三章 概要设计

在对网上图书管理系统的分析阶段完成后,为了将系统分析阶段提出的系统的逻辑方案转换成可以实施的基于计算机和网络通信系统的物理方案。概要设计主要考虑的是实现这个系统/子系统,应该设计几个功能模块,这些模块由哪些程序组成,他们之间以什么方式链接在一起构成一个最好的系统机内结构。

系统设计阶段主要考虑的是在计算机知识和应用软件开发经验。由系统的特性决定在系统设计过程中可以使用“自顶向下”的原则,将系统分为若干个模块之后,可以用结构图来表达这些模块之间的联结关系。

3.1系统总体结构设计

系统的总体结构设计是指整个系统由哪些部分组成,以及各部分在物理上、逻辑上的相互关系,包括硬件部分和软件部分。主要任务就是将整个系统合理的划分成若干个功能模块,正确地处理模块之间与模块内部的联系以及他们之间的调用关系和数据联系,定义子模块的内部结构等。

3.2 数据库的概念设计

数据库设计中十分重视数据分析、抽象与概念结构的设计,概念结构的设计是整个数据库设计的关键。用于描述概念结构模型的工具是E-R模型。需求分析采用自顶向下的结构设计方法,而概念结构设计通常采用自底向上的设计方法,这种方法是首先定义各局部应用的概念结构,然后将他们集成,得到全局的概念结构。

数据模型是数据库设计的核心和基础,概念模型是将现实世界中的客观对象首先抽象成为不依赖任何具体机器的信息结构。概念结构不是DBMS支持的数据模型,而是概念级模型。然后再把概念模型转换为具体机器DBMS支持的数据模型。因此,概念模型可以看成是显示世界到机器世界的一个过渡的中间层次。

概念模型的特点:是对现实世界的抽象和概括;简洁、明晰、于机器,很容易理解;易于更动;容易向关系、网状、层次等各种数据模型转换。

3.2.1本系统的E-R图(图4-2-1)

用户

生成订单

购物

订单 购物车 1

商品 图书 商品 1

打折

折扣 发表留言 留言 收货 收货人

第四章 详细设计

4.1 数据库的逻辑设计

E-R模型所表示的全局概念结构,是对用户数据需求的一种抽象表示形式,它于任何一种数据模型。为了实现用户的需求,必须将概念结构进一步转化为与我们选用的具体的机器上DBMS产品所支持的数据模型相符合的逻辑结构,这就是数据库逻辑设计的任务。

首先要实现的是E-R模型向关系模型的转换,将E-R模型转换为关系模型实际上就是要将实体、实体的属性和实体间的联系转换为关系模式的过程。

数据库关系图:

4.2数据库的实现

网上购书系统中要涉及的关系就如上所示,在对数据代码进行设计后,再按照数据字

典中的数据元素说明确定每个数据项的类型和长度,从而使得每个关系对应一个数据表,同时在设计表时要注意文件的主码和外码。部分表格设计如下所示

1,CustomerInfo(用户)

名称 类型 name(用户名) varchar password(用户密码) varchar 宽度 50 20 主键 Yes 外键 telephone(用户电话) email (用户邮箱号) address (用户地址) loginTime(加入时间) popedom (用户权限) 2,BookIfo(图书)

varchar varchar varchar varchar varchar 50 100 100 50 20 宽度 20 50 50 50 500 50 50 100 主键 Yes 外键 Yes Yes Yes 外键 Yes 主键 Yes 外键 Yes Yes 名称 bookID(图书编号) bookStye(图书类型) bookName(书名) author(作者) edition(出版社) digest(摘要) fixPrice(定价) bookcount(库存数量) neData (原始数量) issuanceDate(出版日期) picUrl(封面图片存放路径)

3,discountInfo(折扣)

名称 bookID (图书编号) covtmoney (折扣) 4,OrderInfo(定单)

名称 OrderID (订单编号) name(用户名) consigneeID(收货人编号) payfm(付款方式) takefm(配送方式) consumeTime (订购时间) 4.3 系统流程图 类型 int varchar varchar varchar varchar varchar varchar int int varchar varchar 宽度 4 10 类型 Int char 主键 Yes 宽度 4 50 4 50 类型 int varchar int int int r varchar 结构化分析法是面向数据流的自顶向下逐步求精的分析方法,它是根据软件内部数据传递、变换的关系进行分析的。是一种面向数据流的自顶向下、根据软件内部数据传递、变换的关系,逐步求精的分析方法。它主要以软件系统流程图表达系统内部数据运动情况。结构化分析方法是比较传统也是比较常用的一种需求分析方法。

示系统流程图的符号很多,以下是最常用的几种:

过程 开始或结束 数据 判断 文档 显示 图 4-2 以下是本系统的系统流程图(图 4-2-1)

A,前台

1.用户注册、登录流程主图

1.1 用户注册流程图

开 始 输入姓名 输入密码 确认密码 输入验证输入电话号输入邮箱输入地址 密码确认错误? 姓名空? 密码空? 验证码错误? 格式错误? 格式错误? 会员注册表 注册 用户名已被注册? 注册成功 1.2用户登录流程图

开 始 输入姓名 输入密码 姓名空? 密码空? 会员注册表 登录 用户名不存在? 密码错误? 登录成功

2.用户浏览购物流程图

开始 浏览图书 分类浏览 畅销排行 图书检索 是否加入购物车 加入购物车 是否继续购书 注册 是否生成订单 是否注册 取消购物 是否已登录 是否登录 生成订单 登录 返回

3.用户留言流程图

B 后台.

1.添加码表字段

2.新增图书

3.图书打折

开始 输入折扣 输入图书编号 输入书名 折扣为空/非1—10的整数? 提交 编号与书名均为空 必须输入编号 库中有同名图书

4.4部分程序源代码

1)用户登录

private void Button1_Click(object sender, System.EventArgs e)//用户登录 {

if(TextBox1.Text.Trim()==\"\")//用户登录,首先判断用户名是否为空 {Page.RegisterStartupScript(\"alert\\"\"); }

else //判断数据库中是否存在该用户名

{ SqlConnection conn=new SqlConnection(ConnStr); conn.Open();

SqlCommand comm=new SqlCommand(\"select password from CustomerInfo where name='\"+TextBox1.Text.Trim()+\"'\ SqlDataReader dr=comm.ExecuteReader(); dr.Read();

string pass=TextBox2.Value; if(!dr.HasRows)//如果没有 {

//Response.Write(\"没有此用户\"); Page.RegisterStartupScript(\"alert\language='javascript'> alert('没有此用户!')\"); } else {

if(dr.GetValue(0).Toting()==pass)//如果密码正确 {

//Response.Write(\"登陆成功\"); Page.RegisterStartupScript(\"alert\language='javascript'> alert('登陆成功!')\");

Session[\"customerName\"]=TextBox1.Text.Trim(); } else {

//Response.Write(\"密码错误\"); Page.RegisterStartupScript(\"alert\language='javascript'> alert('密码错误!')\"); } } } }

3)用户注册

private void Button1_Click(object sender, System.EventArgs e)//注册 {SqlConnection con=new SqlConnection(ConnStr);

User er=new User();//初始化类User

//string str=\"select name from [CustomerInfo]\"; er.Name=TextBox1.Text.Trim();

er.Password=TextBox2.Text.Trim(); //实例化类er er.Email=TextBox4.Text.Trim(); er.Tel=TextBox5.Text.Trim(); er.adrs=TextBox6.Text.Trim();

er.Logtime=System.DateTime.Now.ToString();

SqlCommand cmd=new SqlCommand(\"selectUserName\//调用存储过程selectUserName\"

cmd.CommandType=CommandType.StoredProcedure;//将 CommandType 设置为 存储过程 con.Open(); int tdr=0;

SqlDataReader dr; dr = cmd.ExecuteReader();

Label7.Visible=true;

while(dr.Read())//从数据库中读出用户名 {

if(TextBox1.Text.Trim()==dr.GetValue(0).ToString())//如果此用户名也被使用,给出提示信息并将tdr置为1

{ Page.RegisterStartupScript(\"alert\language='javascript'> alert('该账号已被注册,请重试!')\"); //Label7.Text=\"该帐号已被注册,请重试!\"; TextBox1.Text=\"\"; tdr=1; break; } }

con.Close();

Classlogin use=new Classlogin();//初始化类Classlogin

if(tdr!=1)//数据库中没有此用户名 { try {

if(use.AdduserIfo(er))//调用类Classlogin的AdduserIfo()方法如果该方法返回true注册成功 {

Page.RegisterStartupScript(\"alert\

language='javascript'> alert('恭喜你:\"+TextBox1.Text+\"注册成功!')\");

Session[\"customerName\"]=TextBox1.Text.Trim();//将用户名赋予Session变量Session[\"customerName\"]

} }

catch(Exception ex) {

Label7.Text=ex.Message.ToString(); TextBox1.Text=\"\"; } } }

//随机生成字符串作为验证码 char[] rod=

{'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z','0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','W','X','Y','Z'};

System.Random rad=new Random(); int itrd=rad.Next(61); int itrd1=rad.Next(61); int itrd2=rad.Next(61); int itrd3=rad.Next(61);

txtValidate.Text=rod[itrd].ToString()+rod[itrd1].ToString()+rod[itrd2].ToString()+rod[itrd3].ToString();

3)定义方法进行数据绑定DataList并实现分页

private void DataListDataBind() {

com.CommandText=seler;//调用存储过程 com.Connection=con;

com.CommandType=CommandType.StoredProcedure;//将 CommandType 设置为 存储过程

SqlDataAdapter da = new SqlDataAdapter(); da.SelectCommand=com;

da.Fill(ds,\"testTable\");//填充数据集

PagedDataSource objPage = new PagedDataSource();//创建分页类

objPage.DataSource = ds.Tables[\"testTable\"].DefaultView; //设置数据源

objPage.AllowPaging = true; //允许分页 objPage.PageSize = 5; //设置每页显示的项数 int CurPage; //定义变量用来保存当前页索引

if (Request.QueryString[\"Page\"] != null) //判断是否具有页面跳转

的请求

CurPage=Convert.ToInt32(Request.QueryString[\"Page\"]); else

CurPage=1; //设置当前页的索引 objPage.CurrentPageIndex = CurPage-1;

lblCurPage.Text = \"当前页:第\" + CurPage.ToString()+\"页\";//显示状态信息

if (!objPage.IsFirstPage) //如果当前页面不是首页 //定义\"上一页\"超级链接的URL为:当前执行页面的虚拟路径,并传递下一页面的索引值

lnkPrev.NavigateUrl=Request.CurrentExecutionFilePath + \"?Page=\" + Convert.ToString(CurPage-1);

if (!objPage.IsLastPage) //如果当前页面不是最后一页 //定义\"下一页\"超级链接的URL为:当前执行页面的虚拟路径,并传递下一页面的索引值

lnkNext.NavigateUrl=Request.CurrentExecutionFilePath+ \"?Page=\" + Convert.ToString(CurPage+1);

MyList.DataSource = objPage; //进行数据绑定 MyList.DataBind(); }

4)运用DataList的DeleteCommand实现将图书加入购物车并导航到购物车

private void MyList_DeleteCommand(object source,

System.Web.UI.WebControls.DataListCommandEventArgs e)//加入购物车 {

int bookid;

Label lb=(Label)e.Item.FindControl(\"LabID\");//获取图书编号的标签 bookid=Convert.ToInt32( lb.Text.Trim());

int[] id=(int[])Session[\"bookId\"];//将Session变量赋值给id数组 int[] isd=new int[id.Length+1];//声明一个长度为id数组长度加1的数组

for(int i=0;iisd[i]=id[i]; //将id数组赋值给数组isd }

isd[id.Length]=bookid;//将当前图书编号赋值给数组isd的最后一个数组元素

Session[\"bookId\"]=isd;//将数组isd赋值给Session变量Session[\"bookId\"]

Response.Redirect(\"MyCar.aspx\");//导航到购物车 }

第五章 心得体会及参考文献

5.1部分程序源代码

经过一个星期的共同努力,本系统已初步达到设计要求本系统界面清晰,形象直观,在完成的过程中,也遇到很多问题,不过经过努力,终于解决了所有的问题。通过本次设计,得到了相当多的经验,受益匪浅。不仅把学到的知识学以致用并且基本掌握了JSP,oracle等的使用,更重要的是,料及并掌握了一个系统的整个开发过程,把数据结构、数据库等课程的理论知识营运到实际过程中,提高了对问题的观察、思考、分析能力。

但由于时间关系以及经验不足,本系统还不够完善,如界面不够漂亮,有些功能不够完善,程序设计繁复杂乱不够简洁,对编程语言了解不厚透彻,不能充分利用有限的资源,某些页面提交后需要刷新才能显示更新等,无法在短时间内一一解决,有待于今后进行不断的扩充,系统还有不足之处,敬请老师批评指出!

通过这次的实践我学会了很多,巩固了自己有关web的课程知识,也让我知道了web的强大,也让我知道了自己在知识方面的缺陷,所以在静候的学习当中我会更加注重实践,注重基础知识的培养。

5.2参考文献

【1】《JSP使用教程(第二版)》 耿祥义、张跃平编 清华大学出版社 【2】《Oracle 10g 数据库管理 应用与开发》 马晓玉、孙岩、孙江玮、李洪海等编著 清

华大学出版社

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- oldu.cn 版权所有 浙ICP备2024123271号-1

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务