版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
PAGE17重庆大学基础性实践环节(数据库)实践报告实践课程名称数据库原理开课实验室数理学院理科楼201实验室学院数理学院年级2005级专业班信息与计算科学一班学生姓名董坤学号20051884开课时间2007至2008学年第一学期总成绩教师签名数理学院制课程名称《数据库原理》实践课时20学时实践项目重庆大学图书馆管理系统实践时间2007.5.8--2007.5.20实践目的图书馆管理是任何学校都要涉及的内容,其中包括对读者基本信息的管理以及图书管理,这就要求对这些数据进行统一管理,制作一个简便易操作的系统是很有必要的。通过对本系统得设计,可以增强我们对数据库知识的理解。更好的掌握面向对象编程的BorlandDelphi的编程技巧,体现其在数据库设计方面的优越性和简易性,使得系统变得更为人性化、智能化。下面是对课程设计的具体实验目的:(1)掌握BorlandDelphi中常见的控件的作用并能熟练运用。(2)掌握数据库系统设计的思路以及基本方法。(3)通过实际例子的制作,体会数据库原理课程的基本概念和基本知识在实例中的运用,最后体会理论知识在实际中的体现。实践环境Delphi6.0实践内容(算法、程序、步骤和方法)一、系统功能的分析与设计本系统将涉及多个窗体的制作,从而实现多个管理的功能,其中涉及图书信息、系统用户信息、读者信息、图书借阅信息等多种数据管理。从管理角度出发可将图书管理分为三类:图书信息管理、系统用户管理和读者数据管理。图书信息管理包括图书征订、编目、典藏、借还和查询操作,系统用户管理包括系统用户类别和用户数据管理,读者数据管理包括读者类别管理和读者个人数据的录入、修改、删除。重庆大学图书管理系统主要具有如下的一些功能:图书征订:包括图书征订数据的录入、修改、编辑等功能。图书编目:包括图书编目信息的录入、修改等功能。图书典藏:包括新书分配、库室调配等功能。图书流通:包括图书借阅、续借,图书返还,图书书目查询等功能。系统用户管理:包括系统用户数据的录入、修改、删除等功能。读者数据管理:包括读者类别管理,读者个人数据的录入、修改、删除等功能。根据分析,图书管理系统主要的功能模块如下图所示:通过数据库桌面工具就可以根据图书信息表的逻辑结构创建它的物理结构,如下图所示:图2图书信息表当表建立完后,可以将其保存在特定路径的文件夹中,在后面的系统界面制作中将引用,我将其安排的保存位置为:“D:\Delphi”,保存的数据表名为“book.db”。2、读者信息表它包括读者号、读者姓名、性别、备注共4项内容,将读者号设为主键,因为读者号是唯一的,能唯一识别。读者信息表的逻辑结构,如下图所示:图3读者信息表的逻辑结构通过数据库桌面工具就可以根据客房表的逻辑结构创建它的物理结构,如下图所示:图4读者信息表读者信息表建立好后,保存到“D:\Delphi”里,保存的数据表名为“reader.db”。3、借还信息表它包括订单号、位置、房间号等内容,订单号、位置、房间号都设置为第二索引,用于和其他表建立关联。它的逻辑结构定义结构如下:图5借还信息表的逻辑结构通过数据库桌面工具就可以根据客房表的逻辑结构创建它的物理结构,如下图所示:图6借还信息表借还信息表建立好后,保存到“D:\Delphi”里,保存的数据表名为“owner.db”。4、创建数据库别名以上表格均保存在“D:\Delphi”中,因此在窗体制作或报表中调用数据表名时需要用到新的数据库别名,这里我们创建新的数据库别名为“STANDARD1”,别名连接的路径为“D:\Delphi”三、创建工程与系统权限认证界面设计在系统所需要的一切数据表完成后,就可以着手进行系统界面的设计与创建了,一般进入主控界面前都会有权限认证界面,因此,我们把系统启动界面作为Form1,权限认证界面设置为Form2。其窗体创建的过程如下:新建一个工程,保存工程和相应的单元文件。其中启动界面如图7所示:图7启动窗体在系统启动窗体的制作中,对“进入系统”按钮编写相关的过程代码如下:procedureTForm1.SpeedButton1Click(Sender:TObject);beginForm2.show;end;对“退出系统”编写代码为:procedureTForm1.SpeedButton2Click(Sender:TObject);beginclose;end;权限认证界面如图7所示:图8权限认证窗体在权限认证窗体的制作中,对“Load”按钮编写相关的过程代码如下:procedureTForm2.SpeedButton1Click(Sender:TObject);beginif(combobox1.text='管理员')and(edit1.text='dk')and(edit2.text='20051884')thenbeginform3.show;form2.Hide;endelsebeginif(combobox1.text='学生')and(edit1.text='111111')and(edit2.text='111111')thenbeginform14.show;form2.Hide;endelsebeginshowmessage('你无权进入该系统');end;end;end;对“Exit”按钮编写相关的过程代码如下:procedureTForm2.SpeedButton2Click(Sender:TObject);beginclose;end;四、系统主控界面设计通常一个系统必须存在一个主控界面,主控界面是调用其他界面的截体,本系统的主控界面和它的基本结构如下图:图9系统主控界面在窗体上依次放上控件,各控件描述如表所示:表1控件类型控件名称描述窗体控件FormForm3图书馆管理程序的主窗体,Caption属性设置为“图书室管理”;FormStyle属性设置为fsMDIForm主菜单控件MainMenuMainMenu1用于为应用程序提供主菜单,这分别是:查询、图书借阅、数据维护、安全设置、帮助、退出系统图书信息查询SpeedButton1查询菜单下的子菜单Caption属性设置为“图书查询”读者信息查询SpeedButton2查询菜单下的子菜单Caption属性设置为“读者查询”在库图书查询SpeedButton3查询菜单下的子菜单Caption属性设置为“在库图书查询”出借图书SpeedButton4借阅菜单下的子菜单Caption属性设置为“出借图书”归还图书SpeedButton5借阅菜单下的子菜单Caption属性设置为“归还图书”图书登记SpeedButton6数据维护下的子菜单Caption属性设置为“图书登记”读者登记SpeedButton7数据维护下的子菜单Caption属性设置为“读者登记”安全设置SpeedButton8用于安全维护,Caption属性设置为“密码设置”帮助HelpCaption属性设置为“帮助”退出系统ExitMenuCaption属性设置为“退出系统”状态栏控件StatusBarStatusBar1用于显示系统状态信息在状态栏中放入一个Timer1,为状态条显示日期和时间编程,双击Timer控件编写代码如下:procedureTForm3.Timer1Timer(Sender:TObject);beginstatusbar1.SimpleText:=Datetostr(Date)+''+timetostr(time);end;对SpeedButton控件编写程序,使得鼠标指向控件时,控件变为红色,鼠标离开时,控件变回黑色,其中代码如下:procedureTForm3.Label4MouseLeave(Sender:TObject);beginifSenderisTLabelthenTLabel(Sender).Font.Color:=clBlack;end;procedureTForm3.Label8MouseLeave(Sender:TObject);beginifSenderisTLabelthenTLabel(Sender).Font.Color:=clBlack;end;五、其它功能窗体(管理员)的设计1、图书信息查询窗体的设计该窗体的主要功能是对图书各相关信息的查询,其中窗体的基本设置结构布局如图:图10图书信息查询窗体窗体制作主要过程如下:在窗体中放入一个Table1,设置其属性DataBaseName为STANDARD1,TableName为“book.db”,Active为True。在窗体中添加一个DataSource1,设置其DataSet为Table1。在窗体中放入一个DBGird1,设置其DataSource为DataSource1。放入一个DBNavigator1,设置DataSource为DataSource1。在窗体插入的控件中,数据表控件和数据源控件以及数据导航控件都是相联系的。对“查询”按钮编写相关的过程代码如下:procedureTForm4.BitBtn1Click(Sender:TObject);vargjz,gjzsz:string;begingjz:=combobox1.Text;gjzsz:=edit1.Text;if(gjz='')and(gjzsz='')thenwithquery1dobeginclose;sql.Clear;sql.Add('select*');sql.Add('frombook');sql.Add('orderbyCode');prepare;open;endelseif(gjz<>'')and(gjzsz='')thenshowmessage('请输入"查询关键字设置"信息!')elseif(gjz='')and(gjzsz<>'')thenshowmessage('请选择"查询关键字选择"信息!')elsebegingjzsz:=gjzsz+'%';ifgjz='图书编号'thenwithquery1dobeginclose;sql.Clear;sql.Add('select*');sql.Add('frombook');sql.Add('whereCodelike:gjzszname');sql.Add('orderbyCode');parambyname('gjzszname').AsString:=gjzsz;prepare;open;endelsebegingjzsz:=gjzsz+'%';ifgjz='图书名称'thenwithquery1dobeginclose;sql.Clear;sql.Add('select*');sql.Add('frombook');sql.Add('whereNamelike:gjzszname');sql.Add('orderbyCode');parambyname('gjzszname').AsString:=gjzsz;prepare;open;endelsebegingjzsz:=gjzsz+'%';ifgjz='图书类别'thenwithquery1dobeginclose;sql.Clear;sql.Add('select*');sql.Add('frombook');sql.Add('whereClasslike:gjzszname');sql.Add('orderbyCode');parambyname('gjzszname').AsString:=gjzsz;prepare;open;endelsebegingjzsz:=gjzsz+'%';ifgjz='图书作者'thenwithquery1dobeginclose;sql.Clear;sql.Add('select*');sql.Add('frombook');sql.Add('whereAuthorlike:gjzszname');sql.Add('orderbyCode');parambyname('gjzszname').AsString:=gjzsz;prepare;open;endelsebegingjzsz:=gjzsz+'%';ifgjz='出版社'thenwithquery1dobeginclose;sql.Clear;sql.Add('select*');sql.Add('frombook');sql.Add('whereConcernlike:gjzszname');sql.Add('orderbyCode');parambyname('gjzszname').AsString:=gjzsz;prepare;open;end;end;end;end;end;end;end;报表打印与预览窗体如下所示:图11报表打印与预览窗体2、读者信息查询窗体设计该窗体的主要功能是对读者相关信息的查询,其中窗体的基本设置结构布局如图:图12读者信息查询窗体该窗体的制作同“图书信息查询窗体”的制作相同,其“查询”控件的代码为:procedureTForm5.BitBtn1Click(Sender:TObject);vargjz,gjzsz:string;begingjz:=combobox1.Text;gjzsz:=edit1.Text;if(gjz='')and(gjzsz='')thenwithquery1dobeginclose;sql.Clear;sql.Add('select*');sql.Add('fromreader');sql.Add('orderbyIdcard');prepare;open;endelseif(gjz<>'')and(gjzsz='')thenshowmessage('请输入"查询关键字设置"信息!')elseif(gjz='')and(gjzsz<>'')thenshowmessage('请选择"查询关键字选择"信息!')elsebegingjzsz:=gjzsz+'%';ifgjz='借书证号'thenwithquery1dobeginclose;sql.Clear;sql.Add('select*');sql.Add('fromreader');sql.Add('whereIdcardlike:gjzszname');sql.Add('orderbyIdcard');parambyname('gjzszname').AsString:=gjzsz;prepare;open;endelsebegingjzsz:=gjzsz+'%';ifgjz='读者姓名'thenwithquery1dobeginclose;sql.Clear;sql.Add('select*');sql.Add('fromreader');sql.Add('whereNamelike:gjzszname');sql.Add('orderbyIdcard');parambyname('gjzszname').AsString:=gjzsz;prepare;open;endelsebegingjzsz:=gjzsz+'%';ifgjz='读者性别'thenwithquery1dobeginclose;sql.Clear;sql.Add('select*');sql.Add('fromreader');sql.Add('whereSexlike:gjzszname');sql.Add('orderbyIdcard');parambyname('gjzszname').AsString:=gjzsz;prepare;open;end;end;end;end;end;报表打印与预览窗体如下所示:图13报表打印与预览窗体3、在库图书查询窗体设计该窗体的主要功能是对在库图书信息的查询,其中窗体的基本设置结构布局如图:图14在库图书查询窗体该窗体的制作同“图书信息查询窗体”的制作相同,其“查询”控件的代码为:procedureTForm6.BitBtn1Click(Sender:TObject);vargjz,gjzsz,jc:string;begingjz:=combobox1.Text;gjzsz:=edit1.Text;jc:='借出';if(gjz='')and(gjzsz='')thenwithquery1dobeginclose;sql.Clear;sql.Add('selectbook.code,,reader.idcard,,owner.landdate');sql.Add('fromowner,book,reader');sql.Add('where(book.code=owner.code)and(reader.idcard=owner.idcard)and(owner.memo=:jcname)');sql.Add('orderbybook.code');parambyname('jcname').AsString:=jc;prepare;open;endelseif(gjz<>'')and(gjzsz='')thenshowmessage('请输入"查询关键字设置"信息!')elseif(gjz='')and(gjzsz<>'')thenshowmessage('请选择"查询关键字选择"信息!')elsebegingjzsz:=gjzsz+'%';ifgjz='图书编号'thenwithquery1dobeginclose;sql.Clear;sql.Add('selectbook.code,,reader.idcard,,owner.landdate');sql.Add('fromowner,book,reader');sql.Add('where(book.code=owner.code)and(reader.idcard=owner.idcard)and(owner.memo=:jcname)and(book.codelike:gjzszname)');sql.Add('orderbybook.code');parambyname('jcname').AsString:=jc;parambyname('gjzszname').AsString:=gjzsz;prepare;open;endelseifgjz='图书名称'thenwithquery1dobeginclose;sql.Clear;sql.Add('selectbook.code,,reader.idcard,,owner.landdate');sql.Add('fromowner,book,reader');sql.Add('where(book.code=owner.code)and(reader.idcard=owner.idcard)and(owner.memo=:jcname)and(like:gjzszname)');sql.Add('orderbybook.code');parambyname('jcname').AsString:=jc;parambyname('gjzszname').AsString:=gjzsz;prepare;open;endelseifgjz='借书证号'thenwithquery1dobeginclose;sql.Clear;sql.Add('selectbook.code,,reader.idcard,,owner.landdate');sql.Add('fromowner,book,reader');sql.Add('where(book.code=owner.code)and(reader.idcard=owner.idcard)and(owner.memo=:jcname)and(reader.idcardlike:gjzszname)');sql.Add('orderbybook.code');parambyname('jcname').AsString:=jc;parambyname('gjzszname').AsString:=gjzsz;prepare;open;endelseifgjz='读者姓名'thenwithquery1dobeginclose;sql.Clear;sql.Add('selectbook.code,,reader.idcard,,owner.landdate');sql.Add('fromowner,book,reader');sql.Add('where(book.code=owner.code)and(reader.idcard=owner.idcard)and(owner.memo=:jcname)and(like:gjzszname)');sql.Add('orderbybook.code');parambyname('gjzszname').AsString:=gjzsz;parambyname('jcname').AsString:=jc;prepare;open;end;end;end;4、出借图书窗体设计该窗体的主要功能是图书出借,其中窗体的基本设置结构布局如图:图15出借图书窗体5、归还图书窗体设计该窗体的主要功能是图书出借,其中窗体的基本设置结构布局如图:图16归还图书窗体6、图
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 电子铜行业2026年产业发展现状及未来发展趋势分析研究
- 2025-2030年电商物流设备企业制定与实施新质生产力战略分析研究报告
- 2025年济宁市泗水县招聘城镇公益性岗位人员考试试卷真题
- 2025年河南中烟工业有限责任公司招聘考试真题
- 2009年浙江省宁波市重点中学保送生招生考试数学试卷【含答案】
- 小学生心理健康教育主题班会课件阳光心态成长
- 食品储存与流通安全管理指南
- 工作突出表扬信12篇
- 安全防微杜渐演讲稿
- 订单确认与发货催促函6篇范文
- DB51T 2498-2018 冬水稻田土壤改良技术规程
- 胸膜腔穿刺术
- 换流阀规范技术规范
- HG∕T 5248-2017 风力发电机组叶片用环氧结构胶粘剂
- AQ/T 2076-2020 页岩气钻井井控安全技术规范(正式版)
- JTG C20-2011 公程工程地质勘察规范
- 浙江省市政工程安全台账全集文档
- 个人分析报告优势与劣势
- 22S803 圆形钢筋混凝土蓄水池
- 应收账款对账函模板
- 湖北高一下学期期末英语试卷带答案
评论
0/150
提交评论