ImageVerifierCode 换一换
格式:DOCX , 页数:30 ,大小:4.19MB ,
资源ID:6555165      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-6555165.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(课程设计样板1884董坤.docx)为本站会员(b****3)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

课程设计样板1884董坤.docx

1、课程设计样板1884董坤重 庆 大 学基础性实践环节(数据库)实践报告实践课程名称 数据库原理 开课实验室 数理学院理科楼201实验室 学 院 数理学院年级 2005级 专业班 信息与计算科学一班学 生 姓 名 董 坤 学 号 20051884 开 课 时 间 2007 至 2008 学年 第 一 学期总 成 绩教师签名数理学院制课程名称数据库原理实践课时20学时实践项目重庆大学图书馆管理系统实践时间2007.5.8-2007.5.20实践目的图书馆管理是任何学校都要涉及的内容,其中包括对读者基本信息的管理以及图书管理,这就要求对这些数据进行统一管理,制作一个简便易操作的系统是很有必要的。通过

2、对本系统得设计,可以增强我们对数据库知识的理解。更好的掌握面向对象编程的 Borland Delphi的编程技巧,体现其在数据库设计方面的优越性和简易性,使得系统变得更为人性化、智能化。下面是对课程设计的具体实验目的:(1)掌握Borland Delphi中常见的控件的作用并能熟练运用。(2)掌握数据库系统设计的思路以及基本方法。(3)通过实际例子的制作,体会数据库原理课程的基本概念和基本知识在实例中的运用,最后体会理论知识在实际中的体现。实践环境Delphi6.0实践内容(算法、程序、步骤和方法)一、系统功能的分析与设计本系统将涉及多个窗体的制作,从而实现多个管理的功能,其中涉及图书信息、系

3、统用户信息、读者信息、图书借阅信息等多种数据管理。从管理角度出发可将图书管理分为三类:图书信息管理、系统用户管理和读者数据管理。图书信息管理包括图书征订、编目、典藏、借还和查询操作,系统用户管理包括系统用户类别和用户数据管理,读者数据管理包括读者类别管理和读者个人数据的录入、修改、删除。重庆大学图书管理系统主要具有如下的一些功能:1) 图书征订:包括图书征订数据的录入、修改、编辑等功能。2) 图书编目:包括图书编目信息的录入、修改等功能。3) 图书典藏:包括新书分配、库室调配等功能。4) 图书流通:包括图书借阅、续借,图书返还,图书书目查询等功能。5) 系统用户管理:包括系统用户数据的录入、修

4、改、删除等功能。6) 读者数据管理:包括读者类别管理,读者个人数据的录入、修改、删除等功能。根据分析,图书管理系统主要的功能模块如下图所示:二、数据表结构设计与创建按照系统创建的顺序,首先是建立系统创建所必要的数据表的逻辑结构和物理结构。1、图书信息表图书信息管理的表,它分别包含了图书代码、图书名称、图书类别、图书作者、出版社、借出日期、图书价格、备注共8项,具体定义由下表反映:图1 图书信息表的逻辑结构在图书信息数据表的逻辑结构定义中,将图书代码字段定义为关键字段,因为在图书管理系统中,图书代码是不能重复的,每本图书必须有惟一的一个代码。此外,关键字段的建立处使该字段记录的数据具有惟一性之外

5、,关键字段是进行数据表之间连接的重要手段。往往在数据表之间的连接中,是通过一个数据表的关键字段与另外的数据表的关键字段或第二索引的字段进行关联,从而将两个数据表的记录有机的联系起来。因此,为一个数据表建立关键字段或第二索引是非常重要的。通过数据库桌面工具就可以根据图书信息表的逻辑结构创建它的物理结构,如下图所示:图2 图书信息表当表建立完后,可以将其保存在特定路径的文件夹中,在后面的系统界面制作中将引用,我将其安排的保存位置为:“D:Delphi”,保存的数据表名为“book.db”。2、读者信息表它包括读者号、读者姓名、性别、备注共4项内容,将读者号设为主键,因为读者号是唯一的,能唯一识别。

