数据库课程设计图书管理系统.docx

上传人:b****3 文档编号:4663611 上传时间:2022-12-07 格式:DOCX 页数:24 大小:478.81KB
下载 相关 举报
数据库课程设计图书管理系统.docx_第1页
第1页 / 共24页
数据库课程设计图书管理系统.docx_第2页
第2页 / 共24页
数据库课程设计图书管理系统.docx_第3页
第3页 / 共24页
数据库课程设计图书管理系统.docx_第4页
第4页 / 共24页
数据库课程设计图书管理系统.docx_第5页
第5页 / 共24页
点击查看更多>>
下载资源
资源描述

数据库课程设计图书管理系统.docx

《数据库课程设计图书管理系统.docx》由会员分享,可在线阅读,更多相关《数据库课程设计图书管理系统.docx(24页珍藏版)》请在冰豆网上搜索。

数据库课程设计图书管理系统.docx

数据库课程设计图书管理系统

数据库课程设计-图书管理系统

课程设计

课程名称_数据库系统课程设计__

题目名称图书馆借阅管理系统

学生学院计算机学院

专业班级12级网络工程1班

学号_____**********_______

学生姓名丁晗

指导教师____宋玮_________

 

2014年1月17日

 

评价标准

分数比例(%)

成绩

论文

论文结构包含:

相关技术介绍、需求分析、概念结构设计、逻辑结构设计、数据库物理设计、数据库实施、系统测试方案和测试报告、系统的主要功能和使用说明、系统安装说明。

要求论文完整、内容详细,格式规范。

 

40

程序

系统运行正确;

功能完善:

有增、删、改、查功能,有基本的报表、查询、统计和输入、输出功能;

工作量充分;

系统实现技术的难度。

30

 

数据

库设

E-R图设计正确;

数据库逻辑结构设计规范化;

数据库物理设计合理。

30

总评成绩

及格

不及格

总分

 

一.相关技术介绍····················1

二.需求分析······················1

三.概念结构设计····················2

四.逻辑结构设计····················3

五.数据库物理设计···················4

六.数据库实施·····················7

七.课程设计的心得··················17

八.参考文献·····················17

 

一.相关技术介绍

1.1C++Builder6介绍

C++Builder是由Borland公司推出的一款可视化集成开发工具。

C++Builder具有快速的可视化开发环境:

只要简单地把控件(Component)拖到窗体(Form)上,定义一下它的属性,设置一下它的外观,就可以快速地建立应用程序界面;C++Builder内置了100多个完全封装了Windows公用特性且具有完全可扩展性(包括全面支持ActiveX控件)的可重用控件;C++Builder具有一个专业C++开发环境所能提供的全部功能:

快速、高效、灵活的编译器优化,逐步连接,CPU透视,命令行工具等。

它实现了可视化的编程环境和功能强大的编程语言(C++)的完美结合。

1.2MicrosoftSQLServer2005介绍

MicrosoftSQLServer2005是一个全面的数据库平台,使用集成的商业智能(BI)工具提供了企业级的数据管理。

MicrosoftSQLServer2005数据库引擎为关系型数据和结构化数据提供了更安全可靠的存储功能,使您可以构建和管理用于业务的高可用和高性能的数据应用程序。

MicrosoftSQLServer2005数据引擎是该企业数据管理解决方案的核心。

此外MicrosoftSQLServer2005结合了分析、报表、集成和通知功能。

这使您的企业可以构建和部署经济有效的BI解决方案,帮助您的团队通过记分卡、Dashboard、Webservices和移动设备将数据应用推向业务的各个领域。

二.需求分析

2.1系统功能模块图

 

登录和账号管理

用户注册和注销

借阅管理

 

工作人员注册和注销

读者注册和注销

旧书淘汰

新书入库

还书

借书

账号管理

系统登录

 

2.2系统的数据流程图

图书管理员

 

注册/注销

还书

借书

 

用户信息库存

图书和借阅信息库存

 

读者

 

2.3系统功能设计

(1)密码和权限管理

(2)书目查询

(3)借书和还书

(4)读者的注册和注销

(5)新书的入库和淘汰

(6)账号管理

(7)窗口管理

三.概念结构设计

3.1E-R图

 

图书工作人员

 

n

用户

1

注册和注销借书

 

