数据库实训报告书Word文件下载.docx
- 文档编号:21386590
- 上传时间:2023-01-30
- 格式:DOCX
- 页数:19
- 大小:200.54KB
数据库实训报告书Word文件下载.docx
《数据库实训报告书Word文件下载.docx》由会员分享,可在线阅读,更多相关《数据库实训报告书Word文件下载.docx(19页珍藏版)》请在冰豆网上搜索。
(2)需求定义...................................................3
(3)数据流程...................................................4
三、功能描述........................................................4
四、概念模型设计....................................................4
五、逻辑模型设计和优化..............................................6
(1)图书信息表..................................................6
(2)读者信息表.................................................6
(3)管理员信息表...............................................7
(4)借阅表.....................................................7
(5)管理员书籍.................................................7
(6)管理员学生................................................7
六、物理设计和实施..................................................8
(1)建立索引...................................................8
(2)主要代码...................................................9
七、小结............................................................13
八、参考文献.......................................................13
1、开发背景
图书管理包括的图书和用户借阅资料繁多,包含很多的信息数据的管理,现今,有很多的图书管理系统都是初步开始使用,甚至尚未使用计算机进行信息管理。
以前对信息管理的主要方式是基于文本、表格等纸介质的手工处理,对于图书借阅情况(如借书天数、超过限定借书时间的天数)的统计和核实等往往采用对借书卡的人工检查进行,对借阅者的借阅权限、以及借阅天数等用人工计算、手抄进行。
数据信息处理工作量大,容易出错;
由于数据繁多,容易丢失,且不易查找。
总的来说,缺乏系统,规范的信息管理手段。
尽管有的图书馆有计算机,但是尚未用于信息管理,没有发挥它的效力,资源闲置比较突出,这就是图书管理系统开发所要解决的问题。
基于这此问题,有必要建立一个图书管理系统,使图书管理工作规范化,系统化,程序化,避免图书管理的随意性,提高信息处理的速度和准确性,能够及时、准确、有效的进行查询和修改图书情况等图书管理操作。
2.需求分析
2.1系统目标
图书管理信息系统是典型的信息管理系统(MIS),其开发主要包括后台数据库的建立和维护以及前端应用程序的开发两个方面。
对于前者要求建立起数据一致性和完整性强.数据安全性好的库。
而对于后者则要求应用程序功能完备,易使用等特点。
系统开发的总体任务是实现各种信息的系统化,规范化和自动化。
2.2需求定义
图书馆管理系统开发。
系统开发的总的设计目标是实现图书管理的系统化、规范化和自动化,实现对图书资料的集中统一的管理。
本系统主要实现对图书馆信息的管理,主要功能为管理有关读者、图书、借阅、查询、删除和管理员的信息等。
本系统结构分为读者类别管理、读者档案管理、图书类型管理、图书档案管理以及图书流程管理,读者管理可以浏览读者的信息,可以对读者信息进行维护。
图书管理可以浏览图书的信息,可以对图书信息进行维护。
借阅管理可以显示当前数据库中书籍借阅情况,可以对借阅信息进行维护。
本系统主要解决的问题是利用关键字对数据库进行查询。
其系统的功能模块图如下:
图2-1系统功能模块图
针对一般图书管理信息系统的需求,通过对图书管理工作过程的内容和数据流程分析,设计如下面所示的数据项:
读者信息
属性:
读者学号,读者姓名,读者性别,联系电话,所在院系,生效日期,失效日期,违章状况,累计借书
主键:
读者学号
书籍信息
ISBN,书名,作者,出版社,出版日期,简介
ISBN
管理员信息
工作号,姓名,性别,电话,家庭住址
主键:
工作号
2.3数据流程
2.3.1读者
作为学生对图书管理系统的要求有:
1.能按各种方式(比如书名、编号、作者)查询图书馆的藏书情况。
2.能够方便地借阅图书、续借图书、归还图书。
3.能够查询自己的基本资料、借阅图书情况。
4.能够熟悉图书管理系统的使用。
2.3.2图书管理员
作为图书管理员,他们对图书管理系统的要求有:
1.能方便的对图书进行录入登记,注销陈旧的书籍。
2.能够方便地对新生进行登记,或注销已经毕业的学生信息(基本信息,借阅信息)。
3.能够随时发布一些诸如各学院学生借阅图书超期情况、馆内藏书情况、借情况等信息,以便各学院能够随时获知本院学生的一些借书信息。
图书管理员工作的流程图为:
2-2图书管理员工作流程图
3.功能描述
系统功能分析是在系统开发的总体任务的基础上完成。
本系统需要完成的功能主要有5部分:
(1)图书基本情况的录入,修改,删除等基本操作。
.书籍类别标准的制定,类别信息的输入,包括类别编号,类别名称,关键词,备注信息等。
.书籍类别信息的查询,修改,包括类别编号,类别名称,关键词,备注信息等。
3.书籍信息的输入,包括书籍编号,书籍名称,书籍类别,作者名称,出版社名称,出版日期,书籍页数,关键词,登记日期,备注信息等。
(2)办理借书卡模块。
.新生办理借书证。
.丢失办理借书证。
(3)实现借书功能。
.借书信息的输入,包括借书信息编号,读书编号,读者姓名,书籍编号,书籍名称,借书日期,备注信息等。
.借书信息的查询,修改,包括借书信息编号,读者编号,读者姓名,书籍编号,书籍名称,借书日期,备注信息等。
(4)实现还书功能。
.还书信息的输入,包括还书信息编号,读者编号,读者姓名,书籍编号,书籍名称,借书日期,还书日期,备注信息等。
.还书信息的查询和修改,包括还书信息编号,读书编号,读者姓名,书籍编号,书籍名称,借书日期,还书日期,备注信息等。
(5)能方便的对图书进行查询。
对超期的情况能自动给出提示信息
4.概念模型设计
各部分E-R图如下:
(1)读者信息类别实体E-R图
4-1读者类别实体E-R图
(2)书籍信息类别实体E-R图
4-2书籍类别实体E-R图
(3)图书借阅实体E-R图:
4-3图书借阅实体E-R
4-5实体之间关系的E-R图
借阅关系(读者、管理员、书籍三元关系)
图4-6CDM图
5.逻辑模型设计和优化
从理论‘E-R模型’到理论‘关系模型’的整理转换,通过E-R模型到关系模型的转化,可以得到如下关系模式:
借阅关系
属性:
工作号,读者学号,ISBN,是否续借,借书日期,还书日期,备注。
工作号,读者学号,ISBN
管理员_书籍关系
工作号,ISBN,添加时间,是否在馆
工作号,ISBN
管理员_学生关系
工作号,读者学号,确认借还
工作号,读者学号
通过由概念模型设计得到CDM图powerdesigner转换成对应的PDM图
PDM图
5.1图书信息表
列名
数据类型
可否为空
ISBN
varchar
否
书名
作者
出版社
是
出版日期
datetime
简介
5.2读者信息表
读者学号
读者姓名
读者性别
联系电话
所在院系
5.3管理员信息表
工作号
姓名
性别
电话
家庭住址
5.4借阅表
char
借阅日期
还书日期
是否续借
5.5管理员_书籍
否
添加时间
datatime
是否在馆
5.6管理员_学生
借还确认
6.物理设计和实施
从理论‘关系模型’到实现\实施‘数据库建立’,物理文件的安排和建立索引
6.1建立索引
为了提高在表中搜索元组的速度,在实际实现的时候应该基于键码建立索引是各表中建立索引的表项:
(1)读者信息(读者学号)
(2)书籍信息(ISBN)
(3)管理员信息(工作号)
(4)借阅(工作号,读者学号,ISBN)
(5)管理员_书籍(工作号,ISBN)
(6)管理员_学生(工作号,读者学号)
6.2
主要代码如下:
1、借书模块
voidCBookBorrowDlg:
:
OnOK()
{
UpdateData();
if(!
IsValidCard(m_strCardNum))
{
CDialog:
OnOK();
return;
}
if(AnyBookExpired(m_strCardNum))
CDialog:
AllowedToBorrow(m_strBookNum))
if(BorrowBook(m_strCardNum,m_strBookNum))
AfxMessageBox("
借书成功"
);
else
借书失败"
}
boolCBookBorrowDlg:
BorrowBook(constCString&
cardNum,constCString&
bookNum)
{
CTimeSpanspan(30,0,0,0);
CTimenextMonth=CTime:
GetCurrentTime()+span;
m_storeBookSet.IsOpen())
m_storeBookSet.Open();
m_storeBookSet.m_strFilter.Format("
bno=%s"
bookNum);
m_storeBookSet.Requery();
m_storeBookSet.Edit();
m_storeBookSet.m_status="
out"
;
m_storeBookSet.m_due_date=nextMonth;
m_storeBookSet.Update();
m_bookSet.IsOpen())
m_bookSet.Open();
m_bookSet.m_strFilter.Format("
ISBN='
%s'
"
m_storeBookSet.m_ISBN);
m_bookSet.Requery();
m_bookSet.Edit();
m_bookSet.m_stocked_num=m_bookSet.m_stocked_num-1;
m_bookSet.Update();
m_borrowSet.IsOpen())
m_borrowSet.Open();
m_borrowSet.AddNew();
m_borrowSet.m_bno=bookNum;
m_borrowSet.m_cno=cardNum;
m_borrowSet.m_borrow_date=CTime:
GetCurrentTime();
m_borrowSet.Update();
m_borrowSet.Requery();
returntrue;
2、还书模块
voidCBookReturnDlg:
UpdateData(true);
m_borrowSet.m_strFilter.Format("
bno='
andReturn_dateisnull"
m_strBookNum);
if(m_borrowSet.IsEOF())
该书不存在或已经还了"
CTimetoday=CTime:
CTimeSpandiffDays=today-m_borrowSet.m_borrow_date;
if(diffDays>
30)
该书过期了"
m_borrowSet.Edit();
m_borrowSet.m_return_date=today;
CStringisbn=m_storeBookSet.m_ISBN;
in"
isbn);
m_bookSet.m_stocked_num=m_bookSet.m_stocked_num+1;
AfxMessageBox("
还书成功"
3、查询模块
voidCQueryBasicDlg:
OnQuery()
m_listResult.ResetContent();
m_bookSet.m_strFilter="
tilelike%"
+m_strKeyWord+"
%"
if(m_bookSet.IsEOF())
此书不存在"
while(!
m_bookSet.IsEOF())
m_listResult.AddString(m_bookSet.m_title);
m_bookSet.MoveNext();
OnSelchangeListResult()
CStringaColCaption[5];
aColCaption[0]="
书号:
"
aColCaption[1]="
书名:
aColCaption[2]="
作者:
aColCaption[3]="
出版社:
aColCaption[4]="
当前库存量:
m_listDetail.ResetContent();
intcurSel;
CStringstrDetail;
CStringstrLine;
curSel=m_listResult.GetCurSel();
m_bookSet.SetAbsolutePosition(curSel+1);
for(inti=0;
i<
m_bookSet.m_nFields;
i++)
m_bookSet.GetFieldValue(i,strDetail);
strLine.Empty();
strLine+=aColCaption[i];
strLine+=strDetail;
m_listDetail.AddString(strLine);
4、申请借书卡模块
voidCCardNewDlg:
m_cardSet.IsOpen())
m_cardSet.Open();
m_readerSet.IsOpen())
m_readerSet.Open();
m_cardSet.AddNew();
m_cardSet.m_cno=m_cardNum;
m_cardSet.m_PID=m_pid;
m_cardSet.Update();
m_readerSet.AddNew();
m_readerSet.m_sex=m_gender;
m_readerSet.m_name=m_name;
m_readerSet.m_PID=m_pid;
m_readerSet.Update();
申请成功!
7、
小结
在整个课程设计的实践中,我学到很多有用的知识,也积累了不少宝贵的开发经验。
比如用ADO操作数据库,SQL语句的应用等。
本设计通过自己的努力,基本满足了图书管理的基本需要,实现了用户使用的方便以及管理员管理的方便,在界面上力求做到简单实用,在操作方面尽量做到满足用户使用的习惯,但由于自己的水平有限和时间的不足,在很多方面还不完善,有些功能没有在全局上把握好,比如一些功能函数可以在一个文件中定义,具体页面需要用到再直接引用,SQL语句的执行效果也存在效率不高的问题,关于图书管理的所有操作集中在一个页面实现,出现了一些混淆,程序更改,测试时很不好等。
在今后的学习当中将继续完善此系统,使其功能更加强大,满足用户的更多需求。
8、参考文献:
【1】王珊萨师煊著《数据库系统概论(第四版)》高等教育出版社
【2】陈根才孙建伶林怀忠周波著《数据库课程设计》浙江大学出版社
【3】钱能著《C++程序设计教程(第二版)》清华大学出版社
【4】任哲著《MFCWindows应用程序设计》清华大学出版社
【5】刘意成著《SQL实战演练[M]》西安电子科技大学出版社
【6】李存斌著《数据库应用技术》中国水利水电出版
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 报告书