6、读者信息表的逻辑结构,如下图所示:图3 读者信息表的逻辑结构通过数据库桌面工具就可以根据客房表的逻辑结构创建它的物理结构,如下图所示:图4 读者信息表读者信息表建立好后,保存到“D:Delphi”里,保存的数据表名为“reader.db”。3、借还信息表它包括订单号、位置、房间号等内容,订单号、位置、房间号都设置为第二索引,用于和其他表建立关联。它的逻辑结构定义结构如下: 图5 借还信息表的逻辑结构通过数据库桌面工具就可以根据客房表的逻辑结构创建它的物理结构,如下图所示:图6 借还信息表借还信息表建立好后,保存到“D:Delphi”里,保存的数据表名为“owner.db”。4、创建数据库别名以

7、上表格均保存在“D:Delphi”中,因此在窗体制作或报表中调用数据表名时需要用到新的数据库别名,这里我们创建新的数据库别名为“STANDARD1”,别名连接的路径为“D:Delphi”。三、创建工程与系统权限认证界面设计 在系统所需要的一切数据表完成后,就可以着手进行系统界面的设计与创建了,一般进入主控界面前都会有权限认证界面,因此,我们把系统启动界面作为Form1,权限认证界面设置为Form2。其窗体创建的过程如下:新建一个工程,保存工程和相应的单元文件。其中启动界面如图7所示:图7 启动窗体在系统启动窗体的制作中,对“进入系统”按钮编写相关的过程代码如下:procedure TForm1

8、.SpeedButton1Click(Sender: TObject);beginForm2.show;end; 对“退出系统”编写代码为: procedure TForm1.SpeedButton2Click(Sender: TObject);beginclose;end;权限认证界面如图7所示:图8 权限认证窗体在权限认证窗体的制作中,对“Load”按钮编写相关的过程代码如下:procedure TForm2.SpeedButton1Click(Sender: TObject);beginif (combobox1.text=管理员)and(edit1.text=dk)and(edit2.

9、text=20051884)then beginform3.show; form2.Hide;end else beginif (combobox1.text=学生)and(edit1.text=111111)and(edit2.text=111111)then beginform14.show; form2.Hide;end else beginshowmessage(你无权进入该系统);end;end;end;对“Exit”按钮编写相关的过程代码如下:procedure TForm2.SpeedButton2Click(Sender: TObject);beginclose;end;四、系

10、统主控界面设计通常一个系统必须存在一个主控界面,主控界面是调用其他界面的截体,本系统的主控界面和它的基本结构如下图:图9 系统主控界面在窗体上依次放上控件,各控件描述如表所示:表1控件类型控件名称描述窗体控件FormForm3图书馆管理程序的主窗体,Caption属性设置为“图书室管理”;FormStyle 属性设置为fsMDIForm主菜单控件MainMenuMainMenu1用于为应用程序提供主菜单,这分别是:查询、图书借阅、数据维护、安全设置、帮助、退出系统图书信息查询SpeedButton1查询菜单下的子菜单 Caption属性设置为“图书查询”读者信息查询SpeedButton2查询

11、菜单下的子菜单 Caption属性设置为“读者查询”在库图书查询SpeedButton3查询菜单下的子菜单 Caption属性设置为“在库图书查询”出借图书SpeedButton4借阅菜单下的子菜单 Caption属性设置为“出借图书”归还图书SpeedButton5借阅菜单下的子菜单 Caption属性设置为“归还图书”图书登记SpeedButton6数据维护下的子菜单 Caption属性设置为“图书登记”读者登记SpeedButton7数据维护下的子菜单 Caption属性设置为“读者登记”安全设置SpeedButton8用于安全维护,Caption属性设置为“密码设置”帮助HelpCap

