
《Delphi程序设计》复习题 中央电大工学院王欣 一、填空题 1、结构化程序设计的基本原则是取消go语句,程序中仅采用顺序、 和循环三种控制结构。 2、一个对象是由属性、方法和事件所组成。属性表示对象中的数据, 是对象能够执行的动作, 是能够引起对象反应的条件。 3、与数学表达式对应的Object Pascal表达式是 4、ListBox对象列表框中的内容是通过 属性来进行设置的。 5、结构化程序设计要求程序中仅采用顺序、分支和循环三种控制结构,其中每种结构 只能有 个入口和一个出口。 6、对象的三个要素是属性、方法和 7、Delphi应用程序中项目文件的扩展名是 8、在设计阶段,利用Image对象的 属性,可以加载一幅图片。 9、Delphi中与窗体文件对应的文件是单元文件,其最常用的文件扩展名是 l0、与数学表达式对应的Object Pascal表达式是 11、调用主窗体的 方法,可以结束程序关闭窗体。 12、如果让界面上的一个按钮变为不可用,需要将它的 属性设为False. 13、如果要在窗体上设计一个主菜单,首先要建立 对象。 14、与数学表达式对应的Object Pascal表达式是 15、利用 对象的LineTo等绘图方法,可以绘制基本图形。 l6、RadioGroup对象中的单选按钮个数及名称是通过 属性来进行设置 的。 I7、时钟组件(Timer)能有规律的以一定时间间隔触发 事件,并执行该事 件过程中的程序代码。为了使计时器控件Timer1每隔0.5秒就触发一次并执行事件代码, 应将Timerl控件的Interval属性设置为 l8、Delphi程序与数据库之间进行数据交换一般要由多个数据库组件协作完成。如果 用户要查询数据库中的一条信息,该指令通过用户界面组件发出,经数据源组件到达数据集
《Delphi 程序设计》复习题 中央电大工学院 王欣 一、填空题 1、结构化程序设计的基本原则是取消 goto 语句,程序中仅采用顺序、_____________ 和循环三种控制结构。 2、一个对象是由属性、方法和事件所组成。属性表示对象中的数据,_____________ 是对象能够执行的动作,_____________是能够引起对象反应的条件。 3、与数学表达式 对应的 Object Pascal 表达式是_____________ 。 4、ListBox 对象列表框中的内容是通过_____________属性来进行设置的。 5、结构化程序设计要求程序中仅采用顺序、分支和循环三种控制结构,其中每种结构 只能有_____________个入口和一个出口。 6、对象的三个要素是属性、方法和_____________。 7、Delphi 应用程序中项目文件的扩展名是_____________。 8、在设计阶段,利用 Image 对象的_____________属性,可以加载一幅图片。 9、Delphi 中与 窗体文件 对应的 文件是单 元文件, 其最常用 的文件扩 展名是 *._____________。 10、与数学表达式 对应的 Object Pascal 表达式是_____________。 11、调用主窗体的_____________方法,可以结束程序关闭窗体。 12、如果让界面上的一个按钮变为不可用,需要将它的_____________属性设为 False。 13、如果要在窗体上设计一个主菜单,首先要建立_____________对象。 14、与数学表达式 对应的 Object Pascal 表达式是_____________ 。 15、利用_____________对象的 LineTo 等绘图方法,可以绘制基本图形。 16、RadioGroup 对象中的单选按钮个数及名称是通过_____________属性来进行设置 的。 17、时钟组件(Timer)能有规律的以一定时间间隔触发_____________事件,并执行该事 件过程中的程序代码。为了使计时器控件 Timer1 每隔 0.5 秒就触发一次并执行事件代码, 应将 Timer1 控件的 Interval 属性设置为_____________。 18、Delphi 程序与数据库之间进行数据交换一般要由多个数据库组件协作完成。如果 用户要查询数据库中的一条信息,该指令通过用户界面组件发出,经数据源组件到达数据集

