试卷代号:2235 座位号■■ 中央广播电视大学2007一2008学年度第二学期“开放专科”期末考试 Delphi程序设计试题 2008年7月 题 号 三 四 五 总 分 分 数 得 分 评卷人 一、填空题(20分,每空2分)】 1.在面向对象的程序设计中,对象的属性用 来表示,对象的方法用代码来实现。 2.Delphi应用程序中项目文件的扩展名是 3.结构化程序设计要求程序中仅采用顺序、分支和循环三种控制结构,其中每种结构只 能有 和一个出口。 4.在Delphi集成开发环境中,如果想要直接设置或者修改对象的属性,可以通过对象查 看器(Object Inspector)?中的窗口直接进行设置。 5.在设计阶段,利用Image对象的 属性,可以加载一幅图片。 6.时钟组件(Timer)能有规律的以一定时间间隔触发 事件,并执行该事件过 程中的程序代码。为了使计时器控件Timerl每隔0.5秒就触发一次并执行事件代码,应将 Timerl控件的Interval属性设置为。 7.Delphi程序与数据库之间进行数据交换一般要由多个数据库组件协作完成。如果用 户要查询数据库中的一条信息,该指令通过用户界面组件发出,经数据源组件到达数据集组 件。数据集组件利用 组件与数据库建立连接,并读取数据库 中的数据,而后又经过 组件将数据送到用户界面组件中显示。 1411
试卷代号:2235 座位号巨口 中央广播电视大学2007-2008学年度第二学期“开放专科”期末考试 Delphi程序设计 试题 2008年 7月 题 号 四 五 总 分 分 数 得 分 评卷人 一、填空题【20分,每空 2分) 1.在面向对象的程序设计 中,对象的属性用 来表示 ,对象的方法用代码来实现 。 2. Delphi应用程序中项目文件的扩展名是 3.结构化程序设计要求程序中仅采用顺序、分支和循环三种控制结构,其中每种结构只 能有 和一个出口。 4.在 Delphi集成开发环境中,如果想要直接设置或者修改对象的属性,可以通过对象查 看器(Object Inspector)中的 窗 口直接进行设置 。 5.在设计 阶段,利用 Image对象的 属性 ,可以加载一幅图片。 6.时钟组件(Timer)能有规律 的以一定时间间隔触发 事件,并执行该 事件过 程中的程序代码。为了使计时器控件 Timerl每隔 0. 5秒就触发一次并执行事件代码,应将 Timerl控件的 Interval属性设置为 7. Delphi程序与数据库之间进行数据交换一般要由多个数据库组件协作完成。如果用 户要查询数据库中的一条信息,该指令通过用户界面组件发出,经数据源组件到达数据集组 件 。数据集组件利用 组件与数据库建立连接,并读取数据库 中的数据,而后又经过 组件将数据送到用户界面组件中显示。 1411
&.与数学表达式osCa+b)十a对应的Object Pascal表达式是 6x 得 分 评卷人 二、单项选择题(30分,每题3分) l.Delphi程序设计的基本特点是( A.可视化程序设计 B.代码程序设计 C.事件驱动编程 D.A和C 2.修改窗体的标题时,应当在属性页中设置的属性是( )。 A.Caption B.Name C.Text D.Label 3.下列哪个常量说明语句是正确的( )。 A.const x:=(c=0,x=0)AND(x=0)OR(x<100) 5.工具栏上的一个SpeedButton按钮如果要设置为状态按钮,则正确设置的方法是 () A.将SpeedButton按钮的GroupIndex属性设置为O,且AllowAllUp属性设置为 True B.将SpeedButton按钮的GroupIndex属性设置为O,且AllowAllUp属性设置为 False C.将SpeedButton按钮的GroupIndex属性设置为非O值,且AllowAllUp属性设置 ·为True D.将SpeedButton按钮的GroupIndex.属性设置为非0值,且Allow AllUp属性设 置为False 1412
、“ 、、二cost (a+ b), 、 、二‘。,. 。 ,~、.二 。 7拟子衣边八一-一6x-一-raxylA%LWJ VDject rascal农还八足 得 分 评卷人 二、单项选择题 (30分 ,每题 3分 ) 1. Delphi程序设计的基本特点是( 可视化程序设计 事件驱动编程 B.代码程序设计 D. A 和 C A C. 2.修改窗体的标题时 ,应 当在属性页中设置的属性是( )。 A. Caption C. Text B. Name D. Label 3.下列哪个常量说明语句是正确的( )。 A. const x:= (c= 0,X=0) AND (x= 0)OR (x< 00) 5.工具栏上的一个 SpeedButton按钮如果要设置为状态按钮,则正确设置的方法是 ( A.将SpeedButton按钮的GroupIndex属性设置为。,且AllowAllUp属性设置为 True B.将SpeedButton按钮的GroupIndex属性设置为。,且AllowAllUp属性设置为 False C.将 SpeedButton按钮的GroupIndex属性设置为非。值,且 AllowAllUp属性设置 为 True D.将SpeedButton按钮的GroupIndex属性设置为非0值,且AllowAllUp属性设 置为 False 1412
6.表达式30十19div2的值是(). A.37 B.49 C.39 D.40 7.下列说法正确的是()。 A.组件必须是可视的,这样用户才能使用 B.控件都是可视的 C.一个组件肯定是控件 D.按钮(Button)是组件,而窗体(Form)则不是组件 8.以下能够触发编辑框(Edit)组件OnChange事件的操作是()。 A.鼠标单击编辑框 B.鼠标双击编辑框 C.在编辑框中选择文本 D.在编辑框中输入文本 9.现建立一个简单报表,仅包含报表标题栏、数据栏和汇总栏,则在Bads属性的子属性 中,不需要选择的是()。 A.Title B.Detail C.HasColumnHeader D.Summary 10.只能输出、而不能输入的数据感知控件是()。 A.DBEdit B.DBText C.DBRadioGroup D.DBCheckBox 得 分 评卷人 三、判断题(请给下列论述中正确的打上“√”,错误的打上“X”。10 分,每题2分) 1.const c:=80的说明语句是合法的。 () 2.在Delphi环境中,在窗体上建立的按钮是“类”的概念。 () 3.一个Table对象不能同时指定与之相连的两个关系表。 4.对象的Name属性值可以为空。 ( ) 5.一个Query对象同一时刻只能存储一条SQL语句。 () 1413
6.表达式 30 +19 div 2的值是( )。 A. 37 B. 49 C. 39 D. 40 7.下列说法正确的是( )。 A.组件必须是可视的,这样用户才能使用 B.控件都是可视的 C.一个组件肯定是控件 D.按钮(Button)是组件,而窗体(Form)则不是组件 8.以下能够触发编辑框(Edit)组件OnChange事件的操作是( )。 A.鼠标单击编辑框 B.鼠标双击编辑框 C.在编辑框中选择文本 D.在编辑框中输人文本 9.现建立一个简单报表,仅包含报表标题栏、数据栏和汇总栏,则在 Bands属性的子属性 中,不需要选择的是( )。 A. Title B. Detail C. HasColumnHeader D. Summary 10.只能输 出、而不能输人的数据感知控件是( )。 A. DBEdit B. DBText C. DBRadioGroup D. DBCheckBox 得 分 评卷人 三、判断题(请给下列论述中正确的打上“训”,错误的打上“X”。10 分 .每题 2分) 1. const。:=80的说明语句是合法的。 2.在 Delphi环境中,在窗体上建立的按钮是“类”的概念。 3.一个 Table对象不能同时指定与之相连的两个关系表。 4.对象的 Name属性值可以为空。 5.一个 Query对象同一时刻只能存储一条 SQL语句。 1413
得分 评卷人 四、程序填空题(共30分,每题15分) 1.(15分,每空3分) 本程序根据用户选择的运算符对输人的二个操作数进行运算,并显示运算结果。界面如 图。其中,运算符是一个含有4个单选按纽的RadioGroup组件,名称为RadioGroupl,标题分 别为“+”、“一”、“*”和“/”。程序运行后,在Edit1、Edit2中输入两个整数值,选中一个单选 按钮后单击命令按钮,相应的计算结果显示在Edt3,程序运行情况如图所示。 Editl Edit2 Edit3 7F室 操作数1 RadioGroupl Buttonl 请填入适当的内容,将程序补充完整。 procedure TForm1.Button1Click(Sender:TObject); var x1,x2,y Integer; begin x1 StrToInt(Edit1.1 x2 :StrTolnt(Edit2.2 Case③ ItemIndex of 1414
得 分 评卷人 四、程序填空题(共 30分.每题 15分) 1. (15分,每空 3分) 本程序根据用户选择的运算符对输人的二个操作数进行运算,并显示运算结果。界面如 图。其中,运算符是一个含有4个单选按纽的RadioGroup组件,名称为RadioGroupl,标题分 别为“+”、“一”、“,”和“/”。程序运行后 ,在 Editl, Edit2中输人两个整数值 ,选 中一个单选 按钮后单击命令按钮,相应的计算结果显示在 Edit3,程序运行情况如图所示。 Editl Edit2 Edit3 护 ~ 一 十 介 子r 打 义 月, 又 健减 滋 月 、 , 、 飞 够 RadioCroupl 请填人适当的内容,将程序补充完整。 procedure TForml. ButtonlClick(Sender: TObject); Var 1414 x1,x2,Y:Integer; begin x1:= StrToInt( Editl.① ); x2:= StrTolnt( Edit2.② ); Case③ .ItemIndex of
0:y:=x1+x25 1:y:=x1-x2; 2:y:=x1*x2; 3:y:=x1 Div x2; End; Edit3.④ IntToStr(⑤ end; 2.(15分,每空3分) 本程序实现一个简单的选课界面。设计界面和运行界面如下图所示: Form 名额 c01 物理 200 c01 物理 199 c02 化学 100 c02 化学 99 c03 外语 50 c03 外语 49 c04 力学 149 c04 力学 149 Editl 040001 该程序涉及到数据库中的两张表:course(课程表)和sc(选课表),表结构如下: sc(sno学号,cno课程号,grade成绩) course(cno课号,cname课名,quota名额) 其中:sno和cno都是字符型。 在用户界面,操作员选中一门书、输人学号后,按“选课”键,完成选课功能,即在s℃表中插 入一条选课记录,并将course表中该课程的名额减1。 该界面要实现以下合法性检查: ●当该学生已经选过此课,不能再选。 ●当所选课程名额已为0,不能再选。 在Forml上建立的数据库组件对象及连接关系如下: Databasel一Tablel(与course表相连)一DataSourcel--DBGridl(显示课程信息) Databasel一Table2(与sc表相连,用于插入选课记录) 1415
0.y.= x1牛 x2 1:y:= x1一 x2 2:y:= xl * x2 = xl Div x2 :二 IntToStr(⑤ ); 尔 nd; dit: 3 E E end 2.05分,每空 3分) 本程序实现一个简单的选课界面。设计界面和运行界面如下图所示: 该程序涉及到数据库中的两张表:course(课程表)和 sc(选课表),表结构如下: sc(sno学号,cno课程号,grade成绩) course(cno课号,cname课名,quota名额) 其中:sn。和 cn。都是字符型。 在用户界面,操作员选中一门书、输人学号后,按“选课”键,完成选课功能,即在 sc表中插 人一条选课记录,并将 。ourse表中该课程的名额减 10 该界面要实现以下合法性检查 : . 当该学生已经选过此课,不能再选。 . 当所选课程名额 已为 0,不能再选。 在 Forml上建立的数据库组件对象及连接关系如一「: Databasel一 Tablel(与 course表相连)一 DataSourcel--DBGridl(显示课程信息) Databasel一 Table2(与 sc表相连,用于插入选课记录) 1415
Databasel-Queryl 其中为Tablel建立了3个永久字段:Tablelcno(课程号)、Tablelcname(课程名)、 Tablelquota(名额)。 Query1的SQL语句如下: select cno from sc where sno=:sno and cno=:cno 下面是Unit1的代码实现部分,请完成程序填空: implementation ($R *dfm) procedure TForml..ButtonlClick(Sender:TObject);//“选课”键 begin query1.Close; query1.ParamByName('sno').Value :=1 query1.ParamByName('cno').Value :=2 query1.Open; if queryl ['cno']<>null then begin showmessage('已选过此课'): exit; end; if③ then begin showmessage('没有名额') exit; end; table22.④ [edit1.Text,tablelcno.Value,null]); table 1.Edit; 1416
Databasel一 Queryl 其中为 Tablel建立 了 3个永 久字 段:Tablelcno(课 程号)、Tablelcname(课程名)、 Tablelquota(名额)。 Queryl的 SQL语句如下: select cno from se where sno二 :sno and cno二 :cno 下面是 Unitl的代码实现部分,请完成程序填空: implementation {$R * .dfm) procedure TForml. ButtonlClick(Sender: TObject);//“选课”键 begin queryl. Close; queryl. ParamByName('sno').Value:=① ; queryl. ParamByName('cno').Value:二② ; queryl. Open; if queryl ['cno']<>null then begin showmessage(‘已选过此课‘); exit; end; if③ then begin showmessage(‘没有名额’); exit end tablet.④ ([edit l. Text,tablelcno. Value, null]); table 1.Edit; 1416
tablelquota..Value:=tablelquota.Value-l;∥名额减1 tablel.⑤ end; end. 得 分 评卷人 五、编程题(10分) 一个计算圆周长和面积的程序,设计界面及运行后界面如下图所示。在“半径”框中输入 圆的半径,单击“计算”按钮,在“周长”、“面积”框中显示圆的周长和面积。根据题意,请编写单 击“计算”按钮(Buttonl)的事件处理程序代码(π可直接使用系统定义常量PI)。 (提示:设圆的半径为r,则圆的周长=2πr,面积=πr2) 计克月K和西积 计算冈网K和面积 菌石网 半径: Edit1 Butlon1 半径: 6 计算 周长: Edit2 周长: 37.68 Button2 退出 面积:Ed3 面积: 113.04 procedure TForml.ButtonlClick(Sender:TObject); begin end; procedure TForm1.Button2Click(Sender:TObject); begin Close; end; 1417
tablelquota. Value:=tablelquota. Value-1;/名额减1 tablel ⑤ ; end: end. 匡f- if-1k‘ ,}},}(lo分’ 一个计算圆周长和面积的程序,设计界面及运行后界面如下图所示。在“半径”框中输入 圆的半径,单击“计算”按钮,在“周长”、“面积”框中显示圆的周长和面积。根据题意,请编写单 击“计算”按钮(Buttonl)的事件处理程序代码(7(可直接使用系统定义常量 PI) o (提示:设圆的半径为 r,则 圆的周长二27[r,面积= 7Cr' ) procedure TForml. begin end; procedure TForml. begin close; end; Button IClick (Sender: TObject); Button2Click (Sender: TObject); 1417
试卷代号:2235 中央广播电视大学2007一2008学年度第二学期“开放专科”期末考试 Delphi程序设计试题答案及评分标准 (供参考) 2008年7月 一、填空题(20分,每空2分) 1.变量 2..dpr(或dpr) 3.一个人口 4.属性 5.Picture 6.OnTimer 500 7.数据库连接组件 数据源组件 8.sqr(cos(a+b))/(6*x)+a cos(a+b)*cos(a+b)/(6*x)+a 二、单项选择题(30分,每题3分】 1.D 2.A 3.D 4.C 5.C 6.C 7.B 8.D 9.C 10.B 三、判断题(10分,每题2分)】 1.X 2.X 3.V 4.X 5.V 四、程序填空题(共30分,每题15分) 1.(15分,每空3分) ①text ②text ③RadioGroupl ④text ⑤y 1418
试卷代号:2235 中央广播电视大学2007-2008学年度第二学期“开放专科”期末考试 Delphi程序设计 试题答案及评分标准 (供参考) 2008年7月 一、填空题(20分,每空2分) 1.变量 2. . dpr(或dpr) 3.一个人 口 4.属性 5. Picture 6. OnTimer 500 7.数据库连接组件 数据源组件 8. sgr(cos(a+b))/(6,x) +a或 cos(a+b),cos(a+ b)/(6*x) -F-a 二、单项选择题(30分,每题 3分) 1. D 2. A 3. D 4. C 5. C 6. C 7. B 8.D 9. C 10. B 三、判断题(10分 ,每题 2分 ) 1. X 2. X 3.丫 4. X 5.丫 四、程序填空题(共 30分,每题 15分) 1.05分,每空 3分) ①text ②text ③RadioGroupl .text ⑤y 1418
2.(15分,每空3分) ①editl.Text ②tablelcno.Value 3tablelquota.Value=0 ④InsertRecord ⑤Post 五、编程题(10分)】 procedure TForm1.Button1Click(Sender:TObject); Var r,C,S real; begin r:=StrToFloat(edit1.Text); C:=2*PI¥r; S:=PI¥r*r;/或者为PI*sqr(r) edit2.Text :FloatToStr(C); edit3.Text :FloatToStr(S); end; 1419
2. (15分,每空 3分) )editl. Text ②tablelcno. Value } 3tablelquota. Value=0 .InsertRecord ⑤Post 五、编程题 (10分 ) procedure TForml. ButtonlClick (Sender: TObject); Var r,C,S:real; begin r:=StrToFloat(editl. Text); C:”2*PI*r; S: =PI * r * r;//或者为 PI * sqr(r) edit2. Text:= FloatToStr(C); edit3. Text:“ F1oatToStr(S); end; 1419