12、tion属性设置为“帮助”退出系统ExitMenuCaption属性设置为“退出系统”状态栏控件StatusBarStatusBar1用于显示系统状态信息在状态栏中放入一个 Timer1,为状态条显示日期和时间编程,双击 Timer控件编写代码如下:procedure TForm3.Timer1Timer(Sender: TObject);beginstatusbar1.SimpleText:=Datetostr(Date)+ +timetostr(time);end;对SpeedButton控件编写程序,使得鼠标指向控件时,控件变为红色,鼠标离开时,控件变回黑色,其中代码如下:procedu

13、re TForm3.Label4MouseLeave(Sender: TObject);beginif Sender is TLabel thenTLabel(Sender).Font.Color:=clBlack;end;procedure TForm3.Label8MouseLeave(Sender: TObject);begin if Sender is TLabel thenTLabel(Sender).Font.Color:=clBlack;end;五、其它功能窗体(管理员)的设计1、图书信息查询窗体的设计该窗体的主要功能是对图书各相关信息的查询,其中窗体的基本设置结构布局如图: 图

14、10 图书信息查询窗体 窗体制作主要过程如下:(1) 在窗体中放入一个Table1,设置其属性 DataBaseName为 STANDARD1,TableName为“book.db”, Active为 True。(2) 在窗体中添加一个DataSource1,设置其 DataSet为 Table1。(3) 在窗体中放入一个 DBGird1,设置其DataSource为 DataSource1。(4) 放入一个 DBNavigator1,设置DataSource为 DataSource1。在窗体插入的控件中,数据表控件和数据源控件以及数据导航控件都是相联系的。 对“查询”按钮编写相关的过程代码如

15、下:procedure TForm4.BitBtn1Click(Sender: TObject);vargjz,gjzsz:string;begin gjz:=combobox1.Text; gjzsz:=edit1.Text; if(gjz=)and(gjzsz=) then with query1 do begin close; sql.Clear; sql.Add(select*); sql.Add(from book); sql.Add(order by Code); prepare; open; end else if (gjz)and (gjzsz=)then showmessag

16、e(请输入查询关键字设置信息!) else if (gjz=)and(gjzsz)then showmessage(请选择查询关键字选择信息!) else begin gjzsz:=gjzsz+%; if gjz=图书编号then with query1 do begin close; sql.Clear; sql.Add(select*); sql.Add(from book); sql.Add(where Code like :gjzszname); sql.Add(order by Code); parambyname(gjzszname).AsString:=gjzsz; prepar

17、e; open; end else begin gjzsz:=gjzsz+%; if gjz=图书名称then with query1 do begin close; sql.Clear; sql.Add(select*); sql.Add(from book); sql.Add(where Name like :gjzszname); sql.Add(order by Code); parambyname(gjzszname).AsString:=gjzsz; prepare; open; end else begin gjzsz:=gjzsz+%; if gjz=图书类别then with

18、 query1 do begin close; sql.Clear; sql.Add(select*); sql.Add(from book); sql.Add(where Class like :gjzszname); sql.Add(order by Code); parambyname(gjzszname).AsString:=gjzsz; prepare; open; end else begin gjzsz:=gjzsz+%; if gjz=图书作者then with query1 do begin close; sql.Clear; sql.Add(select*); sql.Ad

19、d(from book); sql.Add(where Author like :gjzszname); sql.Add(order by Code); parambyname(gjzszname).AsString:=gjzsz; prepare; open; end else begin gjzsz:=gjzsz+%; if gjz=出版社then with query1 do begin close; sql.Clear; sql.Add(select*); sql.Add(from book); sql.Add(where Concern like :gjzszname); sql.A

20、dd(order by Code); parambyname(gjzszname).AsString:=gjzsz; prepare; open; end ; end;end;end;end;end;end;报表打印与预览窗体如下所示:图11 报表打印与预览窗体2、读者信息查询窗体设计该窗体的主要功能是对读者相关信息的查询,其中窗体的基本设置结构布局如图:图12 读者信息查询窗体该窗体的制作同“图书信息查询窗体”的制作相同,其“查询”控件的代码为:procedure TForm5.BitBtn1Click(Sender: TObject);vargjz,gjzsz:string;begin g