组件。数据集组件利用 组件与数据库建立连接,并读取数据库中的数据,而 后又经过 组件将数据送到用户界面组件中显示。 19、与数学表达式对应的Object Pascal表达式是 20、能够实现格式化输入的编辑框组件是 21、调用主窗体的 方法,可以结束程序关闭窗体。 22、如果让界面上的一个按钮在运行的时候变为不可见,需要将它的 属 性设为False。. 23、利用DBGrid的 属性,可以设置DBGrid每一列的标题和对齐方式等。 24、通过Animate对象的 属性设置,可以指定系统标准的AVI动画演示。 25、在Delphi集成开发环境中,如果想要直接设置或者修改对象的属性,可以通过对 象查看器(Object Inspector)中的 窗口直接进行设置。 二、单项选择题 I、下面哪句话对Delphi的描述是正确的()。 A.只能用于数据库客户端开发的工具 B.Delphi的编程语言全部是面向过程的 C.Delphi的编程语言是Java D.面向对象的可视化的开发环境 2、在Delphi中,建立一个文本编辑区域,可采用下列()。 A、命令按钮 B、文本标签控件 C、Edit控件 D、Timer控件 3、表达式60+19div2的值是() A.67 B.79 C. 69 D.80 4、一个Delphi应用程序必有一个()文件和至少一个单元文件。 A)执行程序 B)项目 C)数据 D)图形 5、最适合于在工具栏上放置的工具按钮是() A.Button B.RadioButton C.SpeedButton D.BitBtm 6、Delphi应用程序设计基于( )语言。 A)Basic B)C++C)Pascal D)Object Pascal 7、下列表达式中()不是布尔表达式。 A)A=3 B)Adiv B C)Aand B D)A>B 8、“x是小于100的非负数”的Object Pascal表达式是()
组件。数据集组件利用_____________组件与数据库建立连接,并读取数据库中的数据,而 后又经过_____________组件将数据送到用户界面组件中显示。 19、与数学表达式 对应的 Object Pascal 表达式是_____________。 20、能够实现格式化输入的编辑框组件是_____________。 21、调用主窗体的_____________方法,可以结束程序关闭窗体。 22、如果让界面上的一个按钮在运行的时候变为不可见,需要将它的_____________属 性设为 False。 23、利用 DBGrid 的_____________属性,可以设置 DBGrid 每一列的标题和对齐方式等。 24、通过 Animate 对象的_____________属性设置,可以指定系统标准的 AVI 动画演示。 25、在 Delphi 集成开发环境中,如果想要直接设置或者修改对象的属性,可以通过对 象查看器(Object Inspector)中的_____________窗口直接进行设置。 二、单项选择题 1、下面哪句话对 Delphi 的描述是正确的 ( )。 A.只能用于数据库客户端开发的工具 B.Delphi 的编程语言全部是面向过程的 C.Delphi 的编程语言是 Java D.面向对象的可视化的开发环境 2、在 Delphi 中,建立一个文本编辑区域,可采用下列( )。 A、命令按钮 B、文本标签控件 C、Edit 控件 D、Timer 控件 3、表达式 60 + 19 div 2 的值是( ) A. 67 B. 79 C. 69 D. 80 4、一个 Delphi 应用程序必有一个( )文件和至少一个单元文件。 A) 执行程序 B) 项目 C) 数据 D)图形 5、最适合于在工具栏上放置的工具按钮是( ) A.Button B.RadioButton C.SpeedButton D.BitBtm 6、Delphi 应用程序设计基于( )语言。 A) Basic B) C++ C) Pascal D) Object Pascal 7、下列表达式中( )不是布尔表达式。 A) A=3 B) A div B C) A and B D) A>B 8、“x 是小于 100 的非负数”的 Object Pascal 表达式是( )

