项目组:宋庆江 孟先顺 刘光籼 赵时芒
贵 州 民 族 学 院
二00四屇学生毕业论文
系别:数学与计算科学系
专业:计算机科学与技术
姓名:宋庆江
1
二00四年五月二十日
系图书管理系统设计思想及方案
项目组:宋庆江 孟先顺 刘光籼 赵时芒
系图书管理系统设计思想及方案
设计者:宋庆江 指导老师:席泓
贵州民族学院数学与计算机科学系2000级
摘要
本系统使用C++Builder 6.0开发工具,主要使用SQL语句,结合Access数据库、C++Builerr的ADO控件来实现数据库的操作。系图书管理系统主要对图书馆管理日常工作中遇到的实际问题,例如书籍信息、读者信息、借阅信息、图书采购中供货商信息、定单信息进行管理. 关键词 ACCESS ADO C++Builer 6.0 c/s模式
Thinking and Program of Library Manage System
Designer:Song Qingjiang Advisor:Xi Hong
Guixzhou University for Ethnic Minorities Computer science department grade 2000
Abstract
This system uses C++Builer 6.0 developing instrument, uses SQL sentence mainly, combines Access data base, The controlling part of DATA and controlling part of ADO come to realize the operation of the data base .Books administrative system manage practical problem that routine run into to library mainly, For example books information, reader information, information of borrowing, order form message manage in purchasing, Can realize the following tasks :
Key Words:ACCESS ADO C++Builder C/S Mode
注明:系统首次登陆名为:sqj1980,密码为:sqj629,权限:administrator;运行本系统,解压到任意目录,即可运行;另外,本文档不包括系统的实现代码,代码和可执行文件一并呈上。 1、内容 1.1 前言
随着学院的扩招,作为系图书馆的服务,直接面对的是各班级的学生及老师,其服务质量直接影响学生学习的兴趣及吸取新知识的效益,系图书馆的功能在某种程度上越显得重要。为了提供优质的学生服务的窗口,充分利用现有的系图书资源,满足系里各班级学生的需求,建立一个统一的高效的系图书管理系统势在必行。
目前,系的图书借阅管理还处在手工管理阶段,所有的操作都是通过手工来完成,在某种程度上效益不高,
而且不易于学生的查阅,更不便于查找学生借书的情况(是否在规定的时间内把图书归还)等等信息。设想,如果有一个自动的管理方法,即省事,又节省人力资源,综合种种利蔽,本组决定建立一套软件以方便系图书的借阅和进出管理。
2
系图书管理系统设计思想及方案
项目组:宋庆江 孟先顺 刘光籼 赵时芒
系图书管理系统借鉴学院图书管理系统的工作流程,吸取学院图书管理系统的好处,通过多次借还书的管
理流程,形成系统流程及各个模块。 1.2 用户需求说明
系图书管理系统将图书及学生信息和计算机的数据处理、控制融合在一起,为学生提供图书借阅、图书信息
查询、学
生借阅信息查询等功能。
数计系学生人数以越1000人,为提高系图书藏书量,系不断买入新书,这也增加了管理的难度,更加上工作
日趋难找,学生的学习情趣也不断的高涨,系图书管理系统的功能应能实现图书馆管理的优化。
系图书管理系统管理功能应做到:
a:增加服务方式,提高服务水平 b:提供综合服务
c:规范管理行为,突出系整体形象
d:拓展图书借阅管理手段,提供图书进出决策依据 系图书管理系统通过以下几个方面提高图书借阅管理质量
a:图书借阅管理服务的方便性:学生只要通过统一的借阅证编号可以方便的实现图书的借阅和信息查询。 B:图书借阅管理的及时性、高效性:学生只需一个借阅证即可实现以前不能做到的事情,减少工作流程。 C:统一的、简便的工全界面:系图书管理系统提供的统一的用户接口,通过统一的用户窗口向学生提供全面借阅服务,使不同水平的用户很方便即可达到高的操作水平。 系统开发主要依据:
a:大学四年借阅图书的经验总结 b:学院图书管理系统的工作提示 c:系图书管理操作的不简便性 d:系图书量的日趋增加 e:系学生数量的不断增加 f:系学生需求的日趋繁杂
本系统为学生及图书管理员提供了一个全方面的、简便的、高效的管理手段
1.3 总体设计目标
建成的系图书管理系统将满足如下的要求:
a:统一的借阅证编号:以统一的方式进行借阅证编号 b:统一的界面:统一的和学生及老师交流的界面
3
系图书管理系统设计思想及方案
项目组:宋庆江 孟先顺 刘光籼 赵时芒
c:统一的功能:统一的各种查询、借阅、图书、学生管理功能 系统实现功能技术内容如下:
a:在一个平台上实现学生、图书、借阅、打印、历史统计功能 b:结合数据库主机访问处理学生借阅图书 c:具备较高的借阅管理功能 d:系统各类需求的平滑升级
1.4 系统的设计原则
先进性:采用现阶段流行的C/S模式实现管理的自动化,并可以通过升级保持系统的先进性,延长系
统的生命周期。
成熟性:保证先进的技术是稳定的、成熟的,支持现有的多客户端访问机制。 开放性、灵活性:实现在每一的平台上容纳多种不同的服务
经济实用:和现在的资源可以紧密结合,避免重复的投资,降低工程造价,并留有升级的余地。 满足对容量和容错的需求:要充分考虑到今后图书量的增加及学生数量的增加,系统充分考虑各种用
户操作异常,满足系统的容错要求。
易于管理的维护:出于管理和效益的考虑,系统必须易于使用,以减少图书管理员熟悉系统所花的
时间;同时,系统维护应尽量集中、简单,尽量避免复杂系统的维护开销,减轻管理员的负担,提高管理和决策的效益。
强大的可开发性:系统应功能强大的开发工具,充分支持流行的开发语言,开发系统应易用而且够
强大以满足变化的需求。 1.5 功能模块图:
4
系图书管理系统设计思想及方案
项目组:宋庆江 孟先顺 刘光籼 赵时芒
安全管理
管理员管理模块
历史管理模块 清空历史记录管理 超期罚款交受管理 系图书管理系统借阅管理模块 一般用户个人信息管理模块 用户登陆验证功能 学生信息管理模块 基本信息管理 图书信息管理模块
1.6能子块的功能说明如下:
1.6.1一般用户个人信息管理模块:
借阅证管理 常用参数设置 完成一般用户个人信息的修改,包括用户名、密码,不包括权限,本模块主要是为维护用户信息安全,提供一个方便的手段。模块的界面如下:
5
系图书管理系统设计思想及方案
项目组:宋庆江 孟先顺 刘光籼 赵时芒
1.6.2 管理员管理模块
针对一般管理系统安全的要求,应具备管理员身份,管理员可以通过这一功能完成新用户的注册,老用户的删除,老用户的权限的修改,以适应不同的用户具备不同的管理权限,在一定的程序上让系统运行更为安全、更为稳定。它包括用户名、权限的设置,但不提供密码的设置,默认的情况下,密码等同于新用户的权限,以方便用户管理,用户登陆,充分考虑每一方方面面,运行效果如下:
1.6.3 借阅管理模块
作为一个系统最为重要的功能模块,它应该具备完善的借还管理,强大的借阅查询功能,以及超期数据的打印功能,当然,作为最为常用的管理界面,友好的界面也是管理员操作正确性的一大保证模块,充分考虑以上要求,引用上流行的网上第三方outlook控件,而且代码设计以及各界面元素兼故动态生成数据功能;通过统一的借阅证号,我们可以方便的得知学生的借书、超期情况、交受罚款情况;在功能的实现中,
6
系图书管理系统设计思想及方案
项目组:宋庆江 孟先顺 刘光籼 赵时芒
我们充分考虑学生的借阅情况,并根据借阅情况决定学生读者是否还能借阅图书,例如,如果学生在借阅图书中超期并未交罚款,管理系统应能得知并不给予学生借书的权利;运行界面如下:
1.6.4 学生基本信息管理模块
本模块是对学生的基本信息作管理,包括功能:学生的数据修改、删除,新生的入库,学生的基本信
息的查询;
在这里,为了使程序具备通用性,我们的每一个查询子项均支持模湖查询,在管理员对某一学生的某一信息不够清楚时,能过这一项功能,即可实现简单而准确的查询,很大程度上简化管理员的操作难度,也使程序更完善;运行效果如下:
7
系图书管理系统设计思想及方案
项目组:宋庆江 孟先顺 刘光籼 赵时芒
1.6.5 图书信息管理模块
图书信息是学生借书的依据,所以必须具备准确性,完整性;针对这一点,图书信息管理模块就应该能够提供完善的信息查询功能,图书进出库功能,为避免管理员因输入大量数据而出错,所以系统更要具备数据信息修改的功能;当然作为图书信息,应时时临控因学生借阅图书而引起的数据项数据的改变。如下图:
1.6.6 交受罚款管理模块
由于学生借阅图书不可避免的会超期,而作为一个管理员,他不能保证学生在归还图书时立即交受罚
8
系图书管理系统设计思想及方案
项目组:宋庆江 孟先顺 刘光籼 赵时芒
款,所以有必要建立一个单独的管理模块以适应不同的交费情况;因而本模块就具备罚款交受的统计功能,包括超期天数的统计,单天交费标准就透明,总交受罚款金额,能够查看借书情况;在这里,超期天数的时时统计,我们使用了并不精确的统计方法,即一个月按30天计算,而一年按365天计算,这样一来,即可给程序编码带来方便,也能使系统运行速度更快,不可否认,在数据量极大的时候,速度是首选考虑的第一因素;运行界面如下:
1.6.7 清空历史记录管理模块
本模块完成对借书历史记录、超期历史记录、还书历史记录的清空,这一点是很重要的,毫无疑问,
在一个系统里面,要提供完善的功能,就必须具备垃圾的清空能力,我们不能让数据库出现冗余数据的不断增加,这是极其关健的,数据量的增加,必然导致访问速度的减缓,最后以致整个系统的全盘崩溃;本模块的运行界面与一般的系统无二样,固这里不举出,可参看系统运行效果。
1.6.8 常用参数设置管理模块
功能如下:
单天罚款金额设置 最大超期天数的设置
充分考虑到系统的通过性,我们设计了这一管理功能,目的在让管理员管理更为轻松,面功能也更为完善,运行界面可参看运行程序结果。
1.8.9 借阅证管理
9
系图书管理系统设计思想及方案
项目组:宋庆江 孟先顺 刘光籼 赵时芒
主要是实现借阅证的打印,这一点是出于对学生借阅图书方便性为出发点而设计,具体没有什么难点
及其它功能,固不在这里详细说明,只附上一个打印预览例子,如下:
1.6.10 用户登陆验证功能
作为一个管理系统,登陆验证是必备的功能之一,是管理员管理正确的保证,也是确保系统安全稳定运行必备条件,
运行效果如下:
1.7数据库文件说明
10
系图书管理系统设计思想及方案
项目组:宋庆江 孟先顺 刘光籼 赵时芒
描述:作为数据库系统管理软件,数据库的好坏直接影响到软件的运行速度,所以我们通过不断的认真思考,认为所有的开发均要以数据库系统导论为依托。
综合考虑各种系统因素及需求,我们设计出数据库,基本上达到BCNF(扩充的确第三范式)范式,即满足如下:
所有非主属性对每一个码都是完全函数依赖
所有主属性对每一个不包含它的码,也是完全函数依赖 没有任何属性完全函数依赖于非码的任何一组属性
为了使系统更完整,图书管理员管理更为方便,系统更为灵活,易于升级,我的创建了九个表,包括系统的信息表、常数设置表以及密码表,各表设计如下(数据库表的E_R图省略):
1.7.1 borrow_book表(图书信息表)
主键(book_id)
1.7.2 borrow_stud表(学生信息表) 主键(borrow_id)
1.7.3 borrow_return(还书表)
主键(book_id,stud_id,borrow_date,return_date)
1.7.4 borrow_bstud(借阅表) 主键(book_id,stud_id)
11
系图书管理系统设计思想及方案
项目组:宋庆江 孟先顺 刘光籼 赵时芒
1.7.5 fk(罚款设置表) 主键(szfk)
1.7.6 max_table(最大超期天数设置表) 主键(maxday)
1.7.7 pass_table(用户安全表) 主键(user)
1.7.8 return_days(超期天数表) 主键(book_id,stud_id,return_date)
1.7.9 return_ls(还书历史表) 主键(book_id,stud_id,return_date)
1.7.10系统数据库E_R图
12
系图书管理系统设计思想及方案
项目组:宋庆江 孟先顺 刘光籼 赵时芒
N 1 Return_ls 查询 fk 图书号 借阅证号 还书日期 交罚金额 设置罚款 罚款金额 1
1 Return_days Max_table 查询
1
图书号
N 1 Borrow_bstud 借/还 Borrow_stud 借阅证号 借书日期 还书是否已交罚款还书日期 设置超期天最大超期天数 罚款图书号 借阅证号 超期天数 借阅证学号 姓名 性别 系别 N 1 图书号
作者 1 N 图书名 包含 还书 专业 班级
图书类别
现有图书 出版社 Borrow_book 图书号 借阅证号 Borrow_return 年级 联系电话 最大库存 借书日期 还书日期 13
系图书管理系统设计思想及方案
项目组:宋庆江 孟先顺 刘光籼 赵时芒
1.10系统创新
充分考虑到管理需求,认真设计,带来图书管理的方便
使用C++Builder开发客户端应用程序,ACCESS作为数据库管理系统,易于扩展和升级 多重身份管理,给系统带来足够的安全保证 亲切的管理界面,给管理员以美感
功能的强大,使管理即省时、又省事,当然更节省资源
系统可运行于各种windows版本系统,不需打包,不需安装运行环境 开放的数据库访问机制,使数据库访问更方便,更快速 多文档管理界面,实现同一客户端不同服务的任意切换 1.11个人体会
1. 充分考虑用户需求 2. 充分利用人力及物力资源 3. 不同个人不同思想的结果
4. 共同努力造就功能完善、强大的系统 5. 知识需要不断的积累
1.12结束语
系图书管理系统充分利用了大学已学知识及项目组的成员的开发经硷;知识结构包括了数据库系统概论、c++Builder开发知识、软件工程知识等各学科;我们在经过了若干天天的开发,相信系统应适应了系图书管理的需求,系统的最后阶段的运行实施,我相信必然会给系图书馆的管理带来方便。
2.出于对篇符的考虑,以下只附加借阅管理模块实现方法及主要代码: 2.1 实现方法
本模块涉及5个基本功能分别说明如下:
2.1.1 借出图书:完成学生借书的管理,系统首先查询学生信息表,看是否存在这一学生,如存在,查询图书表看是否存在这一图书,如存在,则查询现有图书量,如不为零,则查询超期表,看是否有学生的记录,没有,则借出图书;如果以上有一条件不满足,则弹出异常,借书操作终止;在借出图书的同时,图书表字段“现在图书量”自动减一,将借书记录插入到借阅表当中。
2.1.2 还书管理:完成学生借阅图书的归还管理,系统还书需要借阅证号和图书条目号,和借出图书管理一样,首先要对学生和图书进行有效性验证,主要是出于对学生借还正确性的考虑,如验证通过,则归还图书;将还书记录插入到还书历史管理表当中,同时进行计算:获得当前系统时间,取出借还管理
14
系图书管理系统设计思想及方案
项目组:宋庆江 孟先顺 刘光籼 赵时芒
表当中的借书时间,将当前时间与借书时间进行不规范的求差,计算出图书总借出时间,然后查询超期设置表,将计算出的图书总借出时间与超期表中的最大超期天数求差,如为负,则表明没有超期,弹出还书成功对话框,确认即归还了图书;如求差的值为正,表明超期,自动在超期记录表中插入记录,标明该生超期,并标注超期天数,是否已交罚款,弹出要求学生交罚款的警告对话框,确认完成还书管理,图书表现有存书量加一.
2.1.3 查询给出借阅证号的学生的借书情况:首先对给出的借阅证号给出有效性验证,有效,则查询借阅管理表,给出记录并在DBGrid控件中显示,当多于一条借书记录时,管理员点击DBGrid控件可得知对应的图书信息;为了使功能更强,这里我们设计使用了多页显示控件,即有三个选项卡,用户选择不同的选项卡,可以得到不同的关键的信息,在第二个选项卡中,我们查询了还书历史记录表,通过这一功能完成对还书历史记录的查询,而第三个选项卡,我们查询了超期历史表,对给出学生的超期罚款情况进行查询,给出正确的结果。
2.1.4 查询给定图书条目号的图书的借阅情况:和查询学生情况一样,不同的是,这里是以图书条目号作为查询过滤的条件,同样进行了借阅的查询,历史的查询,超期的查询。
2.1.5 打印催交罚款管理:为了使系的图书管理运行正常而设置这一功能,本功能涉及到学生信息表、超期表、图书信息表等多个表;系统通过查询超期记录表,查询是否交罚款字段,如果没有交,则进行连接查询,取出学生的基本信息,包括姓名、系别、年级、班级,再从超期记录表中取出超期情况,主要是超期天数,这些字段作为一行进行打印输出,以便催交罚款;设计当中,我们使用C++Builder自带的报表设计功能,其功能是相当完善和强大的,当然不可避免也有不足之处,如界面之类,如果要要求功能更强大,界面更完美,可使用第三方控件,如cell报表控件、FastReport控件等更为完善的控件,通过它们,我们可以设计出非常专业的报表。
2.3主要代码
//--------------------------------------------------------------------------- #include //--------------------------------------------------------------------------- #pragma package(smart_init) 15 系图书管理系统设计思想及方案 项目组:宋庆江 孟先顺 刘光籼 赵时芒 #pragma link \"mxOutlookBarPro\" #pragma link \"mxOutlookBarPro\" #pragma link \"mxOutlookBarPro\" #pragma link \"mxOutlookBarPro\" #pragma link \"mxOutlookBarPro\" #pragma link \"mxOutlookBarPro\" #pragma link \"mxOutlookBarPro\" #pragma link \"mxOutlookBarPro\" #pragma link \"mxOutlookBarPro\" #pragma resource \"*.dfm\" Tborrow_f *borrow_f; //--------------------------------------------------------------------------- __fastcall Tborrow_f::Tborrow_f(TComponent* Owner) : TForm(Owner) { m1=false; m2=false; } //--------------------------------------------------------------------------- void __fastcall Tborrow_f::FormClose(TObject *Sender, TCloseAction &Action) { Action=caFree; main_f->b3=false; } //--------------------------------------------------------------------------- void __fastcall Tborrow_f::FormShow(TObject *Sender) { PageControl1->ActivePageIndex=0; } //--------------------------------------------------------------------------- 16 系图书管理系统设计思想及方案 项目组:宋庆江 孟先顺 刘光籼 赵时芒 void __fastcall Tborrow_f::Edit1Change(TObject *Sender) { if(Edit1->Text.IsEmpty()) return; char *str=Edit1->Text.c_str(); if((str[Edit1->Text.Length()-1]>'9')||(str[Edit1->Text.Length()-1]<'0')) { Edit1->Text=\"\"; Edit1->SetFocus(); } } //--------------------------------------------------------------------------- void __fastcall Tborrow_f::mxOutlookBarPro1Headers0Buttons0Click( TObject *Sender) { bool tf; tf=false; if(!Edit1->Text.IsEmpty()&&!Edit2->Text.IsEmpty()) { DM1->ADO_stud->Close(); DM1->ADO_stud->SQL->Clear(); DM1->ADO_stud->SQL->Add(\"select *from borrow_stud where borrow_id=:ID\"); DM1->ADO_stud->Parameters->ParamByName(\"ID\")->Value=Edit1->Text; DM1->ADO_stud->Open(); if(DM1->ADO_stud->RecordCount==0) { ShowMessage(\"对不起,你不是本系学生,无资格借阅本系的书\"); return; 17 系图书管理系统设计思想及方案 项目组:宋庆江 孟先顺 刘光籼 赵时芒 } DM1->ADOchao->Close(); DM1->ADOchao->SQL->Clear(); DM1->ADOchao->SQL->Add(\"select *from return_days where stud_id=:ID\"); DM1->ADOchao->Parameters->ParamByName(\"ID\")->Value=Edit1->Text; DM1->ADOchao->Open(); if(DM1->ADOchao->RecordCount!=0) { for(int i=0;i if(!DM1->ADOchao->FieldByName(\"yes_no\")->Value) { tf=true; break; } } if(tf==true) { ShowMessage(\"你不能借这一本书,因为你还有罚款未交\"); return; } } DM1->ADObook->Close(); DM1->ADObook->SQL->Clear(); DM1->ADObook->SQL->Add(\"select *from borrow_book where book_id='\"+Edit2->Text+\"'\"); DM1->ADObook->Open(); if(DM1->ADObook->RecordCount!=0) { int num=DM1->ADObook->FieldByName(\"book_nowk\")->AsInteger; if(num<=0) 18 系图书管理系统设计思想及方案 项目组:宋庆江 孟先顺 刘光籼 赵时芒 { ShowMessage(\"这一本书已经被借出\"); return; } } else { ShowMessage(\"不存在你想要借的书\"); } DM1->ADOborrow->Close(); DM1->ADOborrow->SQL->Clear(); DM1->ADOborrow->SQL->Add(\"select *from borrow_bstud where book_id='\"+Edit2->Text+\"' and stud_id=:ID\"); DM1->ADOborrow->Parameters->ParamByName(\"ID\")->Value=Edit1->Text; DM1->ADOborrow->Open(); if(DM1->ADOborrow->RecordCount!=0) { ShowMessage(\"在你未还这一本书前,你不能借这一本书\"); return; } TDateTime *dt=new TDateTime(); *dt=Now(); DM1->ADOborrow->Insert(); DM1->ADOborrow->FieldByName(\"book_id\")->Value=Edit2->Text; DM1->ADOborrow->FieldByName(\"stud_id\")->Value=Edit1->Text; DM1->ADOborrow->FieldByName(\"borrow_date\")->Value=dt->DateString(); DM1->ADOborrow->Post(); ShowMessage(\"已借出这一本书\"); int sum=DM1->ADObook->FieldByName(\"book_nowk\")->AsInteger; sum-=1; 19 系图书管理系统设计思想及方案 项目组:宋庆江 孟先顺 刘光籼 赵时芒 DM1->ADObook->Edit(); DM1->ADObook->FieldByName(\"book_nowk\")->Value=IntToStr(sum); DM1->ADObook->Post(); } } //-------------------------------------------------------------------------- void __fastcall Tborrow_f::mxOutlookBarPro1Headers0Buttons1Click( TObject *Sender) { //float mon; int nowcount; if(!Edit1->Text.IsEmpty()&&!Edit2->Text.IsEmpty()){ int day; DM1->ADO_stud->Close(); DM1->ADO_stud->SQL->Clear(); DM1->ADO_stud->SQL->Add(\"select *from borrow_stud where borrow_id=:ID\"); DM1->ADO_stud->Parameters->ParamByName(\"ID\")->Value=Edit1->Text; DM1->ADO_stud->Open(); DM1->ADObook->Close(); DM1->ADObook->SQL->Clear(); DM1->ADObook->SQL->Add(\"select *from borrow_book where book_id='\"+Edit2->Text+\"'\"); DM1->ADObook->Open(); nowcount=DM1->ADObook->FieldByName(\"book_nowk\")->AsInteger; DM1->ADOmax->Close(); DM1->ADOmax->SQL->Clear(); DM1->ADOmax->SQL->Add(\"select *from max_table\"); DM1->ADOmax->Open(); day=DM1->ADOmax->FieldByName(\"days\")->AsInteger; DM1->ADOborrow->Close(); DM1->ADOborrow->SQL->Clear(); 20 系图书管理系统设计思想及方案 项目组:宋庆江 孟先顺 刘光籼 赵时芒 DM1->ADOborrow->SQL->Add(\"select *from borrow_bstud where book_id='\"+Edit2->Text+\"' and stud_id=:ID\"); DM1->ADOborrow->Parameters->ParamByName(\"ID\")->Value=Edit1->Text; DM1->ADOborrow->Open(); if(DM1->ADOborrow->RecordCount==0) { ShowMessage(\"你没有借过这一本书,或是你的借阅证号不对,请检查\"); } else { AnsiString str=DM1->ADOborrow->FieldByName(\"borrow_date\")->Value; TDateTime *dt,*dt1; dt=new TDateTime(); dt1=new TDateTime(); *dt=StrToDateTime(str); *dt1=Now(); DM1->ADOborrow->Delete(); DM1->ADOhuanls->Close(); DM1->ADOhuanls->SQL->Clear(); DM1->ADOhuanls->SQL->Add(\"select *from borrow_return\"); DM1->ADOhuanls->Open(); DM1->ADOhuanls->Insert(); DM1->ADOhuanls->FieldByName(\"book_id\")->Value=Edit2->Text; DM1->ADOhuanls->FieldByName(\"stud_id\")->Value=Edit1->Text; DM1->ADOhuanls->FieldByName(\"borrow_date\")->Value=dt->DateString(); DM1->ADOhuanls->FieldByName(\"return_date\")->Value=dt1->DateString(); DM1->ADOhuanls->Post(); unsigned short i,j,k,n,m,b; int num; dt->DecodeDate(&i,&j,&k); 21 系图书管理系统设计思想及方案 项目组:宋庆江 孟先顺 刘光籼 赵时芒 dt1->DecodeDate(&n,&m,&b); num=int((n-i)*365)+int((m-j)*30)+int(b-k); if(num>day) { num-=day; DM1->ADOchao->Close(); DM1->ADOchao->SQL->Clear(); DM1->ADOchao->SQL->Add(\"select *from return_days\"); DM1->ADOchao->Open(); DM1->ADOchao->Insert(); DM1->ADOchao->FieldByName(\"book_id\")->Value=Edit2->Text; DM1->ADOchao->FieldByName(\"stud_id\")->Value=Edit1->Text; DM1->ADOchao->FieldByName(\"return_date\")->Value=dt1->DateString(); DM1->ADOchao->FieldByName(\"borrow_maxday\")->Value=IntToStr(num); DM1->ADOchao->Post(); ShowMessage(\"请你去交付罚款\"); 〕 ShowMessage(\"你已经还书了!\"); DM1->ADObook->Edit(); DM1->ADObook->FieldByName(\"book_nowk\")->Value=IntToStr(nowcount+1); DM1->ADObook->Post(); } } } //--------------------------------------------------------------------------- void __fastcall Tborrow_f::mxOutlookBarPro1Headers1Buttons0Click( TObject *Sender) { if(!Edit1->Text.IsEmpty()) 22 系图书管理系统设计思想及方案 项目组:宋庆江 孟先顺 刘光籼 赵时芒 { DM1->ADO_stud->Close(); DM1->ADO_stud->SQL->Clear(); DM1->ADO_stud->SQL->Add(\"select *from borrow_stud where borrow_id=:ID\"); DM1->ADO_stud->Parameters->ParamByName(\"ID\")->Value=Edit1->Text; DM1->ADO_stud->Open(); if(DM1->ADO_stud->RecordCount==0) { ShowMessage(\"你输入的借阅证号有误!!请检查\"); return; } DM1->ADOborrow->Close(); DM1->ADOborrow->SQL->Clear(); DM1->ADOborrow->SQL->Add(\"select *from borrow_bstud where stud_id=:ID\"); DM1->ADOborrow->Parameters->ParamByName(\"ID\")->Value=Edit1->Text; DM1->ADOborrow->Open(); m2=false; m1=true; } } //--------------------------------------------------------------------------- void __fastcall Tborrow_f::mxOutlookBarPro1Headers1Buttons1Click( TObject *Sender) { if(!Edit2->Text.IsEmpty()) { DM1->ADObook->Close(); DM1->ADObook->SQL->Clear(); DM1->ADObook->SQL->Add(\"select *from borrow_book where book_id=:ID\"); DM1->ADObook->Parameters->ParamByName(\"ID\")->Value=Edit2->Text; 23 系图书管理系统设计思想及方案 项目组:宋庆江 孟先顺 刘光籼 赵时芒 DM1->ADObook->Open(); if(DM1->ADObook->RecordCount==0) { ShowMessage(\"你输入的图书条目号有误!!请检查\"); return; } DM1->ADOborrow->Close(); DM1->ADOborrow->SQL->Clear(); DM1->ADOborrow->SQL->Add(\"select *from borrow_bstud where book_id=:ID\"); DM1->ADOborrow->Parameters->ParamByName(\"ID\")->Value=Edit2->Text; DM1->ADOborrow->Open(); m2=true; m1=false; } } //--------------------------------------------------------------------------- void __fastcall Tborrow_f::DBGrid1CellClick(TColumn *Column) { if(m1==true){ AnsiString str=DM1->ADOborrow->FieldByName(\"book_id\")->Value; DM1->ADObook->Close(); DM1->ADObook->SQL->Clear(); DM1->ADObook->SQL->Add(\"select *from borrow_book where book_id='\"+str+\"'\"); DM1->ADObook->Open(); } if(m2==true) { int num =DM1->ADOborrow->FieldByName(\"stud_id\")->AsInteger; DM1->ADO_stud->Close(); DM1->ADO_stud->SQL->Clear(); 24 系图书管理系统设计思想及方案 项目组:宋庆江 孟先顺 刘光籼 赵时芒 DM1->ADO_stud->SQL->Add(\"select *from borrow_stud where borrow_id=:ID\"); DM1->ADO_stud->Parameters->ParamByName(\"ID\")->Value=IntToStr(num); DM1->ADO_stud->Open(); } } //--------------------------------------------------------------------------- void __fastcall Tborrow_f::PageControl1Change(TObject *Sender) { switch(PageControl1->ActivePageIndex) { case 1: DM1->ADOchao->Close(); DM1->ADOchao->SQL->Clear(); if(Edit1->Text.IsEmpty()&&Edit2->Text.IsEmpty()) { return; } else if(!Edit1->Text.IsEmpty()&&Edit2->Text.IsEmpty()) { //DM1->ADOchao->Close(); DM1->ADOchao->SQL->Add(\"select *from return_days where stud_id=:ID\"); DM1->ADOchao->Parameters->ParamByName(\"ID\")->Value=Edit1->Text; } else if(Edit1->Text.IsEmpty()&&!Edit2->Text.IsEmpty()) { DM1->ADOchao->SQL->Add(\"select *from return_days where book_id='\"+Edit2->Text+\"'\"); } else { 25 系图书管理系统设计思想及方案 项目组:宋庆江 孟先顺 刘光籼 赵时芒 DM1->ADOchao->SQL->Add(\"select *from return_days where stud_id=:ID and book_id='\"+Edit2->Text+\"'\"); DM1->ADOchao->Parameters->ParamByName(\"ID\")->Value=Edit1->Text; } DM1->ADOchao->Open(); break; case 2: DM1->ADOchaols->Close(); DM1->ADOchaols->SQL->Clear(); if(Edit1->Text.IsEmpty()&&Edit2->Text.IsEmpty()) { return; } else if(!Edit1->Text.IsEmpty()&&Edit2->Text.IsEmpty()) { //DM1->ADOchao->Close(); DM1->ADOchaols->SQL->Add(\"select *from return_ls where stud_id=:ID\"); DM1->ADOchaols->Parameters->ParamByName(\"ID\")->Value=Edit1->Text; } else if(Edit1->Text.IsEmpty()&&!Edit2->Text.IsEmpty()) { DM1->ADOchaols->SQL->Add(\"select *from return_ls where book_id='\"+Edit2->Text+\"'\"); } else { DM1->ADOchaols->SQL->Add(\"select *from return_ls where stud_id=:ID and book_id='\"+Edit2->Text+\"'\"); DM1->ADOchaols->Parameters->ParamByName(\"ID\")->Value=Edit1->Text; } DM1->ADOchaols->Open(); 26 系图书管理系统设计思想及方案 项目组:宋庆江 孟先顺 刘光籼 赵时芒 break; } } //--------------------------------------------------------------------------- void __fastcall Tborrow_f::mxOutlookBarPro1Headers2Buttons0Click( TObject *Sender) { DM1->ADOtong->Active=true; print_f->QR1->Preview(); DM1->ADOtong->Active=false; } //--------------------------------------------------------------------------- void __fastcall Tborrow_f::Edit1KeyDown(TObject *Sender, WORD &Key, TShiftState Shift) { /* if(Key>'9'||Key<'0') { Edit1->Text=\"\"; Edit1->SetFocus(); } */ } //--------------------------------------------------------------------------- 参考文献:<<数据库系统概论>>第三版 高等教育出版社 萨师煊 王珊 <<软件工程原理、方法与应用>>高等教育出版社 史济民 < < 27 系图书管理系统设计思想及方案 项目组:宋庆江 孟先顺 刘光籼 赵时芒 28 因篇幅问题不能全部显示,请点此查看更多更全内容