图书管理系统课程设计报告_第1页
图书管理系统课程设计报告_第2页
图书管理系统课程设计报告_第3页
图书管理系统课程设计报告_第4页
图书管理系统课程设计报告_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

目录第1章 绪论2第2章 需求分析2第3章 总体设计3第4章 数据库设计44.1 概念结构设计44.2 逻辑结构与物理结构设计5第5章 详细设计7第6章编码8第7章 测试157.1 测试157.2 发现错误和解决方法16第8章设计总结16学习体会(附录1)16致谢(附录2)16参考文献(附录3)16第1章 绪论图书馆是信息交换和资源流通的重要媒介,对图书馆的信息化管理将大大提高图书资源的利用和信息的交换速度。图书管理系统是通过将借阅信息以数据库的形式由网络传输来完成各用户(教师或学生)所要的借阅方面的需求(如借阅,归还,预订等)。以打破传统的人工选课模式,极大地方便了使用人员和管理人员,节约了时间和空间,实现图书借阅自动化,自由化,使图书资源得到充分利用。建立图书管理系统,使每个用户自由地选到自己需要的图书,避免传统借书模式的繁琐、低效率、借阅程序臃肿等等的缺点,减轻相关人员的负担。本图书管理系统运用SQLServer2000、C+Builder等软件实现了基本的管理员登录、图书管理、读者管理、借还图书、图书查询以及信息维护等功能的图书管理系统。第2章 需求分析图书管理系统主要包括系统管理、读者管理、图书采购、图书编目、图书流通、统计、查询等一系列的功能。1、读者管理(1).新学期建立新班级,删除毕业班读者。 (2).为新生办理新借阅证。 (3).读者管理能完成读者调动、借书证挂失、补办、停止借阅、单独打印读者条码等日常事务。 (4).读者类别可以分类,可为每一类读者指定借阅规则。(5).读者可以通过管理员远程预约图书。2、采编管理(1).有完善的采编功能,能对新采购图书可以进行有效采编。 (2).图书采编能对相关图书进行分类别号编号,借助可扩展的编目库减轻编目人员的工作。 (3).图书注销有完整的备查档案。3、 流通管理(1).借书完全通过输入借阅证号,识别借书证是否有效,根据设定的规则进行管理。提示读者已借书数、超期图书应缴罚款等参考信息。 根据图书的种类确定借阅期限。罚款单价根据图书种类确定。(2).还书完全通过条码识别,自动作超期记录。 (3).图书预约可以为读者提供方便,可以进行管理及打印到书通知。 (4).图书损坏、丢失处理能显示每本书上次损坏的记录以及其它信息。4、 统计管理(1).综合统计统计图书馆目前的各种指标。 (2).馆藏统计可以统计、分析各时期的图书馆藏量、分类馆藏量,并以表格两种显示。 5、 查询管理(1).读者可以通过WEB进行图书检索,可以随意安排检索条件、检索项目。 (2).借阅综合查询可以查询按全体读者、各类别读者、某个部门、班级、个人进行借阅图书、超期图书 、借还书日期、借阅天数的查询。 (3).超期图书汇总可以按部门查询已超期图书,可打印催还图书通知单。 (4).可查询图书的被借阅史、读者的借阅史。 (5).应收超期罚款、已收罚金的明细、汇总帐。 (6).已注销、损坏图书查询。6、 其它辅助功能 (1).借阅人信息维护:对借阅人信息修改、删除。 (2).管理员信息维护:可以执行管理员密码修改、信息更新及删除。第3章 总体设计1、系统软件结构图图书管理系统登录 借书界面 还书界面图书信息维护借阅人信息维护管理员信息维护图书证信息维护出系统 退出系统图3-1 【图书管理系统登录】结构图2、系统边界图图3-2 【系统边界图】结构图3、安全设计(1).数据库的安全性数据库表的完整性设计,如主键和外键的确定。(2).访问权限的设计管理员才具有登陆本系统的权限,在管理员登陆的前提下进行借书、还书、信息维护等操作。(3).密码保护a.登陆界面时,密码以*形式显示;b.登录时连续三次密码错误则强制退出;c.修给管理员密码时需要输入两次以确认。第4章 数据库设计4.1 概念结构设计图书管理系统ER图如下:图4-1 图书管理系统的ER图该系统中所有操作都由图书管理员完成。因此将管理员设为单独的一个表。借阅人、借书证分别作为一个实体,也是必不可少的。首先由管理员对采购的图书进行馆藏号编号,所以有实体图书。系统红需要图书类别以确定借阅人限购数量,因此创建图书类别表。便于图书馆内图书信息的统计与查询,因此出版社作为实体存在。借阅人持借书证借书,产生表借阅,以及显示信息借阅历史。借阅人所需图书已借出时,可以通过管理员对所需图书预约,因此有表预约4.2 逻辑结构与物理结构设计1.逻辑结构设计逻辑结构设计,将概念模型转化为关系模型。图书馆的关系模型根据图4-1图书馆管理的ER图设计。并用关系模式的形式表示。借阅(借阅证号,馆藏号,借书时间,还书时间,到期时间,罚款金额,实交金额)借阅人(借阅证号,姓名,借阅人类别号* ,联系方式)借阅人类别(借阅人类别号,类别名,限借数量)借阅历史(借书证号,馆藏号,借书时间,还书时间,罚款数额)借阅证(借阅证号,状态编号*,现借数量,密码)借阅证类别(类别编号,类别名)出版社(出版社编号,社名,地址)图书(馆藏号,图书名,在库情况,作者,类型,出版社编号,单价,购书时间,isbn*,备注)图书类别(isbn,书目名,库存量,剩余数量)登录人员表(登录帐号,密码)管理员(编号,姓名,密码)预约(借阅证号,预约时间,截止时间,isbn*)2.物理结构设计实体属性说明备注借阅人借阅证号(primary key)姓名借阅人类别号(foreign key)联系方式借阅主体去图书馆借书的人借阅证借阅证号(primary key)类别编号状态编号借阅数量密码借阅的凭证借书时需要的证件,借书时只认证件不认人。图书馆藏号(primary key)图书名在库情况作者类型出版社编号单价购书时间Isbn(foreign key)被借阅的主体图书馆里的物品管理员编号(primary key)姓名密码管理图书馆的人图书馆里的管理人员,负责图书的管理工作。预约借阅证号(primary key)时间(primary key)isbn (foreign key)提前预订要借的图书图书类别isbn (primary key)书目名库存量剩余数量图书的具体属于哪类,已经是具体的一类书出版社出版社编号(primary key)社名地址出版该图书的机构借阅借阅证号(primary key)馆藏号(primary key)借书时间(primary key)还书时间到期时间罚款借书的有关信息借阅历史借阅证号(primary key)馆藏号(primary key)借书时间(primary key)还书时间罚款数额之前的借书记录借阅人类别借阅人类别号(primary key)类别名限借数量借阅人主体的分类,决定借书权限。借阅证状态状态编号(primary key)状态名是否可用图书在库情况在库编号(primary key)在库名是否在库第5章 详细设计在这次图书管理系统的设计中,我负责借阅人信息维护和管理员信息维护两个模块,两个模块功能类似。现以管理员信息维护为例具体如下。管理员信息维护按 编号查询返回主页面退出系统修改信息修改密码按 编号查询删除信息图5-1 管理员信息维护的流程图连接数据库,在窗体中通过各个组件来完成界面的设计。管理员信息管理,可以进行查询数据并进行相关处理,可以新增数据,删除数据,返回主页面或退出该管理系统。在借阅人信息维护中,与管理员信息维护功能相似,不同之处是,只能对查询所得数据进行修改,而不能删除或新增。第6章 编码鉴于两个模块功能及实现方式相似,所以现同样以管理员信息维护模块为例叙述编码过程.管理员信息维护界面截图如下:所用控件有:TDataSource、TADOQuery、TADOConnection、TLabel、TEdit、TButton、TDBGird。主要程序如下:void _fastcall Tadmisterinfor:Button5Click(TObject *Sender)if(Edit5-Text=) ShowMessage(请输入管理员编号!); return; else ADOQuery1-Active=false; ADOQuery1-SQL-Clear(); ADOQuery1-SQL-Add(UPDATE 管理员 SET 编号= + Edit5-Text + where 编号=+Edit1-Text+); ADOQuery1-ExecSQL(); ShowMessage(编号修改成功!); Edit1-Text=Edit5-Text; Edit5-Text=; ADOQuery1-Active=false; ADOQuery1-SQL-Clear(); ADOQuery1-SQL-Add(select * from 管理员 where 编号=+Edit1-Text+); ADOQuery1-ExecSQL(); ADOQuery1-Active=true; void _fastcall Tadmisterinfor:Button1Click(TObject *Sender)if(Edit1-Text=) ShowMessage(请输入编号!); return; else ADOQuery1-Active=false; ADOQuery1-SQL-Clear(); ADOQuery1-SQL-Add(select * from 管理员 where 编号=+Edit1-Text); ADOQuery1-ExecSQL(); ADOQuery1-Active=true; ADOQuery1-Open(); if(ADOQuery1-IsEmpty() ShowMessage(无此管理员!); /-输入编号并查询数据-void _fastcall Tadmisterinfor:Button2Click(TObject *Sender) if(Edit2-Text=) ShowMessage(请输入管理员姓名!); return; else ADOQuery1-Active=false; ADOQuery1-SQL-Clear(); ADOQuery1-SQL-Add(UPDATE 管理员 SET 姓名= + Edit2-Text + where 编号=+Edit1-Text+); ADOQuery1-ExecSQL(); ShowMessage(姓名修改成功!); ADOQuery1-Active=false; ADOQuery1-SQL-Clear(); ADOQuery1-SQL-Add(select * from 管理员 where 编号=+Edit1-Text+); ADOQuery1-ExecSQL(); ADOQuery1-Active=true; /-修改信息-void _fastcall Tadmisterinfor:Button3Click(TObject *Sender) if(Edit3-Text=|Edit4-Text=) ShowMessage(请输入密码和确认密码!); return; else if(Edit3-Text=Edit4-Text) ADOQuery1-Active=false; ADOQuery1-SQL-Clear(); ADOQuery1-SQL-Add(UPDATE 管理员 SET 密码= + Edit3-Text + where 编号=+Edit1-Text+); ADOQuery1-ExecSQL(); ShowMessage(密码修改成功!); ADOQuery1-Active=false; ADOQuery1-SQL-Clear(); ADOQuery1-SQL-Add(select * from 管理员 where 编号=+Edit1-Text+); ADOQuery1-ExecSQL(); ADOQuery1-Active=true; else ShowMessage(两次密码输入不一致!); return; /-修改并确认密码-void _fastcall Tadmisterinfor:Button4Click(TObject *Sender) if(Edit1-Text=) ShowMessage(请输入管理员编号!); return; else if(mrYes=MessageDlg(确定删除?,mtWarning,TMsgDlgButtons()mbYesActive=false; ADOQuery1-SQL-Clear(); ADOQuery1-SQL-Add(delete from 管理员 where 编号=+Edit1-Text+); ADOQuery1-ExecSQL(); ShowMessage(删除成功!); Edit1-Text=; else return; /-删除信息-void _fastcall Tadmisterinfor:Button6Click(TObject *Sender) if(Edit6-Text=|Edit7-Text=|Edit8-Text=|Edit9-Text=) ShowMessage(请输入全部信息!); return; else if(Edit7-Text=Edit8-Text) ADOQuery1-Active=false; ADOQuery1-SQL-Clear(); ADOQuery1-SQL-Add(select * from 管理员 where 编号=+Edit9-Text+); ADOQuery1-ExecSQL(); ADOQuery1-Open(); if(!ADOQuery1-IsEmpty() ShowMessage(此编号已存在!); return; else ADOQuery1-Active=false; ADOQuery1-SQL-Clear(); ADOQuery1-SQL-Add(insert into 管理员(编号,姓名,密码) values( + Edit9-Text +,+Edit6-Text+,+Edit7-Text+); ADOQuery1-ExecSQL(); ShowMessage(新增管理员成功!); ADOQuery1-Active=false; ADOQuery1-SQL-Clear(); ADOQuery1-SQL-Add(select * from 管理员 where 编号=+Edit9-Text+); ADOQuery1-ExecSQL(); ADOQuery1-Active=true; Edit9-Text=; Edit8-Text=; Edit7-Text=; Edit6-Text=; else ShowMessage(两次密码输入不一致!); return; /-新增管理员-设置控件属性如下:组件名属性名属性新内容admisterinforCaption管理员信息维护Edit1TextEdit2TextEdit9TextLabel1Caption请输入管理员编号AutosizeFalseLabel2Caption姓名AutosizeFalseLable3Caption密码AutosizeFalseLable4Caption密码确认AutosizeFalseLable5Caption编号AutosizeFalseLable6Caption姓名AutosizeFalseLable7Caption密码AutosizeFalseLable8Caption密码确认AutosizeFalseLable9Caption编号AutosizeFalseButton1Caption查询Button2Caption确认修改Button3Caption确认修改Button4Caption删除该账号Button5Caption确认修改Button6Caption新增管理员Dbgrid1DatasourceDatasource1借阅人信息维护界面截屏如下:所用控件有:TDataSource、TADOQuery、TADOConnection、TLabel、TEdit、TButton、TDBGird。第7章 测试7.1 测试1. 对管理员信息维护的测试1)输入 点

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论