A.0≤X=0,x=0)AND(X=0)OR(x<100) 9、利用Image对象的哪个属性设置,可以使加载的图像自动放大或缩小,以适应Image 的显示区域() A.Stretch B.AutoSize C.Align D.Center l0、工具栏上的一个SpeedButton按钮如果要设置为状态按钮,则正确设置的方法是() A.将SpeedButton按钮的GroupIndex属性设置为O,且AllowAllUp属性设置为True. B.将SpeedButton按钮的GroupIndex属性设置为O,且AllowAllUp属性设置为False。 C.将SpeedButton按钮的GroupIndex属性设置为非O值,且AllowAllUp属性设置为 True D.将SpeedButton按钮的GroupIndex属性设置为非O值,且AllowAllUp属性设置为 False。 11、要改变一个对象的高度,应使用属性( )。 A、Font B、ForcColor C、Name D、Height 12、表达式30+19div2的值是() A. 37 B. 49 C. 39 D.40 13、下列合法的变量名是()。 A、na+e B、e3r C、r?3 D、5we 14、利用对象监视器可以设置窗体或组件的()。 A)方法B)属性C)外观D)执行代码 l5、Delphi程序设计的基本特点是()。 A.可视化程序设计 B.代码程序设计 C.事件驱动编程 D.A和C 16、修改窗体的标题时,应当在属性页中设置的属性是()。 A.Caption B.Name C.Text D.Label 17、下列说法错误的是( A)窗体文件的扩展名为.dfm B)一个窗体对应一个窗体文件
A.0 ≤ x = 0, x=0) AND (x = 0 ) OR (x<100) 9、利用 Image 对象的哪个属性设置,可以使加载的图像自动放大或缩小,以适应 Image 的显示区域( ) A.Stretch B.AutoSize C.Align D.Center 10、工具栏上的一个 SpeedButton 按钮如果要设置为状态按钮,则正确设置的方法是( ) A.将 SpeedButton 按钮的 GroupIndex 属性设置为 0,且 AllowAllUp 属性设置为 True。 B.将 SpeedButton 按钮的 GroupIndex 属性设置为 0,且 AllowAllUp 属性设置为 False。 C.将 SpeedButton 按钮的 GroupIndex 属性设置为非 0 值,且 AllowAllUp 属性设置为 True。 D.将 SpeedButton 按钮的 GroupIndex 属性设置为非 0 值,且 AllowAllUp 属性设置为 False。 11、要改变一个对象的高度,应使用属性( )。 A、Font B、ForcColor C、Name D、Height 12、表达式 30 + 19 div 2 的值是( ) A. 37 B. 49 C. 39 D. 40 13、下列合法的变量名是( )。 A、na + e B、e- 3r C、r??_3 D、5we 14、利用对象监视器可以设置窗体或组件的( )。 A) 方法 B) 属性 C) 外观 D )执行代码 15、Delphi 程序设计的基本特点是( )。 A. 可视化程序设计 B. 代码程序设计 C. 事件驱动编程 D. A 和 C 16、修改窗体的标题时,应当在属性页中设置的属性是( )。 A.Caption B. Name C. Text D. Label 17、下列说法错误的是 ( ) A) 窗体文件的扩展名为.dfm B) 一个窗体对应一个窗体文件

