图书管理系统设计报告.docx
- 文档编号:18057833
- 上传时间:2023-08-07
- 格式:DOCX
- 页数:30
- 大小:540.93KB
图书管理系统设计报告.docx
《图书管理系统设计报告.docx》由会员分享,可在线阅读,更多相关《图书管理系统设计报告.docx(30页珍藏版)》请在冰点文库上搜索。
图书管理系统设计报告
经济管理学院本科课程设计论文
数据库开发与应用课程设计
学号:
0905170101
姓名:
陈西
班级:
管理091
专业:
信息管理与信息系统
系别:
管理系
指导教师:
孙鸿飞
2011年12月22日吉林
第1章小型图书管理信息系统-2-
1.1背景-2-
1.2小型图书管理信息系统要求:
-2-
1.3课程设计目的及内容-2-
1.4小型图书管理信息系统功能描述-2-
第2章需求分析-3-
2.1系统目标-3-
2.2业务流程-3-
2.3数据流程-4-
2.4数据字典-4-
第3章系统设计-5-
3.1系统功能-5-
3.2系统功能概述-5-
3.2.1图书信息包括-5-
3.2.2注册用户管理(用户为学生)-5-
3.2.3图书借阅管理-5-
3.2.4查询报表-5-
3.3系统结构-6-
第4章数据库设计-7-
4.1E-R图-7-
4.2数据库详细设计-7-
第5章主窗体设计-7-
5.1主窗体设计-7-
5.2功能导航设计-7-
5.2.1查询报表界面-7-
5.2.2图书管理界面-8-
5.2.3学生管理界面-9-
5.2.4借阅管理界面-10-
第6章程序设计与编码-11-
6.1系统登录窗体的设计-11-
6.2主界面主要功能窗体设计-14-
第7章系统测试-22-
第8章心得体会-23-
参考文献-24-
第1章小型图书管理信息系统
1.1背景
软件名称:
小型图书馆管理系统;
内容:
图书的管理,用户的管理,借阅的管理,浏览信息,查询,注册;
项目的任务提出者:
开发者:
个人开发;测试:
本人测试。
1.2小型图书管理信息系统要求:
熟练掌握access数据库的常用操作;
熟练掌握delphi组件常用属性操作;
1.3课程设计目的及内容
完成Delphi程序设计课程的教学之后,通过课程设计可以进一步巩固所学知识,加深理解;
提高动手能力,调试程序的能力,解决问题的能力和实际开发应用的能力,掌握使用Delphi进行系统开发的一般步骤,方法和技巧;
1.4小型图书管理信息系统功能描述
本图书管理信息系统是利用计算机管理信息处理的迅速、准确、可靠且具有强大存储能力的突出特点,全面提高图书馆的管理水平和工作效率,并以及时、完整的业务经营资料,为图书馆的及时转换提供一定的支持。
本图书管理系统涵盖了三个主要的子系统:
用户管理、图书管理、借阅管理,并通过信息的收集、整理、存储、传递将它们有机地结合起来,提高了工作的准确率和效率。
第2章需求分析
2.1系统目标
完成Delphi程序设计课程的教学之后,通过课程设计可以进一步巩固所学知识,加深理解;
提高动手能力,调试程序的能力,解决问题的能力和实际开发应用的能力,掌握使用Delphi进行系统开发的一般步骤,方法和技巧;
2.2业务流程
图1-1业务流程图
2.3数据流程
图1-2数据流程图
2.4数据字典
表2-1用户表(pass)
字段名
字段类型(长度)
可否为空
字段意义
用户名
文本(20)
否
标记用户名
密码
文本(20)
可
标记用户密码
表2-2学生信息表(students)
字段名
字段类型
可否为空
字段说明
姓名
文本(20)
否
学生姓名
学号
文本(50)
否
学生学号
性别
文本(10)
否
性别
院系
文本(50)
可
所在学院
学生ID
文本(50)
否
学生ID
班级
文本(50)
可
所在班级
年龄
文本(10)
可
学生年龄
表2-3图书信息表(books)
字段名
字段类型
可否为空
字段说明
ID
文本(50)
否
图书ID
书名
文本(50)
可
图书名
作者
文本(20)
可
图书作者
状态
Bool(真/假)
否
在库/借出
表2-4借阅与归还信息表(bore)
字段名
字段类型
可否为空
字段说明
借阅证号
文本(50)
否
学生ID
图书编号
文本(50)
否
图书ID
自动编号
长整型
自动
自动生成
书名
文本(50)
可
图书名
借阅时间
日期/时间(短日期)
否
结束时间
归还时间
日期/时间(短日期)
否
还书时间
是否借出
Bool(真/假)
否
是否存馆
第3章系统设计
3.1系统功能
本系统是针对小型图书馆的管理而编制的系统,小型图书馆最大的特点就是管理的图书少,借阅量小,不许要大型数据库的支持,在此种情况下,我用最常见的access作为数据库,编制了本系统,希望能对小型图书馆的管理有所帮助。
3.2系统功能概述
3.2.1图书信息包括
旧书删除:
对不用的旧书可以执行该操作。
图书信息管理:
当图书的信息发生改变的时候可以使用该功能来更新图书的信息,以保证图书信息的正确性。
3.2.2注册用户管理(用户为学生)
学生加入:
需要依次输入学生ID,学生姓名,学生学号,所在院系,所在班级,性别,年龄;不能为空。
学生删除:
此处用一个查询功能,是你方便的找到要删除的学生,同时显示该学生的信息,并要求删除确认。
学生信息修改:
使用系统提供的查找功能可以迅速的找到要修改的学生,并提示修改的信息。
3.2.3图书借阅管理
图书借阅:
需要图书ID,学生ID。
图书归还:
需要图书ID,学生ID。
3.2.4查询报表
图书信息查询:
可以按照图书ID,图书名字,图书作者实现查询。
借/还纪录查询:
借/还图书信息都可以按照图书ID,学生ID,日期范围灵活的查询。
未还图书查询:
查询可以按照图书ID,学生ID,班级,院系进行,从而可以方便的进行分组管理。
3.3系统结构
图3-1系统结构模块流程图
第4章数据库设计
4.1E-R图
图4-1E-R图
4.2数据库详细设计
本系统是单机版的系统,因此使用的是access数据库。
数据库中一共有四个表,分别是:
books,students,bore,pass;
books:
描述图书的信息,一共有四个字段,分别是:
bookname:
字符串类型,表示图书的名字;
bookid:
字符串类型,表示图书的ID;
author:
字符串类型,表示图书的作者;
in:
boolean类型,表示图书的状态;
students:
描述学生的信息,一共有四个字段,分别是:
studentid:
字符串类型,表示学生的ID;
studentname:
字符串类型,表示学生的姓名;
studentnum:
字符串类型,表示学生学号;
studentclass:
字符串类型,表示学生的班级;
studentcollage:
字符串类型,表示学生的学院;
studentage:
字符串类型,表示学生的年龄;
sex:
字符串类型,表示学生的性别;
pass:
描述登陆信息,包括两个字段,分别是:
name:
字符串类型,表示登陆的用户名;
password:
字符串,表示用户的密码;
bore:
描述图书的借/还信息,七个字段,分别是:
ids:
字符串类型,表示该次活动的序号;
bookid:
字符串类型,表示图书的ID;
studentid:
字符串类型,表示学生的ID;
onceout:
boolean类型,表示是否借出;
outdata:
字符串类型,表示借出日期;
alreadyback:
boolean类型,表示是否归还;
backdata:
字符串类型,表示归还日期;
第5章主窗体设计
5.1主窗体设计
图5-1出窗体设计图
5.2功能导航设计
5.2.1查询报表界面
借/还纪录查询:
借/还图书信息都可以按照图书ID,学生ID,日期范围灵活的查询。
未还图书查询:
查询可以按照图书ID,学生ID,班级,院系进行,从而可以方便的进行分组管理。
图5-2查询报表界面图
5.2.2图书管理界面
图书管理界面:
新书入库项目:
需要填入图书ID,图书名字,图书作者,在馆状态;其中在馆状态需要填:
true,表示图书在馆。
其中旧书删除项目:
对不用的旧书可以执行该操作。
可以使用系统提供的查找符合条件的图书,并可以同步显示该图书的信息,以便确认所删图书的正确性。
图书信息管理项目:
当图书的信息发生改变的时候可以使用该功能来更新图书的信息,以保证图书信息的正确性。
操作是只要用系统提供的查找功能找到该图书,就可以在信息显示栏中对图书信息做修改。
图5-3图书管理界面图
5.2.3学生管理界面
学生信息包括:
学生ID,学生姓名,学生学号,所在院系,所在班级,性别,年龄。
学生加入:
需要依次输入学生ID,学生姓名,学生学号,所在院系,所在班级,性别,年龄;不能为空。
学生删除:
此处用一个查询功能,是你方便的找到要删除的学生,同时显示该学生的信息,并要求删除确认。
学生信息修改:
使用系统提供的查找功能可以迅速的找到要修改的学生,并提示修改的信息。
图5-4学生管理界面
5.2.4借阅管理界面
图书借阅:
需要图书ID,学生ID。
图书归还:
需要图书ID,学生ID。
图5-5借阅界面图
第6章程序设计与编码
6.1系统登录窗体的设计
图6-1登录界面图
procedureTForm1.N1Click(Sender:
TObject);
begin
ifpass=truethentushuguanli.show
elseshowmessage('请先输入用户名和密码!
');
end;
procedureTForm1.N2Click(Sender:
TObject);
begin
ifpass=truethenxueshengguanli.show
elseshowmessage('请先输入用户名和密码!
');
end;
procedureTForm1.N3Click(Sender:
TObject);
begin
ifpass=truethenjieyueguanli.show
elseshowmessage('请先输入用户名和密码!
');
end;
procedureTForm1.N4Click(Sender:
TObject);
begin
ifpass=truethenchacunbaobiao.show
elseshowmessage('请先输入用户名和密码!
');
end;
procedureTForm1.N5Click(Sender:
TObject);
begin
about.show;
end;
procedureTForm1.BitBtn1Click(Sender:
TObject);
begin
withform1.Panel2do
begin
adotable1.Active:
=true;
ifedit1.text=''thenshowmessage('请输入ID')
elseifedit2.Text=''thenshowmessage('请输入密码')
else//方法一密码+用户名=1000
{val(edit1.Text,i,code1);
val(edit2.Text,j,code2);
if((code1<>0)or(code2<>0))thenshowmessage('用户名和密码的格式错误')
else
ifstrtoint(edit1.Text)+strtoint(edit2.Text)=10000then
begin
form1.show;
showmessage('欢迎使用!
');
pass:
=true;
form1.Panel2.Visible:
=false;
end
elsebegin
showmessage('密码错误!
推出系统');
form1.Close;
end;}
//方法2密码表
begin
ifnotadotable1.Locate('name',edit1.Text,[])then
begin
showmessage('没有这个用户,登陆失败');
pass:
=false;
end
else
ifadotable1.FieldValues['password']=edit2.Text
thenbegin
showmessage('登陆成功');
panel2.Visible:
=false;
pass:
=true;
end
elsebeginshowmessage('密码错误,退出系统!
');
application.Terminate;
end;
end;
end;
end;
procedureTForm1.BitBtn2Click(Sender:
TObject);
begin
form1.Close;
end;
procedureTForm1.N6Click(Sender:
TObject);
begin
ifmessagedlg('确定要退出系统?
',mtinformation,[mbno,mbyes],0)=mrYes
thenApplication.Terminate;
end;
end.
6.2主界面主要功能窗体设计
图6-2主界面主要窗体图
a)
主界面主要功能窗体及代码
procedureTxueshengguanli.BitBtn1Click(Sender:
TObject);
begin
ifdbedit15.Text=''thenshowmessage('请输入ID')
elseifdbedit16.Text=''thenshowmessage('请输入姓名')
elseifdbedit17.Text=''thenshowmessage('请输入学号')
elseifdbedit18.Text=''thenshowmessage('请输入院系')
elseifdbedit19.Text=''thenshowmessage('请输入班级')
elseifdbedit20.Text=''thenshowmessage('请输入年龄')
else
begin
ifmessagedlg('确实要增加该学生?
',mtInformation,[mbOK,mbCancel],0)=mrokthen
begin
adotable1.Edit;
adotable1.Append;
adotable1.FieldByName('studentid').AsString:
=dbedit15.Text;
adotable1.FieldByName('studentname').AsString:
=dbedit16.Text;
adotable1.FieldByName('studentnum').AsString:
=dbedit17.Text;
adotable1.FieldByName('studentcollage').AsString:
=dbedit18.Text;
adotable1.FieldByName('studentclass').AsString:
=dbedit19.Text;
adotable1.FieldByName('studentage').AsString:
=dbedit20.Text;
adotable1.FieldByName('studentsex').AsString:
=dbedit21.Text;
adotable1.post;
showmessage('添加成功');
adotable1.Append;
end
else
begin
showmessage('添加失败');
adotable1.Append;
end;
end;
end;
procedureTxueshengguanli.BitBtn3Click(Sender:
TObject);
begin
adotable1.Edit;
ifmessagedlg('确实要删除该学生?
',mtWarning,[mbOK,mbCancel],0)=mrokthen
beginadotable1.Delete;
showmessage('删除成功');
end
else
begin
showmessage('删除失败');
end;
end;
procedureTxueshengguanli.TabSheet1Show(Sender:
TObject);
begin
adotable1.Append;
end;
procedureTxueshengguanli.TabSheet3Show(Sender:
TObject);
begin
edit1.Text:
=adotable1.Fields[0].AsString;
edit2.Text:
=adotable1.Fields[1].AsString;
edit3.Text:
=adotable1.Fields[2].AsString;
edit4.Text:
=adotable1.Fields[3].AsString;
edit5.Text:
=adotable1.Fields[4].AsString;
edit6.Text:
=adotable1.Fields[5].AsString;
edit7.Text:
=adotable1.Fields[6].AsString;
adotable1.Edit;
end;
procedureTxueshengguanli.DBGrid1CellClick(Column:
TColumn);
begin
edit1.Text:
=adotable1.Fields[0].AsString;
edit2.Text:
=adotable1.Fields[1].AsString;
edit3.Text:
=adotable1.Fields[2].AsString;
edit4.Text:
=adotable1.Fields[3].AsString;
edit5.Text:
=adotable1.Fields[4].AsString;
edit6.Text:
=adotable1.Fields[5].AsString;
edit7.Text:
=adotable1.Fields[6].AsString;
end;
procedureTxueshengguanli.BitBtn5Click(Sender:
TObject);
begin
ifedit1.Text=''thenshowmessage('请输入ID')
elseifedit2.Text=''thenshowmessage('请输入姓名')
elseifedit3.Text=''thenshowmessage('请输入学号')
elseifedit4.Text=''thenshowmessage('请输入院系')
elseifedit5.Text=''thenshowmessage('请输入班级')
elseifedit6.Text=''thenshowmessage('请输入年龄')
else
begin
adotable1.edit;
adotable1.Fields[0].AsString:
=edit1.Text;
adotable1.Fields[1].AsString:
=edit2.Text;
adotable1.Fields[2].AsString:
=edit3.Text;
adotable1.Fields[3].AsString:
=edit4.Text;
adotable1.Fields[4].AsString:
=edit5.Text;
adotable1.Fields[5].AsString:
=edit6.Text;
adotable1.Fields[6].AsString:
=edit7.Text;
adotable1.Post;
showmessage('修改成功');
end;
end;
procedureTxueshengguanli.BitBtn6Click(Sender:
TObject);
begin
adotable1.Refresh;
end;
procedureTxueshengguanli.Button2Click(Sender:
TObject);
begin
adotable1.Active:
=true;
ifRadioButton3.Checkedthen
ifnotadotable1.Locate('studentid',edit8.Text,[])then
begin
showmessage('没有该同学,请重新输入');
edit8.Text:
='';
end
else
begin
adotable1.Locate('studentid',edit8.Text,[]);
edit8.Text:
='';
end;
ifRadioButton4.Checkedthen
ifnotadotable1.Locate('studentname',edit9.Text,[])then
begin
showmessage('没有该同学,请重新输入');
edit9.Text:
='';
end
else
begin
adotable1.Locate('studentname',edit9.Text,[]);
edit9.Text:
='';
end;
end;
procedureTxueshengguanli.Button1Click(Sender:
TObject);
begin
adotable1.Active:
=true;
ifRadioButton1.Checkedthen
ifnotadotable1.Locate('studentid',edit13.Text,[])then
begin
showmessage('没有该同学,请重新输入');
edit13.Text:
='';
end
else
begin
adotable1.Locate('studentid',edit13.Text,[]);
edit1
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 图书 管理 系统 设计 报告