第5章使用对象和类编写程序B
第五章(2)面向对象程序设计同步练习

第五章面向对象程序设计一、选择题1、面向对象程序设计采用了以为中心的软件构造方法。
A)数据结构B)数据流C)功能分析D)算法2、下面关于属性、方法和事件的叙述中,错误的是______。
A)属性用于描述对象的状态,方法用于表示对象的行为B)基于同一个类产生的两个对象可以分别设置自己的属性值C)事件代码也可以像方法一样被显示调用D)在新建一个表单时,可以添加新的属性、方法和事件3、在下面关于面向对象数据库的叙述中,错误的是______。
A)每个对象在系统中都有唯一的对象标识B)事件作用于对象,对象识别事件并作出相应反应C)一个子类能够继承其所有父类的属性和方法D)一个父类包括其所有子类的属性和方法4、每个对象都可以对一个被称为事件的动作进行识别和响应。
下面对于事件的描述中,_____是错误的。
A)事件是一种预先定义好的特定的动作,由用户或系统激活B)VFP基类的事件集合是由系统预先定义好的,是唯一的C)VFP基类的事件也可以由用户创建D)可以激活事件的用户动作有按键、单击鼠标、移动鼠标等5、_____是面向对象程序设计中程序运行的最基本实体。
A)对象B)类C)方法D)函数6、创建类时首先要定义类的。
A)名称B)属性C)事件D)方法7、有关窗口的操作,是正确的。
A) deactivate window命令挂起的窗口将从内存中清除B) show window命令显示的窗口不一定是活动窗口,但活动窗口一定是显示窗口C) hide window命令将活动窗口在屏幕上隐藏起来,输出仍然面向该窗口D)用release window删除的窗口还可以再重新显示或激活8、有关窗口的叙述,是正确的。
A) ACTIVATE WINDOW <WINDOW name> 命令激活窗口后,@…SAY的坐标是相对屏幕的物理坐标B)当多次使用激活窗口命令时,则最后一个被激活的窗口是当前窗口C)当前窗口是无法改变的D)窗口休眠后第一个激活的窗口变为当前窗口9、以下属于窗口类控件的是。
Web应用程序设计案例教程第5章

☺2. 编写Page对象Load事件过程的程序代码 ☺3. 编写Page对象Unload事件过程的程序代码
在文件夹ch5中创建一个命名为counter.txt的文本文件,输入 一个数字“0”。
16
【同步实践】
操作要求如下。 ☺(1)新建一个项目ch5,将Webform1.aspx重命名
为counter.aspx。 ☺(2)在counter.aspx页面上添加4个Label控件并设 置各控件的属性,控件在页面中的位置自行确定。 ☺(3)新建一个文本文件counter.txt,存储的内容为 100。 ☺(4)编写其Page_Load事件,浏览此页时显示系统 的当前时间和读取文件counter.txt中的内容并通过 Label控件显示。 ☺(5)编写其Page_Unload事件,将新的计数器数值 保存到文件counter.txt。
14
5.3.2 设计网站访问计数器界面
网站访问计数器页面用 到了4个Label控件,页 面如图
15
5.3.3 编写程序代码, 实现网站访问计数功能
实现网站访问计数器要用到前面章节曾介绍的 Application对象、Session对象和本章学习的Server 对象。 要真正实现网站访问计数器,必须先将统计的次数数 据保存到文件中,然后再从文件中读取。这样,服务 器停止之后重新启动,原先访问统计的次数将保留下 来,从而实现真正的网站访问计数器。 读写文件就要用到Server对象来实现,要实现浏览一 次网页计数器就增加1,就要将新的次数写入文件中, 这就要写一个Page_Unload事件。 ☺1. 创建保存次数的文本文件
9
5.2.2 取得目前浏览网页的路径
如何得知网页浏览者目前正在浏览哪一个网页 呢?Request对象提供了MapPath方法与Path 属性,供服务器来了解目前被浏览网页的路径。 利用Path属性可让服务器端得知目前被浏览网 页的路径(默认浏览文件夹以下的路径),而 MapPath方法不但可以得知目前网页的完整路 径,还可结合一个字符串,这个字符串可以是 文件名称,这样便可产生一个新的文件路径。
程序设计基础第5章

