图书馆管理系统大作业.doc
- 文档编号:1309230
- 上传时间:2023-04-30
- 格式:DOC
- 页数:29
- 大小:391KB
图书馆管理系统大作业.doc
《图书馆管理系统大作业.doc》由会员分享,可在线阅读,更多相关《图书馆管理系统大作业.doc(29页珍藏版)》请在冰点文库上搜索。
信息与计算科学系课程设计报告
图书管理系统的设计
1.系统功能
1.1主要功能
图书管理系统主要实现以下5方面的功能:
a.图书入库
b.查询
c.修改信息
d.图书借还
e.系统管理
1.2功能描述
1.书籍管理功能:
包括书籍类别管理和书籍信息管理两部分。
2.读者管理部分:
这一部分包括对读者信息进行管理的功能。
3.借阅管理部分:
这一部分包括借书信息管理和还书信息管理两部分。
4.系统管理:
包括修改系统用户密码、增加新用户以及退出系统等。
1.3系统数据流程分析
图书管理系统数据流程图如图1-3所示。
读者基本信息录入录入
图书基本信息录入录入
读者信息管理
图书信息管理
借阅信息录入
图书借阅管理
读者信息库
图书信息库
图1-3系统数据流程图
1.4功能模块图
本系统包括的模块主要有如下几个部分:
图书管理模块、借阅管理模块、读者管理模块、系统管理模块、信息查询模块、用户管理模块
具体的功能描述如下:
图书管理:
其功能是管理书库中图书的记录信息,对入库图书信息进行管理,并进行查询。
借阅管理:
其功能是对读者借阅信息进行查询。
读者管理:
其功能是对读者一般信息进行查询以及维护。
系统管理:
其功能是为系统的使用者进行帐户和密码管理以及基础数据维护。
其子系统描述:
1.图书管理包括图书入库功能,主要整理图书的数量、类别和各种相关的信息等。
2.图书借阅,进行借书操作(此操作由管理员完成);当用户要查询自己的借阅情况时,可进行借阅查询。
3.读者管理包括读者登记,读者信息管理,添加读者借书和还书信息。
可以记录新加入的读者的信息,并且可以对已经存在于数据库中的读者的信息进行修改,同时可以进行读者借、还书的管理。
4.用户管理包括修改密码、新增用户、删除用户可执行的系统操作等。
5.信息查询包括图书查询、读者查询和用户查询等功能。
通过这些功能,可以通过不同的关键字来对书库中的图书进行查询,同时也可以查询读者的借阅信息。
6.系统管理是用来完成本系统的基本操作,如修改密码、登录系统、退出登录,还有系统简介等功能。
其功能模块图如下所示
图书管理系统
读者管理功能
系统管理功能
图书管理功能
借阅管理功能
新书入库功能
图书类别功能
读者信息功能
读者查询功能
增加用户
密码修改
借书管理功能
还书管理功能
图1-4功能模块图
2.系统数据库设计
2.1E-R图
E-R模型的“联系”用于刻画实体之间的关联。
根据上面的设计可以规划出的实体有:
读者实体、图书实体和借书信息实体。
2.2读者实体
读者实体
学号
姓名
系别
借书证号
证号
性别
联系电话
图2-2读者实体
2.3图书实体
图书实体
出版日期数据库配置文件已经安装到D:
\oracle\product\10.2.0,同时其他选定的安装组件也已经安装到D:
\oracle\product\10.2.0\db_1。
iSQL*PlusURL为:
http:
//192.168.0.247:
5560/isqlplus
iSQL*PlusDBAURL为:
http:
//192.168.0.247:
5560/isqlplus/dba
证号
出版日期数据库配置文件已经安装到D:
\oracle\product\10.2.0,同时其他选定的安装组件也已经安装到D:
\oracle\product\10.2.0\db_1。
iSQL*PlusURL为:
http:
//192.168.0.247:
5560/isqlplus
iSQL*PlusDBAURL为:
http:
//192.168.0.247:
5560/isqlplus/dba
证号
图书编号
出版日期数据库配置文件已经安装到D:
\oracle\product\10.2.0,同时其他选定的安装组件也已经安装到D:
\oracle\product\10.2.0\db_1。
iSQL*PlusURL为:
http:
//192.168.0.247:
5560/isqlplus
iSQL*PlusDBAURL为:
http:
//192.168.0.247:
5560/isqlplus/dba
证号
出版日期数据库配置文件已经安装到D:
\oracle\product\10.2.0,同时其他选定的安装组件也已经安装到D:
\oracle\product\10.2.0\db_1。
iSQL*PlusURL为:
http:
//192.168.0.247:
5560/isqlplus
iSQL*PlusDBAURL为:
http:
//192.168.0.247:
5560/isqlplus/dba
证号
作者
图书名称
类别编号
图2-3图书实体
2.4借书实体E-R图
借书信息实体
图书编号
借书证号
借出日期
还书日期
借出状态
图2-4借书实体
2.5系统实体E-R图
读者
图书
借阅
图2-5实体E-R图
2.6数据库设计
由数据模型利用SQLsever2000进行数据库的详细设计,本系统设计的数据库名为shop,其基本表的设计如下:
2.6.1学生信息表
表2-6-1学生信息表
字段名称
数据类型
大小
学号
varchar
50
姓名
varchar
20
性别
varchar
4
系别
varchar
5
联系电话
varchar
50
借书证号
varchar
50
密码
varchar
15
2.6.2图书明细表
表2-6-2图书明细表
字段名称
数据类型
大小
图书编号
int
50
图书名称
varchar
20
作者
varchar
4
出版社
varchar
5
出版日期
varchar
50
定价
varchar
50
类别编号
varchar
15
状态
char
6
2.6.3图书类别
表2-6-3图书类别
字段名称
数据类型
大小
类别编号
smallint
2
图书类别
nvarchar
20
2.6.4用户
表2-6-4用户
字段名称
数据类型
大小
姓名
varchar
20
性别
varchar
4
类型
varchar
50
联系电话
varchar
15
密码
varchar
50
2.6.5借出信息
表2-6-5借出信息
字段名称
数据类型
大小
借出编号
int
4
图书编号
int
4
借书证号
varchar
50
借出日期
smalldatetime
4
借出状态
bit
4
3.系统实现
3.1系统数据库模型需分析
图3-1关系图
3.2系统主界面
程序运行程序以后,就可以看到的程序的主界面,从这个界面中用户可以根据不同的身份进行不同的操作。
3.3管理员登录界面
主程序运行后,点击管理员登录,跳出管理员登录界面,输入用户名和密码即可进入系统管理的后台界面。
功能:
本模块的主要功能是对操作用户身份的验证,只有系统的合法用户才能进入系统。
在进行系统登录过程中,登录模块将调用数据库里的用户表,并对用户名和密码进行验证,只有输入了正确的用户名和密码后,系统登录才会成功。
否则退出登录模块。
并在输入了错误的或者是不存在的用户名和密码时,系统会给出出错信息提示,指明登录过程中的错误输入或错误操作,以便用户进行正确的登录。
其窗体如图3-3所示:
管理员登录窗体:
图3-3管理员登录界面
3.4系统管理界面
管理员登录成功后会进入如图3-4的系统管理界面,本模块的主要功能是实现管理员对系统的维护作用,管理员对读者进行信息查询、修改和删除,对图书进行注销和借阅归还管理。
管理员输入学号或姓名可以查询读者的信息,输入图书编号或作者可以查询图书的信息。
图3-4系统管理界面
3.5修改图书类型
在系统管理界面中点击修改图书类型可进入如图4-5的编辑图书类别的界面,本模块主要实现管理员对图书类别进行删除和添加的管理功能。
图3-5修改图书类型界面
3.6图书借阅和归还
本模块主要实现的功能是读者对图书的借阅和归还:
3.6.1图书借阅模块
输入图书编号按回车图书信息会自动显示,再输入借书证号按回车会显示已借书数,如图3-6所示:
图3-6借阅图书界面
3.6.2图书归还模块
输入图书编号按回车图书信息会自动显示,再输入借书证号按回车会显示已借出日期和还书日期以及是否超期的信息提示,如图3-7所示:
图3-7图书归还界面
3.7新书入库
本模块主要实现的是管理员对新书的入库管理,打*号的是必填项目,置空会有信息提示该项不能为空,如图3-8所示:
图3-8新书入库界面
3.7系统密码修改
本模块主要实现的功能是管理员进入系统管理界面后对管理员密码进行修改的操作,以保证系统的安全性,如图3-9所示:
图3-9系统密码修改界面
3.9读者服务
本功能实现的是读者对图书的查询、借阅及归还操作以及对密码的修改的操作,读者必须先登录以后才能进行后面的修改密码、图书查询等操作,如图4-12所示:
图3-10读者服务界面
4.认识体会
1.认识体会:
通过系统的在校学习和对外界的认识,我对软件开发的大致过程有了一些基本的了解,有了一些体会:
程序没有最好,只有更好,程序没有十全十美,只有更完美;在编程的过程中,会遇到各种各样的问题,优秀的编程大师正是在解决了遇到的这些问题而积累经验的成果,提升了编程能力和丰富了编程思维。
深入的体会:
编程总会深入内部,深究根源,一个程序只有不断地测试和修改才能减少错误,才能提高质量,才能做得更好,程序是在不断地壮大的。
编程需要严谨的思维,程序是一个逻辑产品,它存储在磁盘等物理介质中,它看不见,摸不着,它运行时一环接一环,一丝扣一丝,一旦出错,有可能导致难以预料的严重后果。
而严谨的思维能使程序逻辑出错的可能性大大降低,也使程序易于维护。
而且,保持严谨的思维总是一个好的习惯。
在学习的过程中,要学会应用网络上的知识,把它变为自己的知识,应用在实际中来解决问题。
因为在网络上有各种各样的资源可以供你参考。
编程需要良好的编程习惯。
好的编程习惯能给编程人员省去很多不必要的麻烦,提高了代码的清晰度,从而提高了程序的质量。
三人行必有我师:
不管你的编程水平有多高,都有不懂的地方,所以时刻都要虚心向他人学习来提高自己。
连孔子都可以拜小孩为师,我们还有什么面子放不下的呢?
3、总结:
在一开始我通过编写设计初稿,对设计本系统有了比较深刻的认识,认真的考虑了每一步骤的执行,也发现编一个优秀的软件决不是一蹴而就的事情,需要长时间的积累和经验。
然后,在老师的辅导和同学的帮助下,我更加深入的去考虑这个系统。
并花了大量的心思和努力去完成这个系统。
在做这个系统的这段时间里,我学到了我以前没有掌握牢的知识。
更重要的是了解了作为一个开发人员开发一个系统软件的步骤和方法策略。
如何去思考问题,又如何去解决问题……总之,通过这次的系统设计,我学会了很多,也了解了很多。
在这,我真诚的感谢辅导过我的老师,还有帮助过我的同学们。
谢谢!
参考文献:
[1]刘斌,李文革.Delphi7数据库高级教程[M].北京:
清华大学出版社,2004
[2]李军,张桂英,徐波.Delphi7项目开发实践[M].北京:
中国铁道出版社,2003
[3]刘国钧,陈绍业,王凤翥.图书馆目录[M].第1版.北京:
高等教育出版社,1957.
5.源代码
5.1系统主界面:
procedureTfrmMain.SpeedButton1Click(Sender:
TObject);
begin
frmAdm.Show;
end;
procedureTfrmMain.SpeedButton2Click(Sender:
TObject);
begin
frmReaderSer.Show;
end;
procedureTfrmMain.SpeedButton3Click(Sender:
TObject);
begin
frmLookBook.Show;
end;
procedureTfrmMain.SpeedButton4Click(Sender:
TObject);
varStr:
string;
begin
Str:
='图书管理系统'+#13;
Str:
=Str+'作者:
丁少亭(L3)'+#13;
Str:
=Str+'这是我的第一次编程,请大家多多指教!
';
ShowMessage(Str);
end;
procedureTfrmMain.SpeedButton5Click(Sender:
TObject);
begin
ifmessagedlg('确定要退出本系统吗?
',mtinformation,[mbyes,mbno],0)=mryesthen
begin
ShowMessage('谢谢你的使用');
//form1.DestroyWnd;
frmMain.Close;
end;
end;
procedureTfrmMain.Timer1Timer(Sender:
TObject);
begin
StatusBar1.Panels[2].Text:
='日期:
'+DateToStr(Date);
StatusBar1.Panels[3].Text:
='时间:
'+TimeToStr(Time);
end;
procedureTfrmMain.SkinData1FormSkin(Sender:
TObject;aName:
String;
varDoSkin:
Boolean);
begin
skindata1.Active:
=true;
end;
end.
5.2登录按钮代码:
procedureTfrmAdm.Button1Click(Sender:
TObject);
begin
withDM.ADOQuery1do
begin
Close;
SQL.Clear;
SQL.Add('select*from用户where姓名=:
usernameand密码=:
passand类型=:
GLY');
Parameters.ParamByName('username').Value:
=Edit1.Text;
Parameters.ParamByName('pass').Value:
=Edit2.Text;
Parameters.ParamByName('GLY').Value:
='管理员';
Open;
ifRecordCount<1then
begin
ShowMessage('用户名、密码错误或您不是管理员,请重新输入!
');
Edit2.Text:
='';
Exit;
end
else
begin
frmAdmin.ShowModal;
end;
end;
end;
5.3系统管理:
procedureTfrmAdmin.BitBtn3Click(Sender:
TObject);
begin
frmAddReader.Show;
end;
procedureTfrmAdmin.Button1Click(Sender:
TObject);
begin
frmModifyReaderInfo.Show;
end;
procedureTfrmAdmin.Button2Click(Sender:
TObject);
begin
frmNewBook.Show;
end;
procedureTfrmAdmin.Button4Click(Sender:
TObject);
begin
frmLendBook.Show;
end;
procedureTfrmAdmin.Button5Click(Sender:
TObject);
begin
frmYy.Show;
end;
procedureTfrmAdmin.Button6Click(Sender:
TObject);
begin
frmModifyPsw.Show;
end;
procedureTfrmAdmin.Button7Click(Sender:
TObject);
begin
ifmessagedlg('确定要退出吗?
',mtinformation,[mbyes,mbno],0)=mryesthen
Close;
end;
procedureTfrmAdmin.Button9Click(Sender:
TObject);
begin
ADOTable1.Close;
ADOTable1.Filtered:
=false;
ifComboBox1.Text='学号'then
begin
ADOTable1.Filter:
='学号='''+Edit1.Text+'''';
ADOTable1.Filtered:
=true;
ADOTable1.Open;
end
else
begin
ADOTable1.Filter:
='姓名='''+Edit1.Text+'''';
ADOTable1.Filtered:
=true;
ADOTable1.Open;
end;
end;
procedureTfrmAdmin.Button8Click(Sender:
TObject);
begin
frmReturnBook.Show;
end;
procedureTfrmAdmin.Button10Click(Sender:
TObject);
begin
begin
ADOTable2.Close;
ADOTable2.Filtered:
=false;
ifcombobox2.Text='图书编号'then
begin
ADOTable2.Filter:
='图书编号='''+Edit2.Text+'''';
ADOTable2.Filtered:
=true;
ADOTable2.Open;
end
else
begin
ADOTable2.Filter:
='作者='''+Edit2.Text+'''';
ADOTable2.Filtered:
=true;
ADOTable2.Open;
end;
end;
end;
procedureTfrmAdmin.BitBtn4Click(Sender:
TObject);
begin
ifApplication.MessageBox('确实要删除记录?
该命令不可取消!
','删除记录',MB_OKCANCEL)=IDOK
then
ADOTable1.Delete
else
abort;
end;
procedureTfrmAdmin.Button3Click(Sender:
TObject);
var
strBookID:
string;
begin
//更新图书信息表注销标志
ifcombobox2.Text='图书编号'then
begin
strBookID:
=Trim(Edit2.Text);
DM.QueryReader.Close;
DM.QueryReader.SQL.Clear;
strSql:
='update图书明细表set状态=''注销''where图书编号='+strBookID;
DM.QueryReader.SQL.Text:
=strSql;
DM.QueryReader.ExecSQL;
DM.QueryReader.Close;
ifDM.QueryReader.RowsAffected>0then
ShowMessage('该书注销成功!
')
else
ShowMessage('该书注销失败!
');
end;
end;
procedureTfrmAdmin.Button11Click(Sender:
TObject);
begin
frmBookType.Show;
end;
end.
管理图书确定按钮代码:
procedureTfrmBookType.btnSureClick(Sender:
TObject);
begin
ifedtTypeID.Text=''then
begin
ShowMessage('类别编号不能为空!
');
edtTypeID.SetFocus;
Exit;
end;
ifedtBookType.Text=''then
begin
ShowMessage('类别名称不能为空!
');
edtBookType.SetFocus;
Exit;
end;
DM.QueryBookType.Close;
DM.QueryBookType.SQL.Clear;
DM.QueryBookType.SQL.Text:
='insertinto图书类别(类别编号,图书类别)'+'values(:
id,:
name)';
DM.QueryBookType.Parameters.ParamByName('id').Value:
=Trim(edtTypeID.Text);DM.QueryBookType.Parameters.ParamByName('nam
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 图书馆 管理 系统 作业
![提示](https://static.bingdoc.com/images/bang_tan.gif)