《delphi数据库编程.doc》由会员分享,可在线阅读,更多相关《delphi数据库编程.doc(7页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、Delphi程序设计试题及解答 一、填空题(20分,每空2分)1、现实世界中对象具有自己的状态和行为。对应着,面向对象技术中的对象可以具有自己的属性和 。2、Delphi应用程序中项目文件的扩展名是 。3、结构化程序设计要求程序中仅采用顺序、分支和循环三种控制结构,其中每种结构只能有 和一个出口。4、在Delphi集成开发环境中,如果想要直接设置或者修改对象的属性,可以通过对象查看器(Object Inspector)中的 窗口直接进行设置。5、ListBox对象列表框中的内容是通过 属性来进行设置的。6、时钟组件(Timer)能有规律的以一定时间间隔触发 事件。7、如果让界面上的一个按钮变为
2、不可用,需要将它的 属性设为False。 8、Image组件可通过设置其 属性为True使Image组件根据图像的大小自动调整显示窗口大小。9、Delphi的一个项目由若干文件组成,其中文件名后缀含有“”的文件为 。10、与数学表达式 对应的Object Pascal表达式是 二、单项选择题(30分,每题3分)1、Delphi程序设计的基本特点是( )A 可视化程序设计 B 代码程序设计 C 事件驱动编程 D A和C2、修改窗体的标题时,应当设置form的属性是( )ACaption B NameC TextD Label3、下列哪个常量说明语句是正确的( )A. const x := (c
3、16);B. const x : 16 ;C. const x := 16 ;D const x = 16 ;4、“x 是小于100的非负数”的Object Pascal表达式是( )A0 x = 0, x=0) AND (x = 0 ) OR (x100)5、编辑框(Edit)中的文本发生改变时引发的事件是( )AAutoSize BOnChange CSetFocus DSetText6、表达式 30 19 div 2 的值是( )A 37 B 49C 39D 407、现建立一个简单报表,仅包含报表标题栏、数据栏和汇总栏,则在Bands属性的子属性中,不需要选择的是( )AHasColum
4、nHeader BDetailCTitle DSummary 8、下面哪个功能键可以调出Delphi 的联机帮助信息( )AF1键 BF2键CF3键 DF4键9、数据库组件中,提供了对数据库读写操作功能的核心组件是( ) A数据源组件 B用户界面组件 C数据集组件 D数据感知控件10、以下控件中没有Items属性的是( )AComboBox B ListBox CRadioGroup DMemo三、判断题(10分,每题2分)请给下列论述中正确的打上“”,错误的打上“”(10分,每题1分)1、() 一个数组中的各元素的数据类型必须相同。2、( )在一个项目中,可以根据需要将任何一个窗体定义为主窗
5、体。3、() 每个数据感知控件都必须指定DataSource和DataField两个属性值。4、() label 和 Edit 组件都可以用于用户输入数据。5、( ) 按钮组件和编辑框组件能够响应的事件有些是相同的。四、程序填空题(30分,每题10分)1、(10分,每空2分)本程序根据用户选择的运算符对输入的二个操作数进行运算,并显示运算结果。设计界面和运行界面如图所示。其中,运算符是一个含有4个单选按纽的RadioGroup1对象。 下面是单击“运算”按钮的事件处理程序,请根据功能要求完成程序填空。-procedure TForm1.Button1Click(Sender: TObject)
6、;/运算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;-2、(10分,每空2分)数据库mydb中有关系表student,其结构如下:student(sno学号,sname姓名,sex性别,birthday生日)现编写一个学生信息浏览程序,设计界面
7、和运行界面如下图所示: 在下划线处填写相应数据库组件的属性值:Database1. DatabaseName : mydb Table1. DatabaseName : mydb Table1. TableName : studentTable1. Active : Datasource1.DataSet : DBNavigator1. DataSource : DBEdit2. DataSource : DBEdit2. DataField : 3、(10分,每空2分)本程序实现一个简单的借书界面。程序的设计界面和运行界面如下图所示: 该程序涉及到数据库中的两张表:books(图书信息)和b
8、orrow(借书记录)。表的结构为:books(bno,书号,bname书名,num现有册数)borrow(rno 读者号,bno书号,rdate还书日期)其中,rno和bno都是字符型(3位)。在用户界面,操作员选中一本书、输入借书证号后,按“借书”键完成借书功能,即在borrow表中插入一条借书记录,并将books表中该书现有册数减1。该界面要实现以下合法性检查:l 当该读者已经借了此书,不能再借。l 当所借的书现有册数为0,不能再借。在Form1上建立的数据库组件对象及连接关系如下:Database1Table1(与books表相连)DataSource1DBGrid1(显示图书信息)D
9、atabase1Table2(与borrow表相连,用于插入借书记录)Database1Query1其中为Table1建立了3个永久字段:Table1bno(书号)、Table1bname(书名)、Table1num(现有册数)。Query1的SQL语句如下:select bnofrom borrowwhere rno = :rno and bno = :bno下面是Unit1的代码实现部分,请完成程序填空:-implementation$R *.dfmprocedure TForm1.Button1Click(Sender: TObject); /“借书”键begin query1.Clos
10、e ; query1.ParamByName(rno).Value := ; query1.ParamByName(bno).Value := ; query1.Open ; if query1bno null then begin showmessage(该读者正在借阅此书); exit ; end ; if then begin showmessage(该书已全部借出); exit ; end; table2. ( edit1.Text , table1bno.Value , date+15 ); /插入借书记录 table1. ; table1num.Value := table1num
11、.Value - 1 ; / 现有册数减1 table1.Post ;end;end.-五、编程题(10分)本程序设计界面及运行界面如下: 程序功能是:用户输入一个3位正整数后,按“确定”键,该数字的个位、十位、百位数字分别显示在输出框中。如果输入的数据不在规定范围之内,程序要给出错误提示。请编写单击“确定”按钮的事件处理程序。试题参考答案一、填空题(20分,每空2分)1、方法 2、.dpr (或dpr) 3、一个入口 4、属性 或 Properties 5、Items 6、OnTimer 7、Enabled 8、AutoSize 9、备份文件10、 sqr(cos(a+b) /(3*x)+5
12、 或 cos(a+b) * cos(a+b) /(3*x)+5 二、单项选择题(30分,每题3分)1、 D 2、 A 3、D 4、C 5、 B 6、 C 7、 A 8、A 9、C 10、 D 三、判断题(10分,每题2分) 1、 2、 3、 4、 5、 四、程序填空题(30分,每题10分)1、(10分,每空2分) text text RadioGroup1 text y2、(10分,每空2分) True Table1 DataSource1 DataSource1 sname3、(10分,每空2分) edit1.Text table1bno.Value table1num.Value = 0 InsertRecord Edit五、编程题(10分)procedure TForm1.Button1Click(Sender: TObject);var x : integer ;begin x := strtoint(edit1.Text); if (x999) then showmessage(输入数据不在范围内); edit2.Text := inttostr(x DIV 100) ; edit3.Text := inttostr( (x DIV 10 ) Mod 10 ) ; edit4.Text := inttostr(x Mod 10) ;end;