1、数据库设计图书管理系统 目录1、绪论 31.1数据库应用系统简介 31.2 Visual Studio 2010开发平台 32、系统需求分析 33、数据库设计 43.1 系统功能设计 43.2 数据库中的表格应用 53.3 图书管理系统组成 63.4模块功能实现 63.4.1管理员模块实现 63.4.2学生功能模块实现 63.4.3教师功能模块实现 73.5数据库概念结构设计 73.5.1该系统的流程图为 73.5.2该系统的E-R图 73.5.3数据库逻辑结构设计 83.5.4数据表详细说明 94、通用类的生成 114.1连接数据库 114.2操作数据库中的数据 114.3用户登录代码 11
2、4.4 借阅书籍代码 134.5 归还书籍代码 154.6 人员信息查询代码 164.7 主菜单设计代码 175、系统测试 205.1 开发与测试环境 205.2 程序调试情况 205.3 功能显示 205.3.1运行主窗口 205.3.2主界面 215.3.3人员信息查询界面 225.3.4借书界面 225.3.5还书界面 23六组类成员个人总结报告 24七【参考文献】 261、绪论1.1数据库应用系统简介 SQL Service 2005数据库是微软公司精心打造的企业级数据库开发平台,该产品不仅包含了丰富的企业及数据管理功能,还集成了商业智能等特性。数据库由DBMS(数据库管理系统)处理,
3、DBMS则由开发人员和用户通过应用程序直接或间接地使用。它主要包括四个要素:用户数据、元数据、索引和应用元数据。1.2 Visual Studio 2010开发平台 Visual Studio 是一套完整的开发工具集,用于生成ASP.NET Web应用程序、XML Web Services,桌面应用程序和移动应用程序。VB、VC+、VC#和VJ#全都使用相同的集成开发环境(IDE),利用此IDE可以共享工具且有助于创建混合语言解决方案。另外,这些语言利用了.NET Framework的功能,通过此框架可使用简化ASP Web 应用程序和XML.Web Service开发的关键技术。2、系统需求
4、分析图书管理系统: 当今时代是飞速发展的信息时代。在各行各业中离不开信息处理,这正是计算机被广泛应用于信息管理系统的环境。计算机的最大好处在于利用它能够进行信息管理。使用计算机进行信息控制,不仅提高了工作效率,而且大大提高了其安全性。 图书馆作为一种信息资源的集散地,图书和用户借阅资料繁多,包括很多的信息数据的管理,所以我认为有必要建立一个图书管理系统,使图书管理工作规范化,系统化,程序化,避免图书管理的随意性,提高信息处理的速度和准确性,能够及时、准确、有效地查询和修改图书情况。3、数据库设计3.1 系统功能设计 用户登录:验证管理员的身份是否合法。 主菜单窗口:用户的操作主窗口。 系统设置
5、:管理员实现对系统的设置功能。 读者管理:管理员和教师实现对读者的管理功能。 图书管理:所有用户包括管理员、教师、学生实现对书籍的管理。 图书借还:管理员对书籍借阅情况进行查看,学生和教师可以借阅书籍、归还书籍。 系统查询:所有用户实现对图书管理系统的查询功能。 图书借阅排行榜:用户查看书籍借阅的信息。 读者借阅排行榜:读者查看自己借阅的书籍信息。3.2 数据库中的表格应用分别为book表、bookcategory表、group表、category表、user表、userbook表。它们的E-R图如下所示。 3.3 图书管理系统组成LoginForm.cs窗体:登录界面MenuForm.cs窗
6、体:主菜单界面InfoForm.cs窗体:人员信息查询界面LendForm.cs窗体:借阅书籍ReturnForm.cs窗体:归还书籍Program.cs文件:图书管理系统应用程序主入口文件App.config文件:配置数据库连接字符串等信息3.4模块功能实现3.4.1管理员模块实现管理员功能模块共包括登录、系统设置、读者管理、图书管理、查看图书借书还书情况、系统查询等功能。3.4.2学生功能模块实现学生功能模块包括登录、图书管理、查看图书借书还书情况、系统查询等功能。3.4.3教师功能模块实现管理员功能模块共包括登录、读者管理、图书管理、查看图书借书还书情况、系统查询等功能。3.5数据库概念
7、结构设计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、通用类的生成 本系统的主要操作都需要与数据库发生交互,为了提高代码的重用性和规范
8、性,把与数据库交互的功能单独放在一个类中,在该类中实现数据库的增加、删除、修改、查询等通用功能。4.1连接数据库(1) 定义数据库连接字符串,代码如下: using System.Data.SqlClient;(2) 创建Connection对象,代码如下: SqlConnection con=new SqlConnection();(3) 打开连接,代码如下: con.Open();(4) 关闭连接,代码如下:con.Close();4.2操作数据库中的数据 SqlConnection conn = new SqlConnection();conn.ConnectionString = sq
9、lConnection1.ConnectionString;conn.Open();SqlCommand cmd = new SqlCommand(select count(*) from user1 where username= + textBox1.Text + and password= + textBox2.Text + , conn);4.3用户登录代码 public partial class Form1: Form public Form1() InitializeComponent(); private void button1_Click(object sender, Ev
10、entArgs e) if (textBox1.Text = )/判断用户名是否为空 MessageBox.Show(用户名不能为空, 警告, MessageBoxButtons.OK, MessageBoxIcon.Warning); else if (textBox2.Text = )/判断密码是否为空 MessageBox.Show(请输入密码, 警告, MessageBoxButtons.OK, MessageBoxIcon.Warning); else/用户名及密码不为空的情况下执行如下代码 SqlConnection conn = new SqlConnection(); conn
11、.ConnectionString = sqlConnection1.ConnectionString; conn.Open(); SqlCommand cmd = new SqlCommand(select count(*) from user1 where username= + textBox1.Text + and password= + textBox2.Text + , conn); int i = Convert.ToInt32(cmd.ExecuteScalar(); if (i 0) cmd = new SqlCommand(select * from user1 where
12、 username= + textBox1.Text + , conn); SqlDataReader sdr = cmd.ExecuteReader(); sdr.Read(); string groupid = sdrgroupid.ToString().Trim(); string id = sdrid.ToString().Trim(); sdr.Close(); cmd = new SqlCommand(select count(*) from group1 where id= + groupid + and groupname=+comboBox1 .Text +, conn);
13、int j = Convert.ToInt32(cmd.ExecuteScalar (); if (j 0) conn.Close(); Form2 main = new Form2(); 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 借阅
14、书籍代码 public partial class Form4 : Form public string names; public string nameid; public Form4() InitializeComponent(); private void Form4_Load(object sender, EventArgs e) this.bookTableAdapter.Fill(this.libraryDataSet1.book); textBox1.Text = names; textBox2.Text = nameid; private void button1_Click
15、(object sender, EventArgs e) string mysql; int i; i = dataGridView1.RowCount ; mysql = insert into userbook(id,bookid,userid,createdate,number) values( + i + , + textBox5.Text + , + textBox2.Text + ,+dateTimePicker1 .Value +, + textBox3.Text + ) ; SqlConnection conn = new SqlConnection(); conn.Conne
16、ctionString = sqlConnection1.ConnectionString; conn.Open(); SqlCommand cmd =new SqlCommand (); cmd.CommandText = mysql; cmd.Connection = conn; cmd.ExecuteNonQuery(); private void button2_Click(object sender, EventArgs e) this.Close(); private void dataGridView1_CellClick(object sender, DataGridViewC
17、ellEventArgs e) try if (e.RowIndex dataGridView1.RowCount - 1) textBox5.Text =dataGridView1.Rowse.RowIndex.Cells0.Value .ToString (); catch (Exception ex) MessageBox.Show(需要选中一个学生记录,信息提示); 4.5 归还书籍代码 public partial class Form5 : Form public string names; public string nameid; SqlDataAdapter myda = n
18、ew SqlDataAdapter(); DataSet myds = new DataSet(); SqlConnection conn = new SqlConnection(); public Form5() InitializeComponent(); private void Form5_Load(object sender, EventArgs e) textBox1.Text = names; textBox2.Text = nameid; conn.ConnectionString = sqlConnection1.ConnectionString; conn.Open();
19、string mysql = select * from userbook,book where userbook.bookid=book.id and userid=+nameid +; myda = new SqlDataAdapter(mysql,conn ); myda.Fill(myds, userbook); dataGridView1 .DataSource = myds .Tables userbook; private void button1_Click(object sender, EventArgs e) dataGridView1.Rows.Remove(dataGr
20、idView1.CurrentRow); string mysql = select * from userbook; myda = new SqlDataAdapter(mysql, conn); SqlCommandBuilder mycmdbuilder = new SqlCommandBuilder(myda); myda.Update(myds, userbook); this.dataGridView1.DataSource = myds.Tables0; 4.6 人员信息查询代码 public partial class Form3 : Form SqlDataAdapter m
21、yda = new SqlDataAdapter(); DataSet myds = new DataSet(); public Form3() InitializeComponent(); private void Form3_Load(object sender, EventArgs e) string mysql; SqlConnection conn = new SqlConnection(); conn.ConnectionString = sqlConnection1.ConnectionString; conn.Open(); mysql = select * from user
22、1; myda = new SqlDataAdapter(mysql, conn); myda.Fill(myds, user1); dataGridView1.DataSource = myds.Tablesuser1; private void button1_Click(object sender, EventArgs e) SqlCommandBuilder mycmdbuilder = new SqlCommandBuilder(myda); if (myds.HasChanges() try myda.Update(myds, user1);/更新数据源 catch (Except
23、ion) MessageBox.Show(数据修改不正确, 信息提示); private void button2_Click(object sender, EventArgs e) dataGridView1.Rows.Remove(dataGridView1.CurrentRow); SqlCommandBuilder mycmdbuilder = new SqlCommandBuilder(myda); myda.Update(myds, user1); this.dataGridView1.DataSource = myds.Tables0; 4.7 主菜单设计代码 public pa
24、rtial class Form2 : Form public string id; public string name; public string time; public string ty; public string groupid; SqlDataAdapter myda = new SqlDataAdapter(); DataSet myds = new DataSet(); SqlConnection conn = new SqlConnection(); public Form2() InitializeComponent(); private void 图书借阅ToolS
25、tripMenuItem_Click(object sender, EventArgs e) Form4 frm4 = new Form4(); frm4.names = name; frm4.nameid = id; frm4.Show(); private void Form2_Load(object sender, EventArgs e) switch (groupid ) case 1: ty = 学生?; 系统设置ToolStripMenuItem.Enabled = false; 读者管理ToolStripMenuItem.Enabled = false; break; case
26、 2: ty = 教师; 系统设置ToolStripMenuItem.Enabled = false; break; case 3: ty = 管理员; break; toolStripStatusLabel1.Text = 登录用户名:+name+ 用户权限: + ty + 登录时间: + time ; conn.ConnectionString = sqlConnection1.ConnectionString; conn.Open(); string mysql2 = select username,count(userbook.number) num from userbook ,us
27、er1 where userbook.userid=user1.id group by username order by count(userbook.number) desc; myda = new SqlDataAdapter(mysql2, conn); myda.Fill(myds, user1); dataGridView2.DataSource = myds.Tablesuser1; string mysql = select bookname,count(userbook.number) num from userbook ,book where userbook.bookid
28、=book.id group by bookname order by count(userbook.number) desc; myda = new SqlDataAdapter(mysql, conn); myda.Fill(myds, book); dataGridView1.DataSource = myds.Tablesbook; private void 读者类型管理ToolStripMenuItem_Click(object sender, EventArgs e) Form3 frm = new Form3(); frm.Show(); private void statusS
29、trip1_ItemClicked(object sender, ToolStripItemClickedEventArgs e) private void menuStrip1_ItemClicked(object sender, ToolStripItemClickedEventArgs e) private void 图书归还ToolStripMenuItem_Click(object sender, EventArgs e) Form5 frm5 = new Form5(); frm5.names = name; frm5.nameid = id; frm5.Show(); 5、系统测试 5.1 开发与测试环境 数据库:Microsoft SQL Server 开发工具:Microsoft Visual Studio 2010 开发环境:Microsoft.NET Framework SDK v2.0 开发语言:C#语言5.2 程序调试情况在数据库连接时一定要注意窗体和相应显示控件的绑定关系。在把系统从一台计算机移植到另一台计算机时一定要把数据文件Libra
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1