21、jz:=combobox1.Text; gjzsz:=edit1.Text; if(gjz=)and(gjzsz=) then with query1 do begin close; sql.Clear; sql.Add(select*); sql.Add(from reader); sql.Add(order by Idcard); prepare; open; end else if (gjz)and (gjzsz=)then showmessage(请输入查询关键字设置信息!) else if (gjz=)and(gjzsz)then showmessage(请选择查询关键字选择信息!)

22、 else begin gjzsz:=gjzsz+%; if gjz=借书证号then with query1 do begin close; sql.Clear; sql.Add(select*); sql.Add(from reader); sql.Add(where Idcard like :gjzszname); sql.Add(order by Idcard); parambyname(gjzszname).AsString:=gjzsz; prepare; open; end else begin gjzsz:=gjzsz+%; if gjz=读者姓名then with query

23、1 do begin close; sql.Clear; sql.Add(select*); sql.Add(from reader); sql.Add(where Name like :gjzszname); sql.Add(order by Idcard); parambyname(gjzszname).AsString:=gjzsz; prepare; open; end else begin gjzsz:=gjzsz+%; if gjz=读者性别then with query1 do begin close; sql.Clear; sql.Add(select*); sql.Add(f

24、rom reader); sql.Add(where Sex like :gjzszname); sql.Add(order by Idcard); parambyname(gjzszname).AsString:=gjzsz; prepare; open; end;end;end;end;end;报表打印与预览窗体如下所示:图13 报表打印与预览窗体3、在库图书查询窗体设计该窗体的主要功能是对在库图书信息的查询,其中窗体的基本设置结构布局如图:图14 在库图书查询窗体该窗体的制作同“图书信息查询窗体”的制作相同,其“查询”控件的代码为:procedure TForm6.BitBtn1Clic

25、k(Sender: TObject);vargjz,gjzsz,jc:string;begin gjz:=combobox1.Text; gjzsz:=edit1.Text; jc:=借出; if(gjz=)and(gjzsz=) then with query1 do begin close; sql.Clear; sql.Add(select book.code,book.name,reader.idcard,reader.name,owner.landdate); sql.Add(from owner,book,reader); sql.Add(where(book.code=owner

26、.code)and(reader.idcard=owner.idcard) and(owner.memo=:jcname); sql.Add(order by book.code); parambyname(jcname).AsString:=jc; prepare; open; end else if (gjz)and (gjzsz=)then showmessage(请输入查询关键字设置信息!) else if (gjz=)and(gjzsz)then showmessage(请选择查询关键字选择信息!) else begin gjzsz:=gjzsz+%; if gjz=图书编号then

27、 with query1 do begin close; sql.Clear; sql.Add(select book.code,book.name,reader.idcard,reader.name,owner.landdate); sql.Add(from owner,book,reader); sql.Add(where(book.code=owner.code)and(reader.idcard=owner.idcard) and(owner.memo=:jcname)and(book.code like:gjzszname); sql.Add(order by book.code);

28、 parambyname(jcname).AsString:=jc; parambyname(gjzszname).AsString:=gjzsz; prepare; open; end else if gjz=图书名称then with query1 do begin close; sql.Clear; sql.Add(select book.code,book.name,reader.idcard,reader.name,owner.landdate); sql.Add(from owner,book,reader); sql.Add(where(book.code=owner.code)

29、and(reader.idcard=owner.idcard) and(owner.memo=:jcname)and(book.name like:gjzszname); sql.Add(order by book.code); parambyname(jcname).AsString:=jc; parambyname(gjzszname).AsString:=gjzsz; prepare; open; end else if gjz=借书证号then with query1 do begin close; sql.Clear; sql.Add(select book.code,book.name,reader.idcard,reader.name,owner.landdate); sql.Add(from owner,book,reader); sql.Add(where(b

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2