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.
因篇幅问题不能全部显示,请点此查看更多更全内容