2
第 五 章 选 择 结 构 程 序 设 计
3. 说明 (1) <条件> 可以是: 条件> 可以是: 关系表达式 布尔表达式 数值表达式: 为 数值表达式:0为False;非0为True ; 为 字符串表达式(只能是数字字符串): 只能是数字字符串 字符串表达式 只能是数字字符串 : "0"为False; 为 ; 非"0"为True 为 (2) 可以没有 可以没有Else部分,这时必须有<语句组 >. 部分, 部分 这时必须有<语句组1>
的值. 【例5-4】按以下公式求分段函数 的值. 】按以下公式求分段函数y的值
第 五 章 选 择 结 构 程 序 设 计 Y=
ex+e-x x<0 1.25 x=0 lgx x>0
X = Val(Text1.Text) Select Case X Case X < 0 Y = Exp(X) + Exp(-X) Case X =0 Y = 1.25 Case X > 0 Y = Log(X) / Log(10) End Select Print "Y="; Y
16
第 五 章 选 择 结 构 程 序 设 计
多分支选择语句的嵌套示例: 多分支选择语句的嵌套示例: Select Case A Case 1 Select Case B Case 0 Print "**0**" Case 1 Print "**1**" End Select Case 2 Print "**2**" End Select
6
第 五 章 选 择 结 构 程 序 设 计
VB语言第5章教案

主页
采用Print直接在窗体上输出结果,程序代码如下: Private Sub Form_Load() Show For i = 1 To 7 Print Tab(10 - i); For j = 1 To 2 * i - 1 Print Chr(i + 48); Next j Print Next i End Sub Print Chr(i+48)与Print i有所不同
主页
例5.7 用π /4=1 - 1/3 + 1/5 - 1/7 + …… 级数,求π 的近似值。当最后一项的绝对值小于10-5时,停止计算 采用Print直接在窗体上输出结果,程序代码:
Private Sub Form_Load() Show Dim pi As Single, n As Long, s As Integer pi = 0 : n = 1 : s = 1 Do While n <= 100000 '或1/n>=0.00001 pi = pi + s / n s = -s n=n+2 Loop Print "π="; pi * 4 End Sub
假设列表框List1中有四个表项,并已选定第2项,则 有: List1.ListIndex 为1 List1.Text的值为”副教授” List1.Selected(1)为True
C++程序设计_郑莉版第五章

