面向对象作业

合集下载

面向对象程序设计作业(带答案)

面向对象程序设计作业(带答案)

人工智能学院面向对象程序设计作业Java语言基础年级专业 2019级软件工程专业学号姓名成绩一、选择题1.下列标识符中,正确的是(C)。

A.class B. 123_rr C. _lei D. test&122.下列( D )的选项可以正确表示八进制8。

A.0x8 B. 0x10 C.08 D. 0103. 以下哪个是十进制数17对应的十六进制正确表示?( D )A. 017B. x11C. 0x17D. 0X114.在Java中,不属于整数类型的是( A )。

A.double B. long C. int D. byte5.在Java中,关于标识符的说明,不正确的是(D )。

A.严格区分大小写;B.长度不限;C.不能用关键字和保留字作为标识符;D.可以包含空格6.给出下面代码的输出结果。

( D )public class ByteAdd {public static void main(String args[ ]){byte a=10;byte b=100;byte c;c=a+b;System.out.println(a+"+"+b+"="+c);} }A.输出零B.输出 10+100=110C. 编译时正确,运行时将产生错误;D.编译时将产生错误;二、程序阅读题1. 对于以下程序,运行“java Abs”,将得到什么打印结果?public class Abs{static int a=0x11;static int b=0011;static int c='\u0011';static int d=011;public static void main(String args[]){ System.out.println(a);System.out.println(b);System.out.println(c);System.out.println(d);}}179179类和对象年级专业 2019级软件工程专业学号姓名成绩一、选择题1. 为了在当前程序中使用ch4中的类,可以使用的语句是( A )。

《面向对象分析与设计》在线作业

《面向对象分析与设计》在线作业

《面向对象分析与设计》在线作业一、单选题 (共50题,每题1分,共50分)1、面向对象的运动产生了多种面向对象的语言, 其中(C)是一种混合性面向对象语言, 既支持面向过程的程序设计方法,又支持面向对象的程序设计方法,有广泛应用的基础和丰富开发环境的支持,因而使面向对象的程序设计能得到很快普及。

A.SmalltalkB.EiffelC.C++D.Java2、UML的全称是 (B )。

A.Unify Modeling LanguagB.Unified Modeling LanguageC.Unified Modem LanguageD.Unified Making Language3、在根据不同的机器选择设备驱动程序的案例中,以下叙述不准确的是(D)。

A.可以使用switch语句选择驱动程序B.可以使用继承来实现选择驱动程序,但它可能会产生类组合爆炸问题C.可以选择抽象工厂模式实现,且能避免组合爆炸问题D.使用继承的解决方案要比switch语句有更多的优势4、下列关于面向对象方法中描述中错误的是(C)。

A.使用设计模式有助于在软件开发中应用面向对象技术B.选择面向对象程序设计语言时需要考虑开发人员对其的熟悉程度C.UML作为一种可视化建模语言需要与RUP开发过程同时使用D.目前在软件生命周期的分析、设计、实现和测试中均可以应用面向对象方法5、类图应该画在Rose的哪种(B)视图中。

e Case ViewB.Logic Viewponent ViewD.Deployment View6、(B)是一个类对象所可能经历的所有历程的模型图。

A.模型管理视图B.状态机视图C.动态视图D.静态视图7、以下对部署图说法不正确的是(A)。

A.部署图有主要建模元素是构件B.使用部署图可以显示运行时系统的结构,同时还传达构成应用程序的硬件和软件的配置的部署方式C.从部署图中,可以了解到软件与硬件之间物理关系及处理节点的组件分布情况D.部署图是用来显示系统中软件和硬件的物理结构8、下面不是活动图中的基本元素的是(D)。

(0837)《面向对象程序设计》网上作业题及答案

(0837)《面向对象程序设计》网上作业题及答案

(0837)《面向对象程序设计》网上作业题及答案1:[单选题]执行下列语句后,变量x的值是:()int x = 7, y = 10;switch (x / y) {case 0:x++;case 7:x *= y;case 14:x += y;break;default:x %= y;}A:8B:70C:80D:90参考答案:D2:[单选题]以下由for语句构成的循环的执行次数是:()for (int i=0; i<=0; i=i) ;A:有语法错,不能执行B:一次也不执行C:执行1次D:无限次参考答案:D3:[单选题]设有定义int i=7;char ch='b'; 下面赋值语句中不正确是:()A:i = ch;B:ch = i;C:ch = (char)i;D:i = (int)ch;参考答案:B4:[单选题]设有定义int i=80, j=7; double d=80.7;下列语句中正确的赋值语句是:()A:i = d;B:i = (int)d + j;C:j = (int)i - d;D:i + j = (int)d;参考答案:B5:[单选题]以下关于Java语言的叙述错误的是:()A:Java是最纯粹的面向对象语言,对面向对象方法学的支持也最全面B:Java是解释执行的语言,由Java解释器负责将Java源文件解释为机器码执行C:Java是平台无关的,即Java程序不用修改就可以在不同类型的计算机平台上运行D:Java提供了大量功能丰富的可重用类库,有效减少了编程的工作量参考答案:B6:[单选题]下列选项中,用于声明实现一个接口关键字是:()A:interfaceB:implementsC:importD:abstract参考答案:B7:[单选题]Java语言具有许多优点和特点,下列选项中,哪个反映了Java程序“一次编写,到处运行”的特点:()A:多线程B:与平台无关C:面向对象D:分布式参考答案:B8:[单选题]下列不属于Java语言关键字的是:()A:repeatB:tryC:breakD:new参考答案:A9:[单选题]下列字符序列中可以作为Java语言标识符的是:()A:trueB:123_xyzC:x.yD:_x123参考答案:D10:[单选题]下列字符序列中不能作为Java语言标识符的是:()A:abc_123B:圆周率PIC:falseD:_123abc参考答案:C1:[单选题]下列语句序列给出了k,myArr和myMethod()的声明。

面向对象软件工程—课后作业

面向对象软件工程—课后作业

