数据库图书馆管理系统课程设计报告.docx
- 文档编号:23770734
- 上传时间:2023-05-20
- 格式:DOCX
- 页数:33
- 大小:398.23KB
数据库图书馆管理系统课程设计报告.docx
《数据库图书馆管理系统课程设计报告.docx》由会员分享,可在线阅读,更多相关《数据库图书馆管理系统课程设计报告.docx(33页珍藏版)》请在冰豆网上搜索。
数据库图书馆管理系统课程设计报告
课程设计报告
(2011--2012年度第2学期)
名称:
数据库原理课程设计
题目:
图书管理信息系统
院系:
计算机系
班级:
学号:
学生姓名:
指导教师:
阎蕾
设计周数:
1周
成绩:
日期:
2012年7月4日
《数据库原理课程设计》课程设计
任务书
一、目的与要求
1.本实验是为网络工程、信息安全等专业的学生在学习数据库原理后,为培养更好的解决问题和实际动手能力而设置的实践环节。
通过这个环节,使学生具备应用数据库原理对数据库系统进行设计的能力。
为后继课程和毕业设计打下良好基础。
2.通过该实验,培养学生在建立数据库系统过程中使用关系数据理论的能力。
3.通过对一个数据库系统的设计,培养学生对数据库需求分析、数据库方案设计、系统编码、界面设计和软件调试等各方面的能力。
是一门考查学生数据库原理、面向对象设计方法、软件工程和信息系统分析与设计等课程的综合实验。
二、主要内容
针对一个具有实际应用场景的中小型系统(见题目附录)进行数据库设计,重点分析系统涉及的实体、实体之间的联系,实现增加、删除、更新、查询数据记录等基本操作。
大致分为如下步骤:
1.理解系统的数据库需求,分析实体及实体间联系,画出E-R图:
1.分析确定实体的属性和码,完成对该实体的实体完整性、用户自定义完整性的定义。
2.设计实体之间的联系,包括联系类型和联系的属性。
最后画出完整的E-R图。
2.根据设计好的E-R图及关系数据库理论知识设计数据库模式:
1)把E-R图转换为逻辑模式;
2)规范化设计。
使用关系范式理论证明所设计的关系至少属于3NF并写出证明过程;如果不属于3NF则进行模式分解,直到该关系满足3NF为止,要求写出分解过程。
3)设计关系模式间的参照完整性,要求实现级联删除和级联更新。
4)用SQL语言完成数据库内模式的设计。
3.数据库权限的设计:
1)根据系统分析,完成授权操作;
2)了解学习收回权限的操作。
4.完成用户界面的设计,对重要数据进行加密。
5.连接数据库,用宿主语言实现系统所需的各种操作:
1)实现数据记录的录入、删除、查询和修改。
2)以视图的形式完成复杂查询,比如多表、多条件等。
三、进度计划
序号
设计(实验)内容
完成时间
备注
1
根据任务书完成信息模型(概念模型、逻辑模型、完整性、规范化)的设计,并基于选用的DBMS实现该信息模型,然后录入初始数据
2
根据任务书完成各种数据定义和数据操作,并保留所有SQL语句。
3
数据库权限设计,用户界面设计
4
用可视化开发工具环境开发学生选定的信息系统(C/S或者B/S模式)
5
系统的完善与验收
四、设计(实验)成果要求
1.在DBMS(如oracle,SQLServer2005/2008,DB2等)上完成完整的数据库的设计;
2.使用可视化开发平台完成信息系统,要求可以正确运行;
3.完成实验报告。
五、考核方式
1.在微机上检查数据库模式的设计、三大完整性的设计、关系属于几范式等;
2.在微机上检查系统的运行结果,要求学生阐述使用的相关技术;
3.实验报告的检查。
六、题目附录
1.学生信息管理信息系统
2.学生成绩管理信息系统
3.图书管理信息系统
4.物资管理信息系统
5.汽车销售管理信息系统
6.超市管理信息系统
7.通讯录管理信息系统
8.工资管理信息系统
9.酒店管理信息系统
10.小区物业管理信息系统
学生姓名:
指导教师:
年月日
一、课程设计的目的与要求
1.本实验是为网络工程、信息安全等专业的学生在学习数据库原理后,为培养更好的解决问题和实际动手能力而设置的实践环节。
通过这个环节,使学生具备应用数据库原理对数据库系统进行设计的能力。
为后继课程和毕业设计打下良好基础。
2.通过该实验,培养学生在建立数据库系统过程中使用关系数据理论的能力。
3.通过对一个数据库系统的设计,培养学生对数据库需求分析、数据库方案设计、系统编码、界面设计和软件调试等各方面的能力。
是一门考查学生数据库原理、面向对象设计方法、软件工程和信息系统分析与设计等课程的综合实验。
二、设计正文
1.需求分析
1.1图书管理信息系统就是实现图书的管理
1.2可分为三种用户:
管理员,其权限最大,有增删图书信息,更改图书种类,增加图书,修改普通用户信息;普通用户,对图书进行查阅,借书和还书。
2.系统功能设计,可以用模块结构图、功能结构图来描述。
功能结构图:
3.数据库概念设计(含ER图)
1NM1
111
1N1
4.数据库逻辑设计
4.1图书管理员表:
admin:
普通用户表:
Reader:
借阅图书信息用户表:
IssueBook:
图书表:
Book:
图书所属大类表:
SmallClassOfBook:
图书所属小类表:
BigClassOfBook:
4.2数据库关系图:
5.系统编码与实现。
主要功能截图和部分核心代码:
5.1登录界面:
部分代码:
usingSystem;
usingSystem.Collections.Generic;
usingSystem.ComponentModel;
usingSystem.Data;
usingSystem.Drawing;
usingSystem.Text;
usingSystem.Windows.Forms;
namespaceBookManagementSystem
{
publicpartialclassfrmLogin:
Form
{
privateBooleanIsPass;
privateintcount=0;
publicfrmLogin()
{
InitializeComponent();
}
privatevoidfrmLogin_FormClosing(objectsender,FormClosingEventArgse)
{
Program.DataOperator.CloseConnection();
Environment.Exit
(1);
}
privatevoidBtnLogin_Click(objectsender,EventArgse)
{
if(account.Text.Equals(""))
{
MessageBox.Show("帐号不能为空");
return;
}
if(checkBox.Checked)
{
Program.IsAdministrator=true;
IsPass=Program.DataOperator.CheckAdmin(account.Text,password.Text);
if(IsPass)
{
Program.CurrentAccount=account.Text;
this.Dispose();
}
}
else
{
Program.IsAdministrator=false;
IsPass=Program.DataOperator.CheckUser(account.Text,password.Text);
if(IsPass)
{
Program.CurrentAccount=account.Text;
this.Dispose();
}
}
MessageBox.Show("帐号或密码错误");
count++;
if(count==5)
{
MessageBox.Show("错误登录次数太多!
","错误",MessageBoxButtons.OK,MessageBoxIcon.Error);
Program.DataOperator.CloseConnection();
Environment.Exit
(1);
}
return;
}
privatevoidname_KeyPress(objectsender,KeyPressEventArgse)
{
BtnLogin.Enabled=true;
}
privatevoidBtnExit_Click(objectsender,EventArgse)
{
Program.DataOperator.CloseConnection();
Environment.Exit
(1);
}
privatevoidfrmLogin_Load(objectsender,EventArgse)
{
account.Focus();
}
}
}
5.2图书查询:
部分代码如下:
privatevoidBookManagementSystem_Load(objectsender,EventArgse)
{
this.Activate();
listView1.Select();
ClassOfBook=Program.DataOperator.GetBigClassOfBook();
IssueBook.Add("借书");
IssueBook.Add("还书");
IssueBook.Add("所有借还记录");
BookManage.Add("书籍管理");
BookManage.Add("人员管理");
BookManage.Add("书籍类别管理");
SetBtn1();
}
privatevoidSetBtn1()
{
currbtn="btn1";
listView1.Select();
listView1.Dock=DockStyle.None;
button1.Dock=DockStyle.Top;
button2.Dock=DockStyle.Bottom;
button3.SendToBack();
button3.Dock=DockStyle.Bottom;
listView1.BringToFront();
listView1.Dock=DockStyle.Bottom;
listView1.Dock=DockStyle.Fill;
listView1.Clear();
listView1.Items.Add("","所有书籍",0);
AddItemTolistView(0,ClassOfBook);
}
5.3借书界面:
借书部分代码:
publicfrmIssueBook(stringno,stringname,stringCountOfBook,stringtxt)
{
this.b=true;
InitializeComponent();
this.BookNo.Text=no;
this.BookName.Text=name;
this.CountOfBook.Text=CountOfBook;
this.synopsis.Text=txt;
}
privatevoidfrmIssueBook_Load(objectsender,EventArgse)
{
NoOfPersonal.Text=Program.CurrentAccount;
BookNo.ReadOnly=b;
BookName.ReadOnly=b;
button3.Enabled=!
b;
//MessageBox.Show(IssueOfDate.Text);
this.AcceptButton=button1;
}
privatevoidbutton1_Click(objectsender,EventArgse)
{
string[]sdata=newstring[4];
sdata[0]=BookNo.Text;
sdata[1]=NoOfPersonal.Text;
sdata[2]=NameOfPersonal.Text;
sdata[3]=IssueOfDate.Text;
if(sdata[0]==""||sdata[1]==""||sdata[2]==""||sdata[3]=="")
{
MessageBox.Show("资料不完整!
");
return;
}
//MessageBox.Show(sdata[0]+""+sdata[1]+""+sdata[2]+""+sdata[3]);
switch(Program.DataOperator.IssueBook(sdata))
{
case1:
MessageBox.Show("你已借了这本书!
");
break;
case2:
MessageBox.Show("借书成功!
");
this.Close();
break;
case3:
MessageBox.Show("失败!
");
this.Close();
break;
}
}
5.4借书提示信息:
5.5管理员界面:
管理员进行书籍,人员管理
部分代码如下:
privatevoidbookBindingNavigatorSaveItem_Click(objectsender,EventArgse)
{
if(MessageBox.Show("确定要保存吗?
","保存确定",MessageBoxButtons.YesNo,MessageBoxIcon.Question)==DialogResult.No)
return;
this.Validate();
this.bookBindingSource.EndEdit();
this.bookTableAdapter.Update(this.mydata2DataSet.Book);
}
privatevoidfrmBookManager_Load(objectsender,EventArgse)
{
//TODO:
这行代码将数据加载到表“mydata2DataSet.Book”中。
您可以根据需要移动或移除它。
this.bookTableAdapter.Fill(this.mydata2DataSet.Book);
图片PictureBox.SizeMode=PictureBoxSizeMode.StretchImage;
}
privatevoidInImage_Click(objectsender,EventArgse)
{
if(openFileDialog.ShowDialog()==DialogResult.OK)
{
图片PictureBox.Image=Program.DataProcessor.GetImageFromFilePath(openFileDialog.FileName);
}
}
privatevoidGetBookClass_Click(objectsender,EventArgse)
{
大类ComboBox.Items.Clear();
foreach(stringsdatainpBigClassOfBook)
{
大类ComboBox.Items.Add(sdata);
}
}
privatevoid大类ComboBox_SelectedIndexChanged(objectsender,EventArgse)
{
ArrayListSmallClassOfBook=Program.DataOperator.GetSmallClassOfBook(大类ComboBox.Text);
小类ComboBox.Items.Clear();
foreach(stringsdatainSmallClassOfBook)
小类ComboBox.Items.Add(sdata);
}
privatevoidSerchBox_Click(objectsender,EventArgse)
{
try
{
string[]SerchData=newstring[3];
for(inti=0;i SerchData[i]="%"; if(SerchBoxNo.Text! ="") SerchData[0]=SerchBoxNo.Text; if(SerchBoxName.Text! ="") SerchData[1]=SerchBoxName.Text; stringCmdString="SELECT书籍编号,书名,作者,,现有数量,小类,大类,内容简介,入库时间,图片FROMdbo.Book" +"where书籍编号like'"+SerchData[0]+"'"+"and书名like'%"+SerchData[1]+"%'"; //MessageBox.Show(CmdString); Program.SerchCmd[1].CommandText=CmdString; try { this.bookTableAdapter.FillBy(this.mydata2DataSet.Book); } catch(System.Exceptionex) { System.Windows.Forms.MessageBox.Show(ex.Message); } } catch(Exceptionex) { //MessageBox.Show(ex.Message); } } 5.6管理员观察看借还信息: 部分代码如下: privatevoidissueBookBindingNavigatorSaveItem_Click(objectsender,EventArgse) { if(MessageBox.Show("确定要保存吗? ","保存确定",MessageBoxButtons.YesNo,MessageBoxIcon.Question)==DialogResult.No) return; this.Validate(); this.issueBookBindingSource.EndEdit(); this.issueBookTableAdapter.Update(this.mydata2DataSet.IssueBook); } privatevoidfrmIssueReturnManager_Load(objectsender,EventArgse) { //TODO: 这行代码将数据加载到表“mydata2DataSet.IssueBook”中。 您可以根据需要移动或移除它。 this.issueBookTableAdapter.Fill(this.mydata2DataSet.IssueBook); } 5.7本实验中将所有的数据库查询,更新,删除等操作设置成方法,组合在一个类中。 代码如下: usingSystem; usingSystem.Collections.Generic; usingSystem.Text; usingSystem.Data; usingSystem.Data.SqlClient; usingSystem.Windows.Forms; usingSystem.Collections; usingSystem.IO; usingSystem.Drawing; namespaceBookManagementSystem { publicclassDataOperation { SqlConnectionsqlconn; SqlCommandcmd; SqlParameterpara; publicDataOperation() { try { sqlconn=newSqlConnection("DataSource=LENOVO-PC;InitialCatalog=MYDATA2;PersistSecurityInfo=True;UserID=sa;Password=123456123"); sqlconn.Open(); cmd=sqlconn.CreateCommand(); } catch(Exceptionex) { MessageBox.Show(ex.Message); } } publicvoidCloseConnection() { sqlconn.Close(); } publicBooleanCheckAdmin(stringaccount,stringpassword) { cmd.CommandText="select*fromadminwhereaccount='"+account+"'andpassword='"+password+"'"; SqlDataReaderthisReader=cmd.ExecuteReader(); if(thisReader.Read()) { thisReader.Close(); returntrue; } else { thisReader.Close(); returnfalse; } } publicDataSetGetAllBookData() { SqlDataAdapterthisAdapter=newSqlDataAdapter("Select*fromBook",sqlconn); DataSetthisDataSet=newDataSet(); thisAdapter.Fill(thisDataSet,"Book"); returnthisDataSet; //thisAdapter.Fill(thisDataSet,"Boo } publicArrayListGetBigClassOfBook() { cmd.CommandText="select*fromBigClassOfBook"; SqlDataReaderth
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 图书馆 管理 系统 课程设计 报告