增院图书馆管理系统buider版技术文档.doc_第1页
增院图书馆管理系统buider版技术文档.doc_第2页
增院图书馆管理系统buider版技术文档.doc_第3页
增院图书馆管理系统buider版技术文档.doc_第4页
增院图书馆管理系统buider版技术文档.doc_第5页
免费预览已结束,剩余20页可下载查看

下载本文档

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

文档简介

面向对象程序设计论文 吴斌、彭志坚 华南师范大学增城学院课 程 论 文 题目:增院图书馆管理系统课 程 名 称 面向对象程序设计 考 查 学 期 2010/2011学年 第一学期 考 查 方 式 课程论文 姓 名 吴 斌 、 彭志坚 学 号 200806014120、200806014123 专 业 08软件工程 成 绩 指 导 教 师 袁学倩老师 24 目录1.引言31.1.开发目的31.2.系统功能:32.需求分析43.运行环境43.1.设备43.2.支持软件43.3.可供参考资料44.主要功能结构图55.系统数据库结构设计65.1.逻辑结构设计要点65.2.表格结构设计:66.接口设计76.1.用户接口77.软件基本界面结构设计77.1.登陆界面77.2.主界面77.3.图书入库处理界面87.4.读者登记处理界面87.5.图书借出处理界面87.6.图书借阅登记界面87.7.图书归还登记界面87.8.系统初始化界面87.9.注册用户界面87.10.图书查找处理界面97.11.自助借书界面97.12.最新通知界面97.13.个人信息界面98.个别界面实现图例98.1. 主界面98.2.登陆界面108.3.图书借阅登记处理界面108.4.图书查找处理界面118.5.图书归还登记界面119.实现效果12系统管理员权限功能12读者权限功能1210.个性化特色设计1310.1.美工一1310.2.美工二1311.系统出错处理设计1311.1.出错信息1312.课程设计总结13附录一15部分窗体代码15登录窗体代码15主窗体代码16借书窗体代码20还书窗体代码22附录二24课程论文成绩评定表241. 引言1.1. 开发目的 本项目的是用自己的知识为我们的图书设计一个特色的个性化的图书馆信息管理系统。方便图书馆管理员处理图书馆信息,方便广大师生查阅和借阅图书。图书管理系统的设计与实现基本思路 随着社会信息化技术的发展,管理信息系统在各个领域发挥着越来越大的作用。 图书馆的计算机信息化管理,能使图书馆业务更加高效,方便和快捷。为配合本学院的图书馆开放形式,我们设计了这个图书管理系统。1.2. 系统功能:1、信息查询模块:包括馆藏图书资料查询, 书目检索,读者资料查询, 图书借阅信息查询等;2、人员管理模块:新读者信息入库,新用户信息入库,及现有注册读者信息、用户信息的修改、删除等; 3、图书借阅管理模块:记录借阅图书的信息,以及对应读者的编号,借阅日期等,记录归还图书的信息,对应读者的编号, 归还日期等特色功能图书超期罚款功能,自动计算罚款金额等;4、图书库存管理模块:包括新书的入库,旧书注销,修改,图书借阅情况的统计;5、系统维护模块:包括数据库的维护、备份,图书管理员权限管理等; 图书馆拥有丰富的文献信息资源,是社会信息系统的重要组成部分,图书管理系统将为图书馆的信息化建设贡献一份力量。2. 需求分析该项目主要功能为:读者信息管理(有增加、删除、修改、查询等功能);库存信息管理(有入库、注销、修改、统计、查询等功能);图书借阅管理(有借阅,还书,罚款等功能);读者个人信息管理(有查询、自助借书等功能);系统维护处理(有数据备份和数据恢复)。附加功能:通知公告、新书推荐栏、流动信息框等等。3. 运行环境3.1. 设备研制该软件需要一台计算机。a. 计算机应在奔4或更高档次的计算机,内存在256MB或更大的;b. 暂在单机上实施,获得成功,可向C/S结构上推广应用。3.2. 支持软件操作系统为:Windows XP, Windows 7, 前台开发工具为:Visual Basic 6.0, 后台数据库为:ACCESS。3.3. 可供参考资料1. 网上查阅网页2.Visual Basic 程序设计(第二版)4. 主要功能结构图图书管理系统基本功能模块结构如图2所示。借书图书借阅管理还书显示借还书信息限量借书读者增加读者删除读者信息管理 读者查询、修改图书管理系统信息查询库存信息管理 入库修改、注销图书信息分类图书查询读者信息查询自助借阅图书读者个人信息 管 理密码修改图4.1 图书管理系统模块结构5. 系统数据库结构设计5.1. 逻辑结构设计要点系统内所使用的数据结构分别有:用户表oper(存储用户的信息);读者信息表reader(包括读者的所有信息);图书信息表book(包括图书的所有信息);借出图书表borrow(包括所有已借出去的图书的信息);5.2. 表格结构设计:表5.1 OPER表记录用户的信息,在登陆界面,注册界面等等都要用到该表。表5.2 READER表 记录读者的所有信息,在借书、还书界面、登记读者界面等等用到该表表5.3 BOOK表,记录图书的所有信息,在入库界面,借书、还书等界面都用到该表。表5.4 BORROW表,记录所借出去的图书的所有资料,图书借出界面,还书界面等用到该表。6. 接口设计6.1. 用户接口 系统将向用户提供窗口形式供用户进行数据的录入、查询、修改、统计、删除等的操作。对于删除等重要性操作,提供对话框的形式,让用户进一步确认。外部接口 系统需一台计算机,由Windows操作系统支持,Visual Basic 6.0前台开发工具,ACCESS后台数据库,前台开发工具与后台数据库通过ODBC连接。内部接口 系统通过注册、登陆,进入主菜单通过鼠标单击,可以驱动对应的功能模块。7. 软件基本界面结构设计7.1. 登陆界面1、登陆三次失败退出系统。2、没有帐号的外界人员,可通过注册拥有帐号,但必须同意图书馆公约,不能注册为系统管理员。3、登陆成功之后进入主界面。7.2. 主界面1、主界面分为三大部分:系统管理员、读者、新书推荐。2、系统管理员可使用主界面的所有功能,本校人员可使用读者和新书推荐的所有功能并可借还书,外界用户则只能浏览图书和新书推荐功能,无借还书权利。3、主界面有个流动信息通知框,提示过期读者还书。7.3. 图书入库处理界面1、图书入库窗口2、修改或注销旧图书信息3、查找图书4、图书分类处理7.4. 读者登记处理界面1、添加本校读者信息,同时自动生成用户,自动生成密码为:12342、修改、注销读者信息3、查询读者7.5. 图书借出处理界面1、记录所借出去的图书的所有信息2、修改、注销借出的图书的信息3、查询借出的图书7.6. 图书借阅登记界面1、借书登记2、显示相关信息7.7. 图书归还登记界面 1、还书登记2、显示还书相关信息3、如有过期,自动计算过期罚款7.8. 系统初始化界面1、删除系统所有信息7.9. 注册用户界面1、注册新用户2、修改旧用户信息7.10. 图书查找处理界面1、读者进行图书查找7.11. 自助借书界面1、读者进行自助借书,但借书的帐号必须和图书证号相同,不然,不能借书。7.12. 最新通知界面1、管理员可修改最新通知,读者不能2、读者只可查看通知7.13. 个人信息界面1、显示个人资料2、显示个人借书情况3、修改个人密码8. 个别界面实现图例8.1. 主界面图8.18.2. 登陆界面自助注册界面和用户注册界面类似 图8.28.3. 图书借阅登记处理界面自助借书界面类似 图8.38.4. 图书查找处理界面图书入库处理界面、借出图书处理类似 图8.48.5. 图书归还登记界面 图8.59. 实现效果系统管理员权限功能:图书入库处理在这里可对新书进行添加,推旧书进行删除,对错误信息进行修改,可设置条件进行查找图书。实现了分类(这里的图书编号必须是唯一的)读者登记处理这里是对读者的图书证号和读者信息进行管理,可进行添加、删除、修改,也可设置条件查找,同时这里注册的读者可以生成用户,其初始密码为1234。图书借出处理里是借出的图书的信息,可通过删除实现借书还功能,也可修改错误信息,也可以设置条件进行查找。图示借阅登记在这里可以实现借书功能,同时提示读者的借书信息。图书归还登记在这里可以实现还书功能,同时提示还书信息,以及自动计算超期罚款,提示借书超期罚款。系统初始化清除系统所有信息。注册用户注册新用户,修改已有用户信息。 表9.1读者权限功能:图书查找处理设置条件查找你喜欢的图书。同时可以实现分类查找。自助借书当你的用户名和你的图书证号一致时可实现自助借书,否则不行最新通知可查看图书馆系统管理员发布的最新通知个人信息这里可以查看自己的资料和自己的借书情况,并且可以修改自己的用户密码。 表9.210. 个性化特色设计以上是系统基本功能的实现,在实现基本功能之后我们对其进行美工特色设计,使其更加个性化,并增强其实用性。10.1. 美工一总体上,我们丢弃了XP的传统窗口,去掉标题栏,同时也用函数将客户区实现透明化。而且在选材时,也使用同一风格的淡雅书本。自己编写实现窗体客户区随鼠标移动的函数。10.2. 美工二主界面有一个流动信息窗口,通过不断的信息流动,大大减少静态文本框需要的软件界面空间,并以此进一步增加软件的生动活泼的感觉。11. 系统出错处理设计11.1. 出错信息系统对每一个模块(包括某些重要数据项)都通过我们的预测利用条件判定提供可能的出错信息,若出现错误,以对话框的方式输出错误信息的形式、含义及处理方法。12. 课程设计总结在本次的课程设计中,我们选择了面向对象的编程软件C+ Builder进行本次的课程设计。由于对Builder的熟悉程度还不够,在设计图书馆管理系统时,遇到的问题还是比较多的,但我们通过查询书籍,一边学习,一边解决问题,最终还是将这图书馆管理系统弄完了。在Builder中,已经封装好的类、对象、控件非常多,要想真正熟悉Builder,我们还需要继续努力,多去应用Builder进行实例编程。在本次的图书馆设计中,我们应用最多的是EDIT、BUTTON、数据库连接、显示控件等等。这些控件都是编程软件封装好的对象。我们主要修改其属性、应用其方法就能实现我们需要的基本功能。当然,为了让我们的软件更具我们自己的特色(譬如,信息流动框、通知板、界面等),我们还从以下方面做了比较多的工作。信息流动框,我们是利用Panel上添加文本框,通过不断循环移动文本框实现该功能;通知板,通过Meno与文件的相互存储读写;界面,去掉了标题栏,将客户区调成透明,加上个性化的界面图片。而在基本功能方面,错误信息提示,是通过我们进行预测,然后利用条件语句和信息提示框提醒用户。当然,我们并不是全部都利用Builder进行处理的,在数据处理方面,我们结合了ACCESS数据库。图书信息、读者信息等都是利用SQL语句进行处理的。做本次课程设计的最大收获是,以前一般都是使用面向过程的编程语言进行编程,然而现在我们开始慢慢地利用面向对象的编程工具进行编程。开始熟悉C+里面的,类、对象等等的概念,对这些知识有了比较形象化的理解。而且,我们相信,通过我们的不断学习,探讨,会更加熟悉相关方面的知识。附录一:部分窗体代码登录窗体代码int x1,x2,y1,y2;bool k;AnsiString user;/-_fastcall TForm1:TForm1(TComponent* Owner) : TForm(Owner)/-void _fastcall TForm1:Button1Click(TObject *Sender) n=n+1; if(Edit1-Text=) ShowMessage(请输入用户名); Edit1-SetFocus(); else if(Edit2-Text=) ShowMessage(请输入密码); Edit2-SetFocus(); else if(n3) ShowMessage(您登陆次数过多); Form1-Close();if(Edit1-Text!=&Edit2-Text!=) ADOQuery1-Active=false; ADOQuery1-SQL-Clear(); ADOQuery1-SQL-Add(select * from oper where 用户名=+Edit1-Text+ and 密码=+Edit2-Text+); ADOQuery1-Active=true; if(ADOQuery1-RecordCount!=0) user=Edit1-Text; Form2-Show(); Form1-Hide(); else ShowMessage(用户名或密码有误,请重新输入); Edit1-SetFocus(); /-void _fastcall TForm1:Button2Click(TObject *Sender)Form1-Close();/-void _fastcall TForm1:Button3Click(TObject *Sender) Form3-Show();/-void _fastcall TForm1:Image1MouseDown(TObject *Sender, TMouseButton Button, TShiftState Shift, int X, int Y) x1=X; y1=Y; if(Button=mbLeft) k=1;/-void _fastcall TForm1:Image1MouseMove(TObject *Sender, TShiftState Shift, int X, int Y) if(k) this-Top+=(Y-y1); this-Left+=(X-x1); 主窗体代码#include #pragma hdrstop #include wubin.h#include Unit2.h#include Unit4.h#include Unit5.h#include Unit6.h#include Unit7.h#include Unit9.h#include Unit11.h#include Unit12.h#include Unit13.h#include Unit14.h#include Unit16.h#include Unit17.h#include /-#pragma package(smart_init)#pragma resource *.dfmTForm2 *Form2;int a;/-_fastcall TForm2:TForm2(TComponent* Owner) : TForm(Owner)/-void _fastcall TForm2:Button1Click(TObject *Sender)cha-Show();/-void _fastcall TForm2:Button2Click(TObject *Sender)zijie-Show();/-void _fastcall TForm2:Button3Click(TObject *Sender)geren-Show();/-void _fastcall TForm2:Button4Click(TObject *Sender)ruku-Show();/-void _fastcall TForm2:Button5Click(TObject *Sender) duzhe-Show();/-void _fastcall TForm2:Button6Click(TObject *Sender) jiedeng-Show();/-void _fastcall TForm2:Button7Click(TObject *Sender) huanshu-Show();/-void _fastcall TForm2:Button8Click(TObject *Sender)jieshu-Show();/-void _fastcall TForm2:FormShow(TObject *Sender)if(user!=1234)Button4-Enabled=false; Button5-Enabled=false; Button6-Enabled=false; Button7-Enabled=false; Button8-Enabled=false; Button10-Enabled=false; Form14-Show();/-void _fastcall TForm2:FormClose(TObject *Sender, TCloseAction &Action) Application-Terminate();/-void _fastcall TForm2:Image1MouseDown(TObject *Sender, TMouseButton Button, TShiftState Shift, int X, int Y) x1=X; y1=Y; if(Button=mbLeft) k=1;/-void _fastcall TForm2:Image1MouseMove(TObject *Sender, TShiftState Shift, int X, int Y) if(k) this-Top+=(Y-y1); this-Left+=(X-x1); /-void _fastcall TForm2:Image1MouseUp(TObject *Sender, TMouseButton Button, TShiftState Shift, int X, int Y) k=0;/-void _fastcall TForm2:Button9Click(TObject *Sender)this-Close();/-void _fastcall TForm2:Timer1Timer(TObject *Sender)Edit1-Left = Edit1-Left - 20;if(Edit1-Left+Edit1-WidthLeft=a;/-void _fastcall TForm2:Button10Click(TObject *Sender)Form16-Show();/-void _fastcall TForm2:Button11Click(TObject *Sender) Form17-Show();/-借书窗体代码void _fastcall Tjieshu:Button1Click(TObject *Sender) if(Edit1-Text!=) ADOQuery1-Active=false; ADOQuery1-SQL-Clear(); ADOQuery1-SQL-Add(select * from reader where ); ADOQuery1-SQL-Add(借书证号=+Edit1-Text+); ADOQuery1-Active=true; if(StrToInt(DBEdit2-Text)-StrToInt(DBEdit3-Text)0) ADOQuery2-Active=false; ADOQuery2-SQL-Clear(); ADOQuery2-SQL-Add(select * from book where ); ADOQuery2-SQL-Add(图书编号=+Edit2-Text+); ADOQuery2-Active=true; if(DBEdit4-Text=借) ShowMessage(该图书已经借出); else ADOQuery3-Active=false; ADOQuery3-SQL-Clear(); ADOQuery3-SQL-Add(update book set 借否=借 where ); ADOQuery3-SQL-Add(图书编号=+Edit2-Text+); ADOQuery3-ExecSQL(); ADOQuery4-Close(); ADOQuery4-SQL-Clear(); ADOQuery4-SQL-Add(update reader set 已借书数 = 已借书数 + 1 where ); ADOQuery4-SQL-Add(借书证号=+Edit1-Text+); ADOQuery4-ExecSQL(); ADOQuery5-Close(); ADOQuery5-SQL-Clear(); ADOQuery5-SQL-Add(INSERT); ADOQuery5-SQL-Add(INTO borrow(图书编号,书名,作者,出版社,借书编号,姓名,单位,借书日期); ADOQuery5-SQL-Add(VALUES(+Edit2-Text+,+DBEdit6-Text+,+DBEdit7-Text+,+DBEdit8-Text+,+Edit1-Text+,+DBEdit1-Text+,+DBEdit5-Text+,+DateTimePicker1-DateTime+);); ADOQuery5-ExecSQL(); else ShowMessage(您借书数已经超限); /-void _fastcall Tjieshu:Image1MouseDown(TObject *Sender, TMouseButton Button, TShiftState Shift, int X, int Y) x1=X; y1=Y; if(Button=mbLeft) k=1;/-void _fastcall Tjieshu:Image1MouseMove(TObject *Sender, TShiftState Shift, int X, int Y) if(k) this-Top+=(Y-y1); this-Left+=(X-x1); /-void _fastcall Tjieshu:Image1MouseUp(TObject *Sender, TMouseButton Button, TShiftState Shift, int X, int Y) k=0;/-void _fastcall Tjieshu:Button2Click(TObject *Sender)this-Close();还书窗体代码void _fastcall Thuanshu:Button1Click(TObject *Sender) ADOQuery1-Active=false; ADOQuery1-SQL-Clear(); ADOQuery1-SQL-Add(select * from borrow where ); ADOQuery1-SQL-Add(图书编号=+Edit1-Text+); ADOQuery1-Active=true; ADOQuery4-Active=false; ADOQuery4-SQL-Clear(); ADOQuery4-SQL-Add(update book set 借否=否 where ); ADOQuery4-SQL-Add(图书编号=+Edit1-Text+); ADOQuery4-ExecSQL(); ADOQuery5-Close(); ADOQuery5-SQL-Clear(); ADOQuery5-SQL-Add(update reader set 已借书数 = 已借书数 - 1 where ); ADOQuery5

温馨提示

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

评论

0/150

提交评论