刀刀网
您的当前位置:首页可视化编程技术

可视化编程技术

来源:刀刀网
一、填空题(20分,每空2分)

1、现实世界中对象具有自己的状态和行为。对应着,面向对象技术中的对象可以具有自己的属性和 。

2、Delphi应用程序中项目文件的扩展名是 。

3、结构化程序设计要求程序中仅采用顺序、分支和循环三种控制结构,其中每种结构只能有 和一个出口。

4、在Delphi集成开发环境中,如果想要直接设置或者修改对象的属性,可以通过对象查看器(Object Inspector)中的 窗口直接进行设置。 5、ListBox对象列表框中的内容是通过 属性来进行设置的。 6、时钟组件(Timer)能有规律的以一定时间间隔触发 事件。

7、如果让界面上的一个按钮变为不可用,需要将它的 属性设为False。 8、Image组件可通过设置其 属性为True使Image组件根据图像的大小自动调整显示窗口大小。

9、Delphi的一个项目由若干文件组成,其中文件名后缀含有“~”的文件为 。

10、与数学表达式 对应的Object Pascal表达式是

1、方法 2、.dpr (或dpr) 3、一个入口 4、属性 或 Properties 5、Items 6、OnTimer 7、Enabled 8、AutoSize 9、备份文件 10、 sqr(cos(a+b)) /(3*x)+5 或 cos(a+b) * cos(a+b) /(3*x)+5

二、单项选择题(30分,每题3分)

1、Delphi程序设计的基本特点是( d )

A.可视化程序设计 B. 代码程序设计

C. 事件驱动编程 D. A和C

2、修改窗体的标题时,应当设置form的属性是(a ) A.Caption B. Name

C. Text

D. Label

3、下列哪个常量说明语句是正确的( d)

A. const x := (c < 16); C. const x := 16 ;

B. const x : 16 ; D const x = 16 ;

4、“x 是小于100的非负数”的Object Pascal表达式是( c ) A.0 ≤ x < 100

B. x >= 0, x<100

D. (x >= 0 ) OR (x<100)

C.(x >=0) AND (x < 100)

5、编辑框(Edit)中的文本发生改变时引发的事件是( b)

A.AutoSize C.SetFocus

B.OnChange

D.SetText

6、表达式 30 + 19 div 2 的值是( c) A. 37 C. 39

B. 49 D. 40

7、现建立一个简单报表,仅包含报表标题栏、数据栏和汇总栏,则在Bands属性的子属性中,不需要选择的是( a) A.HasColumnHeader B.Detail C.Title D.Summary

8、下面哪个功能键可以调出Delphi 的联机帮助信息( a ) A.F1键 B.F2键 C.F3键 D.F4键

9、数据库组件中,提供了对数据库读写操作功能的核心组件是( c ) A.数据源组件

B.用户界面组件

C.数据集组件

D.数据感知控件

10、以下控件中没有Items属性的是( d )

A.ComboBox B. ListBox C.RadioGroup D.Memo

三、判断题(10分,每题2分)

请给下列论述中正确的打上“√”,错误的打上“”(10分,每题1分) 1、( ) 一个数组中的各元素的数据类型必须相同。

2、( )在一个项目中,可以根据需要将任何一个窗体定义为主窗体。 3、( ) 每个数据感知控件都必须指定DataSource和DataField两个属性值。 4、( ) label 和 Edit 组件都可以用于用户输入数据。

5、( ) 按钮组件和编辑框组件能够响应的事件有些是相同的。 1、√ 2、√ 3、 4、 5、 √

四、程序填空题(30分,每题10分)

1、(10分,每空2分)

本程序根据用户选择的运算符对输入的二个操作数进行运算,并显示运算结果。设计界面和运行界面如图所示。其中,运算符是一个含有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;

① text ② text ③ RadioGroup1 ④ text ⑤ y

