《浙大远程16年秋数据库应用程序设计离线作业(兼容)(共64页).doc》由会员分享,可在线阅读,更多相关《浙大远程16年秋数据库应用程序设计离线作业(兼容)(共64页).doc(64页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、精选优质文档-倾情为你奉上浙江大学远程教育学院数据库应用程序设计课程作业姓名:学 号:年级:15年春学习中心:作业第一章1.5 如何保存Delphi的项目?尝试自己动手创建一个项目,并保存。答:练习课本例1.1,创建“我的第一个Delphi小程序”运行程序:保存项目,选择全部保存,保存为dpr格式:1.7 尝试设计如图110所示的窗体。(图见教材P15页图110)图110答:向窗体中添加一个标签组件label,三个radionbutton按钮和两个按钮组件button,并根据原图设置对应的的Caption值,并使得radionbutton1的checked属性变为True,如图所示:运行后:第
2、二章2.8设计如图25所示的界面。单击“按钮1”或“按钮2”时在标签上显示用户所执行的操作。单击“开启/停用按钮”可控制“按钮1”和“按钮2”是否可用,单击“退出系统”按钮时,结束程序的运行。答:程序主要代码清单如下:procedure TForm1.Button1Click(Sender: TObject);beginlabel1.Caption:=您点击了按钮1!;end;procedure TForm1.Button2Click(Sender: TObject);beginlabel1.Caption:=您点击了按钮2!;end;procedure TForm1.Button3Click
3、(Sender: TObject);beginlabel1.Caption:= ;end;procedure TForm1.Button4Click(Sender: TObject);beginForm1.Close;end;2.9 设计如图26所示的界面。当单击按钮时,可控制文本框中字体的颜色。图25图26答:程序主要代码清单如下:procedure TForm1.Button1Click(Sender: TObject);beginEdit1.Font.Color:= clred;end;procedure TForm1.Button2Click(Sender: TObject);begi
4、nEdit1.Font.Color:= clgreen;end;procedure TForm1.Button3Click(Sender: TObject);beginEdit1.Font.Color:= clblue;end;第三章3.8 下列实数中哪些是合法的,哪些是不合法的?不合法的请说明理由。(A)0.25E+02(B).25+2 (C)25E+2(D)34.5(E).123(F)-3E-4答:(A)0.25E+02 合法(B).25+2 不合法,指数记数法不能省略E,小数点前后一定要有数字。(C)25E+2 合法(D)34.5合法(E).123 不合法,因为小数点前后一定要有数字(F
5、)-3E-4 合法3.12 数学式子sin30。写成Delphi表达式是下列哪个?(A)Sin30(B)Sin(30)(C)SIN(30。)(D)Sin(30*Pi/180)答:要把角度30度转化为弧度表示,所以应该是(D)Sin(30*Pi/180)第四章4.7 利用3个数字编辑框分别输入小时、分、秒,换算共有多少秒,然后使用标签输出。答:程序主要代码清单如下:procedure TForm1.Button1Click(Sender: TObject);beginlabel5.Caption:=inttostr(spinedit1.value*3600+spinedit2.value*60+
6、spinedit3.value)+秒;end;4.8 在编辑框中输入一个实数,利用备注框输出该实数及其平方和平方根。答:程序主要代码清单如下:procedure TForm1.Button1Click(Sender: TObject);beginmemo1.Lines.Clear; memo1.Lines.Strings0:=edit1.Text+的平方是+floattostr(sqr(strtofloat(edit1.Text) ) )+chr(13) +chr(10); memo1.Lines.Strings1:=edit1.Text+的平方根是+floattostr(sqrt(strto
7、float(edit1.Text) ) );end;procedure TForm1.FormCreate(Sender: TObject);beginmemo1.Lines.Clear;edit1.Clearend;第五章5.11 任意给定3个实数,按照从大到小的顺序依次输出这3个数。答:程序主要代码清单如下:uses Math ;procedure TForm1.Button1Click(Sender: TObject); var a,b,c,d,e,f:real;begin a:=strtofloat(edit1.Text); b:=strtofloat(edit2.Text); c:=
8、strtofloat(edit3.Text); d:=max(max(a,b),c); f:=min(min(a,b),c); if (af) then e:=a else if (bf) then e:=b else if (cf) then e:=c; label3.Caption:=floattostr(d)+ + floattostr(e)+ +floattostr(f);end;procedure TForm1.FormCreate(Sender: TObject);beginedit1.clear;edit2.clear;edit3.clear;label3.Caption:= ;
9、end;5.13 假设工资的增幅标准为:若基本工资大于等于1000元,增加工资20%;若小于1000元大于等于800元,则增加工资15%;若小于800元,则增加工资10%。请根据用户在文本框中输入的基本工资,计算出增加后的工资。答:程序主要代码清单如下:procedure TForm1.Button1Click(Sender: TObject);vara,b:real;begina:=strtofloat(edit1.Text) ;if (a = 1000) then b := a*1.2 else if (a = 800) then b := 1.15*a else b := 1.1*a ;
10、edit2.Text:=floattostr(b) ;end;procedure TForm1.FormCreate(Sender: TObject);beginedit1.clear;edit2.clear;end;第六章6.5 设s=1X2X3XXn,求s不大于20000时最大的n。答:程序主要代码清单如下:procedure TForm1.Button1Click(Sender: TObject);varx,s:integer;beginx:=1;s:=1;while s = 20000 do begin x:=x+1; s:=x*s; end; label2.Caption :=n=+
11、inttostr(x-1)end;procedure TForm1.FormCreate(Sender: TObject);beginlabel2.caption:= ;end;6.10 在标签上输出100200之间的所有的奇数,其中3的倍数除外。答:程序主要代码清单如下:procedure TForm1.Button1Click(Sender: TObject); var a,i:integer ; ar : array1.50 of integer;begin i:=1; For a := 100 To 200 Do begin if (a mod 2 = 1) and (a mod 3)
12、 0 ) ) then begin ari := a; label2.Caption := label2.Caption + inttostr(ari)+ ; if (i mod 10 =0 ) then label2.Caption := label2.Caption + chr(13)+chr(10); i:= i+1; end; end;end;procedure TForm1.FormCreate(Sender: TObject);begin label2.Caption:= ;end;第七章7.4 求1200这200个数的和,当和大于10000时结束计算。(要求使用转向语句)答:程序
13、主要代码清单如下:procedure TForm1.Button1Click(Sender: TObject);vari,sum,x:integer;beginsum:=0;i:=0;repeat i:=i+1;sum:=sum+i; if (sum 10000) then begin x:=i-1;break; end;until i=200;label3.Caption:=相加的数字是从1到+inttostr(x)+,和为+ inttostr(sum-x-1) ;end;procedure TForm1.FormCreate(Sender: TObject);beginlabel3.Cap
14、tion:= ;end;第八章8.8 编写函数,输出100500之间所有能同时被3和13整除的数。答:建立工程,设计界面如图:在代码编辑窗口的private 中定义函数ch的原型部分:private Private declarations function ch(a,b:integer): string; 将光标放在该函数原型的代码定义行,按下ctrl+shift+C组合键,在函数体定义中加入代码。程序主要代码清单如下:function TForm1.ch(a, b: integer): string; var s:string; i:integer;begin for i:=a to b
15、do if (i mod 3 = 0) and (i mod 13 =0) then s := s+inttostr(i)+ ; result:=s;end;procedure TForm1.FormCreate(Sender: TObject);beginedit1.Clear;edit2.Clear;label4.Caption:= ;end;procedure TForm1.Button1Click(Sender: TObject);begin label4.Caption:=ch(strtoint(edit2.Text) ,strtoint(edit1.Text) ;end;第九章9.
16、2 打开对话框组件和打开图片对话框组件有什么异同点?答:打开对话框组件和打开图片对话框组外观相似,只是打开图片对话框组件增加了一个预览区域,可以用来显示用户所选择的图象。打开图片对话框组件的直接上级是打开对话框组件,打开图片对话框组件所拥有的属性、方法和时间与打开对话框组件完全相同,只是它主要是用来打开图片的。第十章10.7 菜单命令项与工具栏按钮的单击事件中的代码是否可以关联?如何关联?答:可以关联,利用位于Standard选项卡中的ActionList组件。例如用ActionList组件建立一个动作Action1,双击编辑好代码,再将菜单命令项和工具栏按钮的事件中的“Action”都选择设
17、置为Action1,这样两个就关联起来了。第十一章11.4 调用子窗体的close方法时是否可关闭该子窗体?若不能,需要怎么做?答:调用子窗体的close方法时不能关闭该子窗体。关闭子窗体方法:先把窗体的fsFormstlyle改成fsMDIChild,再在事件中选择Onclose属性,写入Action := CaFree 第十二章12.3 使用红色的画笔在窗体中绘制一个半径为5的圆,并且用黄色来填充圆的内部。答:半径为5的圆太小了,切图后只有一点点大,看不清楚我将尺寸放大为半径50画图。具体步骤如下:画一个图形:修改相关参数设置,填充颜色改成黄色,画笔颜色改成红色,形状style改成圆形,w
18、idth改成100:第十三章13.3 打开一个文本文件有几种方法?区别是什么?答:打开文本文件有三种方法:(1)Reset过程以只读方式打开一个文件;(2)Rewrite过程创建并打开文件,对于一个已经存在的文件,此操作将使文件被覆盖;(3)Append过程以追加方式打开文件,并向已经存在的文本文件中追加文本。第十四章14.4 使用Database DeskTop设计如表145所示的数据表,并创建简单的应用程序完成数据的浏览和编辑功能。表145 数据表字段设置说明字段名类型长度说明Id字符型4产品编号Name字符型20产品名称Price数值型产品单价Count短整型产品库存量答:打开Datab
19、ase DeskTop新建数据表选择OK,出现下表;在Field Name列输入Id,Name,Price和Count这些字段名,在type输入类型,在size输入长度,并选择Id为Key;用Save as保存为production.db打开刚才创建的表,用Edit Date编辑数据表:设定数据库别名:输入自定义别名:用Browse保存后,按OK新建窗体,添一个Table组件、一个datasource组件和一个dbgrid:设置table1的属性:设置tablename为production.dbActive变成true:设置datasouce1和dbgrid1组件的属性:设置好后:运行程序:
20、14.6 使用数据库软件(如Sql Server2000)创建如表146所示的数据表,并开发一个学生档案管理系统,完成学生基本信息的添加、删除、修改等。同时,可以按照学生的学号、姓名等进行数据的查询。最后,将学生的基本信息以报表的方式输出。表146 数据表字段设置说明字段名类型长度说明Id字符型8学号Name字符型8姓名Sex字符型2性别Birthday日期型4出生日期Address字符型50家庭住址答:用Office Access 2 007制作了数据表。添加数据,保存表名为xsxx 另存为xueshengxinxi.mdb:新建一个工程;添加TADOConnection组件,作如下操作:打
21、开确定确定:添1个GroupBox,向GroupBox中添加2个CheckBox、2个edit,再向窗体中添加一个Label,5个DBtext、1个TADOQuery组件、1个Tdatasource组件、1个DbNavigator、1个Dbgrid组件和2个button:设置属性如下:对象名属性名属性值说明ADOQuery1ConnectionADOconnection1连接数据库SQL Select * from xsxx设置查询条件ActiveTrue打开数据库连接DataSource1DatasetQuery1设置数据集名字Button1Caption查询设置按钮上的文本Button2C
22、aption退出设置按钮上的文本GroupBox1Caption请选择查询条件设置成组框的标题CheckBox1CaptionId设置复选框的标题CheckBox2CaptionName设置复选框的标题Edit1Text空用于输入要查询的IdEdit1Text空用于输入要查询的NameLabel1Caption基本信息设置标签标题DBText1DataSourceDataSource1设置数据源DataFieldId显示字段IdDBText2DataSourceDataSource1设置数据源DataFieldName显示字段NameDBText3DataSourceDataSource1设置
23、数据源DataFieldSex显示字段SexDBText4DataSourceDataSource1设置数据源DataFieldBirthday显示字段BirthdayDBText5DataSourceDataSource1设置数据源DataFieldAddress显示字段AddressDbgrid1DataSourceDataSource1设置数据源DbNavigator1DataSourceDataSource1设置数据源Visiblebuttons全部选True设置显示的浏览按钮界面如下:程序主要代码清单如下:procedure TForm1.Button1Click(Sender: T
24、Object); var s,s1,s2:string;begin s1:=1=1; if checkBox1.Checked then s1:= Id like + % + edit1.Text+%+; if checkBox2.Checked then s2:= Name like + %+ edit2.Text+%+; s:=select * from xsxx where +s1+ and + s2; ADOQuery1.Close; ADOQuery1.SQL.Clear; ADOQuery1.SQL.Add(s) ; ADOQuery1.Open;end;procedure TFo
25、rm1.CheckBox1Click(Sender: TObject);begin if CheckBox1.Checked =false then edit1.Text:= ;end;procedure TForm1.CheckBox2Click(Sender: TObject);beginif CheckBox2.Checked =false then edit2.Text:= ;end;procedure TForm1.Button2Click(Sender: TObject);begin Form1.Close;end;修改DbNavigator中的Hints属性:运行:可以通过DbN
26、avigator的增加、删除、提交来修改数据。查询:安装报表:确定后,在界面上加入一个QuickRep组件:修改QuickRep的DataSet属性和Bands属性:加入一个QRLabel1,放在标题栏,设置Caption为学生信息表;在报表的ColumnHeaderBand中添加5个QRlabel组件,将其Shape属性设置为qrsRectangle,调整矩形框大小和位置;在5个QRShape组件中依次放入5个QRLabel,分别来显示“学号”、“姓名”、“性别”、“出生日期”、“家庭住址”;在报表的DetailBand中添加5个QRlabel组件,将其Shape属性设置为qrsRectangle,调整矩形框大小和位置;在5个QRShape组件中依次放入5个QRDBText,分别来显示数据表中的ID、 Name 、Sex、 Birthday、 Address,将QRDBText的DataSet和DataField设置为对应的字段。在窗口的Form1的ObCreate事件中加入如下代码:quickrep1.Preview;运行:专心-专注-专业