面向对象软件工程第八章8.1.什么是面向对象方法学,它有哪些优点?答:面向对象方法学是尽可能模拟人类习惯的思维方式,使开发软件的方法与过程尽可能接近人类解决问题的方法与过程,使描述问题的问题空间与实现揭发的解空间在结构上尽可能一致的方法学科。

优点:1、与人类的习惯的思维方法一致;2、稳定性好;3、可重用性好;4、适合用于大型软件产品;5、所开发的软件有较好的可维护性;6、面向对象的软件比较容易修改;7、面向对象软件比较容易理解;8、易于测试和调式。

8.2.什么是对象,它与传统的数据有何异同?答:对象是对问题域中某个实体的抽象。

相对于传统数据的静态被处理,对象既有静态的属性,又有动态的行为,是进行处理的主体。

8.3.什么是类?答:类是对具有相同数据和相同操作的一组相似对象的定义。

8.4.什么是继承?答:继承是指能够直接获得已有事物的性质和特征,而不必重复定义他们。

8.5.什么是模型,开发软件为何要建模?答:所谓模型就是为了理解事物而对该事物做出的一种抽象,是对事物的一种无歧视定义的书面描述。

由于模型忽略了事物的非本质东西,因此模型比原始事物更容易操作。

对于那些因过分复杂而不能直接理解的系统,特别需要建立模型,建模的目的主要是为了降低复杂性。

人的头脑每次只能出来少量信息,模型通过把系统的重要部分分解成人的头脑一次能处理的若干个子部分,从而减少了系统的复杂程度。

8.6.什么是对象模型,建立对象模型时主要使用哪些图形符号,这些符号的含义是什么?答:对象模型表示静态的、结构化的系统性质,是对模拟客观世界实体的对象以及对象彼此间的关系的映射,描述了系统的静态结构。

在UML中,用类图来建立对象模型,表示一个类及属于该类的对象。

8.7.什么是动态模型,建立动态模型时主要使用哪些图形符号,这些符号的含义是什么?答:动态模型时描述系统控制结构,即行为化的一种模型。

在UML中主要用状态图、交互图、活动图来建立动态模型。

python面向对象练习题(打印版)

python面向对象练习题(打印版)

python面向对象练习题(打印版)# Python面向对象编程练习题面向对象编程(OOP)是Python中的核心概念之一。

通过以下练习题,你可以加深对Python中类和对象的理解。

## 练习一:定义一个类1. 定义一个名为`Person`的类,包含以下属性:- `name`:姓名- `age`:年龄2. 为`Person`类添加一个初始化方法`__init__`,用于设置姓名和年龄。

3. 添加一个方法`greet`,用于打印问候语。

```pythonclass Person:def __init__(self, name, age): = nameself.age = agedef greet(self):print(f"Hello, my name is {} and I am{self.age} years old.")```## 练习二:继承和多态1. 定义一个`Student`类,继承自`Person`类。

2. 添加一个属性`student_id`来表示学生的学号。

3. 重写`greet`方法,使其打印出学生特有的问候语。

```pythonclass Student(Person):def __init__(self, name, age, student_id):super().__init__(name, age)self.student_id = student_iddef greet(self):print(f"Hello, I am {}, a student of age {self.age} with ID {self.student_id}.")```## 练习三:封装1. 创建一个名为`Car`的类。

2. 包含属性:`make`(制造商),`model`(型号),`year`(年份)。

3. 为这些属性提供私有化处理,即在属性名前加上双下划线`__`。

面向对象设计及UML语言作业答案

面向对象设计及UML语言作业答案

类图作业3
3、画出相应的UML 类图。 神舟六号飞船是神舟 飞船系列的一种,它 由轨道舱、返回舱、 推进舱和逃逸救生塔 等组成。航天员可以 在返回舱内驾驶飞船, 轨道舱则是航天员工 作和休息的场所。在 紧急情况下,可以利 用逃逸救生塔逃生。 在飞船两侧有多个太 阳能电池翼,可以为 飞船提供电能。
神舟飞船
U s e r Ap p s
Linux Server
A c c o u nt i n g C o m p on e n t
User Service
Manager Service
实现的,它有两个接口UserService和ManagerService。 构件UserApps是在一个Windows2000的机器上运行的, 它通过接口UserService来访问AccountingComponent。 这两台机器运行在一个TCP/IP局域网上。
Windows20ห้องสมุดไป่ตู้0
<<TCP/IP>>
神舟六号飞船
太阳能电池翼 1..n
+提 供 电 能 ( )
轨道舱
+工 作 () +休 息 ()
返回舱
+驾 驶 飞 船 ()
逃逸救生塔
+逃 生 ()
推进舱
航天员
包图作业
1、画出UML包图。 要求如下:主要存在两 个包,分别为财务子系统 和数据库子系统。数据库 子系统包中又包括数据库 操作,数据库接口以及 oracle接口和sybase接口包 四个包。财务子系统依赖 于数据库操作,数据库操 作依赖于数据库接口。 oracle接口和sybase接口都 是数据库接口。
画出电话机的状态图。

面向对象程序设计pta作业题目集1~3总结

面向对象程序设计pta作业题目集1~3总结

⾯向对象程序设计pta作业题⽬集1~3总结前⾔:第⼀次作业共⼋道,量多,但知识⾯不⼴,设计到的内容并不多,主要是熟悉java的基本语法。

第⼆次作业共五道,与c语⾔的编写基本⼀致,本题主要是算法问题,如何去计算⽇期。

第三次作业共三道,题少,覆盖的知识⾯⼴,不过最后⼀题是真的难,想了好久,⼩猪我还是写不出来,只是过了两个测试点。

题⽬序列:7-6 使⽤⼀维数组求平均值7-7 对多个整数进⾏排序7-8 判断三⾓形类型7-4 求下⼀天7-5 求前N天7-2 定义⽇期类7-3 ⼀元多项式求导(类设计)7-6 使⽤⼀维数组求平均值本题⽬要求使⽤⼀维数组,存储5个整数,输出5个整数的平均值输⼊格式:输⼊⼀组整数。

