




已阅读5页,还剩12页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
目录第一章 绪论21.1开发背景21.2开发工具的选择2第二章 需求分析22.1总体需求分析22.2详细需求分析2第三章 总体分析33.1总体设计33.2数据库设计43.2.1 概念结构设计43.2.2 逻辑结构设计73.2.3 物理结构设计73.3详细设计113.4编码11第四章 总结124.1结论124.2学习体会134.3致谢134.4参考文献13第一章 绪论 1.1开发背景图书管理作为计算机应用的一个分支,有着手工管理无法比拟的优点,如检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。这些优点能够极大地提高图书管理的效率。因此,开发一套能够为用户提供充足的信息和快捷的查询手段的图书管理系统,将是非常必要的,也是十分及时的。因此,我们组决定设计一个图书管理系统。1.2开发工具的选择开发工具我们选择的是C+Builder。C+Builder是一款十分实用的数据库开发工具,它具有快速、高效、操作简便的特点。同时具有可视化的开发环境,自带VCL开发组件。对于开发小型数据库系统是一个不错的选择。第二章 需求分析2.1总体需求分析图书馆就是一个图书流通的地方,有比较大的工作量,重要的就是读者信息和图书流通的管理。图书管理系统包括基础信息维护、读者管理、采编管理、图书管理、图书流通管、统计分析管理、查询管理、其他辅助等功能。2.2详细需求分析图书管理系统就是对人员、图书的管理。在人员方面有读者、管理员、营业员等人员。图书的管理包括图书的图书类型、出版社、图书信息、图书注销、征订、验收、盘点等一、管理员是图书的最高管理人员,拥有最大的权限,例如对其他人员的权限设置,对图书流通的查询等。二、营业员是图书的操作人员,负责借还书等主要业务。三、读者就是营业员服务的对象,进行借还书。第三章 总体分析3.1总体设计一、操作主流程图登陆读者管理员营业员3-1操作流程图二、各模块流程图管理员基础信息维护统计分析查询读者类型设置书架、系统参数、管理员设置图书类型设置图书借阅、归还、注销、征订查询 3-1管理员流程图读者查询预约借书证挂失与解挂3-2读者管理营业员 统计分析管理图书流通管理读者管理图书管理征订查询借阅续借归还注销图书征订图书征订图书验收盘点丢失罚款借阅查询出版社管理信息管理注销查询归还查询信息管理 3-3营业员管理后台管理图书信息类型系统参数出版社图书征订图书预约图书借阅图书归还图书罚款书架图书罚款管理员权限职位读者信息类型3-4后台管理流程图3.2数据库设计3.2.1 概念结构设计分步设计E-R图1、 标识实体:从需求分析中抽出各个实体例如管理员、营业员、图书、书架、出版社等实体2、 标识关系 例如管理员拥有权限,读者为学生和教师的借阅权限,出版社订单等3、标识属性(包括主键、外键) 例如图书(图书编号,书名,类型,作者,译者,出版社编号,价格,页码,书架,现存量,库存量,入库时间,营业员,简介);4、将各实体的E-R图进行组合。5、检查E-R图是否符合需求。3-5整体E-R图3.2.2 逻辑结构设计出版社(出版社编号,名称,电话,地址)读者类型(类型,可借书册数,续借次数)读者信息(读者编号,姓名,性别,类型,出生日期,有效证件,证件号码,联系方式,登记日期,有效期至,营业员编号,备注,已借阅册数,是否挂失,密码)管理员(管理员编号,姓名,性别,年龄,电话,地址,密码)权限(权限,权限名称)职位(职位,职位名称)职位权限(职位,权限)书架(书架编号,名称,位置)图书类型(类型,借阅天数)图书信息(图书编号,书名,类型,作者,译者,出版社编号,价格,页码,书架编号,现存量,库存量,入库时间,营业员编号,简介,借阅次数,是否注销)图书借阅(读者编号,图书编号,借阅日期,应还日期,续借次数,营业员编号,状态)图书罚款(读者编号,图书编号,罚款日期,应缴金额,实收金额,交款验收,营业员编号,备注)图书归还(读者编号,图书编号,还书日期,营业员编号)图书记录(读者编号,图书编号,损坏类型,操作时间,营业员)图书预约(读者编号,图书编号,预约时间,确认)图书征订(出版社,图书编号,营业员编号,征订数量,征订日期,是否验收,验收日期)系统参数(办证费用,有效期,罚款)营业员(营业员编号,姓名,性别,年龄,电话,地址,密码)3.2.3 物理结构设计表3.2.1职位权限表属性类型长度键是否为空职位(Zid)int主键否权限(Qid)int主键否表3.2.2 权限表属性类型长度键是否为空权限(Qid)int主键否名字(Zname)nvarchar10表3.2.4读者信息表属性类型长度键是否为空读者编号(Rno)Char主键否姓名(Rname)nvarchar10性别(Rsex)nvarchar10类型(Rtype)nvarchar10外键否出生日期(Rbirth)Date有效证件(Rcard)nvarchar10证件号码(Rcardid)int联系方式(Rtel)nvarchar12登记日期(Rdate)Date有效日期(Rindate)Date营业员(Ano)Char外键否备注(Rremark)Char50 已借阅册数Int 是否挂失Char10 密码Char20 表3.2.5 图书信息表属性类型长度键是否为空图书编号(Bno)Char10主键否书名(Bname)Char10 类型(Btype)Char10外键否 作者(Bauthor)Char10译者(Btans)Char10出版社(Pno)Char10外键否价格(Bprice)double 页码(Bpage)Int 书架(Sno)Char10外键否现存量(Bexist)Int库存量(Btotal)Int 入库时间(Bintime)Date 营业员(Ano)Char10外键否简介(Bjianjie)Char50 借出次数(Bbortim)int 是否注销(Bcheck)Char10表3.2.6 图书借阅属性类型长度键是否为空读者编号(Rno)char10主键否 图书编号(Bno)char10主键否借阅时间(Jbordate)Date应还时间(Jretdat)Date续借次数(Xujiecishu)int营业员(Ano)Char10外键否状态(Jstatus)Char10表3.2.7图书征订属性类型长度键是否为空出版社编号(Pno)Char10主键否图书编号(Bno)Char10主键否营业员编号(Ano)Char10外键否征订数量(Mqty)Int征订日期(Mmdate)Date是否验收(Mcheck)Char10验收日期(Mcdate)Char10表3.2.8图书类型属性类型长度键是否为空类型(Btype)Char10主键否借阅天数(Bborday)int 表3.2.9 读者类型属性类型长度键是否为空类型(Rtype)Char10主键否可借书册数(Tushuceshu)Int续借次数(Xujiecishu)int 表3.2.10 出版社属性类型长度键是否为空出版社编号(Pno)Char10主键否名称(Pname)Char10 电话(Ptel)Char20地址(Paddr)nvarchar10表3.2.11 书架属性类型长度键是否为空书架编号(Sno)Char10主键否名称(Sname)Char10 位置(Saddr)varchar10等。3.3详细设计在整个系统的设计中负责图书流通模块的设计,其操作流程图如下:登录图书流通管理营业员图书罚款图书丢失图书预约图书续借图书归还图书借阅3.4编码 这一界面为数据访问模块,因为各个窗体均需要对数据库进行访问,可以把与数据库进行连接的控件放置到一个数据访问模块中,这样所有的窗体都可以共享来访问数据库。另外,由于借还书无法用条码实现,只能输入编号,所以出现了很多需要判断读者信息和图书信息等是否存在的问题,但是这不是主要的核心代码,每一个进行数图书流通的窗体都需要判断存在、挂失和注销。故在此展示一次:DB-Query1-Close();DB-Query1-SQL-Clear();AnsiString SQL2=select * from 读者信息 where Rno= +Edit1-Text+;DB-Query1-SQL-Add(SQL2);DB-Query1-Open();if(DB-Query1-RecordCount!=1) MessageBox(NULL,读者不存在,请重新输入!,错误,16+MB_TOPMOST); return;else AnsiString string2=挂失; if(string2=DB-Query1-FieldByName(Rcheck)-AsString.SubString(1,string2.Length() MessageBox(NULL,借书证已挂失,不能借阅图书!,错误,16+MB_TOPMOST); return; else DB-Query1-Close();DB-Query1-SQL-Clear();AnsiString SQL1=select * from 图书信息 where Bno= +Edit6-Text+;DB-Query1-SQL-Add(SQL1);DB-Query1-Open(); if(DB-Query1-RecordCount!=1) MessageBox(NULL,图书不存在,请重新输入!,错误,16+MB_TOPMOST); return; else AnsiString string1=是; if(string1=DB-Query1-FieldByName(Bcheck)-AsString.SubString(1,string1.Length() MessageBox(NULL,图书已注销,不能借阅该图书!,错误,16+MB_TOPMOST); return; 这一程序界面主要用了菜单栏和基本的文本框和DBGrid用来显示已借阅图书信息。实现过程主要检索图书信息和读者信息存在而且正常的情况下,把借阅信息插入到图书借阅表中并且更新读者信息表的已借阅册数和图书信息的现存量。核心代码如下:/把借阅信息插入到图书借阅表中DB-Query1-Close();DB-Query1-SQL-Clear();AnsiString SQL33=select * from 读者信息 where Rno= +Edit1-Text+;DB-Query1-SQL-Add(SQL33);DB-Query1-Open(); if(DB-Query1-FieldByName(Rbortim)-AsInteger=3) MessageBox(NULL,对不起,您借阅图书册数超过限制!,错误,16+MB_TOPMOST); return; else DB-Query1-Close();DB-Query1-SQL-Clear();AnsiString time1=Date();AnsiString time2=Date()+60;AnsiString yingyeyuan=Form4-Edit1-Text;AnsiString SQL11=insert into 图书借阅(Bno,Rno,Jbordate,Jretdat,xujiecishu,Ano,Jstatus)values(+Edit6-Text+,+Edit1-Text+,+time1+,+time2+,0,+yingyeyuan+,新借);DB-Query1-SQL-Add(SQL11);DB-Query1-ExecSQL();/更新读者信息表的已借阅图书册数DB-Query1-Close();DB-Query1-SQL-Clear();AnsiString SQL3=update 读者信息 set Rbortim=Rbortim+1 where Rno=+Edit1-Text+;DB-Query1-SQL-Add(SQL3);DB-Query1-ExecSQL();/更新图书信息的现存量DB-Query1-Close();DB-Query1-SQL-Clear();AnsiString SQL5=update 图书信息 set Bexist=Bexist-1 where Bno=+Edit6-Text+;DB-Query1-SQL-Add(SQL5);DB-Query1-ExecSQL();/查询数据库,在界面显示该读者借阅书籍DB-Query1-Close();DB-Query1-SQL-Clear();AnsiString SQL21=select * from 图书借阅 where Rno=+Edit1-Text+;DB-Query1-SQL-Add(SQL21);DB-Query1-Open();DataSource1-DataSet=DB-Query1;DBGrid1-DataSource=DataSource1;续借和还书代码和借阅代码相似。这一界面功能主要是读者信息管理,可以进行增加、删除、修改读者信息。然后把更新的读者信息插入数据库中。核心代码为:/增加读者DB-Query1-Close();DB-Query1-SQL-Clear();AnsiString time1=Date();AnsiString time2=Date()+1481;AnsiString yingyeyuan=Form4-Edit1-Text;AnsiString SQL1=insert into 读者信息(Rno,Rname,Rsex,Rtype,Rbirth,Rcard,Rcardid,Rtel,Rdate,Rindate,Ano,Rremark,Rbortim,Rcheck,Rpassword)values(+Edit1-Text+,+Edit2-Text+,+Edit3-Text+,+Edit4-Text+,+MaskEdit1-Text+,+Edit5-Text+,+Edit6-Text+,+Edit7-Text+,+time1+,+time2+,+yingyeyuan+,+Edit9-Text+,0,否,666666);DB-Query1-SQL-Add(SQL1);DB-Query1-ExecSQL();/删除读者DB-Query1-Close();DB-Query1-SQL-Clear();AnsiString SQL5=delete from 读者信息 where Rno=+Edit17-Text+;DB-Query1-SQL-Add(SQL5);DB-Query1-ExecSQL();MessageBox(Handle,删除成功!,提示,MB_OK);/修改读者DB-Query1-Close();DB-Query1-SQL-Clear();AnsiString SQL3=update 读者信息 set Rname=+Edit10-Text+,Rtype=+Edit12-Text+,Rtel=+Edit16-Text+,Rremark=+Edit15-Text+ where Rno=+Edit8-Text+;DB-Query1-SQL-Add(SQL3);DB-Query1-ExecSQL();图书信息以及出版社信息和读者信息界面及功能相似,不再一一赘述。这一功能是登记征订信息,中间还需要进行验收。征订时间和验收时间是有时间差的。核心代码如下:/插入征订信息DB-Query1-Close();DB-Query1-SQL-Clear();AnsiString time1=Date();AnsiString yingyeyuan=Form4-Edit1-Text;AnsiString SQL1=insert into 图书征订(Pno,Bno,Ano,Mqty,Mmdate,Mcheck)values(+Edit2-Text+,+Edit3-Text+,+yingyeyuan+,+Edit5-Text+,+time1+,否);DB-Query1-SQL-Add(SQL1);DB-Query1-ExecSQL();/验收盘点DB-Query1-Close();DB-Query1-SQL-Clear();AnsiString time1=Date();AnsiString SQL1=update 图书征订 set Mcheck=是,Mcdate=+time1+ where Bno=+Edit2-Text+ and Pno=+Edit1-Text+;DB-Query1-SQL-Add(SQL1);DB-Query1-ExecSQL();MessageBox(Handle,验收成功!,提示,MB_OK);该
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 《日语2》课程介绍与教学大纲
- 家乐福五一促销方案
- 青铜器有多高
- 水的电离 溶液的酸碱性与p【教师版】-新高二化学暑假提升(人教版)
- 酸碱反应的实质
- 老年人出游知识培训课件
- 老年人养生干货知识培训课件
- 人教版高考历史一轮复习讲义-源远流长的中华文化(含解析)
- 老年人体育知识培训内容课件
- 生理学模考试题及答案
- 云南贵金属新材料控股集团笔试
- 小学四年级美术社团活动计划
- 单项工程玻璃面积大于3000小于5000的允许损耗率
- 中耳炎病人的护理
- 同济大学浙江学院《通信原理实验》2023-2024学年第一学期期末试卷
- 2025年世界防治结核病日知识竞赛考试题库200题(含答案)
- 配电作业专业技能实操-登杆更换台架边相跌落式熔断器
- 影片备案报告范文
- Unit 2 We are family Section A 1a-1d 课件【人教新目标(2024)七年级上册】-1
- (完整版)国际疾病分类ICD-10-培训
- 全运会转播制作标准
评论
0/150
提交评论