C)Delphi中的一个工程只包含一个窗体 D).~dpr和.~pas是备份文件,便于用户恢复到较早的一个项目版本。 18、要改变一个对象的高度,应使用属性()。 A、Font B、ForcColor C、Name D、Height 19、工具栏上的一组按钮如果要构成互斥关系(如“左对齐”、“居中”、“右对齐”),它 们的GroupIndex属性正确的设置是() A.GroupIndex属性值都为O B.GroupIndex属性值非O,且互不相同 C.GroupIndex属性值非O,且相同D.GroupIndex属性值互不相同 20、以下叙述中错误的是() A.一个项目包含不止一种类型的文件。 B.窗体的Show方法的作用是显示该窗体。 C.窗体的Hide方法和Release方法的作用完全相同。 D.若项目文件中有多个窗体,可以根据需要指定一个窗体为主窗体。 21、编辑框(Edit)中的文本发生改变时引发的事件是() A.AutoSize B.OnChange C.SetFocus D.SetText 22、现建立一个简单报表,要求其中要包含报表的汇总栏,则在Bands属性的子属性中, 需要选择的是() A.ColumnHeader B.Detail C.Title D.Summary 23、如果要检查dt编辑框中输入的字符,可以在哪个事件处理程序中编写代码检查 () A.OnClick B.OnEnter C.OnMouseUp D.OnKeyPress 24、数据库组件中,提供了对数据库读写操作功能的核心组件是() A.数据源组件 B.用户界面组件 C.数据集组件 D.数据感知控件 25、下列常用的数据组件中,只需指定DataSource而不需指定DataField的控件是哪个? () A、DBText B、DBEdit C、DBNavigator D、Query
C) Delphi 中的一个工程只包含一个窗体 D) .~dpr 和.~pas 是备份文件,便于用户恢复到较早的一个项目版本。 18、要改变一个对象的高度,应使用属性( )。 A、Font B、ForcColor C、Name D、Height 19、工具栏上的一组按钮如果要构成互斥关系(如“左对齐”、“居中”、“右对齐”),它 们的 GroupIndex 属性正确的设置是( ) A.GroupIndex 属性值都为 0 B.GroupIndex 属性值非 0,且互不相同 C.GroupIndex 属性值非 0,且相同 D.GroupIndex 属性值互不相同 20、以下叙述中错误的是( ) A. 一个项目包含不止一种类型的文件。 B. 窗体的 Show 方法的作用是显示该窗体。 C. 窗体的 Hide 方法和 Release 方法的作用完全相同。 D. 若项目文件中有多个窗体,可以根据需要指定一个窗体为主窗体。 21、编辑框(Edit)中的文本发生改变时引发的事件是( ) A.AutoSize B.OnChange C.SetFocus D.SetText 22、现建立一个简单报表,要求其中要包含报表的汇总栏,则在 Bands 属性的子属性中, 需要选择的是( ) A.ColumnHeader B.Detail C.Title D.Summary 23、如果要检查 edit 编辑框中输入的字符,可以在哪个事件处理程序中编写代码检查 ( ) A.OnClick B.OnEnter C.OnMouseUp D.OnKeyPress 24、数据库组件中,提供了对数据库读写操作功能的核心组件是( ) A.数据源组件 B.用户界面组件 C.数据集组件 D.数据感知控件 25、下列常用的数据组件中,只需指定 DataSource 而不需指定 DataField 的控件是哪个? ( ) A、DBText B、DBEdit C、DBNavigator D、Query

26、下列说明错误的是() A、OpenDialog是打开文件对话框。 B、Edit组件的Clear方法是清除编辑框中的内容 C、CheckBox控件是通过Checked属性确定选择状态 D、按钮组件的属性Name设置为“确定”,则按钮上文本显示为“确定” 27、下列说法正确的是() A.组件必须是可视的,这样用户才能使用。 B.Delphi中组件就是控件,二者是完全相同的。 C.控件都是可视的。 D.按钮(Button)是组件,而窗体(Form)则不是组件。 28、以下能够触发编辑框(Edit)组件OnChange事件的操作是( A.鼠标单击编辑框 B.鼠标双击编辑框 C.在编辑框中选择文本 D.在编辑框中输入文本 29、要改变控件的宽度,应改变控件的( )属性。 A、width B、height C、top D、left 30、只能输出、而不能输入的数据感知控件是() A.DBEdit B.DBText C.DBRadioGroup D.DBCheckBox 31、任何控件都有的属性是() A)BackColor B)Caption C)Name D)BorderStyle 三、判断题,请给下列论述中正确的打上“√”,错误的打上“?” 1、()函数int(2.718)=2.0计算是正确的。 2、()Delphi是面向对象的可视化的开发环境,编程语言采用Object C。 3、()要想在数据集中增加计算字段,必须先将数据集的字段全部置为动态字段。 4、()结构化程序设计要求采用自顶向下、逐步求精的设计方法和单入口、单出口 的控制结构。 5、()在Delphi环境中,组件页上的组件是“对象”的概念,在窗体上建立的按钮
26、下列说明错误的是( ) A、 OpenDialog 是打开文件对话框。 B、 Edit 组件的 Clear 方法是清除编辑框中的内容 C、 CheckBox 控件是通过 Checked 属性确定选择状态 D、 按钮组件的属性 Name 设置为“确定”,则按钮上文本显示为“确定” 27、下列说法正确的是( ) A.组件必须是可视的,这样用户才能使用。 B.Delphi 中组件就是控件,二者是完全相同的。 C.控件都是可视的。 D.按钮(Button)是组件,而窗体(Form)则不是组件。 28、以下能够触发编辑框(Edit)组件 OnChange 事件的操作是( ) A. 鼠标单击编辑框 B. 鼠标双击编辑框 C. 在编辑框中选择文本 D. 在编辑框中输入文本 29、要改变控件的宽度,应改变控件的( )属性。 A、width B、height C、top D、left 30、只能输出、而不能输入的数据感知控件是( ) A.DBEdit B.DBText C.DBRadioGroup D.DBCheckBox 31、任何控件都有的属性是( ) A) BackColor B) Caption C) Name D) BorderStyle 三、判断题,请给下列论述中正确的打上“√”,错误的打上“?” 1、( ) 函数 int(2.718) = 2.0 计算是正确的。 2、( )Delphi 是面向对象的可视化的开发环境,编程语言采用 Object C。 3、( ) 要想在数据集中增加计算字段,必须先将数据集的字段全部置为动态字段。 4、( ) 结构化程序设计要求采用自顶向下、逐步求精的设计方法和单入口、单出口 的控制结构。 5、( ) 在 Delphi 环境中,组件页上的组件是“对象”的概念,在窗体上建立的按钮

