课程设计报告网上书店网站.docx

上传人:b****6 文档编号:6800762 上传时间:2023-01-10 格式:DOCX 页数:28 大小:389.60KB
下载 相关 举报
课程设计报告网上书店网站.docx_第1页
第1页 / 共28页
课程设计报告网上书店网站.docx_第2页
第2页 / 共28页
课程设计报告网上书店网站.docx_第3页
第3页 / 共28页
课程设计报告网上书店网站.docx_第4页
第4页 / 共28页
课程设计报告网上书店网站.docx_第5页
第5页 / 共28页
点击查看更多>>
下载资源
资源描述

课程设计报告网上书店网站.docx

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

课程设计报告网上书店网站.docx

课程设计报告网上书店网站

管理工程系【信息管理与信息系统专业】

 

课程设计报告

课题名称:

辅考网电子商城

*****

学号:

**********

课题组长:

梁杨情

小组成员:

李康管娅李艳杨昆妍陈红梅

 

填报日期:

2011年12月15日

 

提示:

内容写完后,右键单击上面的目录内容,选择“更新域”,“更新整个目录”即可,提交报告前将此部分文字删除。

1系统设计背景

随着Internet的迅速发展,当今电子商务已经被广大的互联网用户所接受,网上有关书的电子商务作为其中的一部分也有了迅速的发展。

利用电子商务实现网上购物,Internet的出现为电子商务注入了新的活力,在电子商务的平台上,网上书店利用互联网实现图书销售业务的一种新型图书零售渠道,网上书店订单处理速度快,服务范围广,存数量大,当当、亚马逊等网上书店已得到消费者的青睐,利用互联网、电子商务的优势,发展类似于网上的书城的辅考资料网站。

目前,各种各样的网上书店很多,但是专门针对考试的各种资料、试卷的不多,没有专门的辅考网。

而网上书店可以实现商务的多样化,可以完成最基本的信息展示、信息发布以及在线交易、在线服务、在线网站管理等功能。

网上书店能把传统的方式应用到上面,使其更高效,更快捷的完成,从而提供企业的竞争力。

我们课题设计开发,是针对目前各类考生买考试资料难的问题,方便考生购买,给广大准备考试的考生们极大的对资料选择和帮助。

2需求分析

2.1网站总体分析

(1)技术可行性本系统

辅考网是运用MicrosoftVisual2008中的C#语言、SQL2005数据库和部分Javascript联合编写的服务于广大考生的,为其提供考试资料的电子商务网站平台。

(2)经济可行性

辅考网可取代原系统的工作,减少人工开支,节省资金,并且可大大提高信息量的取得,缩短信息处理周期提高员工信息的利用率。

(3)营运可行性

本系统操作简单,易于理解,只需通过简单培训,上手较快,营运环境要求低。

本网站设计还应该以“标准性、安全性、高效性、保密性、可维护性”为标准。

2.2功能需求分析

辅考网是对考试有关的书籍、考试真题、模拟考试的资料零售,本网站可实现在线查看、购买、支付等功能,极大地满足消费者的需求,网站总体模块分为管理员和用户两个模块,而用户又分为会员和顾客两个子模块。

管理员的功能模块图如1-1所示,用户的功能模块图如1-2所示。

图1-1

 

 

图1-2

2.3数据库需求分析

根据网站设计目标,网站需要具有商品的种类、商品的样式等商品的管理、用户管理、辅考资讯管理、留言管理、购物车管理等功能。

(1)商品管理功能。

商品管理功能包括商品种类的增删查改、商品样式的增删查改以及商品信息的增删查改。

(2)用户管理功能。

用户管理包括对管理员、会员的管理,包括增删查改等。

(3)辅考资讯管理功能。

主要是对考试动态、新闻的管理,包括首页的动态显示、后台的增删改。

(4)留言管理功能。

留言管理功能包括一般用户(顾客)的留言管理和会员的留言管理,其中克对蓝颜进行回复的功能。

(5)购物车管理功能。

购物车是对会员的购买的商品的具有保存和计算功能的工具。

2.4环境需求分析

网站的开发环境:

WindowsXP(SP2)、Microsoft.NET2008集成开发环境、Sql2005数据库、ASP.NET3.5中的C#语言。

3系统规划

