面向对象第四次作业任务答案解析
国家开放大学《面向对象程序设计(本)》形考任务1-4参考答案

国家开放大学《面向对象程序设计(本)》形考任务1-4参考答案形考任务1一、单项选择题(每题1分,共20分)1.Java是一门()语言。
a. 汇编b. 面向对象的高级c. 面向过程的高级d. 机器2.机器语言中的指令编码为()编码。
a. 符号b. 数字c. 十进制d. 二进制3.更接近人类自然语言的计算机语言是()语言。
a. 高级b. 机器c. 数字d. 汇编4.对象是构成现实世界的一个独立单位,它具有自己的静态特征和()特征。
a. 重量b. 颜色c. 状态d. 动态5.类是对具有共同属性和行为的对象的抽象描述,每个对象称为该类的一个()。
a. 成分b. 元素c. 产品d. 实例6.Java语言的主要特点不包括()。
a. 可移植性b. 处理文件c. 面向对象d. 自动垃圾回收7.Java语言的主要特点不包括()。
a. 解释执行b. 处理字符串c. 多线程d. 安全性8.具有相同属性和服务的一组对象的模板称为()。
a. 代码b. 概念c. 类d. 程序9.把对象的属性和服务组合成一个独立的整体,尽可能隐蔽其内部的细节,这称为对象的()。
a. 继承性b. 封装性c. 开放性d. 多态性10.使用JDK编译Java程序时使用的命令是()。
a. javadocb. javacc. appletviewerd. java11.组成Java程序的最小单位是()。
a. 方法b. 常量d. 类12.在Java程序中包含主方法的类被称为主类,主方法名为()。
a. voidb. mainc. Maind. args13.在Java程序中包含主方法的类被称为主类,主方法的访问控制修饰符为()。
a. privateb. staticc. publicd. protected14.在Java程序中包含主方法的类被称为主类,主方法的存储控制属性应定义为()。
a. staticb. shortc. finald. abstract15.Java语言中的基本数据类型有9种,其中属于数值型的数据类型有()种。
《软件工程导论》课后习题答案