是“类”的概念。 6、()一个Table对象不能同时指定与之相连的两个关系表。 7、()在Delphi环境中,组件板上的组件就是类的概念,例如按钮组件就是按钮类。 而用户在窗体上创建的一个按钮就是对象的概念(按钮对象)。 8、()要想在数据集中增加计算字段,必须先将数据集的字段全部置为动态字段。 9、()时钟Timer组件的时间间隔是由Interval属性控制,例如其值为l0O0时表示 时间间隔是1秒。 10、( )Delphi中的菜单项有3种类型:普通按钮型、复选框型和单选按钮型。 1l、()4ABC可作为Delphi的变量名。 12、( )在一个项目中,第一个建立的窗体固定就是主窗体,并且再也不设置其他窗 体为主窗体。 l3、()在Data Controls组件页上,只有DBNavigator组件可以不用指定DataField 属性值。 14、()建立永久字段的好处是:可以在设计阶段对字段对象进行设置,并可以增 加新的字段(计算字段和查找字段)。 15、()((~=)OR(x<=5))AND(xin[19)当x=10时,表达式的值为假(或 false 四、程序填空题 1、 应用程序的用户界面如下图所示: 功能说明: 该界面是一个教师信息录入界面。 用户在编辑框(Edit1)中输入姓名,利用单选按钮(RadioGroup1)指定性别,利用组 合框(ComboBox1)选择或直接输入所在系,利用列表框(ListBoxl)指定职称。当输入完 上述信息后,单击“确定”按钮,教师信息将显示在右边的Memol编辑窗口中。 下面是开发过程,请完成填空部分: 通过RadioGroupl的Items属性设置两个单选按钮(“男”和“女”),并将属性①设 置为2(按钮摆两列)。 通过ComboBoxI的 ② 属性设置下拉选单中的系名。 通过ListBoxl的Items属性设置列表框中的职称列表
是“类”的概念。 6、( ) 一个 Table 对象不能同时指定与之相连的两个关系表。 7、( )在 Delphi 环境中,组件板上的组件就是类的概念,例如按钮组件就是按钮类。 而用户在窗体上创建的一个按钮就是对象的概念(按钮对象)。 8、( ) 要想在数据集中增加计算字段,必须先将数据集的字段全部置为动态字段。 9、( )时钟 Timer 组件的时间间隔是由 Interval 属性控制,例如其值为 1000 时表示 时间间隔是 1 秒。 10、( ) Delphi 中的菜单项有 3 种类型:普通按钮型、复选框型和单选按钮型。 11、( ) 4ABC 可作为 Delphi 的变量名。 12、( )在一个项目中,第一个建立的窗体固定就是主窗体,并且再也不设置其他窗 体为主窗体。 13、( ) 在 Data Controls 组件页上,只有 DBNavigator 组件可以不用指定 DataField 属性值。 14、( ) 建立永久字段的好处是:可以在设计阶段对字段对象进行设置,并可以增 加新的字段(计算字段和查找字段)。 15、( ) ( (x>=5) OR (x<=-5) ) AND ( x in [1..9] ) 当 x=10 时,表达式的值为假(或 false) 四、程序填空题 1、 应用程序的用户界面如下图所示: 功能说明: 该界面是一个教师信息录入界面。 用户在编辑框(Edit1)中输入姓名,利用单选按钮(RadioGroup1)指定性别,利用组 合框(ComboBox1)选择或直接输入所在系,利用列表框(ListBox1)指定职称。当输入完 上述信息后,单击“确定”按钮,教师信息将显示在右边的 Memo1 编辑窗口中。 下面是开发过程,请完成填空部分: 通过 RadioGroup1 的 Items 属性设置两个单选按钮(“男”和“女”),并将属性 ① 设 置为 2(按钮摆两列)。 通过 ComboBox1 的 ② 属性设置下拉选单中的系名。 通过 ListBox1 的 Items 属性设置列表框中的职称列表

“确定”按钮的单击事件处理程序如下: procedure TForm1.Button1Click(Sender:TObject); begin memol.Lines.Add(edit1. ③ )方∥加入编辑框的内容 if radiogroupl.④ =0then/判断选择了哪个按钮 memol.Lines..Add(男) else memol.Lines.Add('女'); memol.Lines..Add(combobox1.Text),/加入系的文本 memol..Lines.Add(listboxl.⑤[listboxl.itemindex]),/∥加入职称 end; 2、 数据库mydb中有关系表student,其结构如下: student(sno学号,sname姓名,sex性别,birthday生日) 现编写一个学生信息浏览程序,设计界面和运行界面如下图所示: 在下划线处填写相应数据库组件的属性值: Databasel.DatabaseName mydb Tablel.DatabaseName mydb Tablel.TableName student Tablel.Active ① Datasourcel.DataSet ② DBNavigator1.DataSource ③ DBEdit2.DataSource ④ DBEdit2.DataField ⑤ 3、 下图是本程序的设计界面(左)和运行界面(中、右): 在forml上建立的对象有:Editl~Edit3、Buttonl(确定)和CheckBoxI等。 该程序实现两个整数的大小比较。用户输入两个整数,按“确定”键后,比较结果显示
“确定”按钮的单击事件处理程序如下: procedure TForm1.Button1Click(Sender: TObject); begin memo1.Lines.Add(edit1. ③ ); //加入编辑框的内容 if radiogroup1. ④ = 0 then //判断选择了哪个按钮 memo1.Lines.Add('男') else memo1.Lines.Add('女') ; memo1.Lines.Add(combobox1.Text); //加入系的文本 memo1.Lines.Add( listbox1. ⑤ [listbox1.itemindex] ); //加入职称 end; 2、 数据库 mydb 中有关系表 student,其结构如下: student(sno 学号,sname 姓名,sex 性别,birthday 生日) 现编写一个学生信息浏览程序,设计界面和运行界面如下图所示: 在下划线处填写相应数据库组件的属性值: Database1. DatabaseName : mydb Table1. DatabaseName : mydb Table1. TableName : student Table1. Active : ① Datasource1.DataSet : ② DBNavigator1. DataSource : ③ DBEdit2. DataSource : ④ DBEdit2. DataField : ⑤ 3、 下图是本程序的设计界面(左)和运行界面(中、右): 在 form1 上建立的对象有:Edit1~Edit3、Button1(确定)和 CheckBox1 等。 该程序实现两个整数的大小比较。用户输入两个整数,按“确定”键后,比较结果显示

在Edit3中。 如果“汉字”复选框选中,比较结果采用“大于”、“小于”、“等于”:否则比较结果采 用“>”、“'; eq='='; lt='y)then edit3.Text:=edit1.Text+gt+edit2.Text else if(x=y)then edit3.Text:=edit1.Text+eq+edit2.Text else edit3.Text:=edit1.Text++edit2.Text; end:
在 Edit3 中。 如果“汉字”复选框选中,比较结果采用“大于”、“小于”、“等于”;否则比较结果采 用“>”、“ ' ; eq := ' = ' ; lt := ' y) then edit3.Text:= edit1.Text + gt + edit2.Text else if (x=y) then edit3.Text:= edit1.Text + eq + edit2.Text else edit3.Text:= edit1.Text + ⑤ + edit2.Text; end;