输出格式:对每⼀组输⼊,在⼀⾏中输出平均值。

输⼊样例:1 2 3 4 5输出样例:在这⾥给出相应的输出。

例如:3.0题⽬分析:本题较为简单,需要注意的是输出结果有⼩数,那么定义的时候就不能⽤int整形数据类型。

⽽是float,或者double。

接下来是我的代码import java.util.Scanner;public class Main{public static void main(String args[]){int x,i;float aver=0;Scanner scan=new Scanner(System.in);for(i=0;i<5;i++){x=scan. nextInt();aver=aver+x;}System.out.println(Math.round(aver/5.0));}}7-7 对多个整数进⾏排序先从键盘输⼊⼀个整数n,n代表需要排序的整数数量,然后再从键盘输⼊n个整数,对这些数从⼩到⼤排序并输出。

输⼊格式:先从键盘输⼊⼀个整数n,之后回车再从键盘输⼊n个整数,整数之间⽤⼀个或多个空格分隔输出格式:按如下⽰例输出排序后的数据:The sorted numbers are:排序后的n个数,每个输出的整数之后有⼀个空格作为分隔符输⼊样例:在这⾥给出⼀组输⼊。

面向对象分析与设计第四章作业

面向对象分析与设计第四章作业

1.论述类与对象之间的关系以及关联与链之间的关系。

这四者之间的联系。

答:一.类与对象之间的关系:a.类提供了对具有相同属性和操作的一组对象的抽象描述,对象是类的实例。

b.在面向对象方法中,通过对具有相同的属性的对象的抽象,构造出类,而使用类构造出系统模型。

在系统运行时,又有类去创建出对象。

C.一个类的所有对象具有相同属性。

二.关联与链之间的关系:a. 链是对象间的关系,关联时类之间的关系,也就是说,链是关联的实例化。

B.两个存在的有关联关系的类被实例化后,类之间的关联关系就实例化成链。

三.四者之间的关系:链是对象间的关系,关联是类之间的关系。

对象是类的实例化,链是关联的实例化。

类类对象对象实例化实例关联链2.在什么情况下使用组合关系进行建模?答:当一部分类的对象在一个时刻至多属于一个整体类的对象,且整体类的对象管理他的部分类的对象时,用组合关系进行建模。

3.总结继承关系的用途答:a.一般类的定义中存在没有实现也不打算在该类中实现的操作,需要子类进行继承实现该操作。

B.有超过两个特殊类时,使用继承关系进行简化。

从而不必重复的进行定义。

C.继承关系有助于软件复用。

5.举例说明类继承结构中的重载与多态。

答说明:图1:股东类和职员类继承了公司人员类,个人收入可以定义一个虚函数,没有实现操作,下边的股份和工资为具体操作,这个就是类继承中的多态。

图2:重载,长方形公司人员姓名个人收入股东 职员 股份 。

工资************面积长方形 圆形 长:a 宽:b半径 R求面积的函数f1(int a,int b),圆形求面积函数f1(int R)。

6.面包是由面包片组成的。

面包与面包片之间的关系是聚合还是组合。

答:组合,生命期相同。

面包不存在,面包片也不会存在。

面包片是面包的一部分。

只能属于一个面包所有。

7.一本书含有若干章,一章有若干节,一节有一些片段和图组成,一个段落由一些句子组成。

请给出一个描述上述事物以及它们之间关系的类图。

面向对象程序设计课程作业

面向对象程序设计课程作业

面向对象程序设计课程作业一、单选题1. (5分)调用一成员函数时,使用动态联编的情况是()A. 通过对象调用一虚函数B. 通过指针或引用调用一虚函数C. 通过对象调用静态函数D. 通过指针或引用调用静态函数得分:0知识点:第6章收起解析.答案B.解析第6章6.2节..2. (5分)下列选项中,可以作为函数重载的条件之一的是():A. 不同的形参名称B. 不同的返回值C. 不同的函数名D. 不同的参数个数得分:0知识点:第2章收起解析.答案D.解析第2章2.5节..3. (5分)如果友元函数重载一个运算符时,其参数表中没有任何参数则说明该运算符是()A. 一元运算符B. 二元运算符C. 选项A和选项B都可能D. 重载错误得分:0知识点:第3章收起解析.答案D.解析第3章3.5节..4. (5分)有以下程序main() { int i,t[][3]={9,8,7,6,5,4,3,2,1}; for(i=0;i<3;i++) printf(“%d”,t[2-i][i]); } 程序的执行后的输出结果是()A. 7 5 3B. 3 5 7C. 3 6 9D. 7 5 1得分:0知识点:第2章收起解析.答案B.解析第2章2.2节..5. (5分)若要求从键盘读入含有空格字符的字符串,应使用函数()A. getc()B. gets()C. getchar()D. scanf()得分:0知识点:第2章收起解析.答案B.解析第2章2.5节..6. (5分)可以用P.a的形式访问派生类对象p的基类成员a,其中a是A. 私有继承的公有成员B. 共有继承的私有成员C. 公有继承的保护成员D. 公有继承的公有成员得分:0知识点:第4章收起解析.答案D.解析第4章4.1节..7. (5分)解决二义性问题的方法有A. 只能使用作用域分辨操作符B. 使用作用域分辨操作符或赋值兼容规则C. 使用作用域分辨操作符或虚基类D. 使用虚基类或赋值兼容规则得分:0知识点:第6章收起解析.答案C.解析第6章6.2节..8. (5分)以下有关继承正确的是A. 构造函数和析构函数都能被继承B. 派生类是基类的组合C. 派生类对象除了能访问自己的成员外,不能访问基类中的所有成员D. 基类的公有成员一定能被派生类对象访问得分:0知识点:第4章收起解析.答案D.解析第4章4.2节..9. (5分)假定类B是在类A基础上扩充而得到的,那么就称A. 类A为基类或父类,类B为超类或子类B. 类A为基类、父类或超类,类B为派生类或子类C. 类A为派生类,类B为基类D. 类A为派生类或子类,类B为基类、父类或超类得分:0知识点:第3章收起解析.答案B.解析第3章3.2节..10. (5分)如果类A被说明成类B的友元,则()A. 类A的成员即类B的成员B. 类B的成员即类A的成员C. 类A的成员函数不得访问类B的成员D. 类B不一定是类A的友元得分:0知识点:第5章收起解析.答案D.解析第5章5.2节..11. (5分)下列有关继承和派生的叙述中,正确的是()A. 派生类不能访问基类的保护成员B. 作为虚基类的类不能被实例化C. 派生类应当向基类的构造函数传递参数D. 虚函数必须在派生类中重新实现得分:0知识点:第3章收起解析.答案C.解析第3章3.1节..12. (5分)下面是一个模板声明的开始部分:templute double __ 由此可知()A. 这可能是一个函数模板的声明B. 这可能是一个类模板的声明C. 这既可能是一个函数模板的声明,也可能是一个类模板的声明D. 这肯定是一个错误的模板声明得分:0知识点:第7章收起解析.答案A.解析第7章7.2节..13. (5分)以下叙述中正确的是()A. 预处理命令行必须位于C源程序的起始位置B. 在C语言中,预处理命令行都以“#”开头C. 每个C程序必须在开头包括预处理命令行:#includeD. C语言的预处理不能实现宏定义和条件编译的功能得分:0知识点:第2章收起解析.答案C.解析第2章2.4节..14. (5分)下列关于模板的说法正确的是()A. 模板的实参在任何时候都可以省略B. 类模板与模板库所指的是同一概念C. 类模板的参数必须是虚拟类型的D. 类模板中的成员函数全部都是模板函数得分:0知识点:第7章收起解析.答案D.解析第7章7.2节..15. (5分)在文件包含命令中,被包含文件的扩展名A. 必须是.hB. 不能是.hC. 可以是.h或.cppD. 必须是.cpp得分:0知识点:第1章收起解析.答案C.解析第1章1.1节..二、判断1. (5分)当函数的返回值是数组类型的,传递的是数组第一个元素的地址.得分:0知识点:第2章收起解析.答案错误.解析第2章2.5节..2. (5分)数据成员在初始化列表中的书写顺序无关紧要,但初始化列表对数据成员初始化的执行次序就是类中定义数据成员的次序。