globClock;//声明对象globClock, 声明对象globClock Clock globClock;//声明对象globClock, //具有静态生存期 具有静态生存期, //具有静态生存期,文件作用域 //主函数 int main() { //主函数 cout << "First time output:" << endl; //引用具有文件作用域的对象 引用具有文件作用域的对象: //引用具有文件作用域的对象: globClock.showTime();//对象的成员函数具有类作用域 globClock.showTime();//对象的成员函数具有类作用域 globClock.setTime(8,30,30); globClock.setTime(8,30,30); myClock(globClock); Clock myClock(globClock); //声明具有块作用域的对象 声明具有块作用域的对象myClock //声明具有块作用域的对象myClock cout<<"Second time output:"<<endl; myClock.showTime(); //引用具有块作用域的对象 myClock.showTime(); //引用具有块作用域的对象 return 0; }
15
int main() { 静态局部变量,有全局寿命,局部可见。 static int a;// 静态局部变量,有全局寿命,局部可见。 c为局部变量 具有动态生存期。 为局部变量, int b = -10; // b, c为局部变量,具有动态生存期。 int c = 0; "---MAIN-----MAIN---\ cout << "---MAIN---\n"; cout<<" "<<i "<<a "<<b cout<<" i: "<<i<<" a: "<<a<<" b: "<<b<<" c: "<<c<<endl endl; "<<c<<endl; c += 8; other(); cout<<"---MAIN---\ <<"---MAIN--cout<<"---MAIN---\n"; cout<<" "<<i "<<a "<<b cout<<" i: "<<i<<" a: "<<a<<" b: "<<b<<" c: "<<c<<endl endl; "<<c<<endl; i += 10; other(); return 0; }
C++程序设计第5章

#include <iostream> using namespace std; //#include <math.h> int main() { int i,j,min,temp,a[11]; cout<<"enter data:"<<endl; for (i=1;i<=10;i++) {cout<<"a["<<i<<"]="; cin>>a[i]; //输入 个数 输入10个数 输入 } cout<<endl<<"The original numbers:"<<endl;; for (i=1;i<=10;i++) cout<<a[i]<<" "; // 输出这 个数 输出这10个数 cout<<endl;;
判断下面对数组的定义和初始化是否正确? 判断下面对数组的定义和初始化是否正确?
1.int n; cin>>n; int a[n]; 2.const int n=5; int a[n]; 3.int a[3]={1*3}; 4.int a[]={1,2,3,4,5} 5.int a[6]={1,2,3}; 6.int a[6],b; a[4]=b; 7.int a[3]; a[3]={1,2,3}; 8.int a[6],i=1;a[i]=2;
{t=a[i];a[i]=a[i+1];a[i+1]=t;} //交换两个数的位置,使小数上浮 [] [] [ ] [ ] 交换两个数的位置, 交换两个数的位置 cout<<″the sorted numbers :″<<endl; for(i=1;i<11;i++) cout<<a[i]<<″ ″; [] cout<<endl; return 0; } //输出 个数 输出10个数 输出
自学考试软件工程第5章自测题及参考答案

第5章自测题及参考答案一、名词解释1.结构化程序设计2.PAD3.PDL4.结构冲突5.对应关系二、填空题1.结构化程序设计方法使用______构造程序。
2.在详细设计阶段,一种历史最悠久、使用最广泛的描述程序逻辑结构的工具是______。
3.结构化程序设计技术指导人们用良好的思想方法开发______的程序。
4.详细描述处理过程常用的三种工具是图形、语言和______。
5.Jackson图不仅可表示程序结构,还可表示______。
6.PDL具有严格的关键字外层语法,用于定义控制结构、数据结构和______。
7.详细设计的目标不仅是逻辑上正确地实现每个模块的功能,还应使设计出的处理过程______。
8.用JSP方法导出程序结构后,还要列出______,并把它们分配到程序结构图的适当位置上去。
9.在详细设计阶段,除了对模块内的算法进行设计,还应对模块内的______进行设计。
10.在详细设计阶段,为了提高数据的输入、储存、检索等操作的效率并节约存储空间,对某些数据项的值要进行______设计。
三、选择题1.在详细设计阶段,一种二维树型结构并可自动生成程序代码的描述工具是( )。
A.PADB.PDLC.IPOD.判定树2.结构化程序设计的一种基本方法是( )。
A.筛选法B.递归法C.迭代法D.逐步求精法3.JSP方法是一种面向( )的设计方法。
A.对象B.数据流C.数据结构D.控制结构4.JSP方法主要用于规模适中的( )系统的开发。
A.数据处理B.实时处理C.文字处理D.科学计算5.PDL是软件开发过程中用于( )阶段的描述工具。
A.需求分析B.概要设计C.详细设计D.编程6.在详细设计阶段,可自动生成程序代码并可作为注释出现在源程序中的描述工具是( )。
A.PADB.PDLC.IPOD.流程图7.Jackson图上下层之间的关系是( )。
A.调用关系B.组成关系C.继承关系D.嵌套关系8.JSP方法根据输入输出的数据结构按一定的规则映射成软件的( )。
第5章 面向对象的程序设计

5.2.6 修饰符2-1
包中类B 本类D 包中子 类E 所有子类C 所有类A
public protected
类、变量、方法 A B+C 变量、方法
default 类、变量、方法 B private D 变量、方法 private protected 变量、方法 C
14
5.2.6 修饰符2-2
用来说明类、方法或变量的类型。
5.5.1 接口的定义
说明:
[修饰符] interface 接口名称{
[public] [static] [final] 变量名=初值; // 静态常量 (1)通常接口的名字以able或ible结尾;
[public] [abstract] [native]返回值 方法名([参数 (2)可以使用 extends 来继承接口的常量和抽象方法,
12
5.2.5 构造方法
• • • • 构造函数名称与类名称相同 构造函数没有返回类型 其任务是在创建对象时初始化其内部状态 若无定义系统默认有一个无参构造方法
class Fruit { boolean seedLess; boolean seasonal; float price; Fruit(boolean seed, boolean season, float p) { seedLess = seed; seasonal = season; price = p; } } 13
所以类在实现时,必须显示的使用public修饰符,否
则被警告缩小了接口中定义的方法的访问控制范围。
27
实例:接口的定义和实现
class InterfaceTest interface A { { public static void main(String args[ ]) double g=9.8; { void show( ); B b=new B( ); b.show( ); } } class B implements A } { public void show( ) {System.out.println(“g=“+g);} }
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
讲稿和源代码下载地址 ftp://文件夹汤立浩目录下
5.5 可见性修饰符与访问器方法
前面我们使用c.radius++直接修改对象的属性,这种让用户 通过对象直接修改属性并不是一个好的做法。这样会引起难以 调试的错误。 为了避免通过对象直接修改对象属性,可以使用private修饰符, 声明该属性是私有的。这样使用c.radius++将是非法的。 public:用它定义的类、方法和数据,所有程序都能访问。 private:用它定义的方法或数据,只能由定义该方法和数据的 类访问,而其他类不能访问。
可见性修饰符与访问器方法
对象不能直接访问私有数据域。但是用户常常需要检 索和修改数据域。为了能够访问数据域,可以为私有 数据域添加读取方法和设置方法。 这些方法称为访问器方法(accessor method)。如: public double getRadius(){ return radius; } public void setRadius(double radius){ this.radius=radius; }
类变量、 类变量、类常量和类方法
内存
circle1: Circle
1
radius=1 numOfObject=2
radius
2
circle2: Circle radius=5 numOfObject=2
numOfObject
5
radius
Circle1中的radius和Circle2中的radius在不同内存空间 不同内存空间, 不同内存空间 类变量numOfObject被同一类中所有对象共享 共享。 共享
可见性修饰符与访问器方法
TestCircleWithWithPrivateModifier.java 演示访问器方法。
可见性修饰符与访问器方法
p134编程练习 5.1 5.2
5.6类变量、 5.6类变量、类常量和类方法 类变量
Class Circle() 有修饰符static, numofObjects 是类变量 { static int numofObjects ; double radius; }
radius是实例变量
类变量、 类变量、类常量和类方法
Circle circle1 = new Circle(); Circle circle1 = new Circle(5); radius是实例变量,Circle1中的radius独立与 circle2中的radius,存储在不同内存空间。 circle1中radius的变化不会影响circle2的 radius。 如果想让一个类中的所有实例共享数据,请用类 类 变量。类变量将变量值存储于类的公用内存。 变量 所以某个对象修改了类变量的值,同一类中的 所有对象都会受影响。
类变量、 类变量、类常量和类方法
实例方法属于实例而且只能在实例创建后使用。 对象名方法名(); 类方法可以有两种调用方式: 类名.方法名(); 对象名.方法名(); 类方法和类变量相类似。
什么时候使用类方法? 不使用实例变量的方法可以定义为类方法! 不使用实例变量的方法可以定义为类方法!
类变量、 类变量、类常量和类方法
TestInstanceAndClassVariable.java 演示类变量
类变量、 类变量、类常量和类方法
请思考类变量和实例变量有什么不同?