数据库应用程序设计离线作业答案.docx
《数据库应用程序设计离线作业答案.docx》由会员分享,可在线阅读,更多相关《数据库应用程序设计离线作业答案.docx(23页珍藏版)》请在冰豆网上搜索。
![数据库应用程序设计离线作业答案.docx](https://file1.bdocx.com/fileroot1/2023-6/6/93ec6b20-45ec-4f5c-a39d-e74db2b44cae/93ec6b20-45ec-4f5c-a39d-e74db2b44cae1.gif)
数据库应用程序设计离线作业答案
浙江大学远程教育学院
《数据库应用程序设计》课程作业(必做)
姓名:
年级:
学号:
学习中心:
—————————————————————————————备注:
提交时请直接提交源代码程序,不提交EXE可执行文件。
第一章
1、Delphi2007forwin32集成开发环境由哪几部件组成?
简述各部分的功能。
主窗口:
提供系统菜单栏、系统工具条和组件面板
设计视图:
提供项目程序设计工作区域
代码编辑器:
提供程序代码编写、快捷的代码编写功能、对象观察器结构视图:
窗体设计器工作状态,用于显示窗体中可视化控件的继承结构;窗体设计器代码编辑状态,用于显示源代码对象的继承结构,同时提供代码编写错误提示信息;
项目管理器、模型视图和数据管理器
项目管理器:
显示工程结构和工程文件管理;
模型视图:
提供项目逻辑表示
数据管理器:
用于浏览数据库中的对象,也可以用于创建和管理数据链接;欢迎界面:
引导进入delphi开发,同时显示最近打开过的项目,还是显示网络和RSS的最新新闻、资源;
历史代码页面:
记录项目文件历史编辑过程日志,当前单元文件的编辑日期及作者;
帮助系统:
Borlanddelphi2007快速启动指南;Delphi2007在线帮助;Mircrosoft.NETFramework在线帮助;Borland软件开发技术支持和相关网站;
2、Delphi单元文件主要由哪几个部分组成?
简述各部分的功能。
库单元文件头:
其中声明了库单元的名字.
Interface部分:
由保留字interface开始,结束于保留字implementation,它用来声明引用的单元,常量,数据类型,变量,过程和函数.在Interface部分声明的变量,常量,数据类型,过程,函数都可以供外部引用,对整个程序而言是共有的.也就是说,对于所有引用该单元的单元来说,这些声明都是可见和可访问的.
在Interface部分,只需写出过程和函数的首部,具体的定义是在下面的implementation部分给出的.
Interface部分又可分为多个可选部分,分别为单元引入部分(uses),常量说明部分,类型说明部分,变量说明部分,过程和函数声明部分.注:
打*为选做作业。
Implementation部分:
Implementation部分分为两部分.一部分是声明部分,包括单元引用,常量,类型,变量,过程和函数的声明,这一点和Interface部分相似.
区别有两点:
(1):
在Implementation部分声明的只对本单元是公共的,可见的,其他单元即使引用了该单元,也不能访问它们.
(2):
在Implementation部分声明的过程和函数,不需要遵循先声明后定义的规则,而可以直接写出过程和函数的定义.另一部分是在Interface部分声明的过程和函数的定义.
4.Initialization部分:
用于初始化该库单元,此处的代码最先执行.如果多个库单元中包含Initialization部分那么它们的执行顺序就和Program的uses部分引用单元的出现顺序是一致的.
Finalization部分:
通常用于释放Initialization部分分配的资源.如果多个库单元中包含Finalization部分,其执行顺序和Initialization部分正好相反.
3、模仿例1.1,编写一个简单的窗体程序,显示如下内容:
***************************
欢迎学习Delphi语言!
***************************
提示:
使用三个TLabel直接设置其Caption属性值。
注:
打*为选做作业。
第二章
1、Delphi语言中有哪些常用的数据类型?
变量在使用前必须先定义,如何定义各种数据类型的变量?
1.有序类型:
整型、字符型、布尔型(Boolean)、枚举类型、子界类型
2.实数类型:
实型、日期时间类型、字符串类型、可变类型
Var变量名:
数据类型//适用于整型、字符型、布尔型变量定义
TYPE
typeName=(val1,…..,valn)//枚举类型变量定义
TYPE
类型标示符=上界值…下界值//子界类型定义
type
TDateTime=typeDouble;
2、注释语句有哪几种形式?
1.花括号注释
{##############}
2.圆括号/型号注释
(*################*)
3.双斜杠注释
//################
3、编写程序,输入两个浮点数,输出其和、差、积各为多少。
programProject2;
{$APPTYPECONSOLE}
uses
SysUtils;
var
x,y:
real;
sum,n,m:
real;
begin
try
{TODO-oUser-cConsoleMain:
Insertcodehere}
writeln(‘请输入2位浮点数:
’);
readln(x,y);
sum:
=x+y;
n:
=x-y;
m:
=x*y;
writeln(‘和为:
’,sum);
writeln(‘差为:
’,n);
writeln(‘积为:
’,m);
readln;
except
onE:
Exceptiondo
Writeln(E.Classname,‘:
‘,E.Message);
注:
打*为选做作业。
end;
end.
4、编写程序,输入5个整数,输出这5个数的平均值。
programProject2;
{$APPTYPECONSOLE}
uses
SysUtils;
var
a,b,c,d,e:
integer;
sum:
integer;
avg:
integer;
begin
try
{TODO-oUser-cConsoleMain:
Insertcodehere}
writeln(‘请输入5个整数:
’);
read(a,b,c,d,e);
sum:
=a+b+c+d+e;
avg:
=sumdiv5;
writeln(‘5个整数的平均数为:
’,avg);
readln;
except
onE:
Exceptiondo
Writeln(E.Classname,‘:
‘,E.Message);
end;
end.
第三章
1、循环语句有哪几种形式?
break语句与continue语句有何异同?
While语句
直到循环
For语句
辅助控制语句
循环嵌套
break语句与continue语句有何异同?
Continue语句只结束本次循环,而不是终止整个循环的执行,而break语句则是结束整个循环过程,不再判断循环条件是否成立;
2、某市出租车3公里的起租价为6元,3公里以外按1.5元每公里计费。
现编写程序,要求:
输入行车里程数,输出应付车费。
programProject2;
{$APPTYPECONSOLE}
uses
SysUtils;
var
km:
integer;
注:
打*为选做作业。
paykm:
integer;
pay:
real=0;
begin
try
{TODO-oUser-cConsoleMain:
Insertcodehere}
writeln(‘请输入行车里程数:
’);
readln(km);
if(km>0)and(km<=3)then
begin
pay:
=6;
writeln(‘输出应付车费为:
’,pay,’元整’);
end
elseif(km>3)then
begin
paykm:
=km-3;
pay:
=6+paykm*1.5;
writeln(‘输出应付车费为:
’,pay,’元整’);
end
else
writeln(‘输出应付车费为:
0元整’);
readln;
except
onE:
Exceptiondo
Writeln(E.Classname,‘:
‘,E.Message);
end;
end.
3、编写计算阶乘的函数,在主程序中调用函数求4!
+6!
+9!
。
programProject1;
{$APPTYPECONSOLE}
uses
SysUtils;
functionff(n:
integer):
integer;
varf:
integer;
begin
if(n=0)or(n=1)then
f:
=1
else
f:
=ff(n-1)*n;
ff:
=f;
end;
varx,y,z,fact:
integer;
begin
x:
=4;
注:
打*为选做作业。
y:
=6;
z:
=9;
fact:
=ff(x)+ff(y)+ff(z);
writeln(‘4!
+6!
+9!
=‘,fact);
readln;
try
{TODO-oUser-cConsoleMain:
Insertcodehere}
except
onE:
Exceptiondo
Writeln(E.Classname,‘:
‘,E.Message);
end;
end.
4、有两个红球、三个黄球、四个白球、任意取四个球,其中必须有一个红球,编程输出所有可能的方案。
programProject1;
{$APPTYPECONSOLE}
uses
SysUtils;
var
red,yellow,white:
integer;
begin
red:
=1;
forred:
=1to2do
begin
yellow:
=0;
whileyellow<4-reddo
begin
white:
=4-red-yellow;
yellow:
=yellow+1;
writeln(‘红球个数:
’,red,’黄球个数:
’,yellow,‘白球个数:
’,white);end;
end;
readln;
try
{TODO-oUser-cConsoleMain:
Insertcodehere}
except
onE:
Exceptiondo
Writeln(E.Classname,‘:
‘,E.Message);
end;
end.
注:
打*为选做作业。
第四章
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
注:
打*为选做作业。
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;
procedureButton1Click(Sender:
TObject);
procedureButton12Click(Sender:
TObject);
procedureFormCreate(Sender:
TObject);
procedureButton11Click(Sender:
TObject);
procedureButton13Click(Sender:
TObject);
procedureButton20Click(Sender:
TObject);
procedureButton19Click(Sender:
TObject);
procedureButton18Click(Sender:
TObject);
private
{Privatedeclarations}
pnt,er,fb:
boolean;
fstnm:
Extended;
fbcaption:
string;
public
{Publicdeclarations}
end;
var
注:
打*为选做作业。
Form1:
TForm1;
implementation
{$R*.dfm}
procedureTForm1.Button1Click(Sender:
TObject);var
temp:
string;
begin
iferthenexit;
ifpntthen
scr.Caption:
=scr.Caption+(senderasTbutton).Captionelseif(scr.Caption=‘0.’)orfbthen
begin
scr.Caption:
=(senderasTbutton).caption+’.’;fb:
=false;
end
else
begin
temp:
=scr.Caption;
insert((senderasTbutton).Caption,temp,length(temp));scr.Caption:
=temp;
end;
end;
procedureTForm1.Button12Click(Sender:
TObject);var
temp:
string;
begin
iferthenexit;
ifscr.Caption<>’0.’then
ifpos(‘-’,scr.Caption)>0then
begin
temp:
=scr.Caption;
delete(temp,1,1);
scr.Caption:
=temp;
end
else
scr.Caption:
=‘-’+scr.Caption;
end;
procedureTForm1.FormCreate(Sender:
TObject);begin
pnt:
=false;
fstnm:
=0;
fb:
=false;
fbcaption:
=‘‘;
注:
打*为选做作业。
er:
=false;
end;
procedureTForm1.Button11Click(Sender:
TObject);begin
iferthenexit;
pnt:
=true;
end;
procedureTForm1.Button13Click(Sender:
TObject);begin
iferthenexit;
ifnotfbthen
button20click(nil);
iferthenexit;
fstnm:
=strtofloat(scr.Caption);
fbcaption:
=(senderasTbutton).Caption;
fb:
=true;
pnt:
=false;
end;
procedureTForm1.Button20Click(Sender:
TObject);begin
iferthenexit;
iffbcaption=‘+’then
begin
scr.Caption:
=floattostr(strtofloat(scr.Caption)+fstnm);end;
iffbcaption=‘-’then
begin
scr.Caption:
=floattostr(fstnm-strtofloat(scr.Caption));end;
iffbcaption=‘*’then
begin
scr.Caption:
=floattostr(strtofloat(scr.Caption)*fstnm);end;
iffbcaption=‘/’then
begin
ifscr.Caption<>’0.’then
scr.Caption:
=floattostr(fstnm/strtofloat(scr.Caption))else
begin
scr.Caption:
=‘zerodividerror!
’;
er:
=true;
end;
end;
注:
打*为选做作业。
ifpos(‘.’,scr.caption)=0then
scr.Caption:
=scr.Caption+’.’;
fb:
=true;
pnt:
=false;
fbcaption:
=‘‘;
end;
procedureTForm1.Button19Click(Sender:
TObject);begin
pnt:
=false;
fstnm:
=0;
fb:
=false;
fbcaption:
=‘‘;
er:
=false;
scr.Caption:
=‘0.’;
end;
procedureTForm1.Button18Click(Sender:
TObject);begin
iferthenexit;
scr.Caption:
=‘0.’;
end;
end.
注:
打*为选做作业。
第六章
1、利用TMainMenu组件创建一个主菜单“数据查询”,包括的菜单项有“查询基本情况”、“查询工作情况”和“查询工资情况”。
2、利用TPopupMenu组件建立快捷菜单(包括的菜单项有“还原”、“最小化”、“移动”和“关闭”)。
设计好后,如何使其在程序执行时右击窗体会弹出相应的菜单?
设置Form窗体的PopupMenu属性为:
TPopupMenu1
3、模仿Windows记事本的菜单界面编写一个程序。
注:
打*为选做作业。
4、根据教材6.8.2节中的示例,设计一个具有2个垂直分割条窗体程序,并运行测试它。
unitUnit1;
interface
uses
Windows,Messages,SysUtils,Variants,Classes,Graphics,Controls,Forms,Dialogs,ExtCtrls;
type
TForm1=class(TForm)
Panel1:
TPanel;
注:
打*为选做作业。
Splitter1:
TSplitter;
Panel2:
TPanel;
Splitter2:
TSplitter;
Panel3:
TPanel;
private
{Privatedeclarations}
public
{Publicdeclarations}
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、什么是数据集组件?
数据集组件在数据库应用程序中起什么作用?
数据集组件包含一个数据缓冲区,通常说的数据集就是这个缓冲区;
作用:
数据集组件连接数据库,将数据集读入缓冲区,