面向对象第四次作业答案

面向对象第四次作业答案

面向对象第四次作业答案面向对象程序设计技术作业四一、填空题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 。

【精品】面向对象程序设计作业

【精品】面向对象程序设计作业

C++程序设计一、第一次作业二、问答题1、什么是面向对象程序设计?面向对象程序设计的优点是什么?2、什么是类?什么是对象?它们之间关系如何?3、C++的主要特点有哪些?4、什么叫函数重载?什么叫运算符重载?请书写一个函数重载的程序例子,分别计算圆、矩形、三角形的图形面积。

5、使用内联函数的优点是什么?如何将函数说明为内联函数?6、构造函数和析构函数的主要特点各是什么?7、什么是this指针?它的主要作用是什么?8、什么是拷贝构造函数?在哪三种情形下会触发拷贝构造函数的执行?9、什么是友元函数?使用它有什么好处?10、什么情况下需要预约存贮空间?试解释下列程序每一语句的含义。

float*p;p=newfloat[10];for(inti=0;i<=9;i++,p++)*p=i;11、如果要释放上一题中指针p所指的空间,应如何操作?三、程序设计题(1)建立一个三角形类tri,有三个私有数据a,b,c,设计一个缺省的3参数构造函数,缺省值分别为3,3,3,再设计一个成员函数showarea,当参数能组成三角形时输出面积值,否则输出-1。

(2)建立一个类book,有二个私有的数据成员qu和price,建立一个有5个元素的数组对象,将qu初始化为1,2,3,4,5,将price初始化为qu的10倍,并设计一个成员函数disp,输出每个对象的qu*pricer的值。

(3)有一个向量类vector,包括一个点的坐标位置x和y,设计二个友元函数,实现两个向量的加法和减法运算。

(4)编写一个程序,设计一个类score,用于统计一个班的学生成绩,其中使用一个静态数据成员sumfs存储总分和一个静态成员函数rsumf()返回该总分。

四、分析题请仔细阅读下列程序,回答问题。

1:#include<iostream.h>2:classexam{3:inti;4:public:5:exam(intn){i=n;cout<<"constructing...\n";}6:~exam(){cout<<"destructing...\n";}7:intget_i(){returni;}8:};9:intsqr_it(exams)10:{11:returns.get_i()*s.get_i();12:}13:voidmain()14:{15:examx(11);16:cout<<x.get_i()<<endl;17:cout<<sqr_it(x)<<endl;18:}(1)第1行能省略吗?为什么?(2)第4行的public:是什么含义?(3)第5行、第6行分别定义的是什么函数?它们在什么情况下执行?(4)第7行和第9-12行定义的函数中,哪一个是普通的自定义函数?哪一个是类exam的成员函数?(5)第15行的含义是什么?(6)试写出该程序的运行结果。

面向对象程序设计大作业参考题目及要求

面向对象程序设计大作业参考题目及要求

面向对象程序设计大作业参考题目1、学生信息管理(1)问题描述学生信息包括:学号,姓名,年龄,性别,出生年月,地址,电话,E-mail等。

试设计一学生信息管理系统,使之能提供以下功能:●系统以菜单方式工作●学生信息录入功能(学生信息用文件保存)---输入●学生信息浏览功能——输出●查询、排序功能——算法1、按学号查询2、按姓名查询●学生信息的删除与修改(可选项)(2)功能要求●界面简单明了;●有一定的容错能力,比如输入的成绩不在0~100之间,就提示不合法,要求重新输入;●最好用链表的方式实现。