2、(10分,每空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

: ④ : ⑤

① True ② Table1 ③ DataSource1 ④ DataSource1 ⑤ sname

3、(10分,每空2分)

本程序实现一个简单的借书界面。程序的设计界面和运行界面如下图所示: 该程序涉及到数据库中的两张表:books(图书信息)和borrow(借录)。

表的结构为: books(bno,书号,bname书名,num现有册数) borrow(rno 读者号,bno书号,rdate还书日期) 其中,rno和bno都是字符型(3位)。

在用户界面,操作员选中一本书、输入借书证号后,按“借书”键完成借书功能,即在borrow表中插入一条借录,并将books表中该书现有册数减1。 该界面要实现以下合法性检查:

当该读者已经借了此书,不能再借。 当所借的书现有册数为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

showmessage('该书已全部借出'); exit ;

end;

table2. ④ ( [edit1.Text , table1bno.Value , date+15] ); //插入借录

table1. ⑤ ;

table1num.Value := table1num.Value - 1 ; // 现有册数减1 table1.Post ; end; end.

① edit1.Text ② table1bno.Value ③ table1num.Value = 0 ④ InsertRecord ⑤ Edit

五、编程题(10分)

本程序设计界面及运行界面如下:

程序功能是:用户输入一个3位正整数后,按“确定”键,该数字的个位、十位、百位数字分别显示在输出框中。如果输入的数据不在规定范围之内,程序要给出错误提示。

请编写单击“确定”按钮的事件处理程序。 procedure TForm1.Button1Click(Sender: TObject); var

x : integer ; begin

x := strtoint(edit1.Text);d

if (x<100) or (x>999) then

showmessage('输入数据不在范围内'); edit2.Text := inttostr(x DIV 100) ;

edit3.Text := inttostr( (x DIV 10 ) Mod 10 ) ; edit4.Text := inttostr(x Mod 10) ; end;

试题参

一、填空题(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 或 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 ⑤ y

2、(10分,每空2分)

① True ② Table1 ③ DataSource1 ④ DataSource1 ⑤ sname

3、(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);d if (x<100) or (x>999) then

showmessage('输入数据不在范围内'); edit2.Text := inttostr(x DIV 100) ;

edit3.Text := inttostr( (x DIV 10 ) Mod 10 ) ; edit4.Text := inttostr(x Mod 10) ; end;

判断素数 var

Form1: TForm1; i,j,k,s:integer; t:boolean; a,b:integer;

flag:boolean;

function primes(x:integer):boolean;

implementation

function primes(x:integer):boolean; begin if x=2 then begin

result:=true; exit; end;

for i:=2 to x-1 do begin

if x mod i=0 then begin

flag:=false; break; end else

flag:=true; end;

result:=flag; end;

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject); begin

memo1.Clear; end;

procedure TForm1.Button1Click(Sender: TObject); begin

memo1.Clear; a:=strToint(edit1.text); b:=strToint(edit2.text); k:=0;

s:=0;

for j:=a to b do begin

t:=primes(j); if t=true then begin

memo1.Lines.Add(intTostr(j)); k:=k+1; s:=s+j; end;

end;

memo1.Lines.Add(intTostr(a)+'~'+intTostr(b)+'共有素数'+intTostr(k)+'个'); memo1.Lines.add('总和为:'+intTostr(s)+'。'); end;

procedure TForm1.Button2Click(Sender: TObject); begin

edit1.Text:=''; edit2.Text:=''; memo1.Clear; end; end.

阶乘累加

a:=strtoint(edit1.Text); k:=0;

begin

for j:=1 to a do k:=sum(j)+k;

end;

label2.Caption:='1!'+'+....+'+inttostr(a)+'!='+inttostr(k);

时间类与对象 var

Form1: TForm1;

implementation

constructor Tdate.Create; begin

inherited create; end;

constructor Tdate.create(y:integer;m:integer;d:integer); begin

inherited create; year:=y; month:=m; day:=d; end;

procedure Tdate.setyear(y:integer); begin year:=y; end;

function Tdate.getyear:integer; begin

result:=year;

end;

function Tdate.isleapyear:boolean; begin

if ((year mod 4 = 0) and (year mod 100<>0)) or (year mod 400=0) then result:=true else

result:=false; end ;

function Tdate.showdate:string; begin

result:=inttostr(year)+'-'+inttostr(month)+'-' +inttostr(day); end;

function Tdate.days:integer ; var

total:integer; i:integer; begin total:=0;

for i:=1 to month-1 do case i of

1,3,5,7,8,10:total:=total+31; 4,6,9,11:total:=total+30;

2: if isLeapyear then total:=total+29

else total:=total+28; end;

result:=total+day; end;

function TDate.showdateformat(s:string):string; begin

if s='yyyy-mm-dd' then result:=showdate else

if s='mm/dd/yyyy' then

result:=inttostr(month)+'/' +inttostr(day)+'/'+inttostr(year) else

if s='yyyy年mm月dd日' then

result:=inttostr(year)+'年'+inttostr(month)+'月' +inttostr(day)+'日' else

result:=showdate; end;

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject); var S:Tdate;

