数据库应用程序设计离线作业答案

更新时间:2023-07-21 05:09:01 阅读量: 实用文档 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

2013浙大远程教育

第一章

1、Delphi2007 for win32集成开发环境由哪几部件组成?简述各部分的功能。 主窗口:提供系统菜单栏、系统工具条和组件面板

设计视图:提供项目程序设计工作区域

代码编辑器:提供程序代码编写、快捷的代码编写功能、对象观察器

结构视图:窗体设计器工作状态,用于显示窗体中可视化控件的继承结构;

窗体设计器代码编辑状态,用于显示源代码对象的继承结构,同时提供代码编写错误提示信息;

项目管理器、模型视图和数据管理器

项目管理器:显示工程结构和工程文件管理;

模型视图:提供项目逻辑表示

数据管理器:用于浏览数据库中的对象,也可以用于创建和管理数据链接; 欢迎界面:引导进入delphi开发,同时显示最近打开过的项目,还是显示网

络和RSS的最新新闻、资源;

历史代码页面:记录项目文件历史编辑过程日志,当前单元文件的编辑日期

及作者;

帮助系统:Borland delphi 2007快速启动指南;Delphi 2007在线帮助;

Mircrosoft .NET Framework在线帮助;Borland软件开发技术支持和相关网站;

2、Delphi单元文件主要由哪几个部分组成?简述各部分的功能。

库单元文件头:其中声明了库单元的名字.

Interface部分:

由保留字interface开始,结束于保留字implementation,它用来声明引用的单元,常量,数据类型,变量,过程和函数.在 Interface部分声明的变量,常量,数据类型,过程,函数都可以供外部引用,对整个程序而言是共有的.也就是说,对于所有引用该单元的单元来说,这 些声明都是可见和可访问的.

在Interface部分,只需写出过程和函数的首部,具体的定义是在下面的implementation部分给出的.

Interface部分又可分为多个可选部分,分别为单元引入部分(uses),常量说明部分,类型说明部分,变量说明部分,过程和函数声明部分.

Implementation部分:

Implementation部分分为两部分.一部分是声明部分,包括单元引用,常量,类型,变量,过程和函数的声明,这一点和Interface部分相似.

区别有两点:

(1):在Implementation部分声明的只对本单元是公共的,可见的,其他单元即使引用了该单元,也不能访问它们.

(2):在Implementation部分声明的过程和函数,不需要遵循先声明后定义的规则,而可以直接写出过程和函数的定义.另一部分是在Interface部分声明的过程和函数的定义.

4.Initialization部分:

用于初始化该库单元,此处的代码最先执行.如果多个库单元中包含Initialization部分那么它们的执行顺序就和Program的uses部分引用单元的出现顺序是一致的.

2013浙大远程教育

Finalization部分:

通常用于释放Initialization部分分配的资源.如果多个库单元中包含Finalization部分,其执行顺序和Initialization部分正好相反.

3、模仿例1.1,编写一个简单的窗体程序,显示如下内容:

***************************

欢迎学习Delphi语言!

***************************

提示:使用三个TLabel直接设置其Caption属性值。

2013浙大远程教育

第二章

1、Delphi语言中有哪些常用的数据类型?变量在使用前必须先定义,如何定义各种数据类型的变量?

1.有序类型:整型、字符型、布尔型(Boolean) 、枚举类型 、子界类型

2. 实数类型:实型、日期时间类型、字符串类型、可变类型

Var 变量名:数据类型 //适用于整型、字符型、布尔型变量定义

TYPE

typeName = (val1,…..,valn) //枚举类型变量定义

TYPE

类型标示符 = 上界值…下界值 //子界类型定义

type

TDateTime = type Double;

2、注释语句有哪几种形式?

1.花括号注释