(3)算法分析首先,一个学生包括这么多的属性,应该考虑定义一个结构,其次,我们应该考虑数据的存储形式:是定义一个数组来存储,还是定义一个链表呢?在这里假如我们以数组的方式来存储,当然可以,但是我们知道,假如我们定义一个数组的话,我们首先必须知道学生人数大概是多少,以便我们确定数组的大小,但是题目中没有给出,而且题目要求中有大量的删除、插入操作,所以用链表的方式比较方便。

对于菜单的实现,其实也比较简单,首先我们用printf语句把程序的功能列出来,然后等待用户输入而执行不同的函数,执行完了一个功能后又回到菜单。

文件的读写操作大家参照书中的有关文件的章节。

2、学生综合测评系统每个学生的信息为:学号、姓名、性别、家庭住址、联系电话、语文、数学、外语三门单科成绩、考试平均成绩、考试名次、同学互评分、品德成绩、任课教师评分、综合测评总分、综合测评名次。

考试平均成绩、同学互评分、品德成绩、任课教师评分分别占综合测评总分的60%,10%,10%,20%。

A、学生信息处理(1) 输入学生信息、学号、姓名、性别、家庭住址、联系电话,按学号以小到大的顺序存入文件中。

提示:学生信息可先输入到数组中,排序后可写到文件中。

(2) 插入(修改)同学信息:提示:先输入将插入的同学信息,然后再打开源文件并建立新文件,把源文件和输入的信息合并到新文件中(保持按学号有序)若存在该同学则将新记录内容替换源内容,(3) 删除同学信息:提示:输入将删除同学号,读出该同学信息,要求对此进行确认,以决定是否删除将删除后的信息写到文件中。

面向对象分析与设计大作业

面向对象分析与设计大作业

《面向对象分析与设计》大作业目录1.需求分析 (1)2. 系统建模 (2)2. 1 创建系统用例 (2)2.2 创建类图 (5)2.3 创建序列图 (5)2.4 创建协作图 (8)2.5 创建活动图 (10)2.6创建构件图 (12)2.7创建部署图 (12)总结 (13)UML网上花店系统Rose建模报告网上花店是一个立足于网络、以鲜花为商品的专业性网上购物网站。

网上花店传承花意,为亲人朋友送去心意已决成为某种时尚。

网上鲜花店为大众开辟了更为方便之门,快捷方便,为大众所喜爱。

网上花店系统就是为实现客户通过上网,对鲜花信息的浏览、检索、订购,以及鲜花销售商对客户信息、鲜花信息的管理所开发的网络应用软件。

该系统能够较好地满足网上花店客户的基本要求,具有较高的实用价值。

有效,畅通的销售渠道,提供产品服务为根本,促进鲜花市场的大发展.将成为一个可爱的信使,把祝愿和幸福送到千家万户.为人类创造最佳生活环境,并创建网上花店一流的网站.,是网站的目标。

客户足不出户就可以购买到自己需要的图鲜花。

购鲜花过程方便、快捷,可靠性、安全性高。

同时,对于商家,可以通过该平台对客户及订单信息进行有效管理,对图鲜花信息也做到及时更新,更利于商家为客户服务。

此系统通过Rose 建模分析主要是:用户在线注册功能、登录功能、查询功能、购物车功能、定单等;在后台能实现管理员的登录、管理员对商品的分类发布、商品的管理、用户信息的管理、订单管理、管理员管理等。

真正实现从商品的发布到商品的购买一系列的网上销售鲜花的功能。

能够较好地满足网上花店客户的基本需求,具有较高的实用价值。

网上花店系统中,管理员功能系统是整个网上花店系统的管理中心,其主要作用就是,管理鲜花买入和卖出,管理会员基本信息,推荐鲜花等,完成整个系统后台的操作。

管理系统是整个网上花店系统的使用中心,其主要作用就是,鲜花分类浏览、推荐鲜花展台、鲜花消息信息展台、销售排行榜、鲜花查询、订单查询、鲜花购物车等,在很大程度上方便了用户使用和购买。

面向对象分析与设计(UML)课程大作业题目及要求

面向对象分析与设计(UML)课程大作业题目及要求

《面向对象分析与设计(UML)课程大作业》题目一、课程大作业目的和要求1.初步了解UML语言的概念、结构、语义与表示方法;2.掌握UML建模工具Rational Rose的使用方法;3.给出某个简单系统的模型,能够熟练地使用Rose工具表达;二、课程大作业主要内容及要求课程设计的主要任务:1.根据所收集的简单需求,利用UML和Rational Rose工具对系统进行建模;2.根据前述需求的分析,进行需求建模,绘制系统的用例图和活动图;3.根据用例模型,进行架构建模,绘制系统的时序图,状态图,类图和交互图;4.绘制系统中某些重要功能的对象图;5.绘制系统的组件图和部署图;6.程序实现(选做)选题如下:1.网上选课系统主要包括如下功能:管理员通过系统管理界面进入,建立本学期要开的各种课程,将课程信息保存在数据库中并可以对课程进行改动和删除。

学生通过客户机浏览器根据学号和密码进入选课界面,在这里学生可以进行三种操作:查询已选课程、选课以及付费。

同样,通过业务层,这些操作结果存入到数据库中。

2.设计运动会的计分系统本运动会在若干各会场进行,每个会场进行若干个项目。

有若干支运动队参赛,每支运动队有数名运动员。

各赛事分预决赛,预赛成绩部分带入决赛。

成绩由裁判员给出,计分员记录。

要求在比赛结束后,产生各队排名表及运动员的详细成绩表。

3. 试题管理系统其中试题分正式试题和临时试题,出题人设置课程名和试卷难度等内容后,系统自动出卷。

对试题要进行管理,并提供查询功能。

4. 工资管理系统一个公司下分若干部门,每个部门有若干名职员和经理,每个部门经销若干种产品。

工资由基本工资、产品销售业绩、若干种保险的扣除等组成。

其中的销售业绩:职员按其完成额5%提成,经理按该部门的完成额的1%提成。

