031202534-张逸君-实验三Word下载.doc
《031202534-张逸君-实验三Word下载.doc》由会员分享,可在线阅读,更多相关《031202534-张逸君-实验三Word下载.doc(31页珍藏版)》请在冰豆网上搜索。
数据库管理系统:
MicrosoftSQLServer2012
系统设计与开发工具:
MicrosoftVisualStudio2010
实验内容;
一、系统选题情况
选题四:
借书管理系统
B类:
独立完成以下功能(红色加粗部分为我多添加的功能)
业务需求:
实现某图书管理系统。
读者每次可借阅多本书,每本书有一定库存量与借阅时间要求。
系统角色:
经办人员,读者,系统维护人员
读者---
1、读者按自己帐号密码登入系统
2、图书查询
3、已借图书查询和个人借阅历史查询
经办人员---
1、销售人员按自己帐号密码登入系统
2、办理图书借阅与归还(综合查询分析图书借阅信息)
系统维护人员---
1、系统维护人员按自己帐号密码登入系统
2、管理维护系统基本信息(含图书信息、图书库存信息、经办人员信息、读者信息、系统维护人员信息、图书借阅信息),实现基本信息的增、删、改、查功能。
(综合信息查询功能)
二、需求说明:
本设计的任务是模拟一个图书馆管理系统的设计与实现,其中要实现图书信息管理(添加、删除、修改、查询)、读者/经办/系统用户的信息管理(注册新用户、修改信息、删除用户、查询用户)和图书借阅/归还的办理功能,因此我将所做的系统称为“模拟图书管理系统”而不是“借书管理系统”。
三、系统概要设计及概念数据模型(E-R图)设计
该系统首页是一个登录界面,在登录界面要选择用户的身份(读者/经办/系统),输入用户名和密码后按不同身份登录到不同界面。
可以在登录界面进行新用户注册。
当用户类型为“读者”时,进入的界面为“读者界面”,界面中将会显示用户的姓名及身份,里面有三个选项:
图书资源检索、借阅情况查询、个人信息修改。
其中图书资源检索可按照图书名、编著者、出版社进行图书检索,同时点击检索得到的图书名可以查阅图书的具体信息和内容简介;
借阅情况查询则增添了“历史借阅情况查询”。
当用户类型为“经办”时,进入经办界面有三个功能选项:
办理图书借阅、办理图书归还、个人信息修改。
当用户类型为“系统”时,进入的界面有六个选项:
系统人员信息管理、经办人员信息管理、读者用户信息管理、图书信息管理、借阅情况管理、个人信息修改。
其中系统/经办/读者信息管理界面中均含有查看用户信息、修改用户信息、删除用户的功能。
添加用户的功能则设计为需要用户在登录界面自行注册,另外,系统人员可以将自己删除!
添加了借阅情况管理,可以查询全部借阅记录、已归还的借阅记录,但是不能修改、删除任何借阅记录。
四、系统详细设计及数据库表/视图结构设计
(一)、数据库表/视图结构设计
表:
读者表:
(用户名,密码,姓名,性别,出生年月,学院,专业,电子邮箱,身份)
图书表:
(图书号,图书名,编著者,出版社,出版年,索书号,价格,内容简介,入库时间,流通状态)
借阅表:
(图书号,用户名,借阅时间,图书名,姓名,学院,应还时间,归还时间,当前状态,罚款数)
读者表、经办表、系统表三表同构,在此就不赘述经办表、系统表。
主要视图:
图书综合情况视图:
(图书名,编著者,出版社,出版年,索书号,价格,馆藏数)
具体页面查询图书表:
(图书号,图书名,编著者,出版社,出版年,索书号,流通状态,价格,入库时间)
读者在借数量视图:
(用户名,姓名,学院,在借数量)
还有一些其他视图,主要用于方便用户不同需求的查看,在此就不再一一列出,仅附图。
(二)、登录界面的设计:
MicrosoftVisualStudio2010中ASP.NET设计界面的方法非常方便,直接用鼠标拖动控件即可实现,故在本实验报告中对于创建界面等一些意义不大的步骤就略去,重点报告实现功能的代码。
实现按不同身份登录的功能代码的主要部分为:
(界面中“登录”按钮的功能实现)
stringusername=TextBox1.Text.Trim();
stringuserpassword=TextBox2.Text.Trim();
stringuserrole=RadioButtonList1.SelectedItem.Value;
stringselectstr="
"
;
switch(userrole)
{
case"
读者"
:
selectstr="
select*from读者表where用户名='
+username+"
'
break;
经办"
select*from经办表where用户名='
系统"
select*from系统表where用户名='
}
SqlConnectionconn=newSqlConnection(ConfigurationManager.ConnectionStrings["
图书管理系统ConnectionString"
].ConnectionString);
SqlCommandcmd=newSqlCommand(selectstr,conn);
conn.Open();
SqlDataReadersdr=cmd.ExecuteReader();
stringreadname=string.Empty;
stringreadpwd=string.Empty;
while(sdr.Read())
readname=sdr["
用户名"
].ToString();
readpwd=sdr["
密码"
if(username.Trim()==readname.Trim()&
&
userpassword.Trim()==readpwd.Trim())
Session["
pass"
]="
yes"
username"
]=username;
userrole"
]=userrole;
conn.Close();
switch(userrole)
{
case"
Response.Redirect("
读者界面.aspx?
username="
+username);
break;
经办界面.aspx?
系统界面.aspx?
}
}
else
{
Response.Write("
<
script>
alert('
用户不存在或密码错误!
);
/script>
TextBox1.Focus();
}
conn.Close();
(三)、注册新用户界面的设计
“注册”按钮的功能代码主要部分如下:
(略去对用户所填信息的约束条件检查如“验证”用户名是否已被使用等部分):
stringconnsql=System.Configuration.ConfigurationManager.ConnectionStrings["
].ConnectionString;
SqlConnectionconn=newSqlConnection(connsql);
conn.Open();
SqlDataAdapterda=newSqlDataAdapter();
stringselectsql="
switch(userrole.SelectedItem.Value)
selectsql="
select*from 读者表"
select*from经办表"
select*from系统表"
da.SelectCommand=newSqlCommand(selectsql,conn);
SqlCommandBuilderscb=newSqlCommandBuilder(da);
DataSetds=newDataSet();
da.Fill(ds);
DataRownewrow=ds.Tables[0].NewRow();
newrow["
]=username.Text;
]=password.Text;
姓名"
]=name.Text;
性别"
]=sex.SelectedItem.Value;
出生年月"
]