09-面向对象4
系统分析与设计考试试卷09(OK版)abc
《系统分析与设计》复习提纲.一. 判断题(每题1分,共15分).1,(√)文档是软件产品的一部分,没有文档的软件就不称其为软件。
.2,(×)企业管理的组织职能是为各级组织确定目标和拟定为达到此目标的行动方案,并制定各种计划。
.3,(×)需求规格说明书在软件开发中具有重要的作用,它也可以作为软件可行性分析的依据。
.4,(√)数据处理一般不涉及复杂的数学计算。
.5,(√)文件与数据库在数据组织中并非属于同一层次。
.6,(×)计划工作的首要任务是用计算机进行反复计算。
.7,(√)计划指标指的是在计划中规定的、用数字表示的企业生产技术经济活动的各方面的预期目标。
.8,(×)系统设计阶段的任务是按照系统分析阶段提出的逻辑模型的要求进行具体的逻辑设计。
.9,(√)为了达到系统灵活性的目的,在系统设计中应尽量采用模块化结构。
.10,(×)功能模块是程序的一个组成部分,所以它总是比程序小。
.11,(×)操作员在键盘上按单据输入数据,如发现单据上数据有错应立即改正后输入。
.12,(√)系统设计阶段的信息系统处理流程图是信息系统流程图的进一步具体化。
.13,(×)程序调试时应当用正常数据进行调试,不应用错误数据去调试。
.14,(×)一个成功的项目唯一提交的就是运行程序。
.15,(×)在软件开发的过程中,若能推迟暴露其中的错误,则为修复和改正错误所花费的代价就会降低。
.二单项选择题(每题1分, 共10分).1,数据( B ). A.就是信息B.经过解释成为信息 C..必须经过加工才成为信息 D.不经过加工也可以称作信息.2,通常高层管理提出的决策问题与基层管理提出的决策问题相比,在结构化程度上(B )A. 高层管理的决策问题的结构化程度高于基层的. B. 高层管理的决策问题的结构化程度低于基层的. C. 两者在结构化程度上没有太大差别 D. 以上A,B,C.三种情况都可能出现。
c++试题库(整理)
2009-2010学年第二学期计算机系《面向对象程序设计C++》期末考试试卷(B卷)一、填空题1.在说明引用时用const修饰的引用为常引用,它所引用的对象不允许更改。
2.信息隐藏是指将对象的数据和操作隐藏起来的技术。
3.运行时多态性主要是通过虚函数来实现的。
4.类的对象成员的构造函数的调用次序取决于这些对象成员在类中声明的次序,与它们在初始化列表中出现的次序无关。
5.拷贝构造函数是一种特殊的构造函数,其形参是本类对象的引用;其作用是使用一个已经存在的对象去初始化另一个同类的对象。
6.在C++中,可以通过在运算符函数参数表中是否插入关键字int来区分前缀和后缀这两种方式。
7.构造函数是一种特殊的成员函数,它主要用来为对象分配内存空间,对类的数据成员进行初始化并执行对象的其他内部管理操作。
8.如果在一个类中说明了常数据成员,那么构造函数就只能通过成员初始化列表对该数据成员进行初始化, 任何其他函数都不能对该成员赋值。
9.联编是指将函数调用与相应函数体代码彼此关联的过程。
若此过程在程序开始运行前的编译时完成,则称之为静态联编。
10.一个非成员函数必须声明为一个类的friend 才有可能存取该类的私有数据成员。
二、判断题1.如果类中含有指针类型的数据,深拷贝就会产生错误。
(╳)2. 类模板不是代表一个具体的、实际的类, 而是代表着一类类。
(√)3. 常常用将类的下标运算符[ ] 重载为友元函数。
(╳)4. 类类型转换函数既没有参数, 也不显式给出返回类型。
(√)5. 动态联编在程序运行阶段完成的联编。
(√)6. 编译时多态性主要是通过函数重载和运算符重载实现的。
(√)7. C++中的类属关系运算符“.”也可以重载。
(╳)8. 构造函数的名字必须与类名相同,其返回类型缺省为void类型。
(╳)9. 允许将一个声明为指向派生类对象的指针指向其基类的一个对象。
(╳)10. 常对象只能调用它的常成员函数, 而不能调用普通的成员函数。
《Python编程基础》课程期末复习资料2023年修改整理
千里之行,始于足下《Python编程基础》课程期末复习资料《Python编程基础》课程期末复习资料《Python编程基础》课程讲稿章节⽬录:第1章、简介及⽰例(4个知识点)01 Python简介02 程序基础和Python编程环境03 HelloWorld程序04 输⼊、输出及IDLE环境介绍第2章、基础语法(17个知识点)01变量的定义02 Number数据类型03 String数据类型04 List数据类型05 Tuple数据类型06 Set数据类型07 Dictionary数据类型08占位运算符和算术运算符09赋值运算符、⽐较运算符和逻辑运算符10位运算符11⾝份运算符和成员运算符12序列运算符和运算符优先级13条件语句概述14条件语句实现和pass15循环语句概述和for循环16 while循环和索引17 break、continue和else第3章、函数(18个知识点)01函数的定义与调⽤02形参和实参求知若饥,虚心若愚。
03默认参数和关键字参数04不定长参数05拆分参数列表06返回值07模块概述和import语句08全局变量__name__和系统模块09 from…import10包11猴⼦补丁和第三⽅模块猎取安装12变量的作⽤域和局部变量13全局变量和global关键字14 nonlocal关键字15递归函数16⾼阶函数和lambda函数17闭包18装饰器第4章、⾯向对象(16个知识点)01⾯向对象概述02类的定义和创建实例03类属性定义及其访问04类中一般⽅法定义及调⽤05私有属性06构造⽅法07析构⽅法08常⽤内置⽅法09继承的概念10⼦类的定义11⽅法重写和鸭⼦类型12 super⽅法千里之行,始于足下13内置函数isinstance、issubclass和type14类⽅法和静态⽅法15动态扩展类与实例和__slots__变量16 @property装饰器第5章、序列、集合和字典(17个知识点)01可变类型与不可变类型02创建列表和拼接列表03复制列表元素04列表元素的查找、插⼊和删除05列表元素的最⼤值、最⼩值、浮现次数和列表长度06列表元素排序07元组的操作08集合的创建和插⼊元素09集合的运算10字典的创建和初始化11字典元素的修改、插⼊和删除12字典的浅拷贝和深拷贝13推断字典中是否存在键及拼接两个字典14字典的其他常⽤操作15切⽚和列表⽣成表达式16⽣成器17迭代器第6章、字符串(14个知识点)01创建字符串和不同引号的区别02字符串⽐较03字符串切割04字符串检索和替换05去除字符串空格和⼤⼩写转换06字符串的其他常⽤操作求知若饥,虚心若愚。
面向对象程序设计(C++和Java)教学大纲
面向对象程序设计(C++和Java)教学大纲课程概述在学习了程序设计基础课程(一般是C语言,也可能是Java语言基础)之后,同学们就可以接触面向对象程序设计语言了。
C++和Java是两门优秀的面向对象程序设计语言,它们的语法、理念有相似之处,但也有很多不同。
在学校的传统课程中,往往只学习其中一门语言,或者在不同的学期分别学习两种语言。
如果分别学习,内容就有重复,概念也容易混淆。
本课程将C++和Java放在一起,按照面向对象的程序设计理念,循序渐进讲解这两种语言的特性,希望学习者能够掌握面向对象理念的精髓,并深刻理解这两种语言的不同。
课程大纲01课程简介与预备知识课时1.1 课程简介及C语言内存1.2 静态和动态1.3 安装开发环境1.4 类和对象022 开始写程序课时2.1 第一个C++程序2.2 第一个Java程序2.3 C++新特性2.4 Java新特性03封装-使用类和对象课时3.1 理解“封装”3.2 C++的封装3.3 Java的封装04继承-类的派生课时4.1 理解“继承”4.2 C++的继承4.3 Java的继承05更进一步课时5.1 多态-关于动态联编5.2 抽象类5.3 override和final06多重继承与接口课时6.1 需求6.2 C++的多重继承6.3 Java的接口与匿名内部类07异常课时7.1 异常机制的需求7.2 C++的异常7.3 Java的异常08模板/泛型课时8.1 C++的模板与STL8.2 Java的泛型09其它课时9.1 I/O9.2 GUI预备知识本课程的先修课为:《C语言程序设计》或《Java语言基础》参考资料《程序设计入门——C语言》,中国大学MOOC平台,浙江大学翁恺《零基础学Java语言》,中国大学MOOC平台,浙江大学翁恺。
面向对象程序设计期末试卷B
1绍兴文理学院 2011 学年 01学期信计 专业 09 级《面向对象程序设计》试卷(答题卷) (B)(考试形式:闭卷 )一、选择题: (共15分,每小题1分)1.在C++中,函数原型不能标识( )A.函数的返回类型B.函数参数的个数C.函数参数类型D.函数的功能 p108有叙述 2.在C++程序中,对象之间的相互通信通过( ) ? A.继承实现 B.调用成员函数实现 C.封装实现 D.函数重载实现 3.对于任意一个类,析构函数的个数最多为( )A.0B.1C.2D.3 4.下面函数模板定义中不正确的是( )A.template<class Q>B.template<class Q> QF(Q x){ QF(Q x){ return Q+x; return x+x; } }C.template<class T>D.template<class T> TF(T x){ TF(T x){ return x*x; return x>1; } } 5.友元关系不能( ) A.继承B.是类与类的关系C.是一个类的成员函数与另一个类的关系 p316D.提高程序的运行效率6.语句ofstream f(〃SALARY.DAT 〃,ios::app |ios::binary);的功能是建立流对象f ,试图打开文件SALARY.DAT 并与之连接,并且( )A.若文件存在,将文件写指针定位于文件尾;若文件不存在,建立一个新文件B.若文件存在,将其置为空文件;若文件不存在,打开失败C.若文件存在,将文件写指针定位于文件首;若文件不存在,建立一个新文件D.若文件存在,打开失败;若文件不存在,建立一个新文件 7.下面说法正确的是( )A.内联函数在运行时是将该函数的目标代码插入每个调用该函数的地方B.内联函数在编译时是将该函数的目标代码插入每个调用该函数的地方C.类的内联函数必须在类体内定义D.类的内联函数必须在类体外通过加关键字inline 定义8.可以用p.a 的形式访问派生类对象p 的基类成员a ,其中a 是( ) A.私有继承的公有成员 B.公有继承的私有成员 C.公有继承的保护成员 D.公有继承的公有成员9.在公有派生情况下,有关派生类对象和基类对象的关系,不正确的叙述是( ) A.派生类的对象可以赋给基类的对象 B.派生类的对象可以初始化基类的引用 C.派生类的对象可以直接访问基类中的成员 D.派生类的对象的地址可以赋给指向基类的指针 10.对于类定义 class A{ public:virtual void func1( ){ } void func2( ){ } };class B:public A{ public:void func1( ){cout<<〃class B func 1〃<<end1;} virtual void func2( ){cout<<〃class B func 2〃<<end1;} };下面正确的叙述是( )A. A::func2( )和B::func1( )都是虚函数B. A::func2( )和B::func1( )都不是虚函数C. B::func1( )是虚函数,而A::func2( )不是虚函数D. B::func1( )不是虚函数,而A::func2( )是虚函数11. 关键字 ____________ 说明对象或变量初始化后不会被修改。
面向对象程序设计第四部分
假如Jerry与Tom是同一个包中的类,那么,下述Jerry 假如Jerry与Tom是同一个包中的类,那么,下述Jerry Jerry 是同一个包中的类 类中的”cat.weight”, cat.f(3,4) 都是合法的. cat.f(3,4)”都是合法的 类中的”cat.weight ,”cat.f(3,4) 都是合法的.
2 子类和父类不在同一包中的继承性
如果子类和父类不在同一个包中,那么, 如果子类和父类不在同一个包中,那么,子类继承 了父类的protected,public 了父类的protected,public 成员变量做为子类的 成员变量,并且继承了父类的protected,public 成员变量,并且继承了父类的protected,public 方法为子类的方法. 方法为子类的方法.如果子类和父类不在同一个包 子类不能继承父类的友好变量和友好方法. 里,子类不能继承父类的友好变量和友好方法.
当在另外一个类中用类Tom 创建了一个对象后, 当在另外一个类中用类Tom 创建了一个对象后,如果这个 类与类Tom 在同一个包中, 类与类Tom 在同一个包中,那么该对象能访问自己的 变量和protected 方法.在任何一个与Tom protected 变量和protected 方法.在任何一个与Tom 同 一包中的类中,也可以通过Tom类的类名访问Tom Tom类的类名访问Tom类的 一包中的类中,也可以通过Tom类的类名访问Tom类的 类变量和protected 类方法. protected 类变量和protected 类方法. 假如Jerry Tom是同一个包中的类 那么, Jerry与 是同一个包中的类, 假如Jerry与Tom是同一个包中的类,那么, Jerry类中的 cat.weight”, cat.f(3,4)”都是合法的 类中的” 都是合法的. Jerry类中的”cat.weight ,”cat.f(3,4) 都是合法的.
【09网络试卷04】
【09网络试卷04】【单选题】【第01题】竹简是我国古代的一种重要工具,文字刻在竹简上体现了信息的特征是A、时效性B、载体依附性C、共享性D、价值性【第02题】有人用"剪报"收集整理信息,也有人把网上看到的文章或者图片下载到自己的电脑上,然后用文件夹分类保存。
下列对这些行为的看法中,不正确的是A、"剪报"和"下载并用文件夹分类保存"都是信息资源管理的方式B、"剪报"属于人工方式,"用文件夹分类保存"属于文件管理的方式C、从信息技术的角度看,"用文件夹分类保存"的方式要比"剪报"的方式效率高D、"剪报"已经失去了它的意义,我们完全可以摒弃不用【第03题】李明家打印机的驱动程序光盘找不到了,为了重装打印机驱动程序使其正常工作,他到网上进行了搜索,在下列哪种网站下载驱动程序比较可靠?A、某软件下载网站B、某论坛C、该打印机厂家的网站D、某个人网站【第04题】在Html语言中,表示页面主体内容的标签是A、<html> </html>B、<form> </form>C、<table> </table>D、<body> </body>【第05题】网站中若干网页,若使用同一种文字效果,使用下列哪一种样式表最合适?A、嵌入式样式表B、内嵌式样式表C、外联式样式表D、静态样式表【第06题】下列关于信息资源管理方法的描述,正确的是A、数据库管理完全可以取代人工管理B、文件管理只能通过"资源管理器"来管理C、数据库管理优于人工管理D、人工管理、文件管理、数据库管理都有各自的优点【第07题】针对青少年学生在使用网络过程中所出现的一些问题,团中央、教育部等部门专门发布了A、《信息系统安全条例》B、《计算机软件保护条例》C、《全国青少年网络文明公约》D、《计算机安全保护管理办法》【第08题】有些部门为了提高安全性,安装了眼角膜识别门禁系统,这是使用了A、虚拟现实技术B、语音技术C、多媒体技术D、模式识别技术【第09题】某同学从网上下载电影ssa.mpg,以下软件中无法播放此文件的是A、暴风影音B、Media PlayerC、超级解霸D、Photoshop【第10题】当你在网上查看网络新闻时,你使用的网络服务类型是A、文件传输B、远程登录C、信息浏览D、即时短信【第11题】DNS的中文含义是A、服务器系统B、地名系统C、邮件系统D、域名服务系统【第12题】在下列选项中,最符合HTTP代表的含义的是A、域名B、高级程序设计语言C、网址D、超文本传输协议【第13题】下列选项中,哪个不是因特网提供的服务?A、FTPB、BBSC、WWWD、ASP【第14题】章老师工作非常繁忙,为了使自己能够记住要做的每一件事,最好的方法是A、在家里台式电脑上记下日程安排B、在随身携带的PDA手机上记下日程安排并及时提醒C、在随身携带的PDA手机上记下日程安排并及时提醒D、用Word记下来放在家里电脑上【第15题】信息集成的主要目的是A、压缩信息B、打包传输C、表达主题D、批量处理【第16题】在搜狐搜索引擎中,先单击"科学技术"类别名,后选择"科学普及"类别,再单击"中国公众科技网",这种搜索方式属于A、全文搜索B、元搜索C、目录搜索D、特色信息检索【第17题】关于计算机病毒,下列说法中正确的是A、病毒是一种人为编制的具有破坏性的计算机程序,它能够在计算机系统中生存B、病毒是不可能删除磁盘上的可执行程序和数据文件的C、病毒通过自我复制来传播,类似于生物病毒的繁殖,严重的计算机病毒可以传染给人D、病毒对计算机会造成或轻或重的损害,但制造病毒的人并不构成犯罪【第18题】2008年我国四川汶川地区发生里氏8.0级地震,校团委组织了全校师生捐款,并将结果录入数据库。
c++试题库(整理)
2009-2010学年第二学期计算机系《面向对象程序设计C++》期末考试试卷(B卷)一、填空题1.在说明引用时用const修饰的引用为常引用,它所引用的对象不允许更改。
2.信息隐藏是指将对象的数据和操作隐藏起来的技术。
3.运行时多态性主要是通过虚函数来实现的。
4.类的对象成员的构造函数的调用次序取决于这些对象成员在类中声明的次序,与它们在初始化列表中出现的次序无关。
5.拷贝构造函数是一种特殊的构造函数,其形参是本类对象的引用;其作用是使用一个已经存在的对象去初始化另一个同类的对象。
6.在C++中,可以通过在运算符函数参数表中是否插入关键字int来区分前缀和后缀这两种方式。
7.构造函数是一种特殊的成员函数,它主要用来为对象分配内存空间,对类的数据成员进行初始化并执行对象的其他内部管理操作。
8.如果在一个类中说明了常数据成员,那么构造函数就只能通过成员初始化列表对该数据成员进行初始化, 任何其他函数都不能对该成员赋值。
9.联编是指将函数调用与相应函数体代码彼此关联的过程。
若此过程在程序开始运行前的编译时完成,则称之为静态联编。
10.一个非成员函数必须声明为一个类的friend 才有可能存取该类的私有数据成员。
二、判断题1.如果类中含有指针类型的数据,深拷贝就会产生错误。
(╳)2. 类模板不是代表一个具体的、实际的类, 而是代表着一类类。
(√)3. 常常用将类的下标运算符[ ] 重载为友元函数。
(╳)4. 类类型转换函数既没有参数, 也不显式给出返回类型。
(√)5. 动态联编在程序运行阶段完成的联编。
(√)6. 编译时多态性主要是通过函数重载和运算符重载实现的。
(√)7. C++中的类属关系运算符“.”也可以重载。
(╳)8. 构造函数的名字必须与类名相同,其返回类型缺省为void类型。
(╳)9. 允许将一个声明为指向派生类对象的指针指向其基类的一个对象。
(╳)10. 常对象只能调用它的常成员函数, 而不能调用普通的成员函数。
数据模型的名词解释
数据模型的名词解释数据模型是计算机科学术语,用来描述用于表达数据的概念模型或数学模型的集合。
它抽象地定义了系统或实体之间的关系,这些系统或实体之间的关系称为“模型”。
模型旨在建立系统之间的一致性,使其易于管理,运行,或用于分析。
数据模型包括:关系数据模型,对象-关系数据模型,结构化数据模型,网状数据模型,面向对象数据模型,树型数据模型,网页数据模型,组合数据模型,位图数据模型,和矢量数据模型等。
关系数据模型是指以表格形式表示的类似行列或多维阵列的数据项的模型。
它将数据分解为表格,表格中的行表示记录,列表示字段,而单元格则表示这些字段的值。
这种模型可以用于存储和处理关系型数据,包括客户数据、产品数据、订单数据等。
对象-关系模型是一种将关系数据模型与对象-关系模型结合在一起的模型。
它主要用于把大型数据库中的对象与关系数据连接起来的应用。
它通常包含多个特殊的物件,这些物件可以在数据库中被表达为关系,并遵循特定的规则来检索数据。
结构化数据模型是一种数据模型,用于表示结构化数据。
它是一种数据存储和管理层面的模型,它被用于创建数据库,以及保存和管理由多个数据表所组成的大型数据集。
它主要用于复杂的业务逻辑,它可以追溯数据,记录数据,跨表查询数据,并保证数据的统一性和一致性。
网状模型是一种数据模型,用于表达网络结构,并通过将数据元素以连接的方式组织起来来存储和处理数据。
它可以用于多种数据存储,比如电话号码簿,路线图,组织结构图,电子邮件地址,网络连接等。
面向对象模型是数据模型的一种,它用于表达和处理一组被称为对象的非结构化或半结构化数据。
它可以存储和处理复杂的数据,不同于关系型数据模型,它可以表达复杂的关系和模糊概念。
树状模型是一种数据模型,它使用树状图表示数据。
它是有很多子类的数据模型,形式上包括完全二叉树,文件系统树,二叉搜索树,分层树,属性树等等。
它可以用于存储复杂的数据或记录,如多级类别结构,可以被用来表示组织结构,森林,路线图等。
Intouch视频培训教程_主讲 钱立湘
主要ቤተ መጻሕፍቲ ባይዱ能
分辨率无关的图形和智能图符号可在您的计算机屏幕上展现栩栩如生的设备运行状况
成熟先进的脚本功能可针对特殊需要扩展和定制应用程序
实时分布式报警可以历史归档以便分析
内置的实时和历史趋势
Microsoft ActiveX控件和NET控制一体化
e.IAS和InTouch使用介绍
InTouch报表制作总结
生成InTouch报表方法很多,总体来说有3种:
1.用InTouch自带的HISTData程序将inTouch历史数据库数据导出成CSV文件。此方法简单,但是不够灵活,报表格式很差,实际应用中没有多大意义。
2.SQL数据+VB等:在InTouch中添加定时脚本,定时将数据写入外部SQL数据库,如Access。然后用VB等编程语言编写程序读取SQL数据库,并填写到Excel报表模板中。此方案经济实用,但是对开发人员要求高。
2.DVD共五张,DVD1-4为培训视频,DVD5为配套软件
3.培训视频为加密视频,一机一播放密码,用户凭视频机器码获取播放密码。每用户一般最多提供10个播放密码。
4.视频内容:
a.Intouch使用从入门到深入
b.IO驱动和DA驱动详解
c.施耐德、西门子、三菱PLC仿真器使用
d.InTouch脚本详解和InTouch报表制作
文件总数 43小节,
视频总时长1441分钟,即24小时,
【播放说明】
1.输入播放密码
2.点击全屏按钮
3.退出全屏按ESC键
Wonderware InTouch HMI
面向对象-练习题
⾯向对象-练习题【练习题】01.类的成员变量:猜数字游戏:⼀个类A有⼀个成员变量v,有⼀个初值100。
定义⼀个类,对A 类的成员变量v进⾏猜。
如果⼤了则提⽰⼤了,⼩了则提⽰⼩了。
等于则提⽰猜测成功。
【练习题】02.类的成员变量:请定义⼀个交通⼯具(Vehicle)的类,其中有:属性:速度(speed),体积(size)等等⽅法:移动(move()),设置速度(setSpeed(int speed)),加速speedUp(),减速speedDown()等等.最后在测试类Vehicle中的main()中实例化⼀个交通⼯具对象,并通过⽅法给它初始化speed,size的值,并且通过打印出来。
另外,调⽤加速,减速的⽅法对速度进⾏改变。
【练习题】03类的成员⽅法创建⼀个账户Account类,该类有id:账户号码(长整数) name:真实姓名字符串类型,balance:账户余额double 类型.⽅法:deposit:存款⽅法,参数是double 型的⾦额;withdraw:取款⽅法,参数是double型的⾦额.在main⽅法中创建Account类的对象,调⽤各个⽅法,并显⽰存取款结果。
【练习题】04.构造⽅法编写Java程序,模拟简单的计算器。
12 3定义名为Number的类,其中有两个整型数据成员n1和n2,应声明为公共。
编写构造⽅法,赋予n1和n2初始值,再为该类定义加(addition)、减(subtration)、乘(multiplication)、除(division)等公有成员⽅法,分别对两个成员变量执⾏加、减、乘、除的运算。
在main⽅法中创建Number类的对象,调⽤各个⽅法,并显⽰计算结果。
【练习题】05.构造⽅法:编写Java程序,⽤于显⽰⼈的姓名和年龄。
定义⼀个⼈类(Person),该类中应该有两个私有属性,姓名(name)和年龄(age)。
定义构造⽅法,⽤来初始化数据成员。
再定义显⽰(display)⽅法,将姓名和年龄打印出来。
软件工程(李军国等)课后习题原题
软件工程习题习题1一、判断题1.程序是按事先设计的功能和性能要求执行的指令序列。
2.数据是使程序能够正确操纵信息的数据结构。
3.文档是与程序开发、维护和使用有关的图文材料。
4.软件开发时,一个错误发现得越晚,为改正它所付出的代价就越大。
5.增量模型的特点是文档驱动。
6.瀑布模型的特点是文档驱动。
7.瀑布模型是一种软件生存周期模型。
8.在软件生存周期中,用户主要是在软件开发期参与软件开发。
9.瀑布模型的主要问题是可靠性低。
10.软件生存周期中时间最长的阶段是需求分析。
11.原型化方法适用于需求已确定的系统。
12.瀑布模型本质上是一种线性顺序模型。
13.原型化方法是用户和软件开发人员之间进行的一种交互过程,适用于需求不确定性高的系统。
二、填空题1.软件工程是开发、运行、维护和修复软件的系统化方法,它包含的三个要素指的是:(A )(B )和(C )2.软件是计算机系统中与硬件相互依存的另一部分,它是包括(A )(B )及(C )的完整集合。
3.开发软件时对提高软件开发人员工作效率至关重要的是(A),软件工程中描述生存周期的瀑布模型一般包括计划(B )、设计、编码、测试、维护等几个阶段,其中设计阶段在管理上又可以依次分成(C )和(D )两步。
4.软件发展过程的第一阶段称为“程序设计的原始时期”,这时既没有(A ),也没有(B ),程序员只能用机器指令编写程序。
5.软件发展过程的第二阶段称为“基本软件期”,出现了(A),并逐渐普及,随着(B )的发展,编译技术也有较大的发展。
6.软件发展过程的第三阶段称为“程序设计方法时代”,这一时期,与硬件费用下降相反,软件开发费急剧上升。
人们提出了(A )和(B )等程序设计方法,设法降低软件的开发费用。
7.软件发展过程的第四阶段称为“软件工程时期”,软件开发技术不再仅仅是程序设计技术,而是包括与软件开发的各个阶段,如(A )、(B )、编码、单元测试、综合测试、(C )及其整体有关的各种管理技术。
国开作业面向对象程序设计技术-兵团开放大学《面向对象程序设计(本)》考试卷09参考(含答案)
题目:1、汇编语言:答案:用助计符来表示的面向机器的程序设计语言。
用汇编语言编制的程序须要用“人工汇编”或“机器汇编”将其翻译成机器语言,才能被机器认识。
题目:2、对象:答案:构成世界的一个独立单位,它具有自己的静态特征和动态特征。
面向对象方法中的对象是系统用来描述客观事物的一个实体,它是系统构成的一个基本单位。
对象由一组属性和一组行为构成。
题目:3、表达式:答案:1233题目:4、构造方法:答案:名字与他所在类的名字相同,并且不返回任何数据类型。
题目:5、异常:答案:异常的捕获与处理模块;声明和抛出异常的使用;自定义异常类型的使用题目:1、编译Java Application 源程序文件将产生相应的字节码文件,这些字节码文件的扩展名为( )。
选项A:A. java选项B:B. .class选项C:C. html选项D:D. .exe答案:B. .class题目:2、在以下供选择的概念中,不属于面向对象语言概念的是 ( )。
选项A:A.消息选项B:B.模块选项C:C.继承选项D:D.多态性答案:B.模块题目:3、为AB类的一个无形式参数无返回值的方法method书写方法头,使得使用类名AB 作为前缀就可以调用它,该方法头的形式为( )。
选项A:A. static void public void final void abstract void staticvoid )。
选项A:A. continue语句必须出现在多路按值选择结构或循环结构中选项B:B. return语句可以出现在方法体的外面选项C:C. 编译系统会把单独的分号看成是空语句选项D:D. break语句的作用是提早结束当前轮次循环答案:C. 编译系统会把单独的分号看成是空语句题目:5、paint()方法使用哪种类型的参数?()选项A:A.Graphics选项B:B.Graphics2D选项C:C.String选项D:D.Color答案:A.Graphics题目:6、以下哪项可能包含菜单条()。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第九天面向对象4 今日任务:1、抽象类:i.了解抽象类的特点ii.掌握抽象类的细节和应用2、多态:i.了解多态的概念和在代码中的体现ii.了解多态的好处、弊端和前提iii.掌握多态中的转型iv.掌握多态中成员的使用细节v.多态练习:代码课后一定要多练习几遍3、接口:i.理解接口的概念、特点和作用;ii.掌握接口的使用思想iii.理解抽象类和接口的区别4、适配器设计模式i.理解适配器模式的思想以及它能解决的问题ii.理解接口的适配1.final关键字有的时候不想别人重写我的方法;使用final关键字修饰该方法;final:最后的,最终的;可以修饰类、修饰函数、修饰变量;修饰类:该类不能被继承;直接写在class关键字前面修饰函数:函数不能被重写;直接写在函数返回值类型前面;修饰变量:变量的值不能被修改,可以成为常量;直接写在变量的数据类型前面;因为被final修饰的变量的值不能改变,所以被fianl修饰的变量有叫做常量;此时,我们给他的命名的书写规范:全部字母都要大写;多个单词,可以使用下划线(_)分开;如:private static final double PI = 3.14;变量的值不能改变,指的是直接保存在变量中的内容不能改变;如果被final修饰的变量是一个引用类型的数据,那么通过这个引用改变堆空间中的数据,不会报错;如果试图改变变量中保存的引用地址,这时候就该报错了;2.抽象类2.1.抽象类的产生需求:创建类描述猫和狗的行为;猫的行为:抓老鼠;吃鱼;狗的行为:看家;吃骨头;分析:因为猫和狗都是动物,所以可以让猫和狗分别继承动物类,然后将共同东西抽取到动物类中;小结:当事物的功能描述不清,只能表示有这个功能时,就应该使用抽象修饰该功能,这个功能就是抽象的功能;如果一个类中有抽象的功能,那么这个类也是抽象的类;2.2.抽象的特点2.2.1.抽象类不能实例化因为抽象类,表示一个描述不清的事物,所以不能实例化;2.2.2.子类继承抽象类,必须实现父类的所有抽象函数,否则子类也是抽象的抽象类,必须由子类去继承,继承的子类必须实现父类中所有的抽象方法;2.2.3.抽象函数必须放在抽象类中因为类中有抽象函数,表示描述不清的功能,所以整个类所描述的事物,也是描述不清的,所以需要将类也定义为抽象的;2.3.抽象类的细节问题1,抽象类一定是父类吗?是,因为抽象类就是通过不同的子类向上抽取共性信息得倒的;抽线类必须由子类去继承和重写抽象函数;2,抽象类中有构造方法吗?必须有,因为抽象类需要由子类去继承,子类实例化的时候,要调用父类的构造函数;抽象类的构造函数作用是初始化本类中的成员变量的;3,抽象类中可以不书写抽象方法吗?可以;可以只有非抽象的成员;同样,不能实例化;4,抽象类中可以定义非抽象的方法吗?(抽象类中可以书写普通方法和成员变量)抽象类中除了抽象函数,还可以定义所有一般类中可以定义的成员;5,抽象关键字abstract不能和哪些修饰符关键字共存?因为抽象的函数只有被继承的子类重写了,才可以使用,所以不能和private以及final 关键字一起使用;static:因为静态的函数可以直接使用类名调用,所以也不能使用static修饰抽象函数;6、抽象类什么时候使用?当描述的功能不确定,不知道具体怎么实现的时候,就需要使用抽象函数,这是类也是抽象的;不想实例化这个类(包括自己也不行),但是允许别人继承,也可以使用抽象类;2.4.抽象类的应用需求:描述Hr和程序员:有共同的3.多态3.1.多态的引入狗;哈士奇;二哈;动物;生物;汪星人;畜生……生活中的一个实实在在的事物,我们可以使用不同的状态去描述;这就是多态;而且我们在生活中,我们更习惯使用抽象的、一般化的概念来描述一个具体的事物;酒:啤酒;白酒;黄酒;红酒……饭:米饭;面条;饺子;包子……使用一般化、抽象化的概念指代一个具体的事物,就是多态在生活中的体现;3.2.java中的多态3.2.1.多态的体现上面代码中红框部分使用了多态;结论:在java中,多态,指的是父类型引用指向子类实例对象;(接口类型引用指向实现类对象)3.2.2.多态的使用前提生活中的前提:被指代的事物确实是用于描述它的那个概念的一个特例;Java中的前提:必须是继承关系(或者接口实现关系);3.2.3.多态的好处生活中:使用多态指代事物,能够指代的范围更广泛,到了实际操作的时候,就有更多的选择;Java中的好处:描述猫和狗的行为,同时需要提供测试方法;首先描述和测试猫接下来描述和测试狗的行为问题:每添加一个被测试的类型的对象,都需要单独创建一个专门的功能,而且在这些测试功能中,实现是类似的;问题就是,代码复用性差,程序扩展性差;解决:考虑使用多态,直接创建一个测试父类型的方法,然后就可以接受不同类型的对象;/*描述猫和狗的行为,同时需要提供测试方法;*///描述动物abstract class Animal{abstract void eat();abstract void sleep();}//描述猫的行为class Cat extends Animal{//吃void eat(){System.out.println("吃鱼");}//睡觉void sleep(){System.out.println("猫咪睡着了");}}//描述狗的行为class Dog extends Animal{//吃void eat(){System.out.println("吃骨头");}//睡觉void sleep(){System.out.println("狗狗睡着了");}}//创建测试类测试class Test2{//测试动物的行为public static void testAnimal(Animal animal){ animal.eat();animal.sleep();}public static void main(String[] args){//使用多态指向猫的对象Animal cat = new Cat();testAnimal(cat);//使用多态指向狗的对象Animal dog = new Dog();testAnimal(dog);}}另中写法:小结:使用多态,可以提高程序的扩展性,降低代码的冗余;3.2.4.多态的弊端使用父类型引用指向子类对象,不能通过父类性引用访问子类特有属性和行为;3.3.多态的类型转换3.3.1.多态的类型转换自动向上转型:将子类性对象赋值给父类型引用,可以自动进行;提升了子类对象的类型;强制向下转型:将父类型引用转为子类性引用,降低了引用的类型,需要强制转换;结论:是用强制向下转型,可以解决多态使用的弊端;3.3.2.强制向下转型的问题3.3.3.instanceof关键字instanceof:比较运算符;运算符左边是一个指向一个对象的引用(左边就是一个变量名),右边是一个类名,运算符表示的意思就是:判断左边的对象的类型是不是右边的类;结论:使用instanceof关键字,可以实时判断一个对象的类型,就可以避免强制类型转换中容易出现的类型转换异常;3.4.多态中成员的特点程序分为编译和运行两个阶段,程序中的成员,又分为静态和非静态两种,所以,要分不同情况讨论;在使用多态的程序中,编译时,不管是什么成员,编译器都看的是父类型的引用;在运行时,所有成员变量都是用的是父类型的;静态函数使用的是父类型的,非静态函数使用的是子类重写的;总结:在使用多态时,成员的特点:编译期:不管什么成员,只要用到了,都要检查父类中有没有;运行期:所有成员变量和静态函数都是使用的父类的,非静态函数使用的是子类重写的;静态成员不参与多态,只有非静态成员才与多态,因为多态是和对象有关的;编译时都要看等号左边;运行时,只有非静态函数看等号右边;3.5.多态练习需求:描述老板让Hr、程序员干活;/*需求:描述老板让Hr、程序员干活;*///描述Hrclass Hr{void work(){System.out.println("人事管理");}}//描述程序员class Programmer{void work(){System.out.println("敲代码改变世界!");}}//描述老板class Boss{//老板让Hr干活void letHrWork(Hr hr){hr.work();}//老板让程序员干活void letProWork(Programmer pro){pro.work();}}class Test5{public static void main(String[] args){Boss boss = new Boss();Hr hr = new Hr();boss.letHrWork(hr);Programmer pro = new Programmer();boss.letProWork(pro);}}传统的做法,太麻烦,需要一个一个去做;而实际生活中不是这样,老板一个命令,所有干活的都要去工作,所以考虑从使用多态解决://描述打工的abstract class Worker{abstract void work();}//描述Hrclass Hr extends Worker{void work(){System.out.println("人事管理");}}//描述程序员class Programmer extends Worker{void work(){System.out.println("敲代码改变世界!");}}//描述老板class Boss{void letWorkerWork(Worker worker){worker.work();}}class Test6{public static void main(String[] args){Boss boss = new Boss();Worker hr = new Hr();boss.letWorkerWork(hr);Worker pro = new Programmer();boss.letWorkerWork(pro);}}多态总结:概念:一种事物可以有多种表示形态;而且一般习惯使用更抽象、更一般化的形态表示这个事物;多态在Java中的体现:父类型引用指向子类实例对象;接口引用指向实现类对象;多态的前提:必须有继承或者接口实现的关系;多态的好处:提高代码的复用性,提高程序的扩展性;多态的弊端:不能使用子类对象特有的属性和功能;解决多态弊端的方法:使用强制类型转换;使用强制类型转换容易出现类型转换异常,解决的办法是转换前使用比较运算符:instanceof判断;多态使用中成员的特点:编译时,所有成员都看父类;运行时,只有非静态成员函数看子类;静态成员不参与多态;4.接口4.1.接口的引入需求:分别描述以下三种动物的行为:狗:吃;叫;猫:吃;叫;猪:吃;叫;接下来,需求升级:狗和猫经过训练,都学会了表演;4.2.接口的代码体现:4.2.1.接口的声明格式:接口使用关键字:interface声明;4.2.2.接口中能书写的成员:接口和类不同,在接口中可以书写的内容,都已经被Java固定了:成员变量:只能使用一下修饰符:public static final;也就是说,接口中的成员变量,都是常量;成员函数:只能使用修饰符:public abstract ;也就是说,接口中的方法,都是公共和抽象的;这些修饰符,是Java在语法层面固定的,我们可以省略不写,编译器会帮我们加上;要写,就只能这么写,不能改写;一般函数前面的修饰符,推荐public不要省略;4.2.3.接口的实现:接口和抽象类一样,都无法实例化;需要使用一个类来实现接口,使用关键字:implements4.2.4.多态使用接口:一般开发中,都会通过多态的方式使用接口;接口类型的引用指向实现类的对象;4.3.接口的多实现&多继承接口的多实现小结:一个类可以实现多个接口,多个接口之间使用逗号分开;如果一个类实现了接口,就必须实现接口中的所有方法,否则这个类应该定义为抽象的;当使用其中一个接口来利用多态的形式使用实现类的对象时,只能访问属于这个接口的属性和方法;接口的多继承接口和类之间是实现的关系,接口和接口之间是继承的关系;而且接口支持多继承;3、接口的使用思想4.3.1.接口的作用总结1、接口可以描述事物不属于继承体系中的扩展的功能;2、通过多态的方式使用接口,可以提高程序的扩展性;3、接口实现了java中的多继承;4.3.2.使用接口定义规则规则,就是规范,是一种约定;需求:模拟电脑使用键盘和鼠标传统方式:class Keyboard{void open(){System.out.println("键盘打开");}void close(){System.out.println("键盘关闭");}void work(){System.out.println("键盘输入");}}class Mouse{void open(){System.out.println("鼠标打开");}void close(){System.out.println("鼠标关闭");}void work(){System.out.println("鼠标移动");}}class Computer{//表示电脑使用鼠标void useMouse(Mouse m){m.open();m.work();m.close();}//表示电脑使用键盘void useKeyboard(Keyboard kb){kb.open();kb.work();kb.close();}}class Test7{public static void main(String[] args){Computer com = new Computer();eKeyboard(new Keyboard());eMouse(new Mouse());}}使用USB接口:interface USB{public void open();public void close();public void work();}class Keyboard implements USB{public void open(){System.out.println("键盘打开");}public void close(){System.out.println("键盘关闭");}public void work(){System.out.println("键盘输入");}}class Mouse implements USB{public void open(){System.out.println("鼠标打开");}public void close(){System.out.println("鼠标关闭");}public void work(){System.out.println("鼠标移动");}}class Computer{//表示电脑使用USBvoid useUSB(USB usb){usb.open();usb.work();usb.close();}}class Test8{public static void main(String[] args){Computer com = new Computer();eUSB(new Keyboard());eUSB(new Mouse());}}5.接口和抽象类的区别5.1.接口和抽象类的区别5.2.接口和抽象类的使用练习需求:描述手机和电脑,都有开机、关机和可以玩游戏的功能;6.适配器设计模式6.1.适配器模式6.2.生活中的适配6.3.Java中的适配。