每个月要生成一个工资表,每年末再按个人的总销售额发放1%的奖金。

5.宿舍楼管理系统该系统涉及到的事物有:宿舍楼、楼层、房间、家具;室长、楼长、保洁员、学生;学生所属的系。

北理工《面向对象程序设计》在线作业

北理工《面向对象程序设计》在线作业
B形式上针对引用的操作实际上作用于它所引用的对象
C一旦定义了引用,一切针对其所引用对象的操作只能通过该引用间接进行
D不需要单独为引用分配存储空间
我的得分:2分
我的答案:C
解析:
暂无内容
17
2分
下列语句中,正确的是()。
Aconst int buffer=256;
Bconst int temp;
Cint &ref;
我的答案:B
解析:
暂无内容
29
2分
执行下列程序后的输出结果是()。#include<iostream.h>intfun1(intx){return++x;}intfun2(int&x){return++x;}intmain(){inta=0,b=0,c=0;c=fun1(a)+fun2(b);cout<<a<<b<<c<<endl;return0;}
我的答案:D
解析:
暂无内容
5
2分
若有语句int*p=newint[5];int*pi;则以下语句中,执行时会造成delete[]p语句的执行出错的是______。
A(*p)++;
Bp++;
Cpi = p;;
Dpi=p+3;
我的得分:2分
我的答案:A
解析:
暂无内容
6
2分
有如下类定义:classMyClass{public:intgetRef()const{return&a;}intgetValue()const{returna;}voidset(intn)const{a=n;}friendvoidshow(MyClassobj)const{cout<<a;}};下列函数中,定义正确的是()。

《面向对象程序设计》大作业要求和任务书

《面向对象程序设计》大作业要求和任务书

《面向对象程序设计》大作业要求和任务书一、目的和要求检验学生学习《面向对象程序设计》课程后的学习成果,对于软件程序设计主流方法和思想——面向对象程序设计方法和思想的牢固掌握和熟练应用是一个非常重要的检测,是后续实践课程得以顺利进行的必要保证,对学生的程序设计能力培养和软件工程能力的培养具有重要的作用和意义。

要求学生综合应用已学的相关知识,例如程序设计基本思想和方法、C++语言、面向对象程序设计思想和方法,通过对真实世界的模拟和抽象来解决一些比较简单的实际问题。

要求学生针对比较系统的题目进行编码、测试,并进行设计说明书的撰写,从而培养和锻炼学生初步的工程意识和做法。

加深对所学知识的理解和掌握,巩固课程学习的内容,培养学生掌握面向对象程序设计(OOP)的思想,锻炼其使用面向对象的程序设计思想分析和解决实际问题的能力,培养上机动手能力,培养文档报告书面表达和思辨的能力。

要求学生对自己学过的C++知识进行综合运用,要求要用到类的特性:即类的封装、类的抽象、继承和多态,编写一些小型的具有一定应用价值的程序,通过对真实世界的模拟和抽象来解决一些比较简单的实际问题;掌握在Visual C++集成开发环境下编辑、编译、链接和运行一个C++程序的基本方法。

二、任务内容参考后附的大作业题目,规定每位同学完成两道题目(第一个题目是计算机类,第二个题目从第2-4题中任选一题)。

针对所选题目完成如下具体任务:1. 问题分析和任务定义:根据设计题目的要求,充分地分析和理解问题,明确问题要求做什么?对功能进行说明;2. 类设计:综合考虑系统功能,对问题描述中涉及的操作对象定义相应的数据类型。

抽象数据类型的实现尽可能做到数据封装,充分运用继承、派生、多态等知识,给出用UML描述的类之间的关系图;3. 详细设计:给出各个主要模块的算法,并画出模块之间的调用关系图;要使得系统结构清晰、合理、简单和易于调试,写出主要函数的算法框架;4. 程序编码:把详细设计的结果进一步求精为程序设计语言程序。

面向对象分析与设计在线作业

面向对象分析与设计在线作业

一、单选题 (共50题,每题1分,共50分)1、Bridge(桥接)模式的意图是(C)。

A.将一个无法控制的现有对象与一个特定借口相匹配B.希望简化现有系统的使用方法。

你需要定义自己的借口C.将一组实现部分从另一组使用它们的对象中分离出来D.你需要为特定的客户(或情况)提供特定系列的对象2、在根据不同的机器选择设备驱动程序的案例中,以下叙述不准确的是(D)。

A.可以使用switch语句选择驱动程序B.可以使用继承来实现选择驱动程序,但它可能会产生类组合爆炸问题C.可以选择抽象工厂模式实现,且能避免组合爆炸问题D.使用继承的解决方案要比switch语句有更多的优势3、关于协作图的描述,下列哪个不正确(B)A.协作图作为一种交互图,强调的是参加交互的对象的组织B.协作图是顺序图的一种特例C.协作图中有消息流的顺序号D.在ROSE工具中,协作图可在顺序图的基础上按“F5”键自动生成4、到20世纪末,面向对象软件工程已经逐渐发展成熟,特别是(D)的形成和广泛使用,采用面向对象分析与编程的软件开发方法已成为软件开发的主流方法。

A.Simula67语言B.Smalltalk语言C.Java语言D.统一建模语言(UML)的标准5、外观模式的作用是(B)。

A.当不能采用生成子类的方法进行扩充时,动态地给一个对象添加一些额外的功能B.为了系统中的一组功能调用提供一个一致的接口,这个接口使得这一子系统更加容易使用C.保证一个类仅有一个实例,并提供一个访问他的全局访问点D.在方法中定义算法的框架,而将算法中的一些操作步骤延迟到子类中实现6、在用例之间,会有三种不同的关系,下列哪个不是它们之间可能的关系(D)A.包含(include)B.扩展(extend)C.泛化(generalization)D.关联(connect)7、将一个类的接口转换成客户希望的另一个接口。

这句话是对下列哪种模式的描述(C)。