3.1网站的总体规划

辅考网系统是一个前台赴考资料展示及销售、后台管理两部分组成。

1、前台商品展示及销售:

该部分主要包括推荐商品、最新商品、热门商品、试卷分类、购物车、会员登录、注册、辅考资料查询、留言板等。

2、后台管理:

该部分主要对商城内的一些基础数据进行有效管理,包括商品类型管理、商品样式、会员管理、订单管理、留言管理、辅考资讯管理等。

3.2网站的功能结构图(1-3图)

图1-3

4系统设计

4.1数据库命名

(1)数据库的命名采用了有意义的字段名,遵守3NF标准和3NF规范,即表的每一个值都只能被表示一次;表的每一行都应该被有唯一的标识(即主键);表内不应该存储依赖于其他键的非键信息。

保持字段名和类型的一致性等。

(2)数据库命名规则

数据库名称=数据库内容标识。

(3)表的定义

命名应尽量反应数据的存储内容,表名称=表名前缀—表内容标识(首字大写)。

基于以上的数据库命名要求,辅考网包含了News、tb_Admin、tb_BookInfo、tb_Class、tb_Detail、tb_Image、tb_Leaveword、tb_meber、tb_OrderInfo、tb_Reply十张表。

4.2程序代码的命名规范

(1)辅考网的程序代码采用了一般代码的命名方式,避免用公司名称或其它品牌的名称作为命名名称的前缀,其中的ADO.NET的命名表示如表1-1所示。

数据类型

 数据类型简写

 标准命名举例

Connection

con

conNorthwind

Command

cmd

cmdReturnProducts

Parameter

parm

parmProductID

DataAdapter

dad

dadProducts

DataReader

dtr

dtrProducts

DataSet

dst

dstNorthWind

DataTable

dtbl

dtblProduct

DataRow

drow

drowRow98

表1-1

(2)WinFormControl、WebControl命名规范(部分)如表1-2所示:

数据类型

 数据类型简写

 标准命名举例

Label

 lbl

 lblMessage

Button

 btn

 btnSave

TextBox

 txt

 txtName

ListBox

 lst

DropDownList

drop

dropCountries

表1-2

(3).NET中的命名规则(部分)

类和类成分的命名  

类的命名原则是用名词或名词短语命名类,使用Pascal大写。

减少类名中缩写的使用量。

不要使用任何类前缀(比如C),不要使用带下划线的字符。

  例如:

publicclassFileStream{}、publicclassDB{}、publicclassString{}

变量的命名

名称中各单词首字母均为小写。

例如:

findLastRecord、redrawMyForm

  在内部范围中避免使用与外部范围中的名称相同的名称。

若访问错误变量,则会产生错误结果。

若变量与同一名称的关键字冲突,则必须在关键字前加适当的类型库以作标识。

例如:

若有一个名为date的变量,只能通过调用System.Date来使用内部Date函数。

函数和方法的命名。

函数和方法的命名应该以动词开始,使用Pascal大写。

不要使用带下划线的字符。

例如:

InitNameArray、CloseDialog

 4.3数据库设计

4.3.1数据表的表结构

(各模块对应的表附在模块设计部分)

4.3.2存储过程的创建

存储过程是为了实现某个特定任务,有一组编译好的SQL语句组成,将其放在数据库上,由用户通过指定存储过程的名字来执行的一种数据库对象,在存储过程中有系统存储过程、扩展存储过程、用户自定义存储过程。

辅考网的存储过程有64个,大多数都是系统存储过程和用户自定义存储过程,语句的一半形式为:

createproceduresp_name()

  begin

  .........

end

调用存储过程。

基本语法:

callsp_name()。

注意:

存储过程名称后面必须加括号,哪怕该存储过程没有参数传递。

在网站的存储过程中,对每个数据库的增删查改的功能都运用得到,如proc_AddUser中的语句

ALTERproc[dbo].[proc_AddUser]

@UserNamevarchar(50),

@Passwordvarchar(50),

@RealNamevarchar(50),

@Sexbit,

@Phonecodechar(20),

@Emailvarchar(50),

@Addressvarchar(200),

@PostCodechar(10)

as

ifExists(select*fromtb_MemberwhereUserName=@UserName)

return-100

else

begin