4、 本程序根据用户选择的运算符对输入的二个操作数进行运算,并显示运算结果。设计界 面和运行界面如图所示。其中,运算符是一个含有4个单选按纽的RadioGroup1对象。 下面是单击“运算”按钮的事件处理程序,请根据功能要求完成程序填空。 procedure TForm1.ButtonIClick(Sender:TObject):// var x1,x2,y:Integer; begin x1:=StrToInt(Editl.1 x2 :StrTolnt(Edit2.2 方 Case③ ItemIndex of 0:y=x1+x2; 1:y:=x1 -x2; 2:y=x1*x2; 3:y:=x1 Div x2; End; Edit3.④ =IntToStr(⑤ 方 end: 5、 本程序实现一个简单的借书界面。程序的设计界面和运行界面如下图所示: 该程序涉及到数据库中的两张表:books(图书信息)和borrow(借书记录)。表的结构 为: books(bno,书号,bname书名,num现有册数) borrow(rno读者号,bno书号,rdate还书日期) 其中,rno和bno都是字符型(3位)。 在用户界面,操作员选中一本书、输入借书证号后,按“借书”键完成借书功能,即在 borrow表中插入一条借书记录,并将books表中该书现有册数减1。 该界面要实现以下合法性检查:
4、 本程序根据用户选择的运算符对输入的二个操作数进行运算,并显示运算结果。设计界 面和运行界面如图所示。其中,运算符是一个含有 4 个单选按纽的 RadioGroup1 对象。 下面是单击“运算”按钮的事件处理程序,请根据功能要求完成程序填空。 ---------------------------------------------------------------------------------------------------------------- ----- procedure TForm1.Button1Click(Sender: TObject);//运算 var x1,x2,y :Integer; begin x1 := StrToInt( Edit1. ① ); x2 := StrToInt( Edit2. ② ); Case ③ .ItemIndex of 0: y := x1 + x2 ; 1: y := x1 - x2; 2: y := x1 * x2; 3: y := x1 Div x2; End; Edit3. ④ := IntToStr( ⑤ ); end; 5、 本程序实现一个简单的借书界面。程序的设计界面和运行界面如下图所示: 该程序涉及到数据库中的两张表:books(图书信息)和 borrow(借书记录)。表的结构 为: books(bno,书号,bname 书名,num 现有册数) borrow(rno 读者号,bno 书号,rdate 还书日期) 其中,rno 和 bno 都是字符型(3 位)。 在用户界面,操作员选中一本书、输入借书证号后,按“借书”键完成借书功能,即在 borrow 表中插入一条借书记录,并将 books 表中该书现有册数减 1。 该界面要实现以下合法性检查:

