资源描述
图书管理系统 设计报告书
———————————————————————————————— 作者:
———————————————————————————————— 日期:
2
个人收集整理 勿做商业用途
课程设计
报 告 书
设计名称:
课程名称:
学生姓名:
专 业:
班 别:
学 号:
指导老师:
日 期: 年 月 日
目 录
1. 系统概述 1
2.系统功能分析 1
会员区(前台):浏览信息、查询图书详细信息、浏览最新资讯 1
管理员区(后台管理):添加、导入、批量删除、更新图书信息、会员管理 1
3。系统设计(包括功能设计和结构设计) 1
3。1系统功能设计 1
3。2 系统结构设计 2
3。3 开发、运行环境(包括硬件、软件环境) 2
3.4 详细设计 2
3。4.1模块一:首页模块---登录 2
首页——登录模块: 2
注册成为新用户模块: 4
3.4。2模块二:“会员”模块 5
类型查询模块: 6
详细信息模块: 9
最新资讯模块: 10
浏览全部书籍模块: 10
3。4。3 模块三:“管理员”模块 10
添加书籍信息模块: 10
书籍信息(图片)更新模块: 13
批量导入、删除书籍信息模块: 15
用户管理、信息浏览模块: 17
4.总结 18
4
1. 系统概述
(1)会员在(前台)会员区可以浏览全部书籍信息、查询图书信息、浏览最新资讯及会员基本信息等基本信息。
(2非会员可与在前台申请会员。
(3)管理员在管理员区(后台)管理(添加、删除、更新)图书信息、用户分配及删除、浏览会员全部信息。
(4)实现更多功能,如留言、论坛等.
2。系统功能分析
会员区(前台):浏览信息、查询图书详细信息、浏览最新资讯
(1)浏览书籍的全部信息
以DataList控件显示书籍的全部信息供会员登录后浏览。
(2)查询图书信息
①分类查询
通过GridView控件把类型显示出来,并通过编辑模版加入Button控件绑定类型把类型显示出来,通过数据源的where语句SELECT * FROM [book] WHERE ([ID] = ?),用GridView控件显示同种类型的书籍的信息,并同的GridView控件的空模版显示无类型的查询。
②多字段查询并通过与来实现精确模糊查询
通过关键字:书名、作者、出版日期查询,并通过与实现精确与模糊查询 ,并用GridView控件把书籍信息显示出来。
(3)浏览最新资讯
用GridView控件把最新书籍的信息显示出来供会员浏览.
(4)浏览会员基本信息
申请加入会员后即可浏览自己的基本信息及其他会员的基本信息,在会员区也可以浏览。
管理员区(后台管理):添加、导入、批量删除、更新图书信息、会员管理
(1)添加书籍
进行新书入库,添加ISBN、书名、价格、作者、出版社、出版日期、开本、详细说明、ID(类型)字段、上传封面,并通过GridView控件浏览新书以上信息。
(2)批量删除及导入书籍信息
利用GridView控件的删除功能批量删除一些书籍信息,利用FileUpload控件浏览表格导入书籍信息,包括ISBN、书名、价格、作者、出版社、出版日期、开本、封面、详细说明、ID(类型)字段,实现批量导入书籍信息。
(3)更新图书信息
利用GridView控件选择功能,通过编号选择书籍进行更新操作,更新操作是通过FormView的Edit功能来实现的。
(4)查询书籍并修改
通过书名、作者、出版社、出版日期的关键字查询到想要修改的书籍,并通过GridView控件的编辑、删除实现对书籍的信息的修改与删除。
(5)会员管理
用DropDownList显示用户UserName、RoleName,通过Button控件的代码实现用户的角色管理(角色包括会员与管理员)及删除功能,最后通过新建用户自带的数据库aspnet_Membership以GridView控件显示出来,浏览用户的全部信息。
3.系统设计(包括功能设计和结构设计)
3。1系统功能设计
用户在前台可以浏览、查询图书信息、最新资讯等基本信息,也可以申请会员,管理员可在后台管理(添加、删除、更新)图书信息、用户管理,并且实现更多功能,如留言、论坛等。
3.2 系统结构设计
系统模块如,图表 1:
首页
会员区
管理员区
登录
浏览全部书籍信息
查询
最新信息
批量删除、导入信息
添加书籍并浏览
更新书籍信息
创建用户
会员基本信息
用户管理
用户分配与删除
显示会员信息
类型查询
多字段
查询
查询书籍并修改
图表 1
3。3 开发、运行环境(包括硬件、软件环境)
运行平台:Win7系统 Intel Core i5—2410M,2。3GHz
系统开发环境:Microsoft Visual Studio 2005
数据库:ACCESS数据库、Sql数据库
3。4 详细设计
3.4。1模块一:首页模块-—-登录
首页—-登录模块:
登录模块分为两个权限,会员、管理员可通过用户名和密码进行登录,登录系统后可以进行相关权利操作。
(1)数据表
ASPNETDB.MDF
(2)设计步骤
添加新项(Web窗体),命名为index.aspx,“HyperLink”控件,改Text为登录,在属性 “导航”中的“NavigateUrl"选择login。aspx.
添加新项(Web窗体),命名为login.aspx。在YY文件下新建两个文件夹(分别命名为“nn”,“gg”),在两个文件夹中在分别添加新项member。aspx、manage。aspx。在菜单栏中的“网站"打开“ASP。NET配置(T)/安全/使用安全设置向导按部就班地配置安全性/下一步/通过 Internet/下一步…/添加角色(新的角色分别为会员、管理员) /完成 。
创建用户,分配角色:创建一个会员:名为李宁,密码为“*1234567”, 创建一个管理员:名为yy,密码为“*1234567”.
创建访问规则: “管理员”文件夹允许管理员,拒绝会员、匿名;“会员”文件夹允许管理员、会员,拒绝VIP、匿名;
分别在member.aspx、manage.aspx页面添加LoginName控件、LoginStatus控件,并作相关设计。
在登录页面login.aspx作如下设计:添加Login,转为模板,在模板中插入一行并添加控件“RadioButtonList”,并对其“编辑项”,添加会员、管理员,双击“登录"输入代码,设置权限。
(3)关键代码
protected void LoginButton_Click1(object sender, EventArgs e)
{
RadioButtonList RR = (RadioButtonList)Login1.FindControl(”R1”);
if (RR.Items[0]。Selected)
{
Login1.DestinationPageUrl = "nn\\member。aspx”;
}
else
{
Login1。DestinationPageUrl = "gg\\manage。aspx";
}
}
(4)运行结果
注册成为新用户模块:
实现添加普通会员功能,成功创建后可浏览基本信息(用户名、邮件、注册日期)
(1)数据表
aspnet_Members
(2)设计步骤
在登录下插入一行,添加“HyperLink”控件,改Text为申请会员,在属性 “导航”中的“NavigateUrl”选择memberadd。aspx。
添加新项(Web窗体),命名为memberadd.aspx,添加CreateUserWizard控件,编辑模版,编辑完成:右键“完成”属性,在属性PostBackUrl选择membershipuser.aspx。
添加新项(Web窗体),命名为membershipuser。aspx,添加“SqlDataSource1” 配置数据源“aspnet_Members”,添加“GridView”控件,选择数据源“SqlDataSource1”, 编辑列,调整字段显示位置,把Email转化为模板,编辑模版,把Label删掉,添加“HyperLink”控件,编辑DataBindings把 Text字段绑定“Email",NavigateUrl字段绑定“Email”,格式为mailto:{0} 。
(3)关键代码
(4)运行结果
3。4。2模块二:“会员"模块
类型查询模块:
提供给会员查询不同类型书籍信息的一对多功能,点击书名即可得其详细信息.
(1)数据表
books。mdb(book、type)
(2)设计步骤
插入表格,在表格中添加“AccessDataSource1”配置数据源“type”,点击“高级”(生成INSERT。 UPDATE和DELETE语句);添加“GridView”,控件,选择数据源AccessDataSource1,编辑列,删除“ID”字段,把“类型”转化为模板,编辑模版,在模板中删除Label控件,添加“Button"控件绑定到“类型”字段并在其属性中的“CommandName”输入“ select” 。
在表格中添加“AccessDataSource2"配置数据源“book”,点击“Where” 列选 “b_id”,运算符选“=",源选“Control”,控件选“GridView1”,添加“GridView1”控件,编辑模版,删除掉其他所有字段,添加“Label"控件绑定到书名,添加“HyperLink"控件,绑定:“Text"字段绑定“书名”、“NavigateUrl”字段绑定“编号”,格式为“message.aspx?编号={0} ”,编辑空模版,输入“抱歉,找不到您需要的书籍”,结束编辑.
(3)关键代码运行结果
高级查询模块:
提供给会员按书名检索中文或英文图书多字段查询书籍信息的功能,包括书名、作者、出版社字段,通过“与”实现精确或者模糊地使用其中的一个或多个条件进行高级查询,并可查询详细信息。
(1) 数据表
books。mdb(book、type)
(2)设计步骤
添加新Web窗体,命名为“inquiry。aspx”,在页面输入“关键字",并在其后面添加控件“TextBox1” 、“CheckBoxList”(命名为C1,并对其“编辑项”,添加书名,作者,出版社)、“RadioButtonList1”(命名为R1,并对其“编辑项”,添加与、或)、“RadioButtonList2"(命名为R2,并对其“编辑项”,添加模糊、精确)、“ Button1”(改Text为‘查询’)“ Button2”(改 Text为‘返回’)。添加“AccessDataSource1” 配置数据源“information”,点击“高级”(生成INSERT。 UPDATE和DELETE语句),完成。添加“GridView”控件,选择数据源“AccessDataSource1”,编辑列,保留编号、书名、ISBN、出版社、主编、数量字段,删掉其他字段,把书名转化为模板,编辑模版,书名列删掉label添加添加“HyperLink"控件,编辑DataBindings把 Text字段绑定“书名”,NavigateUrl字段绑定“书名”,格式为message。aspx?编号={0}。分别双击Button1、Button2输入代码。文档为个人收集整理,来源于网络个人收集整理,勿做商业用途
(3)关键代码
protected void Button1_Click(object sender, EventArgs e)
{
if (TextBox1。Text.Trim().Length > 0)
{
string str = "”;
for (int i = 0; i < C1。Items。Count; i++)
{
if (C1。Items[i].Selected)
{
if (R2.Items[0]。Selected)
{
str = str + C1.Items[i]。Value。ToString() + ”='" + TextBox1.Text.Trim() + "’” + " and ”;
}
else
{
str = str + C1.Items[i]。Value。ToString() + ” like’%" + TextBox1.Text。Trim() + ”%’” + ” and ”;
}
}
}
if (str。Length > 0)
{
str = str。Substring(0, str.Trim().Length — 3);
AccessDataSource1.SelectCommand = "SELECT * FROM [book] where ” + str;
GridView1.DataBind();
}
Response.Write(str);
}
}
protected void Button2_Click(object sender, EventArgs e)
{
AccessDataSource1。SelectCommand = "SELECT * FROM [book] ";
GridView1。DataBind();
}
(4)运行结果
详细信息模块:
(1)数据表
books。mdb(book、type)
(2)设计步骤
添加新项,命名为“info.aspx”,添加“AccessDataSource1”配置数据源“book”,配“Where” 语句:选 “编号”,运算符选“=”,源选“QueryString”, “QueryString控件”输入“书籍编号",添加“GridView", 编辑列,删除所有字段,添加空模版,编辑模版,添加7行7列的表格,添加相应的控件,设计模块如 图表 2所示:
封面
Images :“编辑DataBindings”中的“ImageUrl"字段绑定“封面”,格式为“images/{0}”
书名
Label11:“编辑DataBindings”中的“Text”字段绑定“书名”
作者
Label12:“编辑DataBindings"中的“Text”字段绑定“作者”
类型
Label13:在“编辑DataBindings"中的“Text”字段绑定“ID”
添加“FormView1”: 选择新建据源:配置数据源“type”,点击“Where” 列选 “ID”,运算符选“=”,源选Control,控件Label13,得AccessDataSource1,编辑模板,只留下“类型Label”,把“Label13"属性中的Visible为False
ISBN
Label14:“编辑DataBindings"中的“Text"字段绑定“ISBN”
价格
Label15:“编辑DataBindings”中的“Text”字段绑定“价格",格式为“货币 - {0:C}"
出版社
Label16: “编辑DataBindings”中的“Text”字段绑定“出版社”
出版日期
Label17: “编辑DataBindings”中的“Text”字段绑定“出版日期",格式为“短时间 - {0:t}”
开本
Label18: “编辑DataBindings”中的“Text”字段绑定“开本”
详细说明
Label19:“编辑DataBindings”中的“Text”字段绑定“详细介绍"
图表 2
最新资讯模块:
提供给VIP用户浏览书籍最新资讯,了解最新书籍动态。
(1)数据表
books。mdb(book、type)
(2)设计步骤
添加新项,命名为“news.aspx”,添加“AccessDataSource1"配置数据源“information",oderby:编号,降序。添加“GridView”控件,启用分页,把标头隐藏,编辑列,删掉编号、出版时间、开本、详细介绍,分别把字段 “价格”、“封面"、“ID”转换成模板,编辑模版,价格列“编辑DataBindings”中的“Text”字段绑定“价格”,格式为“货币 - {0:C}”;ID列添加“FormView1”: 选择新建据源:配置数据源“leixing”,点击“Where” 列选 “b_id",运算符选“=”,源选“Control”,控件“Label3",得AccessDataSource1,编辑模板,只留下“类型Label”,把“Label3”属性中的Visible为False删掉label;封面列删掉label添加“Image1”控件,“ImageUrl"字段绑定“封面”,格式为“images/{0}”,结束编辑。
(3)关键代码
(4)运行结果
浏览全部书籍模块:
提供给会员浏览更多书籍,了解书城更多书籍。
(1)数据表
books.mdb(book、type)
(2)设计步骤
添加新项,命名为“information。aspx",添加“AccessDataSource1”配置数据源“book",oderby:出版时间,降序。添加“DataList”控件,设置标题连的方向为水平,编辑模版,价格列“编辑DataBindings"中的“Text”字段绑定“价格”,格式为“货币 - {0:C}";ID列添加“FormView1”: 选择新建据源:配置数据源“leixing”,点击“Where” 列选 “b_id”,运算符选“=”,源选“Control",控件“Label3”,得AccessDataSource1,编辑模板,只留下“类型Label",把“Label3”属性中的Visible为False删掉label;封面列删掉label添加“Image1”控件,“ImageUrl”字段绑定“封面”,格式为“images/{0}”,结束编辑。
(3)关键代码
(4)运行结果
3。4。3 模块三:“管理员”模块
管理员实现对图书的维护,包括图书的查询、修改和删除;实现对用户的管理,包括分配与删除角色。
添加书籍信息模块:
管理员可以添加书籍,包括上传封面图片。
(1)数据表
books。mdb(book、type)
(2)设计步骤
添加10行2列的表格,分别添加表格中的控件
ISBN
TextBox1
书名
TextBox2
价格
TextBox3
作者
TextBox4
出版社
TextBox5
出版日期
TextBox6
开本
TextBox7
封面
FileUpload,ID改为“F1”
详细介绍
TextBox8
类型
DropDownList1:添加AccessDataSource1配置数据源“type”,为DropDownList1选择AccessDataSource1,显示的数据字段为“类型”,选择数据字段“ID"
添加“Button1”控件(命名为:添加书籍),添加“AccessDataSource2"配置数据源“book",oderby:编号,降序,右键“AccessDataSource2”属性中INSERT查询,添加插入命令: ISBN TextBox1、书名TextBox2、价格TextBox3、作者TextBox4、出版社TextBox5、出版日期TextBox6、开本TextBox7、封面Session(“封面”)、详细介绍TextBox8、类型DropDownList1。
添加“GridView”控件,启用分页,编辑列,删除所有字段,添加一个空模版,编辑模版,添加7行5列的表格,分别添加表格中的控件
封面
Images :“编辑DataBindings"中的“ImageUrl”字段绑定“封面",格式为“images/{0}”
书名
Label11:“编辑DataBindings”中的“Text"字段绑定“书名”
作者
Label12:“编辑DataBindings”中的“Text”字段绑定“作者”
类型
Label13:在“编辑DataBindings”中的“Text"字段绑定“ID"
添加“FormView1”: 选择新建据源:配置数据源“type”,点击“Where” 列选 “ID”,运算符选“=”,源选Control,控件Label13,得AccessDataSource1,编辑模板,只留下“类型Label”,把“Label13"属性中的Visible为False
ISBN
Label14:“编辑DataBindings”中的“Text”字段绑定“ISBN”
价格
Label15:“编辑DataBindings”中的“Text”字段绑定“价格”,格式为“货币 — {0:C}”
出版社
Label16: “编辑DataBindings”中的“Text”字段绑定“出版社"
出版日期
Label17: “编辑DataBindings”中的“Text”字段绑定“出版日期",格式为“短时间 — {0:t}”
开本
Label18: “编辑DataBindings”中的“Text"字段绑定“开本"
详细说明
Label19:“编辑DataBindings”中的“Text”字段绑定“详细介绍"
双击Button1输入代码:引入命名空间using System。IO;
(3)关键代码
protected void Button1_Click(object sender, EventArgs e)
{
try
{
if (F1。HasFile)
{
F1.SaveAs(Server.MapPath(”images\\”) + F1.FileName);//上传文件到应用程序的images文件夹下
Session["封面"] = F1。FileName;
}
else
{
Session["封面”] = ””;
}
AccessDataSource2.Insert();
Label1.Text = ”添加成功";
GridView1。DataBind();
}
catch (Exception ex)
{
Label1。Text = "添加错误:” + ex.Message。ToString();
}
}
(4)运行结果
简单查询及修改信息模块:
管理员实现简单查询书籍,查到书籍可以修改书籍信息。
(1)数据表
books。mdb(book、type)
(2)设计步骤
添加新Web窗体,命名为“mamage.aspx”,输入“关键字”,并在其后面添加TextBox 、DropDownList1(并对其“编辑项",添加“书名”、“作者”、“出版社"、“出版时间”)、Button1(命名为‘查询’)、 Button2( 命名为‘返回’)。添加“AccessDataSource1” 配置数据源“book”,选择“高级”(生成INSERT。 UPDATE和DELETE语句),完成.添加“GridView”控件,选择数据源“AccessDataSource1",启用删除,启用编辑,编辑列,删掉出版时间,把封面、ID转化为模板,编辑模版,封面列删掉label,添加image控件,绑定“ImageUrl”字段 到“封面”,格式为“images/{0}”;ID列绑定Text字段到“ID”
添加“FormView1”: 选择新建据源:配置数据源“type”,点击“Where” 列选 “ID",运算符选“=”,源选Control,控件Label13,得AccessDataSource1,编辑模板,只留下“类型Label",把“Label13”属性中的Visible为False。
(3)关键代码
protected void Button1_Click(object sender, EventArgs e)
{
if (TextBox1。Text。Trim().Length 〉 0)
{
AccessDataSource1.SelectCommand = "SELECT * FROM [book] WHERE ” + DropDownList1。SelectedValue.ToString() + ” LIKE '%" + TextBox1。Text。Trim() + ”%'";
GridView1.DataBind();
}
}
protected void Button2_Click(object sender, EventArgs e)
{
AccessDataSource1.SelectCommand = ”SELECT * FROM [book] ";
GridView1.DataBind();
}
(4)运行结果
书籍信息(图片)更新模块:
管理员实现对书籍信息进行更新的功能,包括书籍图片的更新。
(1)数据表
books。mdb(book、type)
(2)设计步骤
添加新Web窗体,命名为“update.aspx”,添加“AccessDataSource1”配置数据源“book”, 点击“高级"(生成INSERT. UPDATE和DELETE语句)。添加“GridView"控件,选择数据源“AccessDataSource1”,启用选择,启用分页。编辑列,删除ISBN、作者、出版社、出版时间字段 ,分别把字段“价格"、 “封面”转换成模板,价格列“编辑DataBindings”中的“Text”字段绑定“价格”,格式为“货币 - {0:C}";封面列删掉label添加“Image1"控件,“ImageUrl”字段绑定“封面”,格式为“images/{0}",结束编辑。右键GridView属性,双击事件SelectedIndexChanged中输入代码。
添加“AccessDataSource2"配置数据源“book", 点击“高级”(生成INSERT. UPDATE和DELETE语句);点击“Where” 列选 “编号”,运算符选“=”,源选“Control”,控件选“GridView1";在其属性中点击“UpdateQuery”,在参数“封面"的“参数源”选“Session”,在“SessionField"输入“封面”。添加“FormView”控件,选择数据源“AccessDataSource2”,在“FormView2"控件属性行为中的“DefaultMode”选择“Edit”,并对其进行编辑模板,在“EditItemTemplate”进行编辑,去掉“b_idLabel4”和“封面Label10",在“ID”处添加“AccessDataSource3”配置数据源“type”, 点击“高级”(生成INSERT。 UPDATE和DELETE语句);点击“Where" 列选 “编号”,运算符选“=”,源选“Control”,控“GridView1”;添加“DropDownList1” 配置数据源“AccessDataSource3”,显示的数据字段为“类型",选择数据字段“ID”;在“封面”处添加label(ID改为“Lf”,编辑DataBindings”中的“Text”字段绑定“封面”)、“CheckBox”(ID改为“C1”)“、FileUpload”控件(ID改为“F1"),右键FormView属性,双击事件ItemUpdated中输入代码,双击事件ItemUpdating中输入代码,添加命名空间using System.IO;。添加“HyperLink"控件属性“导航”中的“NavigateUrl"选择“gg/manage。aspx ”。个人收集整理,勿做商业用途本文为互联网收集,请勿用作商业用途
(3)关键代码
protected void GridView1_SelectedIndexChanged(object sender, EventArgs e)
{
GridView1.Visible = false;
FormView2。Visible = true;
}
protected void FormView2_ItemUpdated(object sender, FormViewUpdatedEventArgs e)
{
GridView1.Visible = true;
FormView2.Visible = false;
GridView1。DataBind();
}
protected void FormView2_ItemUpdating(object sender, FormViewUpdateEventArgs e)
{
CheckBox cc = (CheckBox)FormView2。FindControl(”C1”);
if (cc.Checked)
{//判断是否有图片
Label LL = (Label)FormView2。FindControl(”Lf”);
if (LL.Text。Length > 0)
{//如果有图片,则删除图片文件
File.Delete(Server。MapPath(”images\\”) + LL。Text);
}
Session["封面"] = "";
}
else
{
FileUpload ff = (FileUpload)FormView2.FindControl(”F1”);
if (ff.HasFile)
{
if (Path。GetExtension(ff.FileName) == ".jpg”)
{
try
{
ff。SaveAs(Server。MapPath(”images\\") + ff.FileName);//上传文件
//string newname = DateTime。Now。ToString()。Replace(”:", ”-”) + Path.GetExtension(ff.FileName);
string newname = DateTime.Now。Year.ToString() + ”-” + DateTime。Now.Month.ToString() + "-" + DateTime.Now。Day。ToString() + "—" + DateTime。Now.Hour.ToString() + "—” + DateTime。Now。Minute。ToString() + "—" + DateTime。Now。Second。ToString() + Path。GetExtension(ff.FileName);
File.Move(Server。MapPath(”images\\”) + ff。FileName, Server.MapPath("images\\”) + newname);
Session[”封面"] = newname;
展开阅读全文