读者

 

3.2属性描述

●读者:

{读者编号,读者姓名,用户名,密码,性别,工作地点,身份,已借书数量,备注};

●图书:

{书号,书名,作者,出版社,出版日期,索引书号,价格,状态(1为借出&0为在馆)};

●图书馆工作人员:

{工作人员编号,姓名,登录密码};

●借书信息:

{借书单编号,读者编号,读者姓名,书号,书名,作者,借出日期,应还日期,工作人员编号};

四.逻辑结构设计

4.1表

(1)读者信息表

名称

数据类型

是否为空

说明

ReaderID

Char(7)

Notnull

读者编号(主键)

Name

Varchar(8)

Notnull

读者姓名

UserName

Varchar(12)

Notnull

用户名

Password

Varchar(12)

密码

Gender

Char

(2)

性别

Unit

Varchar(50)

工作单位

Ident

Varchar(10)

身份

Number

Char

(2)

Notnull

已借数量

Remark

Varchar(500)

备注

(2)图书信息表

名称

数据类型

是否为空

说明

BookID

Char(5)

Notnull

书号(主键)

BookName

Varchar(50)

Notnull

书名

Editor

Varchar(8)

作者

Publisher

Varchar(50)

出版社

PubDate

DateTime

出版日期

BookIndex

Varchar(20)

索引书号

Price

money

价格

State

Char

(2)

Notnull

状态(1.借出,0.在馆)

(3)工作人员表

名称

数据类型

是否为空

说明

LibrarianID

Char(5)

Notnull

工作人员编号(主键)

Name

Varchar(50)

Notnull

工作人员姓名(登录用户名)

Password

Varchar(12)

Notnull

密码

(4)借书信息表

名称

数据类型

是否为空

说明

TaskID

IntIdentity(1000,1)

Notnull

借书信息编号(主键)

ReaderID

Char(7)

Notnull

读者编号

ReaderName

Varchar(8)

读者姓名

BookID

Char(5)

Notnull

书号

BookName

Varchar(50)

书名

Editor

Varchar(8)

作者

BorrowDate

DateTime

Notnull

借出日期

ReturnDate

DateTime

Notnull

应还日期

LibrarianID

Char(5)

Notnull

工作人员编号

五.数据库物理设计

5.1创建数据库

启动SQLServer2005企业管理器,创建一个名为BookBorrowingManager的数据库

5.2关系图

5.3使用ODBC连接数据库

(1)点击“开始”->“搜索”,输入ODBC,打开ODBC数据源管理器,单击“添加”按钮,选择SQLServer。

(2)单击“完成”按钮,出现下图所示界面。

分别设置数据库的别名和运行SQLServer数据库的计算机名。

(3)单击“下一步”按钮,在此界面设置数据库的登录方式,一种是使用网络ID放式,一种是使用Windows系统登录方式,此课设使用网络ID方式。

(4)单击“下一步”按钮,在新的界面选择相应的数据库。

在此选择创建好的BookBorrowingManager数据库。

(5)单击“下一步”按钮,在出现的界面设置语言种类、日志文件等。

单击“完成”按钮,出现数据库连接测试界面。

单击“测试”按钮,检查所创建的别名是否能成功连接数据库。

成功则创建完毕,失败则返回检查。

六.数据库实施

6.1创建数据库

6.2执行SQL语句创建表

createtableReader

ReaderIDchar(7)notnullprimarykey,

Namevarchar(8)notnull,

UserNamevarchar(8)notnull,

Passwordvarchar(12),

Genderchar

(2),

Unitvarchar(50),

Identvarchar(10),

Numberchar

(2)notnull,

Remarkvarchar(500)

);

createtablebook

BookIDchar(5)notnullprimarykey,

BookNamevarchar(50)notnull,

Editorvarchar(8),

Publishervarchar(50),

PubDatedatetime,

BookIndexvarchar(20),

Pricemoney,

statecharnotnull

);

createtableLibrarian

LibrarianIDchar(5)notnullprimarykey,

Namevarchar(50)notnull,

Passwordvarchar(12)notnull

);

createtableborrowing

TaskIDintidentity(1000,1)notnullprimarykey,

ReaderIDchar(7)notnull,

ReaderNamevarchar(8),

BookIDchar(5)notnull,