A.策略模式(Strategies)B.桥接模式(Bridge)C.适配器模式(Adapter)D.单例模式(Singleton)8、(D)就是用于表示构成分布式系统的节点集和节点之间的联系的图示,它可以表示系统中软件和硬件的物理架构。

面向对象程序设计作业参考答案

面向对象程序设计作业参考答案

面向对象程序设计作业参考答案习题一5、分析下面程序运行的结果。

#using namespace std;int main(){cout<<”This”<<”is”;cout<<”a”<<”C++”;cout<<”program.”<<endl;< p="">return 0;}输出结果:ThisisaC++program.6、分析下面程序运行的结果。

#includeusing namespace std;int main(){int a,b,c;a = 10;b = 23;c = a + b;cout<<'a + b =";cout<<c;< p="">cout<<endl;< p="">return 0;}输出结果:a + b = 338、在你所用的C++系统上,输入以下程序,进行编译,观察编译情况,如果有错误,请修改程序,在进行编译,直到没有错误,然后进行连接和运行,分析运行结果。

修改后的程序如下:#includeusing namespace std;int main(){int a, b;a =b = 0;int c = a + b;cout<<”a + b =”<return 0;}9、输入以下程序,进行编译,观察编译情况,如果有错误,请修改程序,在进行编译,直到没有错误,然后进行连接和运行,分析运行结果。

修改后的程序如下:#includeusing namespace std;int add(int x,int y);int main(){int a = 0, b = 0;int c = add(a,b);cout<<" a + b ="<<c<<endl;< p="">return 0;}int add(int x,int y){int z = x + y;return z;}习题二1、请检查下面的程序,找出其中的错误(先不要上机,在纸面上作人工检查),并改正之。

java面向对象课程大作业

java面向对象课程大作业

(3)参考了书本,并结合其他代码。我又添加了两种方法的音乐【背 景音乐和钟表的伴奏声】:
• • • • • • • • • //第一种方法 //play(getDocumentBase(),"六月的雨.mid "); //播放背景音乐" 六月的 雨.wav "播放一遍 //第一种方法 AudioClip clip;//在下面循环播放歌曲是的定义 clip = getAudioClip(getCodeBase(),"六月的雨.mid");//添加背景声音 clip.play();//循环播放 //循环播放歌曲的功 能 clip.loop();//循环播放 // play(getDocumentBase(),"Device Failed.wav"); //播放音乐"Device Failed.wav"与秒针同步的声音//
(5)由于指针的运动会导致窗口汉字符号随着repaint()和刷新二产生闪烁, 所以又添加克服屏幕闪烁的两种方法,其中双缓冲的比较好。
/* 克服屏幕闪烁的方法一 */ public void update1(Graphics g) { paint(g); } /* 克服屏幕闪烁的方法二 *//* 双缓冲技术 */ Image offImage; Graphics offGraphics; public void update(Graphics g) { if ((offGraphics == null)){ offImage = createImage(getWidth(),getHeight()); offGraphics = offImage.getGraphics(); } offGraphics.setColor(getBackground()); offGraphics.fillRect(0, 0, getWidth(),getHeight()); paint(offGraphics); g.drawImage(offImage, 0, 0, null); }
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

作业三类和对象的创建目的:1、java类的定义和使用2、掌握创建和使用类对象的方法。

3、对象的引用内容:一、类和对象的创建1、类通过关键字class来创建,格式如下:[修饰符] <class><类名> [extends 父类名] [implements 接口] {<类体>}修饰符包括:public、abstract、final2、创建对象的格式如下:<类名><对象名>=new <类名>([参数列表])例中:MyBox b1=new MyBox( );二、对象的引用1)对象的引用:<对象名>.<变量或方法名>例:a1.draw(g);2)对象的清除:MyBox a1=new MyBox(20,20,200,400);…… //对象的操作a1=null;三、具体实例例1:MaxArray类的对象求出一维数组中的最大值。

