数据库课程设计图书管理系统.docx
- 文档编号:28014319
- 上传时间:2023-07-07
- 格式:DOCX
- 页数:17
- 大小:95.44KB
数据库课程设计图书管理系统.docx
《数据库课程设计图书管理系统.docx》由会员分享,可在线阅读,更多相关《数据库课程设计图书管理系统.docx(17页珍藏版)》请在冰豆网上搜索。
数据库课程设计图书管理系统
目录
第一章绪论.......................................................................................................................1
§1.1开发背景……...........................................................................................1
§1.2开发工具的选择…….............................................................................1
第二章需求分析..........................................................................................................1
第三章总体设计..........................................................................................................2
§3.1软件结构图…....................................................................................................2
§3.2功能流程图........................................................................................................3
§3.3安全设计..............................................................................................................4
第四章数据库设计....................................................................................................4
第五章详细设计..........................................................................................................6
第六章编码......................................................................................................................7
第七章结论.....................................................................................................................12
第八章学习体会.........................................................................................................12
第九章致谢.....................................................................................................................12
第一十章参考文献.........................................................................................................12
第一章绪论
1.开发背景
随着时代的发展发展,图书馆馆藏图书的增多,老式的管理方式已不再适用,急需一种新的管理方式的产生。
图书管理系统设计的主要目的是对图书馆种类繁多的书籍进行管理,且合理的管理好用户的借还信息。
提高图书馆的工作效率,降低管理成本。
类容主要包括后台数据的管理和维护以及前台信息的查询及使用等。
2.开发工具的选择
安装了windowsxp/7/8等操作系统的pc机。
安装有sqlserver2000及以上的数据库管理软件。
安装有borlandc++builder6.0以上的开发工具。
第二章需求分析
图书馆管理系统是一个高度集成的图书信息处理系统,通过将图书馆的各种功能进行整合,从而达到显示检索信息,提高工作效率,降低管理成本等目的。
一个典型的图书馆管理系统应该能够管理所有的图书种类,图书信息以及读者信息,还需要提供各种图书信息的检索查询功能。
该系统还需要能够对图书的借阅,归还进行管理,并对读者的罚款进行自动计算。
通过该系统的自动化管理,能够大大减少图书馆管理人员,还能减少管理人员的工作任务,从而降低管理开销和成本。
图书管理系统能完成的功能应有:
一、读者操作
1.读者管理能完成书籍的借阅,书籍的归还。
2.读者有自己的密码,并可以在自己的读者窗口进行各种信息的修改。
二、管理员操作
1.管理员可以进行读者信息的增加,删除,修改等操作。
2.管理员可以对图书信息有增加,删除,修改等操作。
3.管理员可以查看包括读者所借图书,图书借阅情况等方面的数据统计。
4.图书超期未还会给予提示。
三、统计管理
1.综合统计统计图书馆目前的各种指标。
2.流通统计可以统计、分析各时期的图书流通率、分类流通率、流通变化趋势,并可以图表、表格两种方式显示。
3.馆藏统计可以统计、分析各时期的图书馆藏量、分类馆藏量、馆藏量变化趋势,并可以图表、表格两种方式显示。
四、查询管理
1.读者可以通过本系统随地进行图书检索,可以随意安排检索条件、检索项目。
2借阅综合查询可以查询按全体读者、各类别读者、个人进行借阅图书、超期图书、借还书日期、借阅天数的查询。
3.超期图书汇总可以按部门查询已超期图书,可打印催还图书通知单。
4.可查询图书的被借阅史、读者的借阅史。
5.应收超期罚款、已收罚金的明细、汇总帐。
6.已注销、损坏图书查询。
五、初始数据库大小
大约有70万册的各类图书。
大约有15名员工在图书管中工作。
大约有2000个会员
六、数据库增长速度
每天大约有1000册图书借出。
每年大约有5名读者加入或离开。
每月大概有200名新增读者。
七、安全性
登陆账号,密码,
每个员工分配有特定用户,用户权限不同,主要分为老板、收银员、采购员、仓库管理员。
第三章总体设计
(1)软件结构图
在登陆界面输入帐号和密码并选择不同的登陆身份登陆后,便进入不同的主界面,在主界面,可以选择不同身份的人的操作,具体就是管理员对读者信息,书籍信息的维护和信息的统计。
读者可以进行书籍的借阅,书籍的归还。
(2)功能流程图
读者借阅功能:
读者还书功能:
(3)安全设计
为读者设置登录帐号和密码保证其数据的安全性,
定期维护数据保证数据的正确性。
以不同的身份登陆会进入到不同的界面,保证操作的保密性。
第四章数据库设计
(1)概念结构设计
由于该系统的核心是读者和管理员,读者可以进行的操作有书籍的借阅与归还,管理员可以进行的操作有书籍信息的维护,读者信息的维护,统计信息的查看。
于是根据这个原则,将各个实体和各个实体的关系罗列出来,由于空间问题,各个实体的属性未能罗列出来,后面的报告将会具体给出。
(2)逻辑结构设计
图书(图书编号,图书名称,作者,出版社,库存,类别)
读者(读者编号,读者姓名,读者生日,性别,联系方式)
管理员(管理员编号,管理员姓名,管理员生日,性别,联系方式)
借阅记录(读者编号,图书编号,借阅日期,归还日期)
登陆(登陆名,密码,类别,登陆者编号)
(3)物理结构设计
4.3.1图书表--book
名称
字段
类型
主键
外键
唯一
可否空
图书编号
b_no
nchar(10)
是
是
否
图书名称
b_name
nchar(10)
作者
writer
nchar(10)
出版社
press
nchar(10)
库存
inventory
int
类别
classify
nchar(10)
4.3.2读者表--reader
名称
字段
类型
主键
外键
唯一
可否空
读者编号
r_no
nchar(10)
是
是
否
读者名称
r_name
nchar(10)
读者生日
birthday
date
性别
sex
nchar
(1)
联系方式
phone
nchar(11)
4.3.3管理员表--admin
名称
字段
类型
主键
外键
唯一
可否空
管理员编号
admin_no
nchar(10)
是
是
否
管理员名称
admin_name
nchar(10)
管理员生日
birthday
date
性别
sex
nchar
(1)
联系方式
phone
nchar(11)
4.3.4借阅记录表--borrow_record
名称
字段
类型
主键
外键
唯一
可否空
读者编号
r_no
nchar(10)
是
是
否
图书编号
b_no
nchar(10)
是
是
否
借阅日期
borrow_date
date
归还日期
return_date
date
4.3.4登陆表--load
名称
字段
类型
主键
外键
唯一
可否空
登陆名
name
nchar(10)
是
否
密码
pwd
nchar(10)
类别
label
nchar(10)
登陆号
load_no
nchar
(1)
是
是
否
将逻辑结构设计的表结构转化为物理结构,分别将各个表的属性罗列出来,最后增加了一个登陆表,虽然增加了数据的冗余,但是使操作变得方便。
完成之后的数据库关系图为:
第五章详细设计
5.1读者借阅功能
流程图:
当读者按正确的身份登录后,在该窗口输入想要借阅图书的图书号后,系统会校验该读者是否借阅超过三本书,如若超过三本,系统会进行提示而不让其借阅成功,假如读者想要对同一本书借阅多本,系统也会给予提示而不让其借阅多本。
如若所有信息显示该读者可以借阅,则会使其借阅成功。
5.2读者还书功能
流程图:
当读者按正确的身份登录后,在该窗口输入想要归还图书的图书号后,系统会校验该读者是否借阅过该图书,如若结果,系统会给出是否超期提示,如若未超期,则可使该读者还书成功。
第六章编码
读者借阅还书界面如下:
此界面用到了TreeView、ADODateSet、DataSourse、ADOQuery、Edit、Lable、Button等控件。
其中,ADODateSet命名为pDtSet,ADOQuery命名为ADOQuery1。
本界面的核心功能是图书借阅,核心代码为:
void__fastcallTForm_reader_borrow:
:
Button1Click(TObject*Sender)
{AnsiStringssql,readerno,bookno,borrowdate,returndate,bookno1;
intrcount;
if(tag!
=1)ShowMessage("请先获取图书详情");
else{
pDtSet->Close();
pDtSet->CommandText="select*frombookwhereb_name='"+bookname->Text+"'";
pDtSet->Open();
bookno=pDtSet->FieldByName("b_no")->AsString;
pDtSet->Close();
pDtSet->CommandText="select*fromreaderwherer_name='"+reader->Text+"'";
pDtSet->Open();
readerno=pDtSet->FieldByName("r_no")->AsString;
pDtSet->Close();
pDtSet->CommandText="select*fromborrow_recordwherer_no='"+readerno+"'andb_no='"+bookno+"'";
pDtSet->Open();
if(!
pDtSet->Eof)ShowMessage("请不要重复借同一本书,谢谢");
else{pDtSet->Close();
pDtSet->CommandText="selectCOUNT(r_no)r_countfromborrow_recordwherer_no='"+readerno+"'";
pDtSet->Open();
rcount=StrToInt((pDtSet->FieldByName("r_count")->AsString));
pDtSet->Close();
if(rcount>=3)ShowMessage("您以借过三本图书,请归还之再来借阅别的图书,谢谢!
!
!
");
else{
borrowdate=Date();
returndate=IncMonth(borrowdate,2);
ssql="execborrow_book'"+readerno+"','"+bookno+"','"+borrowdate+"','"+returndate+"'";
ADOQuery1->SQL->Add(ssql);
ADOQuery1->ExecSQL();
ADOQuery1->SQL->Clear();
ADOQuery1->Close();
ShowMessage("借书成功!
");}}}
Button1->Enabled=false;}
读者借阅还书界面如下:
本界面的核心功能是图书归还,核心代码为:
void__fastcallTForm_reader_return:
:
Button3Click(TObject*Sender)
{TDateday1,day2,day3;
Stringstr_day1,str_day2,str,tag='0';
Stringa,b,c,d,e;
ADODataSet1->CommandText="select*fromborrow_recordwherer_noin(selectr_nofromreaderwherer_name='"+reader->Text+"')";
ADODataSet1->Active=true;
//ADODataSet1->Active=false;
while(!
ADODataSet1->Eof)
{str=ADODataSet1->FieldByName("b_no")->AsString;
str=str.Trim();
if(bookno->Text==str)
tag='1';
ADODataSet1->MoveBy
(1);}
ADODataSet1->Close();
if(tag=='0')
ShowMessage("您未借该图书");
else
{
ADODataSet1->CommandText="select*frombookwhereb_no='"+bookno->Text+"'";
ADODataSet1->Open();
bookname->Text=ADODataSet1->FieldByName("b_name")->AsString;
bookwriter->Text=ADODataSet1->FieldByName("writer")->AsString;
bookpress->Text=ADODataSet1->FieldByName("press")->AsString;
bookclassify->Text=ADODataSet1->FieldByName("classify")->AsString;
ADODataSet1->Close();
ADODataSet1->CommandText="select*fromborrow_recordwhereb_no='"+bookno->Text+"'andr_no='"+Form_reader->edit_num->Text+"'";
ADODataSet1->Open();
str_day1=ADODataSet1->FieldByName("return_date")->AsString;
day1=StrToDate(str_day1);
str_day2=Date();
day2=StrToDate(str_day2);
if(day2 day->Text="未超期"; else day->Text="超期"; ADODataSet1->Close(); } Button1->Enabled=true; } //--------------------------------------------------------------------------- void__fastcallTForm_reader_return: : Button2Click(TObject*Sender) { Form_reader->Show(); Close(); bookname->Clear(); bookwriter->Clear(); bookpress->Clear(); bookclassify->Clear(); day->Clear(); } //--------------------------------------------------------------------------- void__fastcallTForm_reader_return: : Button1Click(TObject*Sender) { AnsiStringssql,reader_no,book_no; ADODataSet1->CommandText="select*fromborrow_recordwhereb_no='"+bookno->Text+"'"; ADODataSet1->Open(); reader_no=ADODataSet1->FieldByName("r_no")->AsString; ADODataSet1->Close(); book_no=bookno->Text; ssql="execreturn_book'"+reader_no+"','"+book_no+"'"; ADOQuery1->SQL->Add(ssql); ADOQuery1->ExecSQL(); ADOQuery1->SQL->Clear(); ADOQuery1->Close(); ShowMessage("还书成功! "); Button1->Enabled=false; } 第七章结论 这次的课程设计,我们完成了图书管理系统的实现,实现的功能包括管理员对读者信息的维护,对图书信息的维护,对各种信息的统计查看,在这部分里,实现了各种条件的检索,实现了按个种条件查看信息的功能,其中的逻辑关系相当复杂,在读者窗口中,实现了对图书的借阅还是对图书的归还,其中无论是借阅还是归还,执行最后一步前的校验工作都相当繁琐,需要注意逻辑方面的问题。 但是,我们的系统很依赖与本地的数据库,无法实现数据库放在服务器中使得凡是安装我们软件的计算机都能访问数据库的功能,还需进一步完善。 第八章学习体会 通过本次的课程设计,让我感到一个团队对一个任务完成的重要性,必须团结好团队,才能做好一个项目,而且本次的课程设计让我感受到了写代码的枯燥,让我对程序员的职业有了新的认识。 而且让我意识到了在工作中学习的重要性。 第九章致谢 感谢我的组员**,**,**在本次课程设计中给予我的支持,感谢网上的朋友给予我的技术上的帮助,特此感谢。 第一十章参考文献 [1]王珊、萨师煊·数据库系统概论·第四版·北京·高等教育出版社·2006 [2]Thomas、Carolyn·何玉洁等译·数据库设计教程·第二版·北京·机械工业出版社·2005
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 课程设计 图书 管理 系统