资源描述
A动态网站设计报告
设计题目: 图书信息管理系统设计
学院:
班级:
姓名:
学号:
摘 要
在科技发达的今天,图书馆还是在现在中占了很大部分,大多数学生都把图书馆当成了一个很好的学习的地方,里面的图书可以丰富我们的只是,所以对图书的管理也就很重要了。我们对图书的管理可以让同学们更好的了解到图书是否借出,对书籍好查看。
通过本系统达到以下目的:
1)使用ASP.NET操作数据库。
2)使用数据绑定控件显示和同步数据库数据。
3)在多个窗体之间交换数据。
4)熟悉运用SQL SERVER数据库软件。
关键词:图书管理 ;数据库 ;控件
目 录
1 软件需求分析说明书 1
2 系统分析与设计 1
2.1系统功能设计 1
2.2 数据库设计 2
2.2.1 图书管理系统中有2个表需要建立 2
2.2.2实际操作 3
3 系统实现 3
3.1建库代码 3
3.2 数据库连接 4
3.3 A后台主要代码 5
3.3.1注册模块 5
3.3.2登陆界面 7
3.3.3用户管理 9
3.3.4管理员界面 11
3.3.5其他人员界面 13
4 软件使用说明书 14
总 结 15
参考文献 16
1 软件需求分析说明书
软件需求分析,其目的是用于说明软件产品或软件项目需要满足的条件和限制。在软件工程项目中,首先要获取用户的需求,通过对软件需要的提取、分析、文档化和验证,为进一步的设计和实现提供数据。软件需求与其他活动也密切相关,如软件测试、配置管理和质量管理等。
图书管理系统”主要提供图书信息和读者基本信息的维护以及借阅等功能。本系统是提高图书管理工作的效率,减少相关人员的工作量,使学校的图书管理工作真正做到科学、合理的规划,系统、高效的实施。
2 系统分析与设计
2.1系统功能设计
本系统实现了图书管理系统,总体分为以下几个模块:管理员界面(图书添加,修改,查询,删除),其他人员界面(查看)。
图1 系统功能模块图
2.2 数据库设计
在图书管理系统中,一本书只能被一个同学借出,一个用户可以多次登录,但只能注册一次,因此,图书管理系统设计的对象有同学,借书,书本信息.
2.2.1 图书管理系统中有2个表需要建立
用户表(student),包括学生编号(sno)、学生账号(users)、密码(pass)、姓名(sname)、性别(sex)、年龄(age)、地址(address)、电话(tell)、管理员(Role);
图书表,包括图书编号(bid)、图书号(bno)、图书名(bname)、作者(writer)、价格(money)、借出(lend);
2.2.2实际操作
建立数据库book,建立如下各表
(1)用户表
包括编号、账号、密码、姓名、年龄、性别、地址、联系电话、家庭住址,用于存储用户的主要信息,可以通过前台对学生表数据进行增加、删除、修改、查询操作。用户的主键是users(用户账号)。用户表表是本数据库的重要信息表。
表1 用户表
字段名
数据类型
大小
字段描述
Sno
int
编号,自动递增,作主键
User
Char
10
账号
Pass
Nvarchar
15
密码
Sname
varchar
2
姓名
Sex
varchar
15
性别
Age
int
年龄
Address
varchar
15
地址
Tell
Nvarchar
15
电话
Role
Bit
是否为管理员
(2)图书表
包括图书编号、图书号、图书名、作者、价格等。用于图书的主要信息,可以通过前台对图书表数据进行增加、删除、修改、查询操作。图书表的主键是bno(图书号),图书表是本数据库的重要信息表。
表2 图书表
字段名
数据类型
大小
字段描述
Bid
Int
列表编号
Bno
char
10
图书编号
bname
varchar
15
图书姓名
writer
nvarchar
20
作者
money
nchar
10
价格
3 系统实现
3.1建库代码
--创建数据库book
create database book;
--连接数据库book
use book;
--创建student表
CREATE TABLE student(
sno int,
users char(5) primary key,
pass varchar(8) not null,
sex char(2) check(sex in('男','女')),
sname varchar(20) not null,
age int,
address varchar(50) not null,
tell varchar(15),
role bit
)
--创建book表
CREATE TABLE bok(
bid int not null,
bno char(5) primary key,
bname varchar(10),
writer varchar(15),
monry char(5) not null,
)
3.2 数据库连接
该系统所有的数据库的连接参数都在配置文件web.config文件中
<connectionStrings>
<add name="dbconnectionstring" connectionString="Data Source=I301-37\SQLEXPRESS;Initial Catalog=book;Integrated Security=True" providerName="System.Data.SqlClient" />
</connectionStrings>
<system.web>
<compilation debug="true" targetFramework="4.0" />
<authentication mode="Forms">
<forms loginUrl="~/Account/Login.aspx" timeout="2880" />
</authentication>
<membership>
<providers>
<clear/>
<add name="AspNetSqlMembershipProvider" type="System.Web.Security.SqlMembershipProvider" connectionStringName="ApplicationServices"
enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="false" requiresUniqueEmail="false"
maxInvalidPasswordAttempts="5" minRequiredPasswordLength="6" minRequiredNonalphanumericCharacters="0" passwordAttemptWindow="10"
applicationName="/" />
</providers>
</membership>
<profile>
<providers>
<clear/>
<add name="AspNetSqlProfileProvider" type="System.Web.Profile.SqlProfileProvider" connectionStringName="ApplicationServices" applicationName="/"/>
</providers>
</profile>
<roleManager enabled="false">
<providers>
<clear/>
<add name="AspNetSqlRoleProvider" type="System.Web.Security.SqlRoleProvider" connectionStringName="ApplicationServices" applicationName="/" />
<add name="AspNetWindowsTokenRoleProvider" type="System.Web.Security.WindowsTokenRoleProvider" applicationName="/" />
</providers>
</roleManager>
</system.web>
<system.webServer>
<modules runAllManagedModulesForAllRequests="true"/>
</system.webServer>
</configuration>
3.3 A后台主要代码
3.3.1注册模块
只有注册成为用户之后才能使用本系统,注册需要输入用户名,密码,再次输入密码等等,然后点击注册按钮,其具体效果图如图2所示:
图2 用户注册界面
namespace report.lib
{
public partial class regist: System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void Button1_Click(object sender, EventArgs e)
{
string users = this.TextBox1.Text.Trim();
string pass = this.TextBox2.Text.Trim();
string pass1 = this.TextBox3.Text.Trim();
string sname = this.TextBox4.Text.Trim();
string sex = "";
string age = this.TextBox5.Text.Trim();
string address = this.TextBox6.Text.Trim();
string tell = this.TextBox7.Text.Trim();
if (RadioButton1.Checked ==true)
{
sex = RadioButton1.Text;
}
else
{
sex = RadioButton2.Text;
}
string sqlStr = "select users from student where users='" + users + "'";
DB db=new DB();
bool count = db.GetReader(sqlStr).HasRows;
if (count)
Response.Write("<script>alert('账号存在!');location='注册.aspx'</script>");
else
if (this.TextBox1.Text!="")
{
string sqlStr1 = "insert into student(users,pass,sname,sex,age,address,tell)values('" + users + "','" + pass + "','" + sname + "','" + sex + "','" + age + "','" + address + "','" + tell + "')";
int count1 = db.ExectSql(sqlStr1);
if (count1 > 0)
{
Response.Write("<script>alert('注册成功');</script>");
Clear();
}
else
{
Response.Write("<script>alert('注册失败';location='注册.aspx')</script>");
}
}
}
public void Clear()
{
this.TextBox1.Text = "";
this.TextBox2.Text = "";
this.TextBox3.Text = "";
this.TextBox4.Text = "";
this.TextBox5.Text = "";
this.TextBox6.Text = "";
this.TextBox7.Text = "";
}
protected void Button2_Click(object sender, EventArgs e)
{
Response.Redirect("登录.aspx");
}
}
}
3.3.2登陆界面
用户注册后便可登录,输入用户名和密码,点击登录按钮便可成功登陆,具体效果如图3所示
图3 登陆界面
namespace report.lib
{
public partial class second : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void Button1_Click(object sender, EventArgs e)
{
string users = this.TextBox1.Text.Trim();
string pass = this.TextBox2.Text.Trim();
string sqlStr = "select users from student where users='" + users + "'and pass='" + pass + "'";
DB db = new DB();
SqlDataReader dr = db.GetReader(sqlStr);
dr.Read();
if (dr.HasRows)
{
// Session["sno"] = dr.GetValue(0);
Session["Role"] = dr.GetValue(0);
if(dr.GetValue(0)==null)
{
Response.Redirect("about.aspx");
}
else
{
Response.Redirect("main.aspx");
}
}
else
{
Response.Write("<script>alert('登陆失败');location='登陆.aspx'</script>");
}
dr.Close();
}
protected void Button2_Click(object sender, EventArgs e)
{
Response.Redirect("注册.aspx");
}
}
}
3.3.3用户管理
用户登陆成功后便可进入用户管理页面,选择是否为管理员。具体效果如图4所示
图4 用户管理界面
namespace report.lib
{
public partial class user : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
dbind();
}
}
public void dbind()
{
SqlConnection myCon =DB.GetConnection();
myCon.Open();
string sqlStr = "select * from student";
SqlDataAdapter myDa = new SqlDataAdapter(sqlStr, myCon);
DataSet myDs = new DataSet();
myDa.Fill(myDs);
GridView1.DataSource = myDs;
GridView1.DataBind();
myCon.Close();
}
protected void GridView1_RowEditing1(object sender, GridViewEditEventArgs e)
{
GridView1.EditIndex = e.NewEditIndex;
this.dbind();
}
protected void GridView1_OnRowUpdating1(object sender, GridViewUpdateEventArgs e)
{
int id = Convert.ToInt32(GridView1.DataKeys[e.RowIndex].Value.ToString());
string sname = ((TextBox)(GridView1.Rows[e.RowIndex].Cells[0].Controls[0])).Text.ToString();
string tell=((TextBox)(this.GridView1.Rows[e.RowIndex].Cells[1].Controls[0])).Text.ToString();
string Role = ((CheckBox)(this.GridView1.Rows[e.RowIndex].Cells[2].Controls[0])).Checked.ToString();
string sqlStr = "update student set sname='" + sname + "',tell='" + tell + "',Role='" + Role + "'where users=" + id;
DB db = new DB();
db.ExectSql(sqlStr);
GridView1.EditIndex = -1;
dbind();
}
protected void GridView1_OnRowCancelingEdit1(object sender, GridViewCancelEditEventArgs e)
{
GridView1.EditIndex = -1;
this.dbind();
}
protected void GridView1_OnRowDeleting(object sender, GridViewDeleteEventArgs e)
{
DB db = new DB();
int id = Convert.ToInt32(GridView1.DataKeys[e.RowIndex].Value.ToString());
string sqlStr = "delete from student where users=" + id;
db.ExectSql(sqlStr);
GridView1.EditIndex = -1;
dbind();
}
protected void LinkButton1_Click(object sender, EventArgs e)
{
Response.Redirect("second.aspx");
}
//protected void GridView1_OnRowDataBound(object sender, GridViewRowEventArgs e)
//{
// if (e.Row.RowType == DataControlCellType.DataRow)
// {
// ((LinkButton)e.Row.Cells[4].Controls[0]).Attributes.Add("onclick","return confirm(“确定删除");
// dbind();
// }
//}
}
}
3.3.4管理员界面
用户通过输入账号密码,为管理员进入此页面,具体效果如图6所示
图5 管理员界面
namespace report.lib
{
public partial class adminu : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
dbind();
}
}
public void dbind()
{
SqlConnection myCon =DB.GetConnection();
myCon.Open();
string sqlStr = "select * from student";
SqlDataAdapter myDa = new SqlDataAdapter(sqlStr, myCon);
DataSet myDs = new DataSet();
myDa.Fill(myDs);
GridView1.DataSource = myDs;
GridView1.DataBind();
myCon.Close();
}
protected void GridView1_RowEditing1(object sender, GridViewEditEventArgs e)
{
GridView1.EditIndex = e.NewEditIndex;
this.dbind();
}
protected void GridView1_OnRowUpdating1(object sender, GridViewUpdateEventArgs e)
{
int id = Convert.ToInt32(GridView1.DataKeys[e.RowIndex].Value.ToString());
string sname = ((TextBox)(GridView1.Rows[e.RowIndex].Cells[0].Controls[0])).Text.ToString();
string tell=((TextBox)(this.GridView1.Rows[e.RowIndex].Cells[1].Controls[0])).Text.ToString();
string Role = ((CheckBox)(this.GridView1.Rows[e.RowIndex].Cells[2].Controls[0])).Checked.ToString();
string sqlStr = "update student set sname='" + sname + "',tell='" + tell + "',Role='" + Role + "'where users=" + id;
DB db = new DB();
db.ExectSql(sqlStr);
GridView1.EditIndex = -1;
dbind();
}
protected void GridView1_OnRowCancelingEdit1(object sender, GridViewCancelEditEventArgs e)
{
GridView1.EditIndex = -1;
this.dbind();
}
protected void GridView1_OnRowDeleting(object sender, GridViewDeleteEventArgs e)
{
DB db = new DB();
int id = Convert.ToInt32(GridView1.DataKeys[e.RowIndex].Value.ToString());
string sqlStr = "delete from student where users=" + id;
db.ExectSql(sqlStr);
GridView1.EditIndex = -1;
dbind();
}
protected void LinkButton1_Click(object sender, EventArgs e)
{
Response.Redirect("second.aspx");
}
}
}
3.3.5其他人员界面
用户可查看图书是否借出。具体效果如图7所示
图6 房间删除界面
namespace report.lib
{
public partial class about : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
dbind();
}
public SqlConnection getConnection()
{
string connstr = System.Configuration.ConfigurationManager.ConnectionStrings["dbconnectionstring"].ToString();
SqlConnection myCon = new SqlConnection(connstr);
return myCon;
}
public void dbind()
{
SqlConnection myCon = getConnection();
myCon.Open();
string sqlStr = "select * from bok";
SqlDataAdapter myDa = new SqlDataAdapter(sqlStr, myCon);
DataSet myDs = new DataSet();
myDa.Fill(myDs);
GridView1.DataSource = myDs;
GridView1.DataBind();
myCon.Close();
}
}
}
4 软件使用说明书
图书管理系统主要负责图书的添加,借出和修改,让同学们更好、更快的利用查询功能进入,查看需要的图书。
(1) 添加图书,图书就会自动添加到指定表中,并更新出来。
(2) 删除图书,图书就会自动从表中删除。
(3) 修改图书,图书就会自动从表中删除。
展开阅读全文