BookNamevarchar(50),

Editorvarchar(8),

BorrowDatedatetimenotnull,

ReturnDatedatetimenotnull,

LibrarianIDchar(5)notnull

);

6.3写入数据

直接在表中加入数据

读者信息表

图书信息表

借书信息表

 

工作人员表

6.4数据库备份方案

(1)启动SQLServer企业管理器,登录到指定的数据库服务器,打开数据库文件夹,右击要进行备份的数据库图标,在弹出的快捷菜单中选择“所有任务”、“备份数据库”命令,打开“SQLSever备份”对话框。

(2)在“备份”选项中,选择备份类型(完全或差异);在“目的”选项

组中,单击“添加”,打开“选择备份目的”对话框。

(3)在“重写”选项中,选择“追加到媒体”单选按钮,可将备份追加到设备上任何现有的设备中;选择“重写现有媒体”单选按钮,可重写设备中现有的备份。

(4)如果需要定期进行备份操作,可以选择“调度”复选框,然后选择路径,在打开的“编辑调度”对话框中对设置备份时间。

(5)设置完毕后,则在“SQLSever备份”,对话框中单击“确定”,备

份成功。

6.5数据库还原方案

(1)启动SQLSever企业管理器,登录到指定的数据库服务器,打开数据库文件夹,右击要进行备份的数据库图标在弹出的快捷菜单中选择“所有任务”、“备份数据库”命令,打开“还原数据库”对话框。

(2)在“还原为数据库”下拉列表框中选择要恢复的数据库,在“还原”选项组中选择相应的数据库备份类型。

(3)先中“选项”选项卡,可以进行其他选项的设置。

(4)设置完毕,单击“确定”按钮即可开始还原数据。

6.6输出已连接好的数据库中数据的方法

在c++builder6.0中建立界面,拉入Query组件。

把databasename属性值设为borrowing,以让他连接已连接好的数据库;把SQL属性值设置为select*fromxxx,查询语句查询xxx表(xxx为表名);最后将Active属性值设置为true。

以使此组件运行。

如果需要让所查询的表显示出来,需要拉入DataSourse和DBGrid组件。

例:

Queryname属性:

ReaderTableQuery1

Databasename属性:

borrowing

SQL属性:

select*fromReader

Active属性:

true

DataSourceDataSet属性:

ReaderTableQuery1

DBGridDataSourse属性:

BorrowingTableDataSource3

此时,就可以使DBGrid组件显示出Reader表的内容。

6.7重要代码

(1)登录代码

void__fastcallTMainForm:

:

NLoginClick(TObject*Sender)

