《数据库原理》 集中实训报告
系统名称: 专 业: 班 级: 学 号: 姓 名: 指导教师:
2014
年 6 月 17 1 / 21
日
word
2 / 21
word 目录 1、前言1 1.1 课题简介1
1、开发系统的名称:1 2、实训目的:1 3、实训意义:1 4、实训内容:1
5、实训预期实现效果:1 1.2 方案及其论证1 2、需求分析2 2.1可行性分析2 2.2系统功能分析2 1、系统功能结构图2 2、系统功能分析3 3、概念模型设计3 E-R图3 4、逻辑模型设计4
word 关系模型4 5、详细设计5
5.1建立数据库代码5
5.2建立前台界面以及其代码7 6、总结17 7、参考文献17
4 / 21
word 1、前言
1.1 课题简介
1、开发系统的名称:
图书管理系统 2、实训目的:
通过本次实训,应熟悉并掌握数据库系统开发的基本方法,对理论教学中所讲的知识和基本概念有更进一步的理解,培养和提高实践操作能力,为今后从事计算机数据库系统的研究、开发、应用提供必要的准备。 3、实训意义:
利用这次的实训,提高学生对理论知识的理解能力和实践技能。熟练掌握SQL语句的使用,掌握分析和设计数据库的方法,会结合高级程序设计语言完成数据库系统的实现过程,培养学生的自学能力和创新能力。 4、实训内容:
①需求分析:可行性分析、系统功能设计 ②概念模型设计
③逻辑结构设计:关系模式、规X处理、视图设计 ④详细设计:建立前台界面 ⑤调试并运行
5、实训预期实现效果:
通过此次实训,学生能够熟练的建立数据库,并在VS开发环境下编写管理系统。编写成功的图书管理系统,能进行图书的查询、借阅、归还等简单的基本操作。
1.2 方案及其论证
语言: SQL+VB
word 运行环境:Microsoft Visual Stdio 2010
2、需求分析
2.1可行性分析
目前,我们已经大概学习了SQL server,对网络技术也有一定的了解,而且图书管理系统已经得到了大量的运用,有许多可供参考的成功系统。而且,网上有许多关于Visual Studio C#编程的资料和SQL 统开发可行。
2.2系统功能分析
1、系统功能结构图
Server方面的资料。2 / 21
从技术角度考虑,此系 word
2、系统功能分析
图书管理系统的流程是用户先选择自己的身份,是管理员或者是学生。如果是学生,则进入学生登录界面,登陆成功后,学生所能做的操作就是查询图书的信息。如果是管理员,则进入管理员登陆界面,登录成功后,能进行查询,图书借阅、归还等操作,通过此操作删改学生借还图书的信息。
3、概念模型设计
E-R图
3 / 21
word
m m
n nn
4、逻辑模型设计
关系模型
学生(学号,某某,性别,班级,联系)
图书(书号,书名,作者,定价,数量,分类号,名称)管理员(编号,密码,某某,联系)
4 / 21
word 借阅(学号,书号,借阅时间,借阅量) 管理(编号,书号,备注,管理日期)
5、详细设计
5.1建立数据库代码
create database books_management //建立数据库 on (
name='books_management',
filename='E:\\图书管理数据库\\books_management.mdf', size=10, maxsize=10, filegrowth=10 ) log on
(name='books_management_log',
filename='E:\\图书管理数据库\\books_management_log.ldf', size=10, maxsize=10, filegrowth=10 ) Go
5 / 21
word create table student//建立学生表 (学号 varchar(200) primary key, 某某 varchar(200) not null,
性别 varchar(100) not null default'男', 班级 varchar(200)not null, 联系 varchar(400) not null )
create table books//建立图书表 (
书号 varchar(200) primary key, 书名 varchar(200) not null, 作者 varchar(200) not null, 定价 varchar(200) not null, 数量 varchar(200) not null, 分类号 varchar(200) not null, varchar(200) not null, )
create table administrator //建立管理员表 (编号 varchar(200) primary key, 密码 varchar(200) not null, 某某 varchar(100) not null , 联系 varchar(400) not null,
6 / 21
word )
create table borrow //建立借阅表 (学号 varchar(200) not null, 书号 varchar(200) not null, 借阅时间 varchar(100) not null , 借阅量 varchar(400) not null, primary key(学号,书号) )
create table management //建立管理表 (编号 varchar(200) not null, 书号 varchar(200) not null, 管理日期 varchar(100) not null , 备注 varchar(400) not null, primary key(编号,书号) )
5.2建立前台界面以及其代码
1、当图书管理系统打开时的界面如图5.1所示
7 / 21
word
图5.1
PublicClassForm1
PrivateSub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) HandlesMyBase.Load EndSub
PrivateSub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Form2.Show() EndSub
PrivateSub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click Form3.Show() EndSub EndClass
2、当点击学生按钮后,进入了学生登陆系统
8 / 21
word
图5.2 代码如下:
PublicClassForm2
PrivateSub Form2_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) HandlesMyBase.Load EndSub
PrivateSub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
If TextBox1.Text = \"\"Or TextBox2.Text = \"\"Then MsgBox(\"用户名和密码不能为空?\") Else
checkLoginName() EndIf EndSub
Sub checkLoginName()
Dim strcon AsString = \"data source=XP23;initial catalog=books_management;user id=XP23\\Administrator;pwd=;integrated security=true;\"
9 / 21
word
Dim con AsSqlConnection = NewSqlConnection(strcon) con.Open()
Dim sql AsString = \"select * from [student] where 学号='\"& TextBox1.Text.ToString().Trim() &\"'and 密码='\"& TextBox2.Text.ToString().Trim() &\"'\" Dim cmd AsNewSqlmand(sql, con) Dim reader AsSqlDataReader
reader = cmd.ExecuteReader If reader.Read() = TrueThen Me.Hide() Form4.Show() Else
MsgBox(\"登陆失败,请检查你的用户名,密码,登陆权限是否正确\") EndIf EndSub
3、当学生登陆成功后,进入查询界面,输入图书编号,点击“搜索”按钮可查询改图书信息。如果点击“查询全部”按钮,即可查询所有的图书信息。
10 / 21
word 图5.3
按图书编号查询图书信息的代码如下:
Dim con AsSqlConnection = NewSqlConnection(strcon) con.Open()
Dim stuNum AsString = Me.TextBox1.Text
Dim selectStudent AsString = \"select * from books where 书号='\" + stuNum + \"'\" Dim ds AsDataSet = NewDataSet()
Dim da AsSqlDataAdapter = NewSqlDataAdapter(selectStudent, con) da.Fill(ds, \"books\")
Me.DataGridView1.DataSource = ds.Tables(\"books\") con.Close()
4、如果在图5.1中单击的是“管理员”按钮,则进入管理员登陆界面,如图5.4
图5.4
5、当成功登陆管理员系统后,进入图书管理界面,如图5.5
11 / 21
word
图5.5
6、当点击图5.5的“图书查询”按钮时,进入图书查询界面。当单击“图书借阅信息查询”按钮时,学生的借阅信息将在下面显示,如图5.6。当点击其他三个按钮时也会出现相应的信息。
图5.6
代码如下:
Imports System.Data
Imports System.Data.SqlClient PublicClassForm6
Dim strcon AsString = \"data source=XP23;initial catalog=books_management;user
12 / 21
word
id=XP23\\Administrator;pwd=;integrated security=true;\"
PrivateSub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim con AsSqlConnection = NewSqlConnection(strcon) con.Open()
Dim selectStudent AsString = \"select * from borrow\" Dim ds AsDataSet = NewDataSet()
Dim da AsSqlDataAdapter = NewSqlDataAdapter(selectStudent, con) da.Fill(ds, \"borrow\")
Me.DataGridView1.DataSource = ds.Tables(\"borrow\") con.Close() EndSub
7、当点击图5.5中的“图书管理”按钮时,进入图书管理界面,如图5.7
图5.7
8、当点击图5.5中的“图书借阅”按钮时,进入图书借阅界面,如图5.8。
13 / 21
word
图5.8
代码如下:
Dim name AsString = Me.TextBox3.Text Dim num AsString = Me.TextBox4.Text Dim time AsString = Me.TextBox5.Text Dim num2 AsString = Me.TextBox6.Text
Dim addclass AsString = String.Format(\"insert into borrow values('{0}','{1}','{2}','{3}')\", name, num, time, num2)
Dim strcon AsString = \"data source=XP23;initial catalog=books_management;user id=XP23\\Administrator;pwd=;integrated security=true;\"
Dim con AsSqlConnection = NewSqlConnection(strcon) con.Open()
Dim cmd AsSqlmand = NewSqlmand(addclass, con) Dim result AsInteger = cmd.ExecuteNonQuery()
14 / 21
word
If (result < 1) Then
MessageBox.Show(\"添加失败!\操作提示\, MessageBoxButtons.OK, MessageBoxIcon.Warning) Else
MessageBox.Show(\"添加成功!\操作提示\MessageBoxButtons.OK, MessageBoxIcon.Information) Me.Close() EndIf
9、当点击图5.5中的“图书归还”按钮时,进入图书归还界面,如图5.9。 当点击下图中要删除的行时,根据学号和书号删除该列。
图5.9
代码如下:
PrivateSub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim con AsSqlConnection = NewSqlConnection(strcon) con.Open()
Dim stuNum1 AsString = Me.TextBox1.Text Dim stuNum2 AsString = Me.TextBox2.Text
15 / 21
word Dim selectStudent AsString = \"select * from borrow where 学号='\" + stuNum1 + \"'and 书号='\" + stuNum2 + \"'\"
Dim ds AsDataSet = NewDataSet()
Dim da AsSqlDataAdapter = NewSqlDataAdapter(selectStudent, con) da.Fill(ds, \"borrow\")
Me.DataGridView1.DataSource = ds.Tables(\"borrow\") con.Close() EndSub
PrivateSub DataGridView1_CellContentClick(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles DataGridView1.CellContentClick Dim stuid AsString = Me.DataGridView1.Rows(e.RowIndex).Cells(0).Value.ToString().Trim() Dim stuid1 AsString = Me.DataGridView1.Rows(e.RowIndex).Cells(1).Value.ToString().Trim() IfMessageBox.Show(\"确定要删除该用户吗?\操作警告\MessageBoxButtons.YesNo, MessageBoxIcon.Warning) = Windows.Forms.DialogResult.Yes Then
Dim deleteStudent AsString = String.Format(\"DELETE FROM borrow WHERE 学号='\" + stuid + \"'and 书号='\" + stuid1 + \"'\")
Dim con AsSqlConnection = NewSqlConnection(strcon) con.Open()
Dim cmd AsSqlmand = NewSqlmand(deleteStudent, con)
Dim result AsInteger = Convert.ToInt32(cmd.ExecuteNonQuery()) con.Close() If (result < 1) Then
MessageBox.Show(\"删除失败!\操作结果\"MessageBoxButtons.OK, MessageBoxIcon.Exclamation) Else
MessageBox.Show(\"删除成功!\操作结果\"MessageBoxButtons.OK, MessageBoxIcon.Information)
16 / 21
word Me.frmSearchStudent_Load(sender, e) EndIf EndIf
6、总结
通过此次实训,我受益匪浅。这是第一次将数据库所学的理论知识用于实践,独立的设计一个系统程序。对于我来说,在做这个系统的过程中,有好多不懂的地方如:界面的设计、编码问题、用户需求问题等。这个系统的功能还不够完善,很多地方因为所学的知识有限而没有做出来,这些都是不够好的地方,也是我一直需要努力的地方。 此次实训不仅让我了解到自身学习的不足之处,也让我扩展了知识面,是对书本所学的知识点的延伸。在设计这个系统的过程中,我熟悉并掌握了Microsoft SQL
Severe2010和VB数据库的使用。这是对自身知识丰富的一个过程,同时也感受到其中的快乐,激发了的兴趣,对于以后的学习有了更加坚定地信念。
7、参考文献
[1] 周屹,李艳娟.数据库原理及开发应用(第二版). :清华大学.2007. [2]肖慎勇.SQL server数据库管理与开发. :清华大学.2007
17 / 21
因篇幅问题不能全部显示,请点此查看更多更全内容