作业及解答(第3章)
• 数据结构的描述 符 号
= +
含 义
x = a+b
举
例
被定义为 与 或
[...,...] 或 [...|...] { ... }或 m{...}n (...) “...” ..
23:59:38
x = [a , b],x = [a | b] 重复 x = {a}, x = 3{a}8 可选 x = (a) 基本数据元素 x = “a” 连结符 x = 1..9
P1 记录存款信息
P2 打印存单 F5存款信息 F3存单 E1 储户 F4利息
F5存款信息 D1存款信息 F7密码 F2取款单
F5存款信息 P3 核算密码
F4利息 F4利息 F6取款信息 P6 设置利率 P4 计算利息
P5 打印利息清单 F8储蓄利率
E2 业务员
23:59:38
F8储蓄利率
F8储蓄利率
23:59:38
重庆工学院计算机科学与工程学院 李梁(liliang@) 李梁
作业及解答( 作业及解答(第3章)
23:59:38
重庆工学院计算机科学与工程学院 李梁(liliang@) 李梁
作业及解答( 作业及解答(第3章)
• 3-6 复印机的工作过程大致如下:未接到复印 命令时处于闲置状态,一旦接到复印命令则进 入复印状态,完成一个复印命令规定的工作后 又回到闲置状态,等待下一个复印命令;如果 执行复印命令时发现没纸,则进入缺纸状态, 发出警告,等待装纸,装满纸后进入闲置状态, 准备接收复印命令;如果复印时发生卡纸故障, 则进入卡纸状态,发出警告等待维修人员来排 除故障,故障排除后回到闲置状态。 • 请用状态转换图描绘复印机的行为。
软件工程专业《面向对象技术》课程的课后作业参考答案(第4部分)

}
public void run(){ //结束条件设定为,当卡内资金大于 100 元时,线程 OVER while(this.mycard.getMoney()<=100){ AddSystem.addMoney(this.mycard); } System.out.println("资金大于 100 元,该线程 OVER"); System.out.println("");
}
public void addMoney(float addmoney){
money=money+addmoney;
//金额累加:
System.out.println("充值完毕,增加了"+addmoney+"元钱lass Student extends Thread{
money=0; id=0; name="No"; }
Card(int id, String name){ money=0;
this.id=id;
=name; }
public float getMoney(){
return money; }
public void dispInformation() { System.out.println("该一卡通考号为:"+id+"号");
}
public void dispInformation() { System.out.println("******************************"); System.out.println("该学生的基本信息如下:"); System.out.println("姓名-------:"+name);
作业四 面向对象需求建模解答(第9-11章)

作业四面向对象需求建模(第9-11章)4-1、根据以下描述,使用面向对象的分析方法,分析有那些主要对象和这些对象的主要属性、方法,画出对象图。
一个饮料自动售货机可以放置五种不同或部分相同的饮料,可由厂商根据销售状况自动调配,并可随时重新设置售价,但售货机最多仅能放置50罐饮料,其按钮设计在各种饮料样本的下方,若经金额计算器累计金额足够,则选择键灯会亮;若某一种饮料已销售完毕,则售完灯会亮。
顾客将硬币投入售货机,经累加金额足额的饮料选择键灯亮,等顾客按键选择。
顾客按键后饮料由出物口掉出,并自动结算及找钱。
顾客可在按下选择键前任何一个时刻,可以拉动退币杆取消交易收回硬币。
4-2、请画出一个用户使用银行ATM的状态转换图。
从用户将卡插入卡槽开始,到用户取卡结束(如果用户忘记,ATM应报警),用户可以完成以下几个步骤:登录(卡片进入ATM机后,如果不是可读卡,退卡;如是,等待用户输入密码,三次错,吞卡,正确后进入主菜单),取钱(进入取钱菜单,输入金额,如果帐户余额不足,提示余额,并要求用户重新输入,如果帐上钱够,吐钱币,并询问是否打印凭证,最后返回主菜单),主菜单提供退出取卡选择。
4-3、某公安报警系统在一些公安重要保护单位(银行、学校等)安装了报警装置,其工作过程如下:一旦发生意外事故,故事发生单位只需按报警按钮,系统立即向公安局发出警报信息、自动显示出报警单位的地址、电话号码等。
110警车立即出动前往出事地点。
值班人员可以接通事故单位的电话、问清情况,需要时再增派公安人员到现场处理。
根据以上情况进行分析,确定本系统有哪些用例、对象,画出用例图、类图及顺序图。
下面是某位同学做的用例:按报警按钮,向公安局发出警报信息,显示报警单位地址电话,110警车前往出事地点,值班人员接通事故单位的电话、问清情况,增派公安人员对象:事故单位、报警系统、公安局、值班人员、公安人员,警车类图:用例图:事故单位报警系统值班人员顺序图:4-4、小李新接了一个项目:设计一个简单的学生选课系统,系统能注册符合要求的同学,同学注册以后就能进行选课,选课过程如下:先选课名,然后根据课程的上课老师、时间、地点和人数限制来决定是否成功选课;老师也可以根据情况提供新的课程说明或修改过去课程的说明;教务处的老师统一管理注册的情况,可以有删除、修改学生、老师和课程的权限。
兰大《面向对象程序设计》15春在线作业4 答案

《面向对象程序设计》15春在线作业4一、单选题(共13 道试题,共52 分。
)1. 以下不合法的字符常量是()A. \018'B. '\”'C. '\\'D. ‘\xcc'正确答案:A2. 以下叙述中正确的是()A. 预处理命令行必须位于C源程序的起始位置B. 在C语言中,预处理命令行都以“#”开头C. 每个C程序必须在开头包括预处理命令行:#includeD. C语言的预处理不能实现宏定义和条件编译的功能正确答案:C3. 在下列关键字中,不能用来表示继承方式的是()A. privateB. staticC. publicD. protected正确答案:B4. 通过()调用虚函数时,采用动态束定A. 对象指针B. 对象名C. 成员限定D. 派生类名正确答案:A5. 有以下程序main() { char *p[]={"3697","2584"}; int i,j; long num=0; for(i=0;i<2;i++) {j=0; while(p[i][j]!='\0') { if((p[i][j]-‘0')%2)num=10*num+p[i][j]-'0'; j+=2; } } printf("%d\n"num); } 程序执行后的输出结果是()A. 35B. 37C. 39D. 3975正确答案:C6. C++语言的跳转语句中,对于break和continue说法正确的是()A. break语句只应用于循环体中。
2023年物业信息管理国家开放大学形考作业四平时作业四形成性考核 (第四次)

2023年物业信息管理国家开放大学形考作业四平时作业四形成性考核(第四次)1.无论32位计算机还是64位计算机,在一个主存储器单元中存放的数仍然是( )位的,只不过在计算机运行时,一次可以对2个存储单元或4个存储单元进行访问。
单选题(2.5分)A.2B.4C.6D.8正确答案:D2.在软件系统理论中,只要程序在通过测试后,就能被认为是完全正确的。
判断题(2.5分)A.对B.错正确答案:B3.常用接口有:()和IEE1394总线。
多选题(2.5分)A.并行接口B.串行接口C.网络接口D.通用串行总线正确答案:A B D4.关系模型由()三部分组成。
多选题(2.5分)A.关系数据结构B.关系操作C.关系完整性约束D.数据库正确答案:A B C5.控制器是微型计算机的指挥和控制中心。
判断题(2.5分)A.对B.错正确答案:A6.智能物业管理信息系统的开发方法有:()等。
多选题(2.5分)A.生命周期法B.结构化方法C.原型法D.面向对象的开发方法正确答案:A B C D7.数据模型通常由()三个基本部分组成。
多选题(2.5分)A.数据结构B.数据C.数据操作D.完整性约束正确答案:A C D8.物业管理信息系统属于哪中类型的软件( )单选题(2.5分)A.应用软件B.工具软件C.操作系统D.系统软件正确答案:A9.频带传输可以在电话线上传输数字信号。
判断题(2.5分)A.对B.错正确答案:A10.衡量一个系统模型好坏的标准可以从()和可发展性等方面考虑。
多选题(2.5分)A.运行效率B.安全可靠性C.可操作性D.灵活性正确答案:A B C D1.在软件系统理论中,只要程序在通过测试后,就能被认为是完全正确的。
判断题(2.5分)A.对B.错正确答案:B2.无论32位计算机还是64位计算机,在一个主存储器单元中存放的数仍然是( )位的,只不过在计算机运行时,一次可以对2个存储单元或4个存储单元进行访问。
单选题(2.5分)A.2B.4C.6D.8正确答案:D3.常用接口有:()和IEE1394总线。
面向对象程序设计大作业参考题目及要求

面向对象程序设计大作业参考题目1、学生信息管理(1)问题描述学生信息包括:学号,姓名,年龄,性别,出生年月,地址,电话,E-mail等。
试设计一学生信息管理系统,使之能提供以下功能:●系统以菜单方式工作●学生信息录入功能(学生信息用文件保存)---输入●学生信息浏览功能——输出●查询、排序功能——算法1、按学号查询2、按姓名查询●学生信息的删除与修改(可选项)(2)功能要求●界面简单明了;●有一定的容错能力,比如输入的成绩不在0~100之间,就提示不合法,要求重新输入;●最好用链表的方式实现。
(3)算法分析首先,一个学生包括这么多的属性,应该考虑定义一个结构,其次,我们应该考虑数据的存储形式:是定义一个数组来存储,还是定义一个链表呢?在这里假如我们以数组的方式来存储,当然可以,但是我们知道,假如我们定义一个数组的话,我们首先必须知道学生人数大概是多少,以便我们确定数组的大小,但是题目中没有给出,而且题目要求中有大量的删除、插入操作,所以用链表的方式比较方便。
对于菜单的实现,其实也比较简单,首先我们用printf语句把程序的功能列出来,然后等待用户输入而执行不同的函数,执行完了一个功能后又回到菜单。
文件的读写操作大家参照书中的有关文件的章节。
2、学生综合测评系统每个学生的信息为:学号、姓名、性别、家庭住址、联系电话、语文、数学、外语三门单科成绩、考试平均成绩、考试名次、同学互评分、品德成绩、任课教师评分、综合测评总分、综合测评名次。
考试平均成绩、同学互评分、品德成绩、任课教师评分分别占综合测评总分的60%,10%,10%,20%。
A、学生信息处理(1) 输入学生信息、学号、姓名、性别、家庭住址、联系电话,按学号以小到大的顺序存入文件中。
提示:学生信息可先输入到数组中,排序后可写到文件中。
(2) 插入(修改)同学信息:提示:先输入将插入的同学信息,然后再打开源文件并建立新文件,把源文件和输入的信息合并到新文件中(保持按学号有序)若存在该同学则将新记录内容替换源内容,(3) 删除同学信息:提示:输入将删除同学号,读出该同学信息,要求对此进行确认,以决定是否删除将删除后的信息写到文件中。
国开(四川)02372-面向对象程序设计-第4次形成性考核-参考资料

面向对象程序设计-第4次形成性考核-辅导资料
说明:如果课程题目是随机的,请按CTRL+F在题库中逐一搜索每一道题的答案
特殊说明请仔细:课程的题目每学期都可能更换,所以请仔细核对是不是您需要的题目再下载!!!!
第1题
下列哪个类不是异常类的父类?()。
a. Object
b. Exception
c. Error
d. Throwable
【正确的答案是】:Error
第2题
下面的异常()不属于非检查型异常。
a. IO异常
b. 数组越界
c. 空值操作
d. 除零
【正确的答案是】:IO异常
第3题
下面的关键字()与异常处理无关。
a. try
b. void
c. throw
d. throws
【正确的答案是】:void
第4题
下面的关键字()与异常处理无关。
a. finally
b. throws
c. import
d. throw
【正确的答案是】:import
第5题
下面的关键字()与异常处理无关。
a. switch
b. finally
c. catch
d. try
【正确的答案是】:switch
第6题
在java语言中,捕获和处理异常的语句块为()。
a. if…else
b. try…catch
c. switch…case。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
面向对象程序设计技术作业四一、填空题1、在定义类对象的语句执行时,系统在建立每个对象的过程中将自动调用该类的构造函数使其初始化。
2、当一个类对象被撤消时将自动调用该类的析构函数。
3、对基类数据成员的初始化是通过执行派生类构造函数中的初始化表来实现的。
4、对一个类中的数据成员的初始化可以通过构造函数中的初始化表实现,也可以通过构造函数中的赋值语句实现。
5、在一个派生类中,对基类成员、类对象成员和非类对象成员的初始化次序是先基类成员,后类对象成员,最后为非对象成员。
6、当撤消一个含有基类和类对象成员的派生类对象时,将首先完成派生类本身的析构函数定义体的执行,接着完成类对象成员的析构函数定义体的执行,最后完成基类成员的析构函数定义体的执行。
7、设px 是指向一个类动态对象的指针变量,则执行” delete px ;”语句时,将自动调用该类的析构函数。
8、当一个类对象离开它的作用域时,系统将自动调用该类的析构函数。
9、假定一个类对象数组为A[N] ,当离开它的作用域时,系统自动调用该类析构函数的次数为N 次。
10、假定AB 为一个类,则执行” AB a[10] ;”语句时,系统自动调用该类构造函数的10次。
11、假定用户没有给一个名为AB 的类定义构造函数,则系统为其隐含定义的构造函数为空12、假定用户没有给一个名为AB 的类定义析构函数,则系统为其隐含定义的析构函数为空构造函数。
13、若需要把一个函数” void F() ;”定义为一个类AB的友元函数,则应在类AB 的定义中加入一条语句:friend void F ();。
14、若需要把一个类AB定义为一个类CD的友元类,则应在类CD 的定义中加入一条语句:feiend class AB ;。
15、假定一个类AB 中有一个静态整型成员bb ,在类外为它进行定义并初始化为0时,所使用的语句为AB :bb=0 ;。
16、假定类AB 中有一个公用属性的静态数据成员bb ,在类外不通过对象名访问该成员bb的写法为AB :bb 。
17、当类中一个字符指针成员指向具有n个字节的存储空间时,它所能存储字符串的最大长度为n-1 。
18、假定AB 为一个类,则该类的拷贝构造函数的声明语句为AB :AB(AB&)19、对类对象成员的初始化是通过执行构造函数中的初始化表的。
20、对于类中定义的成员,其隐含访问权限为private ,对于结构中定义的成员,其隐含访问权限为public 。
21、一个类的友元函数或友元类能够通过成员操作符访完成所有数据成员和函数成AB 类对象的加法,并返回相加员。
22、假定要对类AB 定义加号操作符重载成员函数,实现两个23 、在C++ 流类库中,根基类为ios 。
24 、在C++ 流类库中,输入流类和输出流类的名称分别为i stream 和ostream25 、若要在程序文件中进行标准输入输出操作,则必须在开始的#include 命令中使用iosteam.h 头文件。
26 、若要在程序文件中进行文件输入输出操作,则必须在开始的#include 命令中使用fstream.h 头文件。
27 、当从字符文件中读取回车和换行两个字符时,被系统看作为一个换行符28 、当使用ifsream 流类定义一个流对象并打开一个磁盘文件时,文件的隐含打开方式为读取的文本文件,当使用ofstream 流类定义一个流对象并打开一个磁盘文件时,文件的隐含打开方式为写入的文本文件。
29 、当需要使用istrstream 流类定义一个流对象并联系一个字符串时,应在文件开始使用#include 命令,使之包含strstrea.h 文件。
二、写出下列程序运行后的输出结果1 .#include<iostream.h>class A{int a,b;public:A() {a=b=0;}A(int aa, intbb){ a=aa;b=bb;cout<<a<<''<<b<<endl;}void main(){A x, y(6,3), z(8,10);} 输出结果:2.#include<iostream.h>class A{int a,b;public:A(int aa=0, int bb=0):a(aa),b(bb){cout<<"Constructor!"<<a+b<<endl;}};void main(){A x, y(2,5), z(y);} 输出结果:3.#include<iostream.h>class A{int *a;public:A(int aa=0){a=new int(aa);cout<<"Constructor!"<<*a<<endl;};void main(){A x[2];A *p=new A(5);delete p;} 输出结果:4.#include<iostream.h>class A{int a;public:A(int aa=0):a(aa){}~A(){cout<<"Destructor!"<<a<<endl;} };void main(){A x(5);A *p=new A(10);delete p;} 输出结果:#include<iostream.h>5.class A{int *a;public:A(int x){a=new int(x);cout<<"Constructor!"<<*a<<endl;}~A(){delete a;cout<<"Destructor!"<<endl;} };void main(){A x(9),*p;p=new A(12);delete p;} 输出结果:6.#include<iostream.h>class A{int a;public:A(int aa=0):a(aa){cout<<"Constructor A!"<<a<<endl; } };class B:public A{int b;public:B(int aa,int bb):A(aa),b(bb){cout<<"Constructor B!"<<b<<endl; } }; void main(){B x(2,3),y(4,5);} 输出结果:7.#include<iostream.h>class A{int a;public:A(int aa=0){a=aa;}~A(){cout<<"Destructor A!"<<a<<endl;} };class B:public A{int b;public:B(int aa=0,int bb=0):A(aa){b=bb;}~B(){cout<<"Destructor B!"<<b<<endl;} };void main(){B x(5),y(6,7);}8.#include<iostream.h>#include<stdlib.h>class A{int a,b;char op;public:A(int aa,int bb,char ch){a=aa;b=bb;op=ch;}int Comp(){switch(op){case'+':return a+b;case'-':return a-b;case'*':return a*b;case'/':if(b!=0)return a/b;else exit(1);case'%':if(b!=0)return a%b;else exit(1);default:exit(1); }}void SetA(int aa,int bb,char ch){a=aa;b=bb;op=ch; }};void main(void){A x(3,5,'*');int a=p();x.SetA(4,9,'+');a+=p();x.SetA(13,8,'%');a+=p();cout<<"a="<<a<<endl;}输出结果:9.#include<iostream.h>class B{int a,b;public:B(){a=b=0;}B(int aa,int bb){a=aa;b=bb;}B operator+(B&x){B r;r.a=a+x.a;r.b=b+x.b;return r;}B operator-(B&x){B r;r.a=a-x.a;r.b=b-x.b;return r;}void OutB(){cout<<a<<' '<<b<<endl;}};void main(){B x(6,5),y(13,3),z1,z2;z1=x+y;z2=x-y;z1.OutB();z2.OutB();}输出结果:10.#include<iostream.h> template<class TT> class FF{ TT a1,a2,a3;public:FF(TT b1,TT b2,TT b3){a1=b1;a2=b2;a3=b3;TT Sum(){return a1+a2+a3;}};void main(){FF<int>x(8,3,4),y(5,9,11);cout<<x.Sum()<<' '<<y.Sum()<<endl; }输出结果:三、写出下列每个函数的功能1. #include <iomanip.h>#include <fstream.h>#include <string.h>void JA(char *fname){ofstream fout(fname);char a[20];cin>>a;while(strcmp(a,"end")!=0){fout<<a<<endl;cin>>a;}fout.close();}void JB(char *fname){ifstream fin(fname);char a[20];int i=0;while(fin>>a){cout<<a<<endl; i++;}fin.close();cout<<"i="<<i<<endl;}void main(){JA("c:\gm.dat");JB("c:\gm.dat");}2.#include <iomanip.h>#include <fstream.h>void JB(char *fname){ifstream fin(fname);char a[20];int i=0;while(fin>>a){cout<<a<<endl;i++;}fin.close();cout<<"i="<<i<<endl;}3.#include <iomanip.h>#include <fstream.h>void JC(char *fname,int n){ofstream fout(fname,ios::out|ios::binary);int x;for(int i=0;i<n;i++){cin>>x;fout.write((char *)&x,sizeof(x));}fout.close();void JD(char * fname){ifstream fin(fname,ios::in|ios::nocreate|ios::binary);int x,s=0,n=0;while(fin.read((char *)&x,sizeof(x))){s+=x;n++;}cout<<n<<' '<<s<<' '<<float(s)/n<<endl;fin.close;}void main(){JC("c:\gm.bat",5);JD("c:\gm.bat");}4.#include <iomanip.h>#include <fstream.h>void JD(char * fname){ifstream fin(fname,ios::in|ios::nocreate|ios::binary);int x,s=0,n=0;while(fin.read((char *)&x,sizeof(x))){s+=x;n++;}cout<<n<<' '<<s<<' '<<float(s)/n<<endl;fin.close;}。