classMaxArray{intfindmax(int a[],int n){int max=a[0];for(int i=1;i<n;i++)if(a[i]>max)max=a[i];//返回max的值}}public class C1{public static void main(String args[]){//利用类MaxArray创建对象obint a[]={2,5,7,3,18,9},b[]={33,43,6,12,8};System.out.println("数组a中的最大值是"+ob.findmax(a,6));//输出数组b的最大值}}例2:练习命令行参数的使用。

(一)带有2个命令行参数public class say{public static void main(String args[]){String name=args[0];String word=args[1];System.out.println("我想对"+name+"悄悄地说:"+word);}}调试过程:保存的文件名say.java,编译文件:javac say.java,运行文件:java say 妈妈我爱你!!!其中:“妈妈”是第一个命令行参数;“我爱你!!!”是第二个命令行参数。

(二) 带有3个命令行参数(3个整数求最大值)public class max{public static void main(String args[]){int max;int a=Integer.parseInt(args[0]);int b=Integer.parseInt(args[1]);int c=Integer.parseInt(args[2]);if(a>b&&a>c)max=a;else if(b>c)max=b;elsemax=c;System.out.println("三个数中最大的是:"+max);}}调试过程:保存的文件名max.java,编译文件:javac max.java,运行文件:java max 12 48 6 其中:“12”是第一个命令行参数;“48”是第二个命令行参数;“6”是第三个命令行参数。

(三) 带有2个命令行参数(2个整数求最大值),由同学自己完成。

例3:importjava.awt.*;importjava.applet.Applet;public class p87_16 extends Applet{public void paint(Graphics g){//利用类Re创建对象jsg.drawString("矩形a=2,b=3",10,20);g.drawString("周长="+js.zc(2,3),10,35);//显示周长(a=2,b=3),位置(10,35)//显示面积值(a=2,b=3),位置(10,50)}}}class Re{privateintw,h;public Re(){w=0;h=0;}//定义周长计算方法zc()publicintmj(inta,int b){return a*b;}}例4:编写程序:1.创建一个类Circle,添加静态属性r(成员变量),并定义一个常量PI=3.1422.在类Circle中添加两种方法,分别计算周长和面积3.编写主类C3,利用类Circle输出r=2时圆的周长和面积例5:定义一个Person类,该类属性(变量)和方法如下:姓名:name 字符串类型;性别:sex 字符型;年龄:age 整型;2个构造方法:1个是默认的构造方法(由系统完成),另一个可通过参数赋值;将该3个变量转化成字符串便于显示输出的方法:toString(该名称可自定义)创建主类,通过Person类创建对象,显示输出该对象的各种属性。

class Person{String name;char sex;int age;public Person(String s,charc,int i){name=s;sex=c;age=i;}public String toString(){String s="姓名:"+name+" 性别:"+sex+" 年龄:"+age;//返回s的值}}public class T1{public static void main(String args[]){Person p1=new Person("张三",'男',20);//定义对象p2,各个参数分别为:李四,女,28 p1.sex='女'; //将p1的sex属性改为女System.out.println(p1.toString());//输出p1的各个属性//将p2的的age改为33//输出p2的各个属性}}作业四成员变量和成员方法的设计内容:1、成员变量:声明、定义使用和封装2、成员方法:☆设计、调用3、OOP编程的思想1)理解主类的编写2)调用其他类的方法3)在编程过程中体会oop的思想(并熟悉定义类、创建对象、对象属性的使用)内容:一、成员变量深刻理解变量的使用范围例1:指出下面程序中的错误,并修改使其正确运行。

class Class2{privateint y;private void show(){system.out.println(“show method is private”);}public void usesecret(){show();}}public class Class1{public static void main(String args[]){Class1 Ob=new Class1();esecret();Ob.show();}}指出错误的原因。

二、成员方法的声名和设计1、成员方法的声明一般放在成员变量的声明之后,声明语句的格式和顺序如下:[ public][private][protected ][ package ] //访问控制修饰符[ static][final][ abstract ] [ native] [synchronized] 返回值类型方法名(参数表)[ throws 异常类型]例2:定义student类,其中包括四个私有变量(name,age,sex,score)、一个构造方法和show()方法。

各成员的含义如下:*变量name为字符串类型String,用于存储学生的姓名。

*变量age为int类型,用于存储学生的年龄。

*变量sex为boolean类型,用于存储学生的性别,男生为false,女生为true。

*变量score为double类型,用于存储学生的成绩。

*构造方法包括四个参数,用于为变量(name,age,sex和score)赋值。

*show()方法无参数,用于输出变量(name,age,sex和score)的值。

定义主类来调用student类中的构造方法和成员方法。

例3:该例设计了两个类,用主类M1控制DrawShape类实例对象a的行为。

类DrawShape 被设计成一个黑箱子,能画出固定大小的矩形和椭圆,那么画什么图形,在哪里画则由外部消息控制。

外部消息通过两个方法setPos()和setShape()改变了对象的位置和形状数据。

Draw方法根据对象的当前状态画出图形。

主类中创建了DrawShape的实例对象a。

将图形的位置和形状的消息通过方法传递给a,最后由a的draw方法画出图形。

importjava.awt.*;importjava.applet.Applet;class Drawshape{ //画图形的类privateintx,y,shape;public void setPos(intxpos,intypos){ //改变了对象位置的方法(方法体自己完成)}public void setShape(int choice){ //改变了对象形状数据的方法(方法体自己完成)}public void draw(Graphics g){if(shape==1)g.drawRect(x,y,60,60);else if(shape==2)g.drawOval(x,y,60,60);elseg.drawString("形状参数不对",60,60);}}public class M1 extends Applet{Drawshape a=new Drawshape();public void paint(Graphics g){a.setPos(40,20);a.setShape(1); //调用类Drawshape中的方法将图形参数设置为1a.draw(g);a.setPos(200,60);//将图形参数设置为2或3……a.draw(g); //调用画出图形的方法}}例4:对上个例子的改造:通过文本框实现图形参数的输入。

importjava.awt.*;importjava.awt.event.*;importjava.applet.Applet;class Drawshape{ //画图形的类privateintx,y,shape;//改变了对象位置的方法public void setPos(intxpos,intypos){x=xpos;y=ypos;}public void setShape(int choice){ //改变了对象形状参数的方法shape=choice;}public void draw(Graphics g){ //画出该图形的方法if(shape==1)g.drawRect(x,y,60,60);else if(shape==2)g.drawOval(x,y,60,60);elseg.drawString("形状参数不对",60,60); } }public class M2 extends Applet implements ActionListener{ //主类int s; //定义图形参数s//按照运行结果定义按钮和文本框对象//使用类Drawshape定义对象apublic void init(){ //初始化方法//将定义好的按钮加入//将定义好文本框加入button1.addActionListener(this);}public void actionPerformed(ActionEvent e){//将文本框中的数据转换成int型数据,并赋给srepaint(); //重画}public void paint(Graphics g){ //绘图方法(系统的)a.setPos(40,20);//调用改变图形参数的方法将s输入g.drawString(""+s,20,20); //在20,20位置上显示s值//调用画出图形的方法}}2、成员方法的调用例5:模拟小车运行1)建立小车类Car,拥有属性:位置、前进方法、后退方法、查询位置方法2)建立主类,调用前进和后退的方法模拟小车运行,最后查询小车的位置importjava.awt.*;importjava.applet.Applet;public class UseCar extends Applet{public void paint(Graphics g){//定义小车类对象mycarg.drawString("起始位置"+mycar.getwz(),10,20);g.drawString("前进100",10,35);mycar.qj(100);g.drawString("后退30",10,50);mycar.ht(30);g.drawString("当前位置"+mycar.getwz(),10,65);}}class Car{privateintwz;public Car(){wz=0;}//定义前进的方法//定义后退的方法//定义查询位置的方法}例6:接前一个例子用画图来表示车的位置(运行结果见下页)1)添加一个用于画出小车的类Hcar,属性:位置、设置位置的方法、画出小车的方法2)在主类中调用Hcar类画出小车在改变位置时不同的位置。

相关文档
最新文档