1、当该读者已经借了此书,不能再借。 2、当所借的书现有册数为0,不能再借。 在Forml上建立的数据库组件对象及连接关系如下: Databasel-一Tablel(与books表相连)一DataSource1一DBGrid1(显示图书信息) Database1-一Table2(与borrow表相连,用于插入借书记录) Database1-Query1 其中为Tablel建立了3个永久字段:Tablelbno(书号)、Tablelbname(书名)、Tablelnum (现有册数)。 Query1的SQL语句如下: select bno from borrow where rno :rno and bno =bno 下面是Unit1的代码实现部分,请完成程序填空: implementation ($R *.dfm) procedure TForm1.ButtonIClick(Sender:TObject),∥“借书”键 begin query1.Close; query1.ParamByName('rno').Value:= ① query1.ParamByName('bno).Value:= ② ; query1.Open; if query1['bno]null then begin showmessage(该读者正在借阅此书); exit end; if③ then begin
1、当该读者已经借了此书,不能再借。 2、当所借的书现有册数为 0,不能再借。 在 Form1 上建立的数据库组件对象及连接关系如下: Database1-Table1(与 books 表相连)-DataSource1-DBGrid1(显示图书信息) Database1-Table2(与 borrow 表相连,用于插入借书记录) Database1-Query1 其中为 Table1 建立了 3 个永久字段:Table1bno(书号)、Table1bname(书名)、Table1num (现有册数)。 Query1 的 SQL 语句如下: select bno from borrow where rno = :rno and bno = :bno 下面是 Unit1 的代码实现部分,请完成程序填空: ---------------------------------------------------------------------------------------------------------------- ----- implementation {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); //“借书”键 begin query1.Close ; query1.ParamByName('rno').Value := ① ; query1.ParamByName('bno').Value := ② ; query1.Open ; if query1['bno'] <> null then begin showmessage('该读者正在借阅此书'); exit ; end ; if ③ then begin