Inserttb_Member(tb_Member(UserName,Password,RealName,Sex,Phonecode,Email,Address,PostCode)

values(@UserName,@Password,@RealName,@Sex,@Phonecode,@Email,@Address,@PostCode)

return100

end

是对数据库中的表tb_Member中的数据类型定义为@UserNamevarchar(50),@Passwordvarchar(50),@RealNamevarchar(50),@Sexbit,@Phonecodechar(20),@Emailvarchar(50),@Addressvarchar(200),@PostCodechar(10)然后再将表中的UserName、Password、RealName、Sex、Phonecode、Email、Address、PostCode数据进行数据的更新,这是比较简单的存储过程,而在网站的存储过程中用到了类型于这样的存储过程,包括了Proc_DeleteAreaInfo、proc_DeplayGI、proc_DeplayGI等存储过程。

在存储过程中,我们运用到了exists方法,Exists方法描述如果在Dictionary对象中指定的关键字存在,返回True,若不存在,返回False。

语法object.Exists(key)Exists方法语法有如下几部分:

部分描述Object必需的。

始终是一个Dictionary对象的名字。

Key必需的。

在Dictionary对象中搜索的Key值。

EXISTS在SQL中的作用是检验查询是否返回数据。

LTERproc[dbo].[proc_UserLogin]

@UserNamevarchar(50),

@Passwordvarchar(50)

as

ifexists(select*fromtb_MemberwhereUserName=@UserNameandPassword=@Password)

begin

select*fromtb_Member

whereUserName=@UserNameandPassword=@Password

end

此外,存储过程中还运用到其他的比如Delece、Updata、Insert的语句,便于编写代码。

4.4公共类编写

辅考网运用到七个公共类,分别是BankPay.cs、CommonClass.cs、DBClass.cs、GoodsClass.cs、OrderClass.cs、OrderProperty.cs、UserClass.cs,其中DBClass.cs是对数据库连接的类的书写,其代码如下:

publicSqlConnectionGetConnection()

{

stringmyStr=ConfigurationManager.AppSettings["ConnectionString"].ToString();

SqlConnectionmyConn=newSqlConnection(myStr);

returnmyConn;

}

///

///执行SQL语句,并返回受影响的行数

///

///执行SQL语句命令的SqlCommand对象

publicvoidExecNonQuery(SqlCommandmyCmd)

{

try

{

if(myCmd.Connection.State!

=ConnectionState.Open)

{

myCmd.Connection.Open();//打开与数据库的连接

}

//使用SqlCommand对象的ExecuteNonQuery方法执行SQL语句,并返回受影响的行数

myCmd.ExecuteNonQuery();

}

catch(Exceptionex)

{

thrownewException(ex.Message,ex);

}

finally

{

if(myCmd.Connection.State==ConnectionState.Open)

{

myCmd.Connection.Close();//关闭与数据库的连接

}

}

4.5系统模块设计

在整个网站的开发设计中,我主要负责会员登录、后台登录、购物车及对应数据设计。

4.5.1会员注册、登录

注册、登录界面

图1-4图1-5

 

图1-7

相关代码

注册:

usingSystem;

usingSystem.Data;

usingSystem.Configuration;

usingSystem.Collections;

usingSystem.Web;

usingSystem.Web.Security;

usingSystem.Web.UI;

usingSystem.Web.UI.WebControls;

usingSystem.Web.UI.WebControls.WebParts;

usingSystem.Web.UI.HtmlControls;

usingSystem.Data.SqlClient;

publicpartialclassRegister:

System.Web.UI.Page

{

CommonClassccObj=newCommonClass();

UserClassucObj=newUserClass();

protectedvoidPage_Load(objectsender,EventArgse)

{

}

protectedvoidbtnSave_Click(objectsender,EventArgse)

{

//判断是否输入必要的信息

if(this.txtPostCode.Text.Trim()==""&&this.txtPhone.Text.Trim()==""&&this.txtEmail.Text.Trim()=="")

{

Response.Write(ccObj.MessageBoxPage("请输入必要的信息!

"));

}

else

{

//将用户输入的信息插入到用户表tb_Member中

intIntReturnValue=ucObj.AddUser(txtName.Text.Trim(),txtPassword.Text.Trim(),txtTrueName.Text.Trim(),transfer(this.ddlSex.SelectedItem.Text),txtPhone.Text.Trim(),txtEmail.Text.Trim(),txtAddress.Text.Trim(),txtPostCode.Text.Trim());

if(IntReturnValue==100)

{

Response.Write(ccObj.MessageBox("恭喜您,注册成功!

","Default.aspx"));

}

else

{

Response.Write(ccObj.MessageBox("注册失败,该名字已存在!

"));

}

}

}

///

///将性别转化为Bool值

///

///需要转化的性别值

///返回转化后的性别值

protectedbooltransfer(stringstrValue)

{

if(strValue=="男")

{

returntrue;

}

else

{

returnfalse;

}

}

protectedvoidbtnReset_Click(objectsender,EventArgse)

{

this.txtName.Text="";//用户名

this.txtPassword.Text="";//用户密码

this.txtTrueName.Text="";//用户真实姓名

this.txtPhone.Text="";//用户电话号码

this.txtPostCode.Text="";//邮政编码

this.txtEmail.Text="";//Email

this.txtAddress.Text="";//详细地址

}

}

登录:

usingSystem;

usingSystem.Data;

usingSystem.Configuration;

usingSystem.Collections;

usingSystem.Web;

usingSystem.Web.Security;

usingSystem.Web.UI;

usingSystem.Web.UI.WebControls;

usingSystem.Web.UI.WebControls.WebParts;

usingSystem.Web.UI.HtmlControls;

usingSystem.Data.SqlClient;

publicpartialclassLoadingControl:

System.Web.UI.UserControl

{

//声明随机类对象

CommonClassccObj=newCommonClass();

UserClassucObj=newUserClass();

protectedvoidPage_Load(objectsender,EventArgse)

{

Randomrandom=newRandom();

if(!

IsPostBack)

{

lblCheckCode.Text=random.Next(1000,9999).ToString();//产生随机验证码

protectedvoidbtnLoad_Click(objectsender,ImageClickEventArgse)

{

//清空Session对象

Session["UserID"]=null;

Session["Username"]=null;

if(this.lblCheckCode.Text.Trim()==""||this.txtCheckCode.Text.Trim()=="")

{

Response.Write(ccObj.MessageBoxPage("登录名和密码不能为空!

"));

}

else

{

if(this.txtCheckCode.Text.Trim()==this.lblCheckCode.Text.Trim())

{

//调用UserClass类的UserLogin方法判断用户是否为合法用户

DataTabledsTable=ucObj.UserLogin(this.txtName.Text.Trim(),this.txtPassword.Text.Trim());

if(dsTable!

=null)//判断用户是否存在

{

Session["UserID"]=Convert.ToInt32(dsTable.Rows[0][0].ToString());//保存用户ID

Session["Username"]=dsTable.Rows[0][1].ToString();//保存用户登录名

//Response.Redirect(Request.CurrentExecutionFilePath);//跳转到当前请求的虚拟路径

Response.Redirect("Default.aspx");//跳转到当前请求的虚拟路径

}

else

{

Response.Write(ccObj.MessageBoxPage("您的登录有误,请核对后再重新登录!

"));

}

}

else

{

Response.Write(ccObj.MessageBoxPage("请正确输入验证码!

"));

}

 

}

}

protectedvoidButton1_Click(objectsender,EventArgse)

{

Response.Redirect("Register.aspx");

}

}

4.5.2后台登录

登录界面

图1-8

图1-9

 

相关代码

usingSystem;

usingSystem.Data;

usingSystem.Configuration;

usingSystem.Collections;

usingSystem.Web;

usingSystem.Web.Security;

usingSystem.Web.UI;

usingSystem.Web.UI.WebControls;

usingSystem.Web.UI.WebControls.WebParts;

usingSystem.Web.UI.HtmlControls;

usingSystem.Data.SqlClient;

publicpartialclassManage_Login:

System.Web.UI.Page

{

//创建公共类CommonClass一个新实例对象

CommonClassccObj=newCommonClass();

DBClassdbObj=newDBClass();

protectedvoidPage_Load(objectsender,EventArgse)

{

Randomrandom=newRandom();

if

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

当前位置:首页 > 幼儿教育 > 幼儿读物

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

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