数据库设计图书管理系统.docx
- 文档编号:10414056
- 上传时间:2023-02-11
- 格式:DOCX
- 页数:26
- 大小:561.20KB
数据库设计图书管理系统.docx
《数据库设计图书管理系统.docx》由会员分享,可在线阅读,更多相关《数据库设计图书管理系统.docx(26页珍藏版)》请在冰豆网上搜索。
数据库设计图书管理系统
目录
1、绪论3
1.1数据库应用系统简介3
1.2VisualStudio2010开发平台3
2、系统需求分析3
3、数据库设计4
3.1系统功能设计4
3.2数据库中的表格应用5
3.3图书管理系统组成6
3.4模块功能实现6
3.4.1管理员模块实现6
3.4.2学生功能模块实现6
3.4.3教师功能模块实现7
3.5数据库概念结构设计7
3.5.1该系统的流程图为7
3.5.2该系统的E-R图7
3.5.3数据库逻辑结构设计8
3.5.4数据表详细说明9
4、通用类的生成11
4.1连接数据库11
4.2操作数据库中的数据11
4.3用户登录代码11
4.4借阅书籍代码13
4.5归还书籍代码15
4.6人员信息查询代码16
4.7主菜单设计代码17
5、系统测试20
5.1开发与测试环境20
5.2程序调试情况20
5.3功能显示20
5.3.1运行主窗口20
5.3.2主界面21
5.3.3人员信息查询界面22
5.3.4借书界面22
5.3.5还书界面23
六.组类成员个人总结报告24
七.【参考文献】26
1、绪论
1.1数据库应用系统简介
SQLService2005数据库是微软公司精心打造的企业级数据库开发平台,该产品不仅包含了丰富的企业及数据管理功能,还集成了商业智能等特性。
数据库由DBMS(数据库管理系统)处理,DBMS则由开发人员和用户通过应用程序直接或间接地使用。
它主要包括四个要素:
用户数据、元数据、索引和应用元数据。
1.2VisualStudio2010开发平台
VisualStudio是一套完整的开发工具集,用于生成ASP.NETWeb应用程序、XMLWebServices,桌面应用程序和移动应用程序。
VB、VC++、VC#和VJ#全都使用相同的集成开发环境(IDE),利用此IDE可以共享工具且有助于创建混合语言解决方案。
另外,这些语言利用了.NETFramework的功能,通过此框架可使用简化ASPWeb应用程序和XML.WebService开发的关键技术。
2、系统需求分析
图书管理系统:
当今时代是飞速发展的信息时代。
在各行各业中离不开信息处理,这正是计算机被广泛应用于信息管理系统的环境。
计算机的最大好处在于利用它能够进行信息管理。
使用计算机进行信息控制,不仅提高了工作效率,而且大大提高了其安全性。
图书馆作为一种信息资源的集散地,图书和用户借阅资料繁多,包括很多的信息数据的管理,所以我认为有必要建立一个图书管理系统,使图书管理工作规范化,系统化,程序化,避免图书管理的随意性,提高信息处理的速度和准确性,能够及时、准确、有效地查询和修改图书情况。
3、数据库设计
3.1系统功能设计
✧用户登录:
验证管理员的身份是否合法。
✧主菜单窗口:
用户的操作主窗口。
✧系统设置:
管理员实现对系统的设置功能。
✧读者管理:
管理员和教师实现对读者的管理功能。
✧图书管理:
所有用户包括管理员、教师、学生实现对书籍的管理。
✧图书借还:
管理员对书籍借阅情况进行查看,学生和教师可以借阅书籍、归还书籍。
✧系统查询:
所有用户实现对图书管理系统的查询功能。
✧图书借阅排行榜:
用户查看书籍借阅的信息。
✧读者借阅排行榜:
读者查看自己借阅的书籍信息。
3.2数据库中的表格应用
分别为book表、bookcategory表、group表、category表、user表、userbook表。
它们的E-R图如下所示。
3.3图书管理系统组成
LoginForm.cs窗体:
登录界面
MenuForm.cs窗体:
主菜单界面
InfoForm.cs窗体:
人员信息查询界面
LendForm.cs窗体:
借阅书籍
ReturnForm.cs窗体:
归还书籍
Program.cs文件:
图书管理系统应用程序主入口文件
App.config文件:
配置数据库连接字符串等信息
3.4模块功能实现
3.4.1管理员模块实现
管理员功能模块共包括登录、系统设置、读者管理、图书管理、查看图书借书还书情况、系统查询等功能。
3.4.2学生功能模块实现
学生功能模块包括登录、图书管理、查看图书借书还书情况、系统查询等功能。
3.4.3教师功能模块实现
管理员功能模块共包括登录、读者管理、图书管理、查看图书借书还书情况、系统查询等功能。
3.5数据库概念结构设计
3.5.1该系统的流程图为
3.5.2该系统的E-R图
3.5.3数据库逻辑结构设计
该图书管理系统的实体及其跟别对应的属性为:
书籍(书籍ID号,书籍名称,作者,出版社,ISBN,出版时间,出版时间,数量)
用户类别(类别名称,类别编号)
图书分类(图书分类编号,图书类名,图书简介,父分类)
用户(用户ID号,用户密码,用户名称,用户类别)
借书信息(书籍ID号,用户ID号,借阅时间,借阅数量,状态)
3.5.4数据表详细说明
Book表
BookCategory表
Group表
Category表
User表
UserBook表
4、通用类的生成
本系统的主要操作都需要与数据库发生交互,为了提高代码的重用性和规范性,把与数据库交互的功能单独放在一个类中,在该类中实现数据库的增加、删除、修改、查询等通用功能。
4.1连接数据库
(1)定义数据库连接字符串,代码如下:
usingSystem.Data.SqlClient;
(2)创建Connection对象,代码如下:
SqlConnectioncon=newSqlConnection();
(3)打开连接,代码如下:
con.Open();
(4)关闭连接,代码如下:
con.Close();
4.2操作数据库中的数据
SqlConnectionconn=newSqlConnection();
conn.ConnectionString=sqlConnection1.ConnectionString;
conn.Open();
SqlCommandcmd=newSqlCommand("selectcount(*)fromuser1whereusername='"+textBox1.Text+"'andpassword='"+textBox2.Text+"'",conn);
4.3用户登录代码
publicpartialclassForm1:
Form
{
publicForm1()
{
InitializeComponent();
}
privatevoidbutton1_Click(objectsender,EventArgse)
{
if(textBox1.Text=="")//判断用户名是否为空
{
MessageBox.Show("用户名不能为空","警告",MessageBoxButtons.OK,MessageBoxIcon.Warning);
}
else
{
if(textBox2.Text=="")//判断密码是否为空
{
MessageBox.Show("请输入密码","警告",MessageBoxButtons.OK,MessageBoxIcon.Warning);
}
else//用户名及密码不为空的情况下执行如下代码
{
SqlConnectionconn=newSqlConnection();
conn.ConnectionString=sqlConnection1.ConnectionString;
conn.Open();
SqlCommandcmd=newSqlCommand("selectcount(*)fromuser1whereusername='"+textBox1.Text+"'andpassword='"+textBox2.Text+"'",conn);
inti=Convert.ToInt32(cmd.ExecuteScalar());
if(i>0)
{
cmd=newSqlCommand("select*fromuser1whereusername='"+textBox1.Text+"'",conn);
SqlDataReadersdr=cmd.ExecuteReader();
sdr.Read();
stringgroupid=sdr["groupid"].ToString().Trim();
stringid=sdr["id"].ToString().Trim();
sdr.Close();
cmd=newSqlCommand("selectcount(*)fromgroup1whereid='"+groupid+"'andgroupname='"+comboBox1.Text+"'",conn);
intj=Convert.ToInt32(cmd.ExecuteScalar());
if(j>0)
{
conn.Close();
Form2main=newForm2();
main.id=id;
main.groupid=groupid;
main.name=textBox1.Text;
main.time=DateTime.Now.ToShortDateString();
main.Show();
//this.Hide();
}
else
{
MessageBox.Show("类型错误");
}
}
else
{
MessageBox.Show("用户名或密码错误");
}
}
}
4.4借阅书籍代码
publicpartialclassForm4:
Form
{
publicstringnames;
publicstringnameid;
publicForm4()
{
InitializeComponent();
}
privatevoidForm4_Load(objectsender,EventArgse)
{
this.bookTableAdapter.Fill(this.libraryDataSet1.book);
textBox1.Text=names;
textBox2.Text=nameid;
}
privatevoidbutton1_Click(objectsender,EventArgse)
{
stringmysql;
inti;
i=dataGridView1.RowCount;
mysql="insertintouserbook(id,bookid,userid,createdate,number)values("+i+",'"+textBox5.Text+"','"+textBox2.Text+"','"+dateTimePicker1.Value+"','"+textBox3.Text+"')";
SqlConnectionconn=newSqlConnection();
conn.ConnectionString=sqlConnection1.ConnectionString;
conn.Open();
SqlCommandcmd=newSqlCommand();
cmd.CommandText=mysql;
cmd.Connection=conn;
cmd.ExecuteNonQuery();
}
privatevoidbutton2_Click(objectsender,EventArgse)
{
this.Close();
}
privatevoiddataGridView1_CellClick(objectsender,DataGridViewCellEventArgse)
{
try
{
if(e.RowIndex textBox5.Text=dataGridView1.Rows[e.RowIndex].Cells[0].Value.ToString(); } catch(Exceptionex) { MessageBox.Show("需要选中一个学生记录","信息提示"); } } } 4.5归还书籍代码 publicpartialclassForm5: Form { publicstringnames; publicstringnameid; SqlDataAdaptermyda=newSqlDataAdapter(); DataSetmyds=newDataSet(); SqlConnectionconn=newSqlConnection(); publicForm5() { InitializeComponent(); } privatevoidForm5_Load(objectsender,EventArgse) { textBox1.Text=names; textBox2.Text=nameid; conn.ConnectionString=sqlConnection1.ConnectionString; conn.Open(); stringmysql="select*fromuserbook,bookwhereuserbook.bookid=book.idanduserid='"+nameid+"'"; myda=newSqlDataAdapter(mysql,conn); myda.Fill(myds,"userbook"); dataGridView1.DataSource=myds.Tables["userbook"]; } privatevoidbutton1_Click(objectsender,EventArgse) { dataGridView1.Rows.Remove(dataGridView1.CurrentRow); stringmysql="select*fromuserbook"; myda=newSqlDataAdapter(mysql,conn); SqlCommandBuildermycmdbuilder=newSqlCommandBuilder(myda); myda.Update(myds,"userbook"); this.dataGridView1.DataSource=myds.Tables[0]; } } 4.6人员信息查询代码 publicpartialclassForm3: Form { SqlDataAdaptermyda=newSqlDataAdapter(); DataSetmyds=newDataSet(); publicForm3() { InitializeComponent(); } privatevoidForm3_Load(objectsender,EventArgse) { stringmysql; SqlConnectionconn=newSqlConnection(); conn.ConnectionString=sqlConnection1.ConnectionString; conn.Open(); mysql="select*fromuser1"; myda=newSqlDataAdapter(mysql,conn); myda.Fill(myds,"user1"); dataGridView1.DataSource=myds.Tables["user1"]; } privatevoidbutton1_Click(objectsender,EventArgse) { SqlCommandBuildermycmdbuilder=newSqlCommandBuilder(myda); if(myds.HasChanges()) { try { myda.Update(myds,"user1");//更新数据源 } catch(Exception) { MessageBox.Show("数据修改不正确,"信息提示");} } } privatevoidbutton2_Click(objectsender,EventArgse) { dataGridView1.Rows.Remove(dataGridView1.CurrentRow); SqlCommandBuildermycmdbuilder=newSqlCommandBuilder(myda); myda.Update(myds,"user1"); this.dataGridView1.DataSource=myds.Tables[0]; } } 4.7主菜单设计代码 publicpartialclassForm2: Form { publicstringid; publicstringname; publicstringtime; publicstringty; publicstringgroupid; SqlDataAdaptermyda=newSqlDataAdapter(); DataSetmyds=newDataSet(); SqlConnectionconn=newSqlConnection(); publicForm2() { InitializeComponent(); } privatevoid图书借阅ToolStripMenuItem_Click(objectsender,EventArgse) { Form4frm4=newForm4(); frm4.names=name; frm4.nameid=id; frm4.Show(); } privatevoidForm2_Load(objectsender,EventArgse) { switch(groupid) { case"1": ty="学生? ; 系统设置ToolStripMenuItem.Enabled=false; 读者管理ToolStripMenuItem.Enabled=false; break; case"2": ty="教师"; 系统设置ToolStripMenuItem.Enabled=false; break; case"3": ty="管理员"; break; } toolStripStatusLabel1.Text="登录用户名: "+name+"用户权限: "+ty+"登录时间: "+time; conn.ConnectionString=sqlConnection1.ConnectionString; conn.Open(); stringmysql2="selectusername,count(userbook.number)numfromuserbook,user1whereuserbook.userid=user1.idgroupbyusernameorderbycount(userbook.number)desc"; myda=newSqlDataAdapter(mysql2,conn); myda.Fill(myds,"user1"); dataGridView2.DataSource=myds.Tables["user1"]; stringmysql="selectbookname,count(userbook.number)numfromuserbook,bookwhereuserbook.bookid=book.idgroupbybooknameorderbycount(userbook.number)desc"; myda=newSqlDataAdapter(mysql,conn); myda.Fill(myds,"book"); dataGridView1.DataSource=myds.Tables["book"];} privatevoid读者类型管理ToolStripMenuItem_Click(objectsender,EventArgse) { Form3frm=newForm3(); frm.Show(); } privatevoidstatusStrip1_ItemClicked(objectsender,ToolStripItemClickedEventArgse) { } privatevoidmenuStrip1_ItemClicked(objectsender,ToolStripItemClickedEventArgse) { } privatevoid图书归还ToolStripMenuItem_Click(objectsender,EventArgse) { Form5frm5=newForm5(); frm5.names=name; frm5.nameid=id; frm5.Show(); } 5、系统测试 5.1开发与测试环境 数据库: MicrosoftSQLServer 开发工具: MicrosoftVisualStudio2010 开发环境: Microsoft.NETFrameworkSDKv2.0 开发语言: C#语言 5.2程序调试情况 在数据库连接时一定要注意窗体和相应显示控件的绑定关系。 在把系统从一台计算机移植到另一台计算机时一定要把数据文件Libra
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 设计 图书 管理 系统