您好,欢迎来到筏尚旅游网。
搜索
您的当前位置:首页数据库实训报告

数据库实训报告

来源:筏尚旅游网


数据库课程设计

题目:网上购书系统

姓 名: 紫鱼要飞翔 学 号: 学 院: 信息学院 专 业:计算机科学与技术 指 导 教 师:

一、系统需求规格说明

1. 项目概述 1.1 项目的背景

随着互联网在中国的进一步普及应用,网上购书逐渐成为人们的网上行为之一。方便、便宜成为了它的特点,加强网站的管理,使之更好的为管理员及用户服务,是当前网上购书一项重要工作。 1.2 开发意义

网上书店的兴起对传统图书流通体系产生了强烈的冲击,有效的缩短了图书流通发行的环节,将广大读者、图书、出版者、发行者紧密的结合在一起,大大提高了图书流通量。网上购书突破了传统商务的障碍,无论对消费者、企业还是市场都有着巨大的吸引力和影响力,在新经济时期无疑是达到“多赢”效果的理想模式。 1.3 开发目标

 对用户、书籍的信息进行完整的保存和管理;  能够准确地进行买书计价和结算; 2. 主要任务与性能要求 2.1. 主要任务

输入和修改信息,包括用户、书籍等;

 买书记录与统计:记录用户买书的信息并计算书籍总价

 用户查询:能够分别按照用户ID查询用户信息,如:姓名、住址等 2.2. 性能要求

 数据精度:书籍单价和书籍总价要精确到小数点后2位(分);

 时间特性:对系统的任何操作要达到立即响应,最大延迟时间不能超过3秒;  适应性:所有界面的信息要完整,操作要简单且符合用户的一般习惯,提示要明确,

对所有输入的数据要及时进行校验检查。

3. 人员分工 无 4. 计划安排

第1天:项目需求的分析讨论,确定系统最终的基本需求,编写《系统需求规格》;整体

设计,构建E-R图,进行逻辑结构和数据表的设计;

第2-3天:编程实现

第4天:测试及程序调试,编写和提交课程设计报告; 第5天:项目验收。

一、 系统设计

1.引言 1.1 目的

据中国网络信息中心(CNNIC)统计,2009中国网民规模达到3.84亿人,中国手机网民规模

年达到2.33亿人,网络购物用户规模1.08亿人。电子商务的优势在于其立足于互联网,突破了传统的时空观念,缩小了生产、流通、分配、消费之间的距离,大大提高了物流、资金流和信息流的有效传输和处理。发展到今天,网络消费心理比以往呈现出新的特征和趋势。追求时尚文化品位。在互联网时代,文化的全球性和地方性并存,人们的消费观念受到强烈的冲击,尤其青年人对以时尚文化为导向的产品有着强烈的购买动机,而电子商务恰恰能满足这一需求。

1.2 项目名称:网上购书系统 1.3 参考资料

1) 王珊 萨师煊,数据库系统概论(第四版),高等教育出版社,2006年5月 2)赵杰等SQL Server数据库管理、设计与实现教程 清华大学出版社 2004年3月 2.系统任务描述 1)人员角色

通过对医务室工作内容和要求的具体分析,确定本系统的相关用户角色主要有病人和工作人员,而工作人员又需要根据具体工作岗位的不同,划分为医生、收费员、发药员。此外,为保障系统的正常运转和对数据信息的良好维护,还需要有1-2名系统管理员。 2)主要任务

 输入初始信息:包括会员(姓名、密码、地址、邮件等)、书籍(名称、作者、出版

商、出版时间、单价、库存等)信息;

 修改信息:对上述信息进行修改,但处方的修改需要一定的权限要求;  查询和统计:按照会员的ID进行会员信息查询

 系统维护:定期对系统的数据进行维护,主要是一般数据备份与恢复、用户权限调整、

药品盘点等。 3)就诊的业务流程

4)基本功能

 用户信息管理:编辑(输入、修改、删除、浏览显示)用户信息  书籍信息管理:编辑(输入、修改、删除)记录书籍信息  购物车管理:删除、修改购物车里的书籍信息  用户查询:可查询会员信息

5)要求描述

 人员权限设置为3级:1—会员; 2——领导; 3——系统管理员;

 初始处理:对于订单信息,在购买后,要按照规则自动生成编号,并以此作为关键字,