{##############}

2. 圆括号/型号注释

(*################*)

3.双斜杠注释

//################

3、编写程序,输入两个浮点数,输出其和、差、积各为多少。

program Project2;

{$APPTYPE CONSOLE}

uses

SysUtils;

var

x,y:real;

sum,n,m:real;

begin

try

{ TODO -oUser -cConsole Main : Insert code here }

writeln('请输入2位浮点数:');

readln(x,y);

sum:=x+y;

n:=x-y;

m:=x*y;

writeln('和为:',sum);

writeln('差为:',n);

writeln('积为:',m);

readln;

except

on E:Exception do

Writeln(E.Classname, ': ', E.Message);

2013浙大远程教育

end;

end.

4、编写程序,输入5个整数,输出这5个数的平均值。

program Project2;

{$APPTYPE CONSOLE}

uses

SysUtils;

var

a,b,c,d,e:integer;

sum:integer;

avg:integer;

begin

try

{ TODO -oUser -cConsole Main : Insert code here }

writeln('请输入5个整数:');

read(a,b,c,d,e);

sum:=a+b+c+d+e;

avg:=sum div 5;

writeln('5个整数的平均数为:',avg);

readln;

except

on E:Exception do

Writeln(E.Classname, ': ', E.Message);

end;

end.

第三章

1、循环语句有哪几种形式?break语句与continue语句有何异同?

While语句

直到循环

For语句

辅助控制语句

循环嵌套

break语句与continue语句有何异同?

Continue语句只结束本次循环,而不是终止整个循环的执行,而break语句则是结束整个循环过程,不再判断循环条件是否成立;

2、某市出租车3公里的起租价为6元,3公里以外按1.5元每公里计费。现编写程序,要求:输入行车里程数,输出应付车费。

program Project2;

{$APPTYPE CONSOLE}

uses

SysUtils;

var

km:integer;

2013浙大远程教育

paykm:integer;

pay:real=0;

begin

try

{ TODO -oUser -cConsole Main : Insert code here }

writeln('请输入行车里程数:');

readln(km);

if (km>0)and(km<=3) then

begin

pay:=6;

writeln('输出应付车费为:',pay,'元整');

end

else if (km>3) then

begin

paykm:=km-3;

pay:=6+paykm*1.5;

writeln('输出应付车费为:',pay,'元整');

end

else

writeln('输出应付车费为:0元整');

readln;

except

on E:Exception do

Writeln(E.Classname, ': ', E.Message);

end;

end.

3、编写计算阶乘的函数,在主程序中调用函数求4!+6!+9!。

program Project1;

{$APPTYPE CONSOLE}

uses

SysUtils;

function ff(n:integer):integer;

var f:integer;

begin

if (n=0)or(n=1)then

f:=1

else

f:=ff(n-1)*n;

ff:=f;

end;

var x,y,z,fact:integer;

begin

x:=4;

2013浙大远程教育

y:=6;

z:=9;

fact:=ff(x)+ff(y)+ff(z);

writeln('4!+6!+9!=',fact);

readln;

try

{ TODO -oUser -cConsole Main : Insert code here }

except

on E:Exception do

Writeln(E.Classname, ': ', E.Message);

end;

end.

4、有两个红球、三个黄球、四个白球、任意取四个球,其中必须有一个红球,编程输出所有可能的方案。

program Project1;

{$APPTYPE CONSOLE}

uses

SysUtils;

var

red,yellow,white:integer;

begin

red:=1;

for red := 1 to 2 do

begin

yellow:=0;

while yellow<4-red do

begin

white:=4-red-yellow;

yellow:=yellow+1;

writeln('红球个数:',red,'黄球个数:',yellow, '白球个数:',white) ; end;

end;

readln;

try

{ TODO -oUser -cConsole Main : Insert code here }

except

on E:Exception do

Writeln(E.Classname, ': ', E.Message);

end;

end.

2013浙大远程教育

第四章

1、什么是类?什么是对象?什么是方法?三者有何关系?

类就是对一类事物的总称

例如:

吉普车、跑车、垃圾车等等他们都是属于汽车这个类的

汽车就是一个类,这个类代表了所有的车,虽然有各种各样的车

但是它们都有一些共同的特性:比如它们都有车门、发动机、变速箱等

对象就是类的实例

比如上面的汽车类

有很多种分类,有跑车、轿车、越野车等

它们的基本构造都是类似的

这时候我们就称跑车、轿车、越野车等属于汽车类的对象或实例

方法通俗来讲就是实例或对象拥有的一些功能

例如:汽车的对象或实例都可以启动、停车、打转向灯等

2、构造函数和析构函数的功能分别是什么?

构造函数:创建类的实例(对象),并对对象的数据成员进行初始化

析构函数:销毁调用的对象并且释放对象的内存

3、Delphi提供了几种异常类?

运行期间库异常类:I/O异常;堆异常;整数异常;浮点异常;类型匹配异常;类型转换异常;硬件异常;

组件异常类:预定义异常;通用异常;

其他异常:流异常;图形异常;打印异常;

4、Delphi提供了哪两种常用的异常处理结构?

使用try……except…..end处理异常

使用try……finally….end处理异常

第五章

1、按照组件在运行期间是否可见,Delphi中的组件可以分为哪两大类型?各有何特点?

可视化组件和非可视化组件

可视化组件特点:基于窗口的可视化组件具有窗口句柄,可以作为输入焦点,并可以含有控件;基于图形控件没有窗口句柄,不可以作为输入焦点; 非可视化组件特点:可以为程序增加功能,如TTimer

2、TEdit组件和TMemo组件在使用上有何不同?

TEdit只处理单行信息;TMemo可处理多行信息;

3、TListBox组件和TComboBox组件的用途有何不同?

TListBox显示一系列条文列表,用户可以选中一个或多个项,但不能直接对条文进行编辑,但TComboBox可以直接输入数据

4、利用常用组件设计一个具有加、减、乘、除功能的简易计算器,如下图所示。 interface

2013浙大远程教育

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls;

type

TForm1 = class(TForm)

Scr: TLabel;

Button1: TButton;

Button2: TButton;

Button3: TButton;

Button4: TButton;

Button5: TButton;

Button6: TButton;

Button7: TButton;

Button8: TButton;

Button9: TButton;

Button10: TButton;

Button11: TButton;

Button12: TButton;

Button13: TButton;

Button14: TButton;

Button15: TButton;

Button16: TButton;

Button17: TButton;

Button18: TButton;

Button19: TButton;

Button20: TButton;

procedure Button1Click(Sender: TObject);

procedure Button12Click(Sender: TObject);

procedure FormCreate(Sender: TObject);

procedure Button11Click(Sender: TObject);

procedure Button13Click(Sender: TObject);

procedure Button20Click(Sender: TObject);

procedure Button19Click(Sender: TObject);

procedure Button18Click(Sender: TObject);

private

{ Private declarations }

pnt,er,fb:boolean;

fstnm:Extended;

fbcaption:string;

public

{ Public declarations }

end;

var

2013浙大远程教育

Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);

var

temp:string;

begin

if er then exit;

if pnt then

scr.Caption:=scr.Caption+(sender as Tbutton).Caption

else if (scr.Caption='0.') or fb then

begin

scr.Caption:=(sender as Tbutton).caption+'.';

fb:=false;

end

else

begin

temp:=scr.Caption;

insert((sender as Tbutton).Caption,temp,length(temp));

scr.Caption:=temp;

end;

end;

procedure TForm1.Button12Click(Sender: TObject);

var

temp:string;

begin

if er then exit;

if scr.Caption<>'0.' then

if pos('-',scr.Caption)>0 then

begin

temp:=scr.Caption;

delete(temp,1,1);

scr.Caption:=temp;

end

else

scr.Caption:='-'+scr.Caption;

end;

procedure TForm1.FormCreate(Sender: TObject);

begin

pnt:=false;

fstnm:=0;

fb:=false;

fbcaption:='';

2013浙大远程教育

er:=false;

end;

procedure TForm1.Button11Click(Sender: TObject);

begin

if er then exit;

pnt:=true;

end;

procedure TForm1.Button13Click(Sender: TObject);

begin

if er then exit;

if not fb then

button20click(nil);

if er then exit;

fstnm:=strtofloat(scr.Caption);

fbcaption:=(sender as Tbutton).Caption;

fb:=true;

pnt:=false;

end;

procedure TForm1.Button20Click(Sender: TObject);

begin

if er then exit;

if fbcaption='+' then

begin

scr.Caption:=floattostr(strtofloat(scr.Caption)+fstnm);

end;

if fbcaption='-' then

begin

scr.Caption:=floattostr(fstnm-strtofloat(scr.Caption));

end;

if fbcaption='*' then

begin

scr.Caption:=floattostr(strtofloat(scr.Caption)*fstnm);

end;

if fbcaption='/' then

begin

if scr.Caption<>'0.' then

scr.Caption:=floattostr(fstnm/strtofloat(scr.Caption))

else

begin

scr.Caption:='zero divid error!';

er:=true;

end;

end;

2013浙大远程教育

if pos('.',scr.caption)=0 then

scr.Caption:=scr.Caption+'.';

fb:=true;

pnt:=false;

fbcaption:='';

end;

procedure TForm1.Button19Click(Sender: TObject);

begin

pnt:=false;

fstnm:=0;

fb:=false;

fbcaption:='';

er:=false;

scr.Caption:='0.';

end;

procedure TForm1.Button18Click(Sender: TObject);

begin

if er then exit;

scr.Caption:='0.';

end;

end.

2013浙大远程教育

第六章

1、利用TMainMenu组件创建一个主菜单“数据查询”,包括的菜单项有“查询基本情况”、“查询工作情况”和“查询工资情况”。

2、利用TPopupMenu组件建立快捷菜单(包括的菜单项有“还原”、“最小化”、“移动”和“关闭”)。设计好后,如何使其在程序执行时右击窗体会弹出相应的菜单?

设置Form窗体的PopupMenu属性为:TPopupMenu1

3、模仿Windows记事本的菜单界面编写一个程序。

2013浙大远程教育

4、根据教材6.8.2节中的示例,设计一个具有2个垂直分割条窗体程序,并运行测试它。

unit Unit1;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ExtCtrls;

type

TForm1 = class(TForm)

Panel1: TPanel;

2013浙大远程教育

Splitter1: TSplitter;

Panel2: TPanel;

Splitter2: TSplitter;

Panel3: TPanel;

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form1: TForm1;

implementation

{$R *.dfm}

end.

第七章

1、简述TCanvas(画布)组件的主要属性和方法。

TColor:RGB颜色定义

Pen:指定画线和画图形轮廓

MoveTo 方法:将笔的当前文职设置到点(x,y)处;

LineTo方法:配合MoveTo方法画出从(x1,y1)到(x2,y2)的线段;

Brush属性:决定画布填充图形的背景颜色和填充图案模式;

Rectangle方法:在画布上用当前画刷绘制矩形;

RoundRect方法:画带圆角的矩形;

Ellipse方法:画椭圆

Font属性:设置字体的名称、颜色、尺寸、风格;

TextOut方法:在画布指定位置处绘制文本字符串

Pixels属性:是一个二维数组,它的每个元素代表窗体表面或客户区的一个像素的Color值;

Draw方法:在画布指定的位置处复制一个图像

StretchDraw方法:在画布指定的矩形区域里绘制一个图像;

第八章

1、Delphi2007的TMediaPlayer组件主要有哪些功能?

播放AVI影片、Fic和Fli动画文件,还可以通过MCI播放很多媒体文件,如WAV、MIDI、MP3、CD音乐文件和WMV视频文件

第九章

1、简述在Delphi中创建数据库应用程序的过程。

通过TADOConnection组件建立数据库的连接,然后使用一个ADOConnection组件或者ADOQuery组件向数据库发送SQL命令,最后通过数据集获得数据,这时,数据集组件必须将Connection属性指向所使用的ADOConnection组件;

2、什么是数据集组件?数据集组件在数据库应用程序中起什么作用? 数据集组件包含一个数据缓冲区,通常说的数据集就是这个缓冲区;

作用:数据集组件连接数据库,将数据集读入缓冲区,供数据控制组件修改或新增数据,然后数据集组件将缓冲区数据集提交到数据库;

2013浙大远程教育

3、ADO数据集组件有哪些?为什么说它们有许多共同的属性、方法和事件? TADODataSet/TADOTable/TADOQuery/TADOStoredProc

都是直接获取整个数据表的数据,还可以执行存储过程,从磁盘文件获取数据

4、TADOTable组件提供了哪些数据查询方法?如何使用?

Locate方法:

Function Locate(constKeyFields:String;const KeyValues:Variant;Options:TLocateOptions):Boolean;override; Lookup方法

Function Lookup(constKeyFields:String;const KeyValues:Variant; const ResultFields:String):Boolean;override; Seek方法

Function Seek(const KeyValues:Variant;SeekOption:TSeekOption=soFirstEQ):Boolean;

5、什么是记录指针?记录指针有哪些特殊位置?在程序中如何判断? 记录指针:指向数据集中的当前记录

特殊位置:Bof & Eof

判断方法:

If ADOTable1.Bof and ADOTable1.Eof then

ShowMessage(‘该数据表为空表’);

6、TADOTable组件连接数据库有两种方式,请分别描述这两种方法的连接过程。 直接访问数据表中的每条记录或用Filter属性根据限定范围或条件对数据表中的信息进

行过滤

TADOTable组件也可以通过TableName属性对数据库中的数据表进行可视化选择。

连接过程:使用ADOConnection1组件建立数据连接,并将其LoginPrompt属性设置为False,Connected属性设置成True;

然后添加ADOTable1组件,设置器Connection属性为ADOConnection1,选择TableName属性为表名,将Active设置为True;

7、简述TADOConnection组件连接Access数据库和MS SQL数据库服务器的方法。 Access数据库连接:

Edit ConnectionString—Building—选择:microsoft jet 4.0 ole db provider—选择输入数据库名称—点击’….’控件---查找Access数据库;

MS SQL数据库连接:

Edit ConnectionString—Building—选择:microsoft ole db provider for SQLserver—选择输入服务器名称,输入数据库账户密码,选择数据库;

8、Delphi提供了哪些ADO组件?请说明这些组件之间的关系。

ADOConnection: 主要用于建立数据库的连接;

ADOdataSet:ADO 提取和操作数据库的主要数据集,可以直接连接到数据库,也可以通过 ADOConnection连接到数据库。

ADOtable:主要用以操作和提取单个基表的数据,可以直接连接到数据库,也可以通过 ADOConnection连接到数据库。

2013浙大远程教育

ADOquery:通过SQL 语言提取数据,其连接数据库的方式和前两种一样。 ADOStoredProc: 这个组件专门用于运行数据库中的存储过程。

ADOCommand:该组件用于运行一些SQL 命令,这个组件可以和支持数据集的组件一起使用,也可以直接从一个基表中提取一个数据集。

RDSConnection: 一个进程或一台计算机传递到另一个进程或计算机的数据集合。

9、比较TADOTable、TADODataset和TADOQuery组件之间的异同。

TADODataSet 用于执行有返回的操并保存返回的数据,通常是查询;

TADOTable 类似于 TADODataSet ,不过是缩水版,只能单表查询;

TADOCommand 用于执行无返回操作的,如创建,删除,更新;

TADOQuery 兼有 TADOCommand 和 TADODataSet 的功能,当然 TADOTable 的功能就更不在话下了。TADOQuery 的 Open 执行有返回的,ExecSql 执行无返回的

10、用TADODataset组件和TADOQuery组件编写一个通讯录程序,体会在功能实现上与TADOTable组件有何不同。

11、使用Access建立一个空白的数据库,编写程序,要求程序能够自动创建一个具有工号、姓名和工资等字段的数据表,同时在该应用程序中对工资表实现基本的增、删、改操作。

本文来源:https://www.bwwdw.com/article/egu1.html

Top