试卷代号:2235 座位号■ 国家开放大学(中央广播电视大学)2014年秋季学期“开放专科”期末考试 Delphi程序设计试题 2015年1月 题 号 二 三 四 五 总分 分 数 得 分 评卷人 一、单项选择题(30分,每题3分)】 1.Delphi程序设计的基本特点是( )。 A.可视化程序设计 B.代码程序设计 C.事件驱动编程 D.A和C 2.修改窗体的标题时,应当在属性页中设置的属性是( )。 A.Caption B.Name C.Text D.Label 3.“x是小于100的非负数”的ObjectPascal表达式是( A.0x=0,x=0)AND(x=0)OR(x<100) 4.下列叙述中正确的是()。 A.对于一组CheckBox组件,用户只能选择其中的一个 B.对于一组CheckBox组件,用户可以选择其中的一个或多个 C.对于一组RadioButton组件,用户可以选择其中的一个或多个 D.对于一组RadioButton组件,用户可以选择其中的多个 5.要改变一个对象的高度,应使用属性( )。 A.Font B.ForeColor C.Name D.Height 1005
试卷代号 :2235 座位号 国家开放大学(中央广播电视大学 )2014 年秋季学期"开放专科"期末考试 Delphi 程序设计试题 2015 E 一、单项选择题 (30 分,每题 分} 1. Delphi 程序设计的基本特点是( )。 五厅*l || A. 可视化程序设计 B. 代码程序设计 c.事件驱动编程 D. Z. 修改窗体的标题时,应当在属性页中设置的属性是( )。 A. Caption C. Text B. Name D. Label 3."x 是小于 100 的非负数"的 ObjectPascal 表达式是( )。 A.O x=0 , x=0)AND(x=O)OR(x<100) 4. 下列叙述中正确的是( )。 A. 对于一组 CheckBox 组件,用户只能选择其中的一个 B. 对于一组 CheckBox 组件,用户可以选择其中的一个或多个 C. 对于一组 RadioButton 组件,用户可以选择其中的一个或多个 D. 对于一组 RadioButton 组件,用户可以选择其中的多个 5. 要改变一个对象的高度,应使用属性( )。 A. Font B. ForcColor C. Name D. Height 1005
6.工具栏上的一组按钮如果要构成互斥关系(如“左对齐”、“居中”、“右对齐”),它们的 GroupIndex属性正确的设置是()。 A.GroupIndex属性值都为O B.GroupIndex属性值非O,且互不相同 C.GroupIndex属性值非0,且相同 D.GroupIndex属性值互不相同 7.下列符号中哪个表示Delphi程序注释开始()。 A./ B.?? C.# D.- 8.以下能够触发编辑框(Edit)组件OnChange事件的操作是()。 A.鼠标单击编辑框 B.鼠标双击编辑框 C.在编辑框中选择文本 D.在编辑框中输入文本 9.以下叙述中错误的是(), A.一个项目包含不止一种类型的文件 B.窗体的Show方法的作用是显示该窗体 C.窗体的Hide方法和Release方法的作用完全相同 D.若项目文件中有多个窗体,可以根据需要指定一个窗体为主窗体 10.只能输出、而不能输人的数据感知控件是( )。 A.DBEdit B.DBText C.DBRadioGroup D.DBCheckBox 得分 评卷人 二、判断题(请给下列论述中正确的打上“√”,错误的打上“×”,10 分,每题2分) )11.const c:=80的说明语句是合法的。 )12.在Delphi环境中,组件页上的组件是“对象”的概念,在窗体上建立的按钮是“类”的 概念。 ()3.所有的Delphi控件都有一个Name属性。 ()l4.在Data Controls组件页上,只有DBNavigator组件可以不用指定DataField属性 值。 ()l5.Delphi中的菜单项有3种类型:普通按钮型、复选框型和单选按钮型。 1006
6. 工具栏上的→组按钮如果要构成互斥关系(如"左对齐"、"居中"、"右对齐勺,它们的 GroupIndex 属性正确的设置是)。 A. Grouplndex 属性值都为 B. Grouplndex 属性值非 ,且互不相同 C. GroupIndex 属性值非 ,且相同 D. GroupIndex 属性值互不相同 7. 下列符号中哪个表示 Delphi 程序注释开始)。 A. // B. ?? C. # 8. 以下能够触发编辑框( Edit) 组件。nChange 事件的操作是( )。 A. 鼠标单击编辑框 B.鼠标双击编辑框 c.在编辑框中选择文本 D. 在编辑框中输入文本 9. 以下叙述中错误的是( )。 A. →个项目包含不止一种类型的文件 B.窗体的 Show 方法的作用是显示该窗体 c.窗体的 Hidc 方法和 Release 方法的作用完全相同 D. 若项目文件中有多个窗体,可以根据需要指定一个窗体为主窗体 10. 只能输出、而不能输入的数据感知控件是)。 A. DBEdit B. DBText C. DBRadioGroup U DBCheckBox 二、判断题{请给下列论述中正确的打上"~",错误的打上 "X" 10 分,每题 分) ) 11. const c: = 80 的说明语句是合法的。 ( ) 12. Delphi 环境中,组件页上的组件是"对象"的概念,在窗体上建立的按钮是"类"的 概念。 ( ) 13. 所有的 Delphi 控件都有一个 Name 属性。 ( ) 14. Data Controls 组件页上,只有 DBNavigator 组件可以不用指定 DataField 属性 值。 ( ) 15. Delphi 中的菜单项有 种类型:普通按钮型、复选框型和单选按钮型。 1006
得 分 评卷人 三、填空题(20分,每空2分) 16.对象的三个要素是属性、方法和 17.结构化程序设计要求程序中仅采用 三种控制结 构,其中每种结构只能有一个入口和一个出口。 I8.Delphi应用程序中项目文件的扩展名是 19.在设计阶段,利用Image对象的 属性,可以加载一幅图片。 20.如果要在窗体上设计一个主菜单,首先要建立 对象。 21.Delphi程序与数据库之间进行数据交换一般要由多个数据库组件协作完成。如果用 户要查询数据库中的一条信息,该指令通过用户界面组件发出,经数据源组件到达数据集组 件。数据集组件利用 组件与数据库建立连接,并读取数据库 中的数据,而后又经过 组件将数据送到用户界面组件中显示。 22.与数学表达式osa十b》-b对应的Object Pascal表达式是 a2+xy 23.利用Canvas对象的MoveTo和 绘图 方法,可以绘制一条。 24.RadioGroup对象中的单选按钮个数及名称是通过 属性来进行设置的。 得 分 评卷人 四、程序填空题(共30分,每题10分) 25.(10分,每空2分) 本程序根据用户选择的运算符对输人的二个操作数进行运算,并显示运算结果。设计界 面和运行界面如图所示。其中,运算符是一个含有4个单选按纽的RadioGroup】对象。 Forml 作数1 Edit1 选择 操作数134 操作数2 g 减 嵊作数2Edit2 2 除 结果dit3 结果 退出 退出 1007
三、填空题 (20 分,每空 分) 16. 对象的三个要素是属性、方法和 17. 结构化程序设计要求程序中仅采用 三种控制结 构,其中每种结构只能有→个人口和一个出口。 18. Delphí 应用程序中项目文件的扩展名是 19. 在设计阶段,利用 Image 对象的 属性,可以加载一幅图片。 20. 如果要在窗体 设计一个主菜单,首先要建立 对象。 21. Delphí 程序,与数据库之间进行数据交换一般要由多个数据库组件协作完成。如果用 户要查询数据库中的一条信息,该指令通过用户界面组件发出,经数据源组件到达数据集组 件。数据集组件利用 组件与数据库建立连接,并读取数据库 中的数据,而后又经过 组件将数据送到用户界面组件中显示。 S2 (a b) 22. 与数学表达式一-一 ~-b 对应的 Object Pascal 表达式是 xy 23. 利用 Canvas 对象的 MoveTo 方法.可以绘制一条。 24. RadioGroup 对象中的单选按钮个数及名称是通过 四、程序填空题(共 30 分,每题 10 分) 25. (1 分,每空 分) 绘图 属性来进行设置的。 本程序根据用户选择的运算符对输入的二个操作数进行运算,并显示运算结果。设计界 面和运行界面如图所示。其中,运算符是一个含有 个单选按纽的 RadioGroupl 对象。 1007
下面是单击“运算”按钮的事件处理程序,请根据功能要求完成程序填空。 procedure TForm1.Button1Click(Sender:TObject);// var x1,x2,y:Integer; begin x1:=StrTolnt(Edit1.D ): x2:=StrToInt(Edit2.2 Case③ ItemIndex of 0:y:=x1+x2; 1:y:=x1-x2; 2:y:=x1¥x2; 3:y:=xl Div x2; End; Edit3.④ :=IntToStr(⑤ end; 26.(10分,每空2分) 本程序由主窗体forml和子窗体form2组成,设计界面如下图所示: Forml Form2 Fanell 是否退出。 图 Yes No 打开文件播体通 主窗体Forml上建立的对象有Panell、MediaPlayer1、OpenDialogl、Buttonl(打开文 件)、Button?2(播放)、Button3(暂停)、Button4(退出)。 子窗体Form2上建立的对象有Labell、BitBtml(Yes)、BitBtm2(No)。 单击“打开文件”按钮,会弹出打开文件对话框。用户指定一个要播放的文件后,单击“播 放”按钮可播放多媒体文件,单击“暂停”按钮可暂停播放。 1008
下面是单击"运算"按钮的事件处理程序,请根据功能要求完成程序填空。 procedure TForm1. ButtonlClickCSender:TObject);/ /运算 var xl ,x2 ,y:lnteger; begin end; xl: = StrTolnt(Edit1.() ; x2: = StrTolnt(Edit2.() ; Case ③ O:y: =xl x2; 1 : y : = xl - x2 ; 2 :y: =xl x2; 3 :y: =xl Div x2; End; . ltemlndex of Edit3.(: =IntToStrC() ; 26. (1 分,每空 分〉 本程序由主窗体 forml 和子窗体 form2 组成,设计界面如下图所示: 主窗体 Forml 上建立的对象有 Pane l1、 diaPlayerl OpenDialogl Buttonl 打开文 件)、 Button2( 播放)、 Button3( 暂停)、 Button4C 退出)。 子窗体 Form2 上建立的对象有 Label1、 BitBtml CYes) BitBtm2CNo) 主在击"打开文件"按钮,会弹出打开文件对话框。用户指定→个要播放的文件后,单击"播 放"按钮可播放多媒体文件,单击"暂停"按钮可暂停播放 1008
单击“退出”按钮,会弹出确认对话框(Form2)。如果用户按“Yes”键,程序结束;如果按 “No”键,返回主窗体。 下面是Unitl的代码部分,请在下划线处完成程序填空。 implementation ($R*dfm) uses ① procedure TForm1,Button1Click(Sender:TObject);/打开文件 begin f② then begin MediaPlayer1.FileName:=3 MediaPlayer1.Open; MediaPlayerl.Display:=Panel1;/将Panell做为播放屏幕 MediaPlayer1.DisplayRect:=Rect(0,0,Panell.Width,Panell.Height); end; end; procedure TForm1.Button2Click(Sender:TObject);// begin MediaPlayer1.④ end; procedure TForml.Button3Click(Sender:TObject);// begin MediaPlayer1.Pause; end; procedure TForm1.Button4Click(Sender:TObject);// begin if⑤ =mrYes then close; end; end. 1009
单击"退出"按钮,会弹出确认对话框 CForm2) 。如果用户按 "Yes" 键,程序结束;如果按 "No"键,返回主窗体。 下面是 Unit1 的代码部分,请在下划线处完成程序填空。 implementation { $R 铸. dfm} uses ① procedure TForml. Button1ClickCSender: TObject);/ /打开文件 begin if ② begin MediaPlayerl. FileName: =③ MediaPlayer 1. Open; then MediaPlayer 1. Display: = Panel1 ; //将 Pane l1做为播放屏幕 MediaPlayerl. DisplayRect: =Rect(O , O, Panell. Width ,Panel1. Height); end; end; procedure TForm1. Button2ClickCSender: TObject) ; //播放 begin MediaPlayer 1.④ end; procedure TForml. Button3Click(Sender: TObject) ; //暂停 begin 1ediaPlayer l. Pause; end; procedure TForm1. Button4ClickCSender: TObject) ;//退出 begin if ⑤ =mrYes then c\ose; end; end. 1009
27.(10分,每空2分) 本程序实现一个简单的借书界面。程序的设计界面和运行界面如下图所示: Forml Form1 图中信息 国 图书信息 停书名 景乐名丽 001 数据挖掘项理 001数据挖振原理 002 知识工程和知识管理 002 知识工程和知识管理 003面向对象软件开发原理 3面向对象软件开发项理 004 特征驱动开发方法原理与实 004特征驱动开发方法原理与实 #书证将Bdit1 借图国 猫书证号F01 猎书 该程序涉及到数据库中的两张表:books(图书信息)和borrow(借书记录)。表的结构为: books(bno,书号,bname书名,num现有册数) borrow(rno读者号,bno书号,rdate还书日期) 其中,rno和bno都是字符型(3位)。 在用户界面,操作员选中一本书、输人借书证号后,按“借书”键完成借书功能,即在 borrow表中插人一条借书记录,并将books表中该书现有册数减1。 该界面要实现以下合法性检查: ●当该读者已经借了此书,不能再借。 ●当所借的书现有册数为0,不能再借。 在Form】上建立的数据库组件对象及连接关系如下: Databasel一Tablel(与books表相连)一DataSourcel一DBGrid1(显示图书信息) Databasel一Table2(与borrow表相连,用于插入借书记录) Databasel-Queryl 其中为Tablel建立了3个永久字段:Tablelbno(书号)、Tablelbname(书名)、Tablelnum (现有册数)。 Query1的SQL语句如下: select bno from borrow where rnc=:rno and bno=:bno 下面是Unt1的代码实现部分,请完成程序填空: implementation $R *dfm) 1010
27. (1 分,每空 分) 本程序实现一个简单的借书界面。程序的设计界面和运行界面如下图所示: 该程序涉及到数据库中的两张表: books( 图书信息)和 borrow( 借书记录)。表的结构为: books(bno ,书号, bname 书名, num 现有册数) borrowCrno 读者号, bno 书号, rdate 还书日期) 其中, rno bno 都是字符型 (3 位)。 在用户界面,操作员选中一本书、输入借书证号后,按"借书"键完成借书功能,即在 borrow表中插入一条借书记录,并将 books 表中该书现有册数减 该界面要实现以下合法性检查: • 当该读者已经借了此书,不能再借。 • 当所借的书现有册数为 ,不能再借。 Forml 上建立的数据库组件对象及连接关系如下: Databasel-Table lC与 books 表相连) - DataSourcel- DBGridl (显示图书信息) Databasel-Table2C borrow 表相连,用于插入借书记录) Databasel-Query1 其中为 Tablel 建立了 个永久宇段: Tablel bnoC 书号)、 Tablel bnamcC 书名)、 Tablelnum (现有册数)。 Queryl SQL 语句如下: select bno from borrow where rnc= , and bno= , bno 下面是 Unit1 的代码实现部分,请完成程序填空: irnplementation { $ 祷. dfm} 1010
procedure TForml.Button1Click(Sender:TObject);//“借书”键 begin query1.Close; query1.ParamByName(rno).Value:=D queryl.ParamByName('bno).Value:=2 query1.Open; if queryl['bno]<>null then begin showmessage(该读者正在借阅此书); exit; end; if③ then begin showmessaget(该书已全部借出); exit; end; table2.④ ([editl.Text,tablelbno.Value,date+ 15]):/插人借书记录 tablel.⑤ tablelnum.Value:=tablelnum.Value一l;/现有册数减] tablel.Post; end; end. 得 分 评卷人 五、编程题(10分)】 28.本程序设计界面及运行界面如下图所示。 Forml 区 7 Forml Memol 9 18 Editl Edit2 20 1011
procedure TF orm1. Buttonl Click (Sender: TObject) ; / /"借书"键 begin q uery 1. Close; query1. ParamByNameCrno'). Value: =① query1. ParamByName (,bno'). Value: =② queryl.Open; if queryl['b nO丁<> null then begin showmessage(该读者正在借阅此书,) ; eXlt; end; if ③ begin showmessage ('该书已全部借出,) ; eXlt; end; then table2. ④ ([editl. Text , tablelbno. Value , date 15J);// 插入借书记录 table 1.⑤ table1num. Value: =table1num. Value-1;/ /现有册数减 tablel. Post; end; end. |得分|评卷人| | 五、编程题 (10 分) 28. 本程序设计界面及运行界面如下图所示。 踵幽幽幽幽醋蜡摇摇摇 l EE--醋蘸制蟠 1011
该程序的功能是:用户在界面上的两个编辑框(Edit1、Edit2)内分别输人两个正整数M和 N(M<N),单击“计算”按钮(Buttonl),程序求出M~N之间所有能被3整除的数,并在 Memol对象中依次显示。 请编写单击“计算”按钮的事件处理程序。 procedure TForm1.ButtonlClick(Sender:TObject); begin end; 1012
该程序的功能是 用户在界面上的两个编辑框 CEdit1 Edit2) 内分别输入两个正整数 N(M<N) ,单击"计算"按钮 (Button1) ,程序求出 M~N 之间所有能被 整除的数,并在 Memo1 对象中依次显示。 请编写单击"计算"按钮的事件处理程序。 procedure TForml. Button1Click(Sender: TObject); begin end; 1012
试卷代号:2235 国家开放大学(中央广播电视大学)2014年秋季学期“开放专科”期末考试 Delphi程序设计试题答案及评分标准 (供参考) 2015年1月 一、单项选择题(30分,每题3分)】 1.D 2.A 3.C 4.B 5.D 6.A 7.A 8.D 9.C 10.B 二、判断题(请给正确的打上“√”,错误的打上“×”,10分,每题2分) 11.× 12.× 13./ 14.× 15./ 三、填空题(20分,每空2分】 16.事件 17.顺序、分支和循环 l8..dpr(或dpr) 19.Picture 20.MainMenu 21.数据库连接组件 数据源组件 22.sqr(cos(a+b))/(sqr(a)+x*y)一b或cos(a十b)*cos(a十b)/(a*a+xy)-b 23.LineTo 24.Items 四、程序填空题(共30分,每题10分) 25.(10分,每空2分) ①text ②text ③RadioGroupl ④text 1013
试卷代号 :2235 国家开放大学(中央广播电视大学 )2014 年秋季学期"开放专科"期末考试 Delphi 程序设计试题答案及评分标准 -、单项选择题 (30 分,每题 分} l. D 6. A 2. A 7. A (供参考) 3. C 8. D 4. B 9. C 二、判断题{请给正确的打上"~" ,错误的打上"X" 10 分,每题 分) 11. X 12. X 13. .J 14. X 三、填空题 (20 分,每空 分} 16. 事件 17. 顺序、分支和循环 18. . dpr( dpr) 19. Picture 20. MainMenu 1.数据库连接组件 数据源组件 5. D 10. B 15. .J 2015 22. sqr(cos(a b))/(sqr(a)+x y)-b cos(a b) cos(a b)/(a y)-b 23. LineTo 24. Items 四、程序填空题{共 30 分,每题 10 分) 25. (1 分,每空 分) ( text ( text ( RadioGroup1 ( text 1013
⑤y 26.(10分,每空2分) ①unit2 2 opendialogl.Execute 3 opendialogl.FileName ④Play ⑤form2.ShowModal 27.(10分,每空2分) ①editl.Text ②tablelbno.Value ③tablelnum.Value=o ④InsertRecord ⑤Edit 五、编程题(10分)】 28.procedure TForml.Button1Click(Sender:TObject); var m,n,i:integer; begin m:=StrToInt(editl.Text); n:=StrToInt(edit2.Text); Memol.Clear; for i:=m to n do if i MOD 3=0 then memol.Lines.Add(IntToStr(i)); end; 1014
( y 26. (1 分,每空 分) ( unít2 ( opendialog1. Execute ( opendialog1. FileName ( Play ( form2. ShowModal 27. (1 分,每空 分) ( edit1. Text ( table1bno. Value ( table1num. Value=o lns rtRecord ( Edit 五、编程题(1 分) 28. procedure TForm1. ButtonlClick(Sender: TObject); 1014 var m , n , 1: lnteger; begin m: =StrTolntCedit1. Text); n: =StrTolnt(edit2. Text); Memo1. Clear; for i, = m to n do if i MOD 3=0 then memo 1. Lines. dd (l ntToStr (i)) ; end: