浙大远程《数据库应用程序设计》离线作业
- 格式:docx
- 大小:2.05 MB
- 文档页数:23
浙江大学远程教育学院《数据库应用程序设计》课程作业(选做)姓名:邵晋学号:7年级:2012秋学习中心:华家池—————————————————————————————备注:提交时请直接提交源代码程序,不提交EXE可执行文件。
第一章1、简述Delphi2007的安装要求与安装过程(for win32)。
1、IDE工具采用.Net2.0来编写,安装时候需要.Net frameWork2.0,但编译出来的Exe是纯正的Win32程序,发布不需要.Net frameWork2.0。
新IDE采用.Net frameWork2.0是为了更好的统一IDE平台,利用.Net的反射、泛型等高级特性,节省编写IDE时间。
新的IDE 确实比D7启动还要快,大概是五六秒时间左右就启动,跟2005差不多。
演示中,新的IDE编译新建工程比D7还要快一点。
2、Delphi2007支持Vista界面,封装了Vsita的新API函数。
3、Delphi2007有一个功能很有意思,支持D2006的所有BPL组件。
意思是,如果你用D2006编译过的BPL,没有源码和DCU,也可以直接安装在Delphi2007。
哈哈,这个是delphi 版本上的史无前例,即使第三方控件包来不及支持Delphi2007,也不妨碍开发人员从D2006 升级到Delphi2007做项目开发。
4、支持MS Build。
比如支持Debug、Release。
也支持编译前和编译后事件,可调用BAT 文件。
比如,你编译前邮件告诉老板,你要给我加薪50%,否则十分钟后销毁源代码。
另外,也可以修改其xml格式,只编译特定的程序代码。
5、Delphi2007 for Win32数据集控件全面支持Unicode。
比如,你的数据库表字段可采用中文名称作字段。
Filter也支持Unicode。
唉,为了这个filter支持Unicode,有些人在delphiBBS上苦苦守候了六七年。
浙⼤远程操作系统原理离线作业及答案操作系统原理离线作业⼀、单选题1.进程P0和P1的共享变量定义及其初值为boolean flag[2];int turn=0;flag[0]=FALSE;flag[1]=FALSE;若进程P0和P1访问临界资源的类C代码实现如下:void P0() //P0进程{ while(TURE){flag[0]=TRUE; turn = 1;while (flag[1] && turn == 1) ;临界区;flag[0] = FALSE;}}void P1() //P1进程{ while(TURE){flag[1]=TRUE; turn = 0;while (flag[0] && turn == 0) ;临界区;flag[1] = FALSE;}}则并发执⾏进程P0和P1时产⽣的情况是:DA.不能保证进程互斥进⼊临界区、会出现“饥饿”现象B.不能保证进程互斥进⼊临界区、不会出现“饥饿”现象C.能保证进程互斥进⼊临界区、会出现“饥饿”现象 D.能保证进程互斥进⼊临界区、不会出现“饥饿”现象2.有两个进程P1和P2描述如下:shared data:int counter = 6;P1 :Computing;counter=counter+1;P2 :counter=counter-2;两个进程并发执⾏,运⾏完成后,counter的值不可能为 C 。
A. 4B. 5C. 6D. 73.某计算机采⽤⼆级页表的分页存储管理⽅式,按字节编址,页⼤⼩为210字节,页表项⼤⼩为2字节,逻辑地址结构为:页⽬录号页号页内偏移量逻辑地址空间⼤⼩为216页,则表⽰整个逻辑地址空间的页⽬录表中包含表项的个数⾄少是BA.64 B.128 C.256 D.5124.在动态分区系统中,有如下空闲块:空闲块块⼤⼩(KB)块的基址1 80 602 75 1503 55 2504 90 350此时,某进程P请求50KB内存,系统从第1个空闲块开始查找,结果把第4个空闲块分配给了P进程,请问是⽤哪⼀种分区分配算法实现这⼀⽅案? CA.⾸次适应B. 最佳适应C. 最差适应D. 下次适应5.在⼀页式存储管理系统中,页表内容如下所⽰。
浙江大学远程教育学院《数据库系统概论》课程作业姓名:学号:年级:15年春学习中心:—————————————————————————————第一章习题2、6、10第二章习题5、6第三章习题4、5、9第四章习题3、7、8、10第五章习题2、5、6、7第六章习题2、7第七章习题9、10第九章习题3第十章习题3、4、5第十一章习题4、7、9*、10*第一章习题2、答:使用数据库系统有许多优点,主要是:(1)大大提高应用系统的开发效率。
因为数据库系统中应用程序不必考虑数据的定义、存储和数据存取的具体路径等细节工作,这些都由数据库管理系统完成,开发人员就可以专注于用户需求的理解和应用逻辑的设计等工作。
(2)应用逻辑或是数据的逻辑结构发生变化,数据库系统提供了数据与程序之间的独立性。
数据库系统具有逻辑独立性,逻辑结构改变,用户程序也可以不变。
这样既简化了应用程序的编制,又大大减少了应用程序的维护和修改。
(3)减轻数据库管理人员维护系统的负担。
因为数据库中的数据是由数据库管理系统统一管理和控制,包括数据的完整性和安全性、并发控制、数据库恢复等都由数据库管理系统执行。
总是,数据库管理系统便于数据的集中管理,控制数据冗余,提高数据的利用率和一致性,又有利于应用程序的开发和维护。
6、答:数据库管理系统的主要功能有:(1)数据库定义功能;(2)数据组织、存储和管理功能;(3)数据操纵功能;(4)数据库的事务管理和运行管理;(5)数据库的建立和维护功能;(6)其他功能,包括数据库管理系统与网络中其他软件系统的通信功能,不同数据库之间的互访和互操作功能等。
10、答:层次模型用树形结构来表示各类实体以及实体间的联系。
实例1:教员学生层次模型实例2:行政机构层次模型实例3:行政区域层次模型第二章习题5、答:关系模型的完整性规则是对关系的某种约束条件。
关系模型中有三类完整性约束:实体完整性、参照完整性和用户自定义完整性。
其中实体完整性和参照完整性是关系模型必须满足的完整性约束条件,被称做是关系的两个不变性,应该由关系系统自动支持。
浙⼤远程操作系统原理离线作业浙江⼤学远程教育学院《操作系统原理》课程作业姓名:学号:年级:15年春学习中⼼:—————————————————————————————⼀、单选题1.进程P0和P1的共享变量定义及其初值为boolean flag[2];int turn=0;flag[0]=FALSE;flag[1]=FALSE;若进程P0和P1访问临界资源的类C代码实现如下:void P0() //P0进程{ while(TURE){flag[0]=TRUE; turn = 1;while (flag[1] && turn == 1) ;临界区;flag[0] = FALSE;}}void P1() //P1进程{ while(TURE){flag[1]=TRUE; turn = 0;while (flag[0] && turn == 0) ;临界区;flag[1] = FALSE;}}则并发执⾏进程P0和P1时产⽣的情况是:A.不能保证进程互斥进⼊临界区、会出现“饥饿”现象B.不能保证进程互斥进⼊临界区、不会出现“饥饿”现象C.能保证进程互斥进⼊临界区、会出现“饥饿”现象D.能保证进程互斥进⼊临界区、不会出现“饥饿”现象答:D.能保证进程互斥进⼊临界区、不会出现“饥饿”现象2.有两个进程P1和P2描述如下:shared data:int counter = 6;P1 :Computing;counter=counter+1;P2 :Printing;counter=counter-2;两个进程并发执⾏,运⾏完成后,counter的值不可能为。
A. 4B. 5C. 6D. 7答:C. 63.某计算机采⽤⼆级页表的分页存储管理⽅式,按字节编址,页⼤⼩为210字节,页表项⼤⼩为2字节,逻辑地址结构为:页⽬录号页号页内偏移量逻辑地址空间⼤⼩为216页,则表⽰整个逻辑地址空间的页⽬录表中包含表项的个数⾄少是A.64 B.128 C.256 D.512答:210÷2=29是⼀张页表中可以存放页表项的项数,216是逻辑地址空间的总页数,也就是说包含216个页表项,那么27就是需要有多少张页表,也就是页⽬录表中包含表项的个数。
浙江大学远程教育学院《操作系统原理》课程作业姓名:学号:年级:学习中心:—————————————————————————————一、单选题7进程P0和P1的共享变量定义及其初值为boolean flag[2];int turn=0;flag[0]=FALSE;flag[1]=FALSE;若进程P0和P1访问临界资源的类C代码实现如下:void P0() //P0进程{ while(TURE){flag[0]=TRUE; turn = 1;while (flag[1] && turn == 1) ;临界区;flag[0] = FALSE;}}void P1() //P1进程{ while(TURE){flag[1]=TRUE; turn = 0;while (flag[0] && turn == 0) ;临界区;flag[1] = FALSE;}}则并发执行进程P0和P1时产生的情况是:A.不能保证进程互斥进入临界区、会出现“饥饿”现象B.不能保证进程互斥进入临界区、不会出现“饥饿”现象C.能保证进程互斥进入临界区、会出现“饥饿”现象D.能保证进程互斥进入临界区、不会出现“饥饿”现象【答案】D2.有两个进程P1和P2描述如下:shared data:int counter = 6;P1 :Computing;counter=counter+1;P2 :Printing;counter=counter-2;两个进程并发执行,运行完成后,counter的值不可能为。
A. 4B. 5C. 6D. 7【答案】C3.某计算机采用二级页表的分页存储管理方式,按字节编址,页大小为210字节,页表项大小为2字节,逻辑地址结构为:页目录号页号页内偏移量逻辑地址空间大小为216页,则表示整个逻辑地址空间的页目录表中包含表项的个数至少是A.64 B.128 C.256 D.512【答案】B4.在动态分区系统中,有如下空闲块:空闲块块大小(KB)块的基址1 80 602 75 1503 55 2504 90 350此时,某进程P请求50KB内存,系统从第1个空闲块开始查找,结果把第4个空闲块分配给了P进程,请问是用哪一种分区分配算法实现这一方案?A.首次适应B. 最佳适应C. 最差适应D. 下次适应【答案】C5.在一页式存储管理系统中,页表内容如下所示。
操作系统原理第二次离线作业(第3章)-1应用题1.在一个请求分页系统中,采用FIFO页面置换算法时,假如一个作业的页面访问顺序为4,3,2,1,4,3,5,4,3,2, l,5,当分配给该作业的物理块数M为4时,试试写出页面访问的过程,并计算访问中所发生的缺页次数和缺页率?解:FIFO置换算法用FIFO置换算法产生缺页次数 10 次缺页率83%2.某采用页式存储管理的系统,假如系统分配给一个作业的物理块数为4,作业执行时依次访问的页为: 2,3,2,1,5,2,4,5,3,2,5,2。
采用LRU页面置换算法时,计算出程序访问过程中所发生的缺页过程和缺页次数。
解:LRU算法问答题1.试述在设有快表的分页存贮管理系统的地址变换机构和地址变换过程。
在CPU给出有效地址(逻辑地址)后,系统将有效地址分离为页号和页内地址。
系统将页号与页表长度进行比较,如果页号大于页表寄存器中的页表长度,则访问越界,产生越界中断。
地址变换机构又自动地将页号送入高速缓存,确定所需要的页是否在快表中。
若是,则直接读出该页所对应的物理块号,送入物理地址寄存器;与此同时,将有效地址(逻辑地址)寄存器中页内地址直接装入物理地址寄存器的块内地址字段中,这样便完成了从逻辑地址到物理地址的变换。
若在快表中未找到对应的页表项,则根据页表寄存器中的页表始址和页号计算出该页在页表项中的位置,通过查找页表,得到该页的物理块号,将此物理块号装入物理地址寄存器中,与有效地址寄存器中页内地址组合成物理地址;同时,把从页表中读出的页表项存入快表中的一个寄存器单元中,以取代一个旧的页表项。
2.试述动态分区、分页和分段三种存储管理方案中如何实现信息的存储保护。
1. 越界保护在动态分区的保护的常用方法是由系统提供硬件:一对界限寄存器。
这可以是上界限寄存器、下界限寄存器,或者是基址寄存器、限长寄存器。
基址寄存器存放起始地址,作为重定位(地址映射)使用;限长寄存器存放程序长度,作为存贮保护使用。
[最新]面向对象离线离线功课浙江大学远程教育学院《面向对象程序设计》课程作业姓名: 王庆炀学号: 712096012004 年级: 2012年秋学习中心: 文成分中心—————————————————————————————第2章【2.3】测试下面的注释(它在C++风格的单行注释中套入了类似于C的注释)是否有效。
//this is a strange /*way to do a comment*/答:此注释有效,单行注释中可以嵌套/*……*/方式的注释。
【2.4】以下这个简短的C++程序不可能编译通过,为什么,#include<iostream>using namespace std;int main()sum({int a,b,c;cout<<"Enter two numbers:";cin>>a>>b;c=sum(a,b);cout<<"sum is:"<<c;return 0;}sum(int a,int b){ return a+b;}答:不能通过编译。
在using namespace std:后面加上sum(int a,int b) 【2.5】回答问题。
(1) 以下两个函数原型是否等价:float fun(int a,float b,char *c);float fun(int,float,char * );(2) 以下两个函数的第一行是否等价:float fun(int a,float b,char * c);float fun(int,float,char * );答(1)这两个函数原型是等价的,函数原型中的参数名可以缺省。
(2)这两个函数的第1行是不等价的,因为这个函数的第1行中必须包含参数名。
【2.6】下列语句中错误的是( D )。
A(int *p=new int(10); B(int *p=new int[10];C(int *p=new int; D(int *p=new int[40](0);【2.7】假设已经有定义“const char * const name="chen";”下面的语句中正确的是( D )。
浙江大学远程教育学院《面向对象程序设计》课程作业姓名:学号:年级:学习中心:—————————————————————————————第2章【2.3】测试下面的注释(它在C++风格的单行注释中套入了类似于C的注释)是否有效。
//this is a strange /*way to do a comment*/答:此注释有效,单行注释中可以嵌套 / * …… * /方式的注释。
【2.4】以下这个简短的C++程序不可能编译通过,为什么?#include<iostream>using namespace std;sum(int a,int b)int main(){int a,b,c;cout<<"Enter two numbers:";cin>>a>>b;c=sum(a,b);cout<<"sum is:"<<c;return 0;}sum(int a,int b){ return a+b;}答:不可能通过编译.在using namespace std;后面加上sum(int a,int b)就可以通过。
【2.5】回答问题。
(1) 以下两个函数原型是否等价:float fun(int a,float b,char *c);float fun(int,float,char * );(2) 以下两个函数的第一行是否等价:float fun(int a,float b,char * c);float fun(int,float,char * );答:(1)这两个函数原型是等价的,函数原型中的参数名可以缺省。
(2)这两个函数的第1行是不等价的,因为这个函数的第1行中必须包含参数名。
【2.6】下列语句中错误的是(D )。
A.int *p=new int(10);B.int *p=new int[10];C.int *p=new int;D.int *p=new int[40](0);【2.7】假设已经有定义“const char * const name="chen";”下面的语句中正确的是(D )。
《数据库应用程序设计》作业三答案第十一章6.一个完整的数据库应用系统应用由4部分组成:用户界面显示逻辑、应用逻辑(又称企业逻辑)、事务逻辑和(数据管理)。
7.加载远程数据模块的方法是执行[File]->[New]->【(other )】菜单命令,将会出现[New Items]对话框,在该对话框中选中[Multitier]组件页,然后选中(remote data module wizard )图标后单击【确定】按钮。
8.TDCOMConnection组件的(computerName )属性用于指定应用服务器所在的计算机,(servername )属性用来指定客户端需要连接的应用服务器的名称。
9.TSocketConnection组件的(address )属性来指定客户端需要连接的应用服务器所在的计算机IP地址。
10.如果客户端要通过(HTTP )协议连接到应用服务器,就需要使用TWebConnection 组件。
使用该组件进行连接,首先要设置应用服务器IIS,在应用服务器上,把(HTTPsrvr.dll)复制到IIS默认的scripts虚拟目录下并打开默认站点服务。
该组件有一个重要的属性(URL),用来定位应用服务器,该属性的值应设置为应用服务器上的“HTTPsrvr.dll”锁在的虚拟目录。
11.使用TClientDataSet组件时,可通过该组件的(RemoteServer )属性指定特定的“连接”组件,利用该“连接”组件来建立与应用服务器的连接。
在该属性设置后,就可以使用(ProviderName )属性来指定使用应用服务器上的那个提供者对象(如TDataSetProvider 组件)。
第十二章1.要用DataText组件显示视图OrdersV iew中的ItemName字段的内容,应把它的(Dataview)属性值设置为“OrdersV iew”,把它的(DataField)属性值设置为“ItemName”。
浙江大学远程教育学院《数据库应用程序设计》课程作业姓名:学号:年级:学习中心:—————————————————————————————作业第一章1.5 如何保存Delphi的项目?尝试自己动手创建一个项目,并保存。
答:执行 File|Save All 菜单命令或单击工具栏中的 Save All 按钮便可保存,在保存时可以对工程文件和单元文件进行改名,但后缀名不能改。
保存文件之后,单击工具中的Run 按钮或按 F9 键,系统将开始编译、连接、运行该工程。
1.7 尝试设计如图1-10所示的窗体。
(图见教材P15页图1-10)图1-10第二章2.8设计如图2-5所示的界面。
单击“按钮1”或“按钮2”时在标签上显示用户所执行的操作。
单击“开启/停用按钮”可控制“按钮1”和“按钮2”是否可用,单击“退出系统”按钮时,结束程序的运行。
2.9 设计如图2-6所示的界面。
当单击按钮时,可控制文本框中字体的颜色。
图2-5 图2-6unit test;interfaceusesWindows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Form s,Dialogs, StdCtrls;typeTForm1 = class(TForm)showLabel: TLabel;btn1: TButton; //按钮 1btn2: TButton; //按钮 2ctlBtn: TButton; //开启停用按钮exitBtn: TButton; //退出按钮procedure btn1Click(Sender: TObject);procedure btn2Click(Sender: TObject);procedure exitBtnClick(Sender: TObject);procedure ctlBtnClick(Sender: TObject);private{ Private declarations }public{ Public declarations }end;varForm1: TForm1;ctlStatus:integer = 0; //控制按钮 1 和 2 的开启和关闭,0 表示当前为开启,1 表示关闭implementation{$R *.dfm}procedure TForm1.btn1Click(Sender: TObject);beginform1.showLabel.Caption := '您点击了按钮 1';end;procedure TForm1.btn2Click(Sender: TObject);beginform1.showLabel.Caption := '您点击了按钮 2';end;procedure TForm1.exitBtnClick(Sender: TObject);beginform1.Close; end;procedure TForm1.ctlBtnClick(Sender: TObject);beginif ctlStatus = 0 thenbeginform1.btn1.Enabled := false;form1.btn2.Enabled := false; ctlStatus := 1;endelsebeginform1.btn1.Enabled := true; form1.btn2.Enabled := true; ctlStatus := 0;end;end;end.2.9:unit test;interfaceusesWindows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Form s,Dialogs, StdCtrls;typeTForm1 = class(TForm)Label1: TLabel;Edit1: TEdit;btnRed: TButton;btnGreen: TButton;btnBlue: TButton;procedure btnRedClick(Sender: TObject);procedure btnGreenClick(Sender: TObject);procedure btnBlueClick(Sender: TObject);private{ Private declarations }public{ Public declarations }end;varForm1: TForm1;implementation{$R *.dfm}procedure TForm1.btnRedClick(Sender: TObject);beginform1.Edit1.Font.Color := clred;end;procedure TForm1.btnGreenClick(Sender: TObject);beginform1.Edit1.Font.Color := clgreen;end;procedure TForm1.btnBlueClick(Sender: TObject);beginform1.Edit1.Font.Color := clblue;end;end.第三章3.8 下列实数中哪些是合法的,哪些是不合法的?不合法的请说明理由。
(A)0.25E+02 (B).25+2 (C)25E+2(D)34.5 (E).123 (F)-3E-4(A)合法,即为 25(B)不合法,小数点前必须有数字,如表示为 0.25+2(C)合法,即为 2500(D)合法,即为 34.5(E)不合法,同(2)(F)合法,即为‐0.00033.12 数学式子sin30。
写成Delphi表达式是下列哪个?(A)Sin30 (B)Sin(30) (C)SIN(30。
)(D)Sin(30*Pi/180) D,需要把角度转化为弧度第四章4.7 利用3个数字编辑框分别输入小时、分、秒,换算共有多少秒,然后使用标签输出。
unit test;interfaceusesWindows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Form s,Dialogs, StdCtrls, Spin;typeTForm1 = class(TForm)SpinEdit1: TSpinEdit;Label1: TLabel;Label2: TLabel;SpinEdit2: TSpinEdit;Label3: TLabel;SpinEdit3: TSpinEdit;Label4: TLabel;procedure SpinEdit1Change(Sender: TObject);procedure SpinEdit2Change(Sender: TObject);procedure SpinEdit3Change(Sender: TObject);private{ Private declarations }procedure CalculateTimeToSencond(timeKind:String; time:integer);public{ Public declarations }end;varForm1: TForm1;hour: integer = 0;minute: integer = 0;second: integer = 0;tot:integer = 0;implementation{$R *.dfm}procedure TForm1.CalculateTimeToSencond(timeKind:String; time:integer); beginif timeKind = 'hh' thenhour := timeelse if timeKind = 'mi' thenminute := timeelse if timeKind = 'ss' thensecond := time;tot := hour * 60 * 60 + minute * 60 + second;bel4.Caption := '总共为' + IntToStr(tot) + '秒';end;procedure TForm1.SpinEdit1Change(Sender: TObject);beginForm1.CalculateTimeToSencond('hh', StrToInt(Form1.SpinEdit1.Text)); end;procedure TForm1.SpinEdit2Change(Sender: TObject);beginForm1.CalculateTimeToSencond('mi', StrToInt(Form1.SpinEdit2.Text)); end;procedure TForm1.SpinEdit3Change(Sender: TObject);beginForm1.CalculateTimeToSencond('ss', StrToInt(Form1.SpinEdit3.Text)); end;end.4.8 在编辑框中输入一个实数,利用备注框输出该实数及其平方和平方根。
unit Unit1;interfaceusesWindows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Form s,Dialogs, StdCtrls;typeTForm1 = class(TForm)Edit1: TEdit;Label1: TLabel;Memo1: TMemo;Label2: TLabel;procedure Edit1Change(Sender: TObject);private{ Private declarations }public{ Public declarations }end;varForm1: TForm1;num1 : Real; //原实数 num2 : Real; //实数平方num3 : Real; //实数平方根implementation{$R *.dfm}procedure TForm1.Edit1Change(Sender: TObject);beginif form1.Edit1.Text <> '' thenbeginnum1 := StrToFloat(form1.Edit1.Text);num2 := Sqr(num1);num3 := Sqrt(num1);form1.Memo1.Lines.Clear;form1.Memo1.Lines.Add('实数为 : ' + FloatToStr(num1));form1.Memo1.Lines.Add('平方为 : ' + FloatToStr(num2));form1.Memo1.Lines.Add('平方根为 : ' + FloatToStr(num3));end;end;end.第五章5.11 任意给定3个实数,按照从大到小的顺序依次输出这3个数。