var y,m,d:integer; begin

memo1.Lines.Clear; edit1.SetFocus;

if (edit1.Text='') or (edit2.Text='' )or (edit3.Text='') then label10.Caption:='请输入数据:' else begin

y:=strtointdef(edit1.text,2011); m:=strtointdef(edit2.Text,1); d:=strtointdef(edit3.Text,1);

s:=Tdate.Create; s.setyear(y); s.month:=m;

s.day:=d;

memo1.Lines.Add('输入的日期是: '+s.showdateformat(combobox1.Text)); memo1.Lines.Add(s.showdate+' 是该年中的 '+inttostr(s.days) +'天');

s.Destroy;

end; end;

procedure TForm1.Button2Click(Sender: TObject); begin close; end;

end.

登入注册

procedure TForm1.Button1Click(Sender: TObject); begin

form2.Show; end;

procedure TForm1.BitBtn1Click(Sender: TObject); begin

if (trim(edit1.Text)='admin') and (trim(edit2.Text)='123') then showmessage('登录成功')

else

showmessage('用户名或密码错误'); end;

记事本

procedure TForm1.N3Click(Sender: TObject);//打开文件 begin

if OpenDialog1.execute then begin

filename:= OpenDialog1.FileName; memo1.lines.loadFromfile(filename); form1.Caption:=filename+'-记事本';

application.Title:=filename+'-记事本';

statusbar1.Panels[0].Text:= filename+'-记事本'; end; end;

procedure TForm1.N4Click(Sender: TObject);//保存文件 begin

if memo1.Modified then

if filename<>'' then

memo1.Lines.SaveToFile(filename) else

if savedialog1.Execute then

begin

filename:=savedialog1.FileName; memo1.Lines.SaveToFile(filename); form1.Caption:=filename+'-记事本';

application.Title:=filename+'-记事本';

statusbar1.Panels[0].Text:= filename+'-记事本'; end; end;

listbox运用

procedure TForm1.Button1Click(Sender: TObject);//往右LISTBOX全部剪切 var

i,n:integer; begin

n:=listbox1.Count; for i:=0 to n-1 do

listbox2.Items.Add(listbox1.Items[i]);

for i:=1 to n do

listbox1.Items.Delete(0);

showbtnen; end;

procedure TForm1.Button2Click(Sender: TObject); var i,j:integer; begin

for j:=0 to listbox1.Count-1 do for i:=0 to listbox1.Count-1 do if listbox1.Selected[i] then begin

listbox2.Items.Add(Listbox1.Items[i]); listbox1.Items.Delete(i); break; end; showbtnen; end;

载入图片

procedure TForm1.Button2Click(Sender: TObject); begin

if openpicturedialog1.Execute then

image1.Picture.LoadFromFile(openpicturedialog1.FileName); end;

flash效果 i:=i+1; case i Mod 8 of

1:label1.Caption:=''; 2:label1.Caption:='计'; 3:label1.Caption:='计算'; 4:label1.Caption:='计算机'; 5:label1.Caption:='计算机1'; 6:label1.Caption:='计算机11'; 7:label1.Caption:='计算机110'; 8:label1.Caption:='计算机1106';

三角形

procedure TForm1.Button3Click(Sender: TObject);

var

area:real; begin

x:=StrToFloat(Edit1.Text); y:=StrToFloat(Edit2.Text);

z:=StrToFloat(Edit3.Text); w:=(x+y+z)/2;

area:=sqrt(w*(w-x)*(w-y)*(w-z));

showmessage('三角形的面积为:'+FloatToStr(area)); end;

登入、

procedure TForm1.Button1Click(Sender: TObject); begin

if (edit1.text='admin') and (edit2.text='admin') then begin

button1.Enabled:=true;

showmessage('密码正确,欢迎进入!'); Form2.show; end

else begin

showmessage('密码错误!')

end; end;

procedure TForm1.Button2Click(Sender: TObject); begin

form1.Close; end;

procedure TForm1.Edit1Change(Sender: TObject); begin

if (edit1.text='') then button1.enabled:=false else

begin

button1.enabled:=true; end; end;

procedure TForm1.Edit2Change(Sender: TObject); begin

if (edit2.text='') then button1.enabled:=false else begin

button1.enabled:=true; end; end; end.

因篇幅问题不能全部显示,请点此查看更多更全内容