资源描述
信息与工程学院计算机科学系
《数据库原理》
集中实训报告
系统名称:
专 业:
班 级:
学 号:
姓 名:
指导教师:
2014
年
6
月
17
日
目录
1、前言1
1。1 课题简介1
1、开发系统的名称:1
2、实训目的:1
3、实训意义:1
4、实训内容:1
5、实训预期实现效果:1
1。2 方案及其论证1
2、需求分析1
2.1可行性分析1
2。2系统功能分析2
1、系统功能结构图2
2、系统功能分析2
3、概念模型设计3
E—R图3
4、逻辑模型设计3
关系模型3
5、详细设计4
5。1建立数据库代码4
5.2建立前台界面以及其代码5
6、总结12
7、参考文献12
1、前言
1.1 课题简介
1、开发系统的名称:
图书管理系统
2、实训目的:
通过本次实训,应熟悉并掌握数据库系统开发的基本方法,对理论教学中所讲的知识和基本概念有更进一步的理解,培养和提高实践操作能力,为今后从事计算机数据库系统的研究、开发、应用提供必要的准备。
3、实训意义:
利用这次的实训,提高学生对理论知识的理解能力和实践技能.熟练掌握SQL语句的使用,掌握分析和设计数据库的方法,会结合高级程序设计语言完成数据库系统的实现过程,培养学生的自学能力和创新能力。
4、实训内容:
①需求分析:可行性分析、系统功能设计
②概念模型设计
③逻辑结构设计:关系模式、规范处理、视图设计
④详细设计:建立前台界面
⑤调试并运行
5、实训预期实现效果:
通过此次实训,学生能够熟练的建立数据库,并在VS开发环境下编写管理系统。编写成功的图书管理系统,能进行图书的查询、借阅、归还等简单的基本操作。
1。2 方案及其论证
语言: SQL+VB
运行环境:Microsoft Visual Stdio 2010
2、需求分析
2。1可行性分析
目前,我们已经大概学习了SQL server,对网络技术也有一定的了解,而且图书管理系统已经得到了大量的运用,有许多可供参考的成功系统。而且,网上有许多关于Visual Studio C#编程的资料和SQL Server方面的资料。 从技术角度考虑,此系统开发可行。
2.2系统功能分析
1、系统功能结构图
全部图书查询
图书借阅查询
图书管理查询
学生信息查询
图书归还
图书借阅
图书管理
图书管理系统
图书查询
图书管理
图书管理系统
图书查询
图书借阅
2、系统功能分析
图书管理系统的流程是用户先选择自己的身份,是管理员或者是学生.如果是学生,则进入学生登录界面,登陆成功后,学生所能做的操作就是查询图书的信息。如果是管理员,则进入管理员登陆界面,登录成功后,能进行查询,图书借阅、归还等操作,通过此操作删改学生借还图书的信息。
3、概念模型设计
E—R图
学生
姓名
学号
联系电话
班级
性别
出版社
定价
分类号
作者
书名
管理
图书
书号
数量
编号
密码
联系电话
管理员
姓名
备注
管理日期
借阅
借阅时间
m m
借阅量
n
nn
4、逻辑模型设计
关系模型
学生(学号,姓名,性别,班级,联系电话)
图书(书号,书名,作者,定价,数量,分类号,出版社名称)
管理员(编号,密码,姓名,联系电话)
借阅(学号,书号,借阅时间,借阅量)
管理(编号,书号,备注,管理日期)
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
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,
)
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所示
图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、当点击学生按钮后,进入了学生登陆系统
图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;"
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 AsNewSqlCommand(sql, con)
Dim reader AsSqlDataReader
reader = cmd.ExecuteReader
If reader。Read() = TrueThen
Me.Hide()
Form4。Show()
Else
MsgBox(”登陆失败,请检查你的用户名,密码,登陆权限是否正确”)
EndIf
EndSub
3、当学生登陆成功后,进入查询界面,输入图书编号,点击“搜索”按钮可查询改图书信息。如果点击“查询全部”按钮,即可查询所有的图书信息.
图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
图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 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。
图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 AsSqlCommand = NewSqlCommand(addclass, con)
Dim result AsInteger = cmd.ExecuteNonQuery()
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
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 AsSqlCommand = NewSqlCommand(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)
Me.frmSearchStudent_Load(sender, e)
EndIf
EndIf
6、总结
通过此次实训,我受益匪浅。这是第一次将数据库所学的理论知识用于实践,独立的设计一个系统程序。对于我来说,在做这个系统的过程中,有好多不懂的地方如:界面的设计、编码问题、用户需求问题等.这个系统的功能还不够完善,很多地方因为所学的知识有限而没有做出来,这些都是不够好的地方,也是我一直需要努力的地方。
此次实训不仅让我了解到自身学习的不足之处,也让我扩展了知识面,是对书本所学的知识点的延伸.在设计这个系统的过程中,我熟悉并掌握了Microsoft SQL Severe2010和VB数据库的使用。这是对自身知识丰富的一个过程,同时也感受到其中的快乐,激发了的兴趣,对于以后的学习有了更加坚定地信念。
7、参考文献
[1] 周屹,李艳娟.数据库原理及开发应用(第二版)。 北京:清华大学出版社。2007。
[2]肖慎勇。SQL server数据库管理与开发。 北京:清华大学出版社。2007
12
展开阅读全文