处方则要每单有唯一的单据号。

 查询统计处理:根据用户角色的不同,执行不同的查询统计;系统管理员可以对所有

信息进行查询统计;

3、概念设计

通过上述对网上购物系统的需求分析,确定该系统的E-R图如图1所示:

图1 网上购物系统的E-R图

其中各实体包含的属性如图2所示。

图2 各实体包含的属性

4.数据库逻辑结构设计

1)基本设计

此部分主要是将上述E-R图转换为相应的关系模式(依据转换原则)。综观项目的具体特点和整体处理要求,同时为便于系统内部的管理,在各实体原有信息的基础上,确定增加候选码,作为各关系的主键(关键字)、考虑联系确定外键。如:

1) 会员( userid ,姓名,密码,地址,邮箱)

2) 书籍( bookid ,书名,作者,出版社,出版时间、单价、库存量、总量、出售量、折扣、

图片)

3) 管理员(userid ,姓名,密码,地址,邮箱)

2)优化设计

由于角色将重复出现。为降低重复,提高准确性和处理速度,保证唯一性,同时又能够简化输入操作,方便修改和维护,特增加角色码本关系模式,导致原各关系中的名称均改为代码,如角色存储的是角色代码。下面是码本的具体组成举例:

角色码本(1、2、3 ,会员、领导、系统管理员)

5、 数据库物理设计

数据库物理设计完成数据库在物理设备上的存储结构与存取方法。建立数据库数据完整性约束(主键、外键、用户定义),支持相关数据处理的用户视图、索引等。

本例以MS SQL Server 2000作为数据库,因此,在进入SQL企业管理器并建立了数据库以后,通

过表设计器完成上述各表的建立。具体结果如下图3所示。

图3 系统数据表设计结果

6.主要功能实现

列出各功能的程序一览表、程序(要求有注释)和相应的主要界面截图。 1)登陆界面

Login.aspx: <%@ Page Language=\"C#\" AutoEventWireup=\"true\" CodeFile=\"login.aspx.cs\" Inherits=\"_Default\" %>

无标题页

border=\"0\" cellpadding=\"0\" cellspacing=\"0\" height=\"256\" width=\"850\">

style=\"background-position: center center>

 



 

帐号:

ErrorMessage=\"帐号不能为空!\">

密码:

ConnectionString=\"<%$ ConnectionStrings:webbookConnectionString %>\" DataSourceMode=\"DataReader\"

SelectCommand=\"SELECT [username], [pwd] FROM [user] WHERE (([username] = @username) AND ([pwd] = @pwd))\">

Type=\"String\" />

Type=\"String\" />

  imageurl=\"~/images/button/dl0.gif\" OnClick=\"btnEntry_Click\" /> ImageUrl=\"~/images/button/zc0.gif\" onclick=\"ImageButton2_Click\" />

Login.aspx.cs: using System;

using System.Configuration; using System.Data; using System.Linq; using System.Web;

using System.Web.Security; using System.Web.UI;

using System.Web.UI.HtmlControls; using System.Web.UI.WebControls;

using System.Web.UI.WebControls.WebParts; using System.Xml.Linq;

using System.Data.SqlClient;