{

IdentityStr="";

UserName="";

PassStr="";

Login();

if(IdentityStr=="")

{

ShowMessage("请选择身份");

}

elseif(IdentityStr=="读者")

{

NBrowsingBook->Enabled=true;

NAlterUserPass->Enabled=true;

}

elseif(IdentityStr=="工作人员")

{

NBrowsingBook->Enabled=true;

BorrowingManage->Enabled=true;

NAlterUserPass->Enabled=true;

}

elseif(IdentityStr=="系统管理员")

{

NAlterUserPass->Enabled=true;

NBrowsingBook->Enabled=true;

BorrowingManage->Enabled=true;

SystemManage->Enabled=true;

}

boolTMainForm:

:

Login()

{

intflag=-1;

TLoginForm*LoginForm;

LoginForm=newTLoginForm(this);

flag=LoginForm->ShowModal();

while(flag!

=mrYes)

{

intmsg=MessageDlg("您还没有登录,不能进入系统,放弃登录吗?

",mtConfirmation,TMsgDlgButtons()<

if(msg==6){IdentityStr="";returnfalse;}

flag=LoginForm->ShowModal();

}

StringstrSQL;

IdentityStr=LoginForm->IdentityComboBox->Text;

if(IdentityStr=="读者")

strSQL="select*fromReaderwhereUserName='"+LoginForm->UserEdit->Text+"'";

elseif(IdentityStr=="工作人员")

strSQL="select*fromLibrarianwhereLibrarianID='"+LoginForm->UserEdit->Text+"'";

else

{

if((LoginForm->UserEdit->Text!

="boss")||

(LoginForm->PassEdit->Text!

="boss"))

{

ShowMessage("非法管理员");

IdentityStr="";

returnfalse;

}

else

{

UserName=LoginForm->UserEdit->Text;

PassStr=LoginForm->PassEdit->Text;

IdentityStr=LoginForm->IdentityComboBox->Text;

returntrue;

}

}

LoginQuery->SQL->Text=strSQL;

LoginQuery->ExecSQL();

LoginQuery->Active=true;

if(LoginQuery->RecordCount==0)

{

ShowMessage("该用户不存在,请先注册!

");

IdentityStr="";

returnfalse;

}

if(LoginQuery->Fields->FieldByName("Password")->AsString!

=LoginForm->PassEdit->Text)

{

ShowMessage("密码错误");

returnfalse;

}

UserName=LoginForm->UserEdit->Text;

PassStr=LoginForm->PassEdit->Text;

IdentityStr=LoginForm->IdentityComboBox->Text;

LoginForm->Free();

returntrue;

}

 

(2)借书代码

void__fastcallTBorrowingBook:

:

BitBtn1Click(TObject*Sender)

{

intBookNumber;

ReaderTableQuery1->SQL->Text="select*fromReaderwhereReaderID='"+ReaderIDEdit->Text+"'";

ReaderTableQuery1->ExecSQL();

ReaderTableQuery1->Active=true;

if(ReaderTableQuery1->RecordCount==1)

{

ReaderNameEdit->Text=ReaderTableQuery1->Fields->FieldByName("Name")->AsString;

BookNumber=ReaderTableQuery1->Fields->FieldByName("Number")->AsInteger;

if(BookNumber>=MaxBookNumber)

{

ShowMessage("读者已借满");

return;

}

}

else

{

ShowMessage("读者没有注册,借书失败");

return;

}

BookTableQuery2->SQL->Text="select*frombookwhereBookID='"+BookIDEdit->Text+"'";

BookTableQuery2->ExecSQL();

BookTableQuery2->Active=true;

if(BookTableQuery2->RecordCount==1)

{

BookNameEdit->Text=BookTableQuery2->Fields->FieldByName("BookName")->AsString;

EditorEdit->Text=BookTableQuery2->Fields->FieldByName("Editor")->AsString;

if(BookTableQuery2->Fields->FieldByName("State")->AsString=="1")

{

ShowMessage("该书已被借出,操作失败!

");

return;

}

}

else

{

ShowMessage("没有这本书,操作失败!

");

return;

}

BorrowDateEdit->Text=DateToStr(Date());

ReturnDateEdit->Text=DateToStr(Date()+30);

//LibrarianIDEdit->Text=LibrarianID;

StringstrSQL="";

strSQL="Insertintoborrowing(ReaderID,ReaderName,BookID,BookName,Editor,BorrowDate,ReturnDate,LibrarianID)values(";

strSQL=strSQL+"'"+ReaderIDEdit->Text;

strSQL=strSQL+"','"+ReaderNameEdit->Text;

strSQL=strSQL+"','"+BookIDEdit->Text;

strSQL=strSQL+"','"+BookNameEdit->Text;

strSQL=strSQL+"','"+EditorEdit->Text;

strSQL=strSQL+"','"+BorrowDateEdit->Text;

strSQL=strSQL+"','"+ReturnDateEdit->Text;

strSQL=strSQL+"','"+LibrarianIDEdit->Text+"')";

BorrowingTableQuery3->SQL->Text=strSQL;

BorrowingTableQuery3->ExecSQL();

strSQL="Updatebooksetstate='1'whereBookID='"+BookIDEdit->Text+"'";

//书的状态置为1,借出状态

BorrowingTableQuery3->SQL->Text=strSQL;

BorrowingTableQuery3->ExecSQL();

strSQL="UpdateReadersetNumber=Number+1whereReaderID='"+ReaderIDEdit->Text+"'";

//读者能借的书减一

BorrowingTableQuery3->SQL->Text=strSQL;

BorrowingTableQuery3->ExecSQL();

ShowMessage("借书成功");

BorrowingTableQuery3->SQL->Text="select*fromborrowing";

BorrowingTableQuery3->Active=true;

BorrowingTableQuery3->Last();

}

6.8界面(1个主窗体,10个子窗体,子窗体不一一列出)

主界面

系统登录界面

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 初中教育 > 语文

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1