public partial class _Default : System.Web.UI.Page {

protected void Page_Load(object sender, EventArgs e) {

if (!IsPostBack) {

Session[\"username\"] = null;

btnEntry.Attributes.Add(\"onmouseover\", \"this.src='images/button/dl1.gif' \"); btnEntry.Attributes.Add(\"onmouseout\", \"this.src='images/button/dl0.gif' \");

ImageButton1.Attributes.Add(\"onmouseover\", \"this.src='images/button/tc1.gif' \"); ImageButton1.Attributes.Add(\"onmouseout\", \"this.src='images/button/tc0.gif' \");

ImageButton2.Attributes.Add(\"onmouseover\", \"this.src='images/button/zc1.gif' \"); ImageButton2.Attributes.Add(\"onmouseout\", \"this.src='images/button/zc0.gif' \"); } }

protected void btnEntry_Click(object sender, ImageClickEventArgs e) {

SqlDataReader rd = (SqlDataReader)SqlDataSource1.Select(DataSourceSelectArguments.Empty); Session[\"s\"] = null; if (rd.HasRows) {

Session[\"s\"] = txtName.Text; Response.Redirect(\"main.aspx\"); } }

protected void ImageButton2_Click(object sender, ImageClickEventArgs e) {

Response.Redirect(\"adduser.aspx\"); } }

2)注册界面

Adduser.asp: <%@ Page Language=\"C#\" AutoEventWireup=\"true\" CodeFile=\"adduser.aspx.cs\" Inherits=\"adduser\" %>

\"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">

无标题页

ControlToCompare=\"TextBox3\" ControlToValidate=\"TextBox12\" ErrorMessage=\"不一致\">

ControlToValidate=\"TextBox5\" ErrorMessage=\"格式不对\"

ValidationExpression=\"\\w+([-+.']\\w+)*@\\w+([-.]\\w+)*\\.\\w+([-.]\\w+)*\">

ConnectionString=\"<%$ ConnectionStrings:webbookConnectionString %>\" DeleteCommand=\"DELETE FROM [user] WHERE [userid] = @userid\"

InsertCommand=\"INSERT INTO [user] ([userid], [username], [pwd], [adress], [role], [email], [roleid], [remark]) VALUES (@userid, @username, @pwd, @adress, @role, @email, @roleid, @remark)\" SelectCommand=\"SELECT * FROM [user]\"

UpdateCommand=\"UPDATE [user] SET [username] = @username, [pwd] = @pwd, [adress] = @adress, [role] = @role, [email] = @email, [roleid] = @roleid, [remark] = @remark WHERE [userid] = @userid\">

Adduser.aspx.cs: using System;

using System.Collections; using System.Configuration; using System.Data; using System.Linq; using System.Web;

using System.Web.Security; using System.Web.UI;

using System.Web.UI.HtmlControls; using System.Web.UI.WebControls;

using System.Web.UI.WebControls.WebParts; using System.Xml.Linq;

public partial class adduser : System.Web.UI.Page {

protected void Page_Load(object sender, EventArgs e) {

}

protected void Button1_Click(object sender, EventArgs e) {

Response.Redirect(\"login.aspx\");

}

protected void Button2_Click(object sender, EventArgs e) {

Response.Redirect(\"main.aspx\");

} }

3)主界面

主界面使用母板:

<%@ Master Language=\"C#\" AutoEventWireup=\"true\" CodeFile=\"MasterPage.master.cs\" Inherits=\"MasterPage\" %>

无标题页

会员您好!Orientation=\"Horizontal\" BackColor=\"#B5C7DE\" DynamicHorizontalOffset=\"2\" Font-Names=\"Verdana\" Font-Size=\"0.8em\" ForeColor=\"#284E98\" Height=\"39px\" StaticSubMenuIndent=\"10px\" Width=\"520px\" >

 

4)用户管理界面

用户注册.aspx

<%@ Page Language=\"C#\" AutoEventWireup=\"true\" CodeFile=\"用户注册.aspx.cs\" Inherits=\"用户注册\" %>

无标题页

DataSourceID=\"SqlDataSource1\" style=\"margin-left: 78px; margin-top: 36px\" Width=\"728px\">

DataNavigateUrlFormatString=\"~/注册1.aspx?p={0}\" Text=\"修改\" />

ConnectionString=\"<%$ ConnectionStrings:webbookConnectionString %>\" DeleteCommand=\"DELETE FROM [user] WHERE [userid] = @userid\"

InsertCommand=\"INSERT INTO [user] ([userid], [username], [pwd], [adress], [email]) VALUES (@userid, @username, @pwd, @adress, @email)\"

SelectCommand=\"SELECT [userid], [username], [pwd], [adress], [email] FROM [user]\" UpdateCommand=\"UPDATE [user] SET [username] = @username, [pwd] = @pwd, [adress] = @adress, [email] = @email WHERE [userid] = @userid\">

用户注册.aspx.cs

using System;

using System.Collections; using System.Configuration; using System.Data; using System.Linq; using System.Web;

using System.Web.Security; using System.Web.UI;

using System.Web.UI.HtmlControls; using System.Web.UI.WebControls;

using System.Web.UI.WebControls.WebParts; using System.Xml.Linq;

public partial class 用户注册 : System.Web.UI.Page {

protected void Page_Load(object sender, EventArgs e) {

}

protected void Button1_Click(object sender, EventArgs e) {

Response.Redirect(\"main.aspx\"); } }

5)查询用户界面

Updateuser.aspx: <%@ Page Language=\"C#\" AutoEventWireup=\"true\" CodeFile=\"updateuser.aspx.cs\" Inherits=\"updateregister\" %>

无标题页

DataSourceID=\"SqlDataSource2\" DataTextField=\"userid\" DataValueField=\"userid\">

ConnectionString=\"<%$ ConnectionStrings:webbookConnectionString %>\"

SelectCommand=\"SELECT DISTINCT [userid] FROM [user]\"> ConnectionString=\"<%$ ConnectionStrings:webbookConnectionString %>\" DeleteCommand=\"DELETE FROM [user] WHERE [userid] = @userid\"

InsertCommand=\"INSERT INTO [user] ([userid], [username],[pwd], [adress], [email]) VALUES (@userid, @username, @pwd, @adress, @email)\"

SelectCommand=\"SELECT * FROM [user] WHERE ([userid] = @userid)\"

UpdateCommand=\"UPDATE [user] SET [username] = @username,[pwd]=@pwd, [adress] = @adress, [email] = @email WHERE [userid] = @userid\">

Updateuser.aspx.cs: using System;

using System.Collections; using System.Configuration; using System.Data; using System.Linq; using System.Web;

using System.Web.Security; using System.Web.UI;

using System.Web.UI.HtmlControls; using System.Web.UI.WebControls;

using System.Web.UI.WebControls.WebParts; using System.Xml.Linq;

public partial class updateregister : System.Web.UI.Page {

protected void Page_Load(object sender, EventArgs e) {

}

protected void Button1_Click(object sender, EventArgs e) {

Response.Redirect(\"main.aspx\");

} }

5)书籍管理界面

Viewbook.aspx: <%@ Page Language=\"C#\" AutoEventWireup=\"true\" CodeFile=\"viewbook.aspx.cs\" Inherits=\"viewbook\" %>

无标题页

DataNavigateUrlFormatString=\"~/book.aspx?p={0}\" Text=\"维护\" />

ConnectionString=\"<%$ ConnectionStrings:webbookConnectionString %>\" SelectCommand=\"SELECT * FROM [book]\"

DeleteCommand=\"DELETE FROM [book] WHERE [bookid] = @bookid\" InsertCommand=\"INSERT INTO [book] ([bookid], [name], [author], [publish], [publishdate], [price], [totalnum], [storenum], [image], [sellorder], [remark], [discount]) VALUES (@bookid, @name, @author, @publish, @publishdate, @price, @totalnum, @storenum, @image, @sellorder, @remark, @discount)\"

UpdateCommand=\"UPDATE [book] SET [name] = @name, [author] = @author, [publish] = @publish, [publishdate] = @publishdate, [price] = @price, [totalnum] = @totalnum, [storenum] = @storenum, [image] = @image, [sellorder] = @sellorder, [remark] = @remark, [discount] = @discount WHERE [bookid] = @bookid\" onselecting=\"SqlDataSource1_Selecting\">

Viewbook.aspx.cs: using System;

using System.Collections; using System.Configuration; using System.Data; using System.Linq; using System.Web;

using System.Web.Security; using System.Web.UI;

using System.Web.UI.HtmlControls; using System.Web.UI.WebControls;

using System.Web.UI.WebControls.WebParts; using System.Xml.Linq;

public partial class viewbook : System.Web.UI.Page {

protected void Page_Load(object sender, EventArgs e) {

}

protected void GridView1_SelectedIndexChanged(object sender, EventArgs e) {

}

protected void SqlDataSource1_Selecting(object sender, SqlDataSourceSelectingEventArgs e) {

}

protected void Button1_Click(object sender, EventArgs e) {

Response.Redirect(\"main.aspx\");

} }

5)订书界面

订书页面.aspx: <%@ Page Language=\"C#\" AutoEventWireup=\"true\" CodeFile=\"订书页面.aspx.cs\" Inherits=\"_Default\" %>

订书页面





AutoGenerateColumns=\"False\" DataKeyNames=\"bookid\" DataSourceID=\"SqlDataSource1\">

DataNavigateUrlFormatString=\"~/cart.aspx?p={0}\" Text=\"购买\" />

ConnectionString=\"<%$ ConnectionStrings:webbookConnectionString %>\"

SelectCommand=\"SELECT [bookid], [name], [author], [publish], [price], [publishdate], [discount], [image] FROM [book]\">

订书页面.aspx.cs:

using System;

using System.Collections; using System.Configuration; using System.Data; using System.Linq; using System.Web;

using System.Web.Security; using System.Web.UI;

using System.Web.UI.HtmlControls; using System.Web.UI.WebControls;

using System.Web.UI.WebControls.WebParts; using System.Xml.Linq;

public partial class _Default : System.Web.UI.Page {

protected void Page_Load(object sender, EventArgs e) {

}

protected void Button1_Click(object sender, EventArgs e)

{

Response.Redirect(\"main.aspx\"); } }

6)购物车界面

Cart.aspx: <%@ Page Language=\"C#\" AutoEventWireup=\"true\" CodeFile=\"cart.aspx.cs\" Inherits=\"cart\" %>

无标题页




加入购物车

ConnectionString=\"<%$ ConnectionStrings:webbookConnectionString %>\"

SelectCommand=\"SELECT [bookid], [name], [author], [publish], [publishdate], [price], [discount], [image] FROM [book] WHERE ([bookid] = @bookid)\">

ConnectionString=\"<%$ ConnectionStrings:webbookConnectionString %>\" SelectCommand=\"SELECT * FROM [cart]\" DataSourceMode=\"DataReader\" DeleteCommand=\"DELETE FROM [cart] WHERE [id] = @id\"

InsertCommand=\"INSERT INTO [cart] ([bookid], [num], [userid]) VALUES (@bookid, @num, @userid)\"

onselecting=\"SqlDataSource2_Selecting\"

UpdateCommand=\"UPDATE [cart] SET [bookid] = @bookid, [num] = @num, [userid] = @userid WHERE [id] = @id\">




数量:


Cart.aspx.cs: using System;

using System.Collections; using System.Configuration; using System.Data; using System.Linq; using System.Web;

using System.Web.Security; using System.Web.UI;

using System.Web.UI.HtmlControls; using System.Web.UI.WebControls;

using System.Web.UI.WebControls.WebParts; using System.Xml.Linq;

using System.Data.SqlClient;

public partial class cart : System.Web.UI.Page {

protected void Page_Load(object sender, EventArgs e) {

}

protected void Button1_Click(object sender, EventArgs e) {

SqlDataSource2.Insert();

Response.Redirect(\"mycar.aspx\"); }

protected void SqlDataSource2_Selecting(object sender, SqlDataSourceSelectingEventArgs e) {

SqlDataReader rd = (SqlDataReader)SqlDataSource1.Select(DataSourceSelectArguments.Empty); if (rd.HasRows) {

rd.Read();

e.Command.Parameters[\"@id\"].Value = Session[\"s\"];

e.Command.Parameters[\"@bookid\"].Value = rd[\"bookid\"].ToString(); e.Command.Parameters[\"@num\"].Value = TextBox1.Text;

e.Command.Parameters[\"@userid\"].Value = rd[\"userid\"].ToString(); } } }

Mycar.aspx: <%@ Page Language=\"C#\" AutoEventWireup=\"true\" CodeFile=\"mycar.aspx.cs\" Inherits=\"mycar\" %>

我的购物车



我 的 购 物 车

ConnectionString=\"<%$ ConnectionStrings:webbookConnectionString %>\" DeleteCommand=\"DELETE FROM [cart] WHERE [id] = @id\"

InsertCommand=\"INSERT INTO [cart] ([id], [bookid], [num], [userid]) VALUES (@id, @bookid, @num, @userid)\"

SelectCommand=\"SELECT * FROM [cart]\"

UpdateCommand=\"UPDATE [cart] SET [bookid] = @bookid, [num] = @num, [userid] = @userid WHERE [id] = @id\">

Mycar.aspx.cs: using System;

using System.Collections; using System.Configuration; using System.Data; using System.Linq; using System.Web;

using System.Web.Security; using System.Web.UI;

using System.Web.UI.HtmlControls; using System.Web.UI.WebControls;

using System.Web.UI.WebControls.WebParts; using System.Xml.Linq;

public partial class mycar : System.Web.UI.Page {

protected void Page_Load(object sender, EventArgs e) {

}

protected void Button1_Click(object sender, EventArgs e) {

Response.Redirect(\"main.aspx\"); } }

三.收获和体会

通过这次实训,更加深刻的理解了数据库的设计,表结构的重要性及各个表之间关系一定要清晰,属性的设置,字段的设置都要合适。也学会了ASP.NET中许多控件的使用,体会到了控件的方便与不变,由于控件的功能都是设定好的,使得无法自由的按照设想设计页面。

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

Copyright © 2019- efsc.cn 版权所有

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

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