2015春面向对象程序设计第六次作业答案
[论述题]程序设计:在命令行中以树状结构展现给定的文件夹及其子文件(夹)中的文件。测试文件夹为C:\Windows,层次用缩进4个空格表示。
参考答案:
答:
import java.io.*;
public class FileList {
public static void main(String[] args) {
File f = new File("C:" + File.separator + "Windows");
listFiles(f,0);
}
static void listFiles(File f, int level) {
String preStr = "";
for(int i=0; i preStr += " "; } System.out.println(preStr + f.getName()); // 先序遍历 File[] files = f.listFiles(); // 取出所有儿子节点 for (int i=0; i if (files[i].isFile()) { System.out.println(preStr + " " + files[i].getName()); } if (files[i].isDirectory()) { listFiles(files[i], level + 1); } } } } [论述题]编写一个程序,要求随机生成61个学生的成绩(从0到100的整数),在将成绩排序(由高到低)后保存到文件"score.txt”中。 参考答案: import java.io.DataOutputStream; import java.io.FileOutputStream; import java.io.IOException; public class TestSort { public static int MAXSIZE = 61; public static void sortInt(int[] arr) { // 采用选择法对一维数组进行排序 for (int i = 0; i < arr.length - 1; i++) { int k = i; for (int j = i + 1; j < arr.length; j++) if (arr[j] < arr[k]) k = j; // 用k记录最小值的下标 if (k > i) { // 在外循环中实施交换 arr[i] = arr[i] + arr[k]; arr[k] = arr[i] - arr[k]; arr[i] = arr[i] - arr[k]; } } } public static void main(String args[]) { int score[] = new int[MAXSIZE]; try { for (int i = 0; i < MAXSIZE; i++) score[i] = (int) (Math.random() * 100 + 0.5); sortInt(score); DataOutputStream dout = new DataOutputStream( new FileOutputStream("score.txt")); for (int i = 0; i < MAXSIZE; i++) { dout.writeInt(score[i]); System.out.println(score[i]); } dout.close(); // 结果保存到文件 } catch (IOException e) { System.err.println("发生异常:" + e); e.printStackTrace(); } // try-catch结构处理异常 } } [论述题] 请按下面的要求编写程序。 (1)定义一个接口Shapes,它至少包含一个可以计算面积的成员方法。 (2)编写实现该Shapes接口的两个类:正方形类和圆形类。 (3)编写一个具有泛型特点的类Map,要求该类可以在控制台窗口输出某种图形的面积,而且这个类的类型变量所对应的实际类型就是(2)编写的正方形类和圆形类。 (4)利用具有泛型特点的类Map在控制台窗口分别输出给定边长的正方形的面积和给定半径的圆的面积。 参考答案: // 定义接口 interface Shapes { abstract double getArea(); } // 定义Square类 class Square implements Shapes { public double edge; public Square(double edge) { this.edge = edge; } public double getArea() { return (edge * edge); } } // 定义Circle类 class Circle implements Shapes { public double radius; public Circle(double radius) { this.radius = radius; } public double getArea() { return (radius * radius * Math.PI); } } class Map public Map(T t) { this.t = t; } public double getArea() { return t.getArea(); } } // 测试程序 class Test { public static void main(String[] args) { Map System.out.println("正方形的面积是: " + m1.getArea()); Map System.out.println("圆形的面积是: " + m2.getArea()); } } [论述题] 编写一个简单的乘法器,界面如下图所示,在第一个文本框中输入第一个乘数;在第二个文本框中输入第二个乘数;当单击"=”按钮时,在第三个文本框中输出其乘积。 参考答案: // import语句 import javax.swing.*; import java.awt.*; import java.awt.event.*; public class Multiply extends JFrame implements ActionListener{ // 组件声明及创建 private JButton operator = new JButton(" * "); private JTextField input1 = new JTextField(5); private JTextField input2 = new JTextField(5); private JButton equal = new JButton(" = "); private JTextField result = new JTextField(5); // 添加组件 public Multiply () { Container c = getContentPane(); c.setLayout(new FlowLayout()); c.add(input1); c.add(operator); c.add(input2); c.add(equal); c.add(result); equal.addActionListener(this); } // 处理按钮动作事件 public void actionPerformed(ActionEvent e) { double operand1 = Double.valueOf(input1.getText()).doubleValue(); double operand2 = Double.valueOf(input2.getText()).doubleValue(); result.setText(String.valueOf(operand1*operand2)); } // 设置框架属性 public static void main(String args[ ]) { Multiply f = new Multiply(); f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); f.setSize(320, 80); f.setVisible(true); } } [论述题]请设计一个软件包。要求该软件包至少拥有正方形类、圆类。要求每个类都具有构造方法、计算该图形的周长的成员方法和计算该图形的面积的成员方法。然后编写一个测试程序,分别创建这些类的实例对象,并输出这些实例对象的周长和面积。在创建这些实例对象时,构造方法的调用参数值分别是: 正方形:左上定点的坐标为(5,10),边长为15。 圆形:圆心的坐标为(0,0),圆心为15。 参考答案:interface Shapes { abstract double getArea(); abstract double getPerimeter(); } // 定义接口 class Square implements Shapes { // 定义Square类 public int x, y; public int width, height; public double getArea() { return (width * height); } public double getPerimeter() { return (2 * width + 2 * height); } public Square(int x, int y, int width, int height) { this.x = x; this.y = y; this.width = width; this.height = height; } } class Circle implements Shapes { // 定义Circle类 public int x, y; public double radius; public double getArea() { return (radius * radius * Math.PI); } public double getPerimeter() { return (2 * Math.PI * radius); } public Circle(int x, int y, double r) { this.x = x; this.y = y; this.radius = r; } } public class TestShape { // 测试程序 public static void main(String[] args) { Shapes s1 = new Square(5, 10, 15, 15); Shapes s2 = new Circle(0, 0, 6.0); System.out.println("正方形的面积是: " + s1.getArea()); System.out.println("正方形的周长是: " + s1.getPerimeter()); System.out.println("圆形的面积是: " + s2.getArea()); System.out.println("圆形的周长是: " + s2.getPerimeter()); } } 第六章存货决策 一、单项选择题 1.下列各项中,与经济订货量无关的是(D )。 A.每日消耗量B.每日供应量 C.储存变动成本D.订货提前期 2.某公司使用材料A,一次订货成本为2000元,每单位采购成本为50元,经济订货批量为2000个,单位资本成本为单位采购成本的10%,全年用量为8000个。该材料单位储存成本中的付现成本是(B )元。 A.8 B.3 C.4 D.2 3.某商品的再订购点为680件,安全存量为200件,采购间隔日数为12天,假设每年有300个工作日,则年度耗用量为( C )件。 A.11000 B.10000 C.12000 D.13000 4.(D )不是存货的形式。 A.原材料B.在产品 C.产成品D.应收账款 5.在存货决策中,( B )可以不考虑。 A.订货成本 B.固定订货成本 C.变动订货成本 D.变动储存成本 6.下列各项中,不属于订货成本的是( C )。 A.采购部门的折旧费 B.检验费 C.按存货价值计算的保险费 D.差旅费 7.由于存货数量不能及时满足生产和销售的需要而给企业带来的损失称为 ( B )。 A.订货成本 B.缺货成本 C.采购成本 D.储存成本 8.在储存成本中,凡总额大小取决于存货数量的多少及储存时间长短的成 本,称为( C )。 A.固定储存成本 B.无关成本 C.变动储存成本 D.资本成本 二、多项选择题 1.当采购批量增加时,( AD )。 A.变动储存成本增加 B.变动储存成本减少 C.变动订货成本增加 D.变动订货成本减少 2.按存货经济订购批量模型,当订货批量为经济批量时,( ABCD )。 A.变动储存成本等于变动订货成本 B.变动储存成本等于最低相关总成本的一半 C.变动订货成本等于最低相关总成本的一半 D.存货相关总成本达到最低 3.计算经济订购批量时,不需用的项目是( BD )。 A.全年需要量 B.固定储存成本 C.每次订货成本 D.安全存量 4.在存货经济订购批量基本模型假设前提下确定经济订购批量,下列表述中正确的有( ABCD )。 A.随每次订购批量的变动,相关订货成本和相关储存成本两者的变动方向相反 B.相关储存成本的高低与每次订购批量成正比 C.相关订货成本的高低与每次订购批量成反比 D.年相关储存成本与年相关订货成本相等时的订购批量,即为经济订购批量 5.存货过多,会导致( ABCD )。 A.占用大量的流动资金 B.增加仓储设施 C.增加储存成本 D.自然损耗额增加 6.在有数量折扣、不允许缺货的情况下,属于订购批量决策相关成本的是( ACD )。 A.订货成本 B.缺货成本 C.采购成本 D.储存成本 1 什么是面向对象程序设计,它与传统的结构式程序有什么不同。 面向对象程序设计是一种适用于设计、开发各类软件的范型。它是将软件看成是一个由对象组成的社会:这些对象具有足够的智能,能理解从其他对象接受的信息,并以适当的行为作出响应;允许低层对象从高层对象继承属性和行为。通过这样的设计思想和方法,将所模拟的现实世界中的事物直接映射到软件系统的解空间。 与传统的结构式程序设计相比,面向对象程序设计吸取了结构式程序设计的一切优点(自顶向下、逐步求精的设计原则)。而二者之间的最大差别表现在: ·面向对象程序采用数据抽象和信息隐藏技术使组成类的数据和操作是不可分割的,避免了结构式程序由于数据和过程分离引起的弊病。 · 面向对象程序是由类定义、对象(类实例)和对象之间的动态联系组成的。而结构式程序是由结构化的数据、过程的定义以及调用过程处理相应的数据组成的 2 用面向对象方法建立模型的思维过程是怎样的。 用面向对象方法建立拟建系统的模型的过程就是从被模拟现实世界的感性具体中抽象要解决的问题概念的过程。这种抽象过程分为知性思维和具体思维两个阶段,其中:·知性思维是从感性材料中分解对象,抽象出一般规定,形成了对对象的普遍认识。·具体思维是从知性思维得到出的一般规定中揭示的事物的深刻本质和规律,其目的是把握具体对象的多样性的统一和不同规定的综合。 3 解释以下概念: ①对象:在现实世界中,对象就是可以感觉到的实体。每个对象具有一个特定的名字以 区别于其他对象;具有一组状态用来描述它的某些特性;具有一组操作,每一个操作决定对象的一种功能或行为(为自身服务的操作和为其他对象提供服务的操作)。而在面向对象系统中,对象是可以标识的存储区域。每个对象的状态被保存在此区域中,而实现一类对象行为的操作(代码)被保存在另外相关的存储器区域中。 ②消息:消息是要求某个对象执行其某种功能操作(方法)的规格说明。因此,消息是 由消息的接收者、消息要求提供的操作(消息名)和必要的参数组成的。 ③类:在现实世界中,类是对一组具有共同特性(属性和行为)的客观对象的抽象。而 在面向对象系统中,类是由程序员自定义的具有特定结构和功能的类型,是一种代码共享的手段。 ④实例:任何一个对象都是该对象所属类的一个具体实例。 ⑤公有消息:是由对象外向对象发送的消息,用于激活该对象的某种方法。 ⑥私有消息:是由对象向自身发送的消息,用于内部操作;该类消息不能从对象外向该 对象发送。 ⑦消息序列:在面向对象系统中一个事件的发生总会有多个对象的多次相互作用才能完 成,使得这些对象能够相互作用的消息组成的序列被称为消息序列。 4 类与实例的关系如何? 类是创建对象的模板,而对象是实现类的实例。属于同一类的不同实例必须具有: ·相同的操作集合; ·相同的静态属性集合; ·不同的对象名和属性动态值。 数据库平时作业 第一章数据库系统引论 1.不属于逻辑数据模型的是( A ) A E-R模型 B 关系模型 C 网状模型 D 层次模型 2、用户看到的现实系统的、描述实际领域的情况的模型是( A ) A E-R模型 B 关系模型 C 逻辑模型 D 物理模型 3、 MS SQL Server是( D )。 A. 数据库 B. 数据库系统 C. 数据处理系统 D. 数据库管理系统 4、下面没有反映数据库优点的是( A )。 A. 数据面向应用程序 B. 数据冗余度低 C. 数据独立性高 D.数据共享性高 5、表示数据库的概念模型一般使用( C )。 A. 用户活动图 B. 数据流图 C. E-R图 D. 流程图 6、数据库(DB)、数据库系统(DBS)和数据库管理系统(DBMS)三者之间的关系是( A )。 A. DBS包括DB和DBMS B. DBMS包括DB和DBS C. DB包括DBMS和DBS D. DBS就是DB,也就是DBMS 7、数据库系统包括数据库、数据库管理系统、数据库管理员和各种应用四个部分。 8、用逻辑数据模型描述的模式有:外模式、内模式。 9、数据管理技术经历了人工管理、文件系统和数据库系统三个发展阶段。 10、概念模式是用逻辑数据模型对一个单位的数据的描述。 第二章数据模型 1.不属于关系数据模型中的概念是( B ) A .主键 B 系 C 关系 D 属性 2.有关系:R(A,B,C)PK=A S(D,A) PK=D,FK=A,参照于R的属性A。关系R和S的元组如图1所示。 指出图1关系S中违反关系完整性规则的元组是( C ) A (1,2) B (2,null) C (3,3) D (4,1) 3.有一个关系:学生(学号,姓名,系别),规定学号的值域是8个数字组成的字符串,这一规则属于( C ) A 实体完整性约束 B 引用完整性约束 C 一般性完整性约束 D 关键字完整性约束 4. 在关系运算中,化费时间可能最长的运算是( C )。 A. 投影 B. 选择 C. 笛卡尔乘积 D. 加 5. 从关系中挑选满足条件的记录的运算称为( A )。 A. 选择运算 B. 投影运算 C. 联接运算 D.笛卡尔运算 6. 同一关系模型的任两个元组值( A )。 A. 不能全同 B. 可全同 C. 必须全同 D. 以上都不是 7. 已知关系R如图1所示,可以作为R主键的属性组是( B )。 图1 A. ABC B. ABD C. ACD D. BCD 第六章作业 6.1 列出从A={a,b,c}到B={1}的所有二元关系。 6.2 证明:R是A上的一个二元关系,则 1)R是∪∪R上的二元关系; 2) ∪∪R?A。 6.3 求A={1,2}上的有三个元素的二元关系,并分析其性质。 6.4 在集合A={a,b,c,d}上找出两个二元关系R1和R2,使得R1∩R2=?,且R12=R1,R22=R2。 6.5设R是A={a,b,c,d}上的一个二元关系,为{,,, 第六章作业答案 6.1 列出从A={a,b,c}到B={1}的所有二元关系。 A×B={,, 第6次作业及参考答案 第9章作业 9.3 什么是指令周期、机器周期和时钟周期?三者有何关系? 解:CPU 每取出并执行一条指令所需的全部时间叫指令周期;机器周期是在同步控制的机器中,所有指令执行过程中(执行一步相对完整的操作)的一个基准时间,通常以访问一次存储器所需的时间作为一个机器周期;时钟周期是指计算机主工作时钟的周期时间,它是计算机运行时最基本的时序单位,通常时钟周期=计算机主频的倒数。 三者之间的关系:指令周期常常用若干个机器周期数来表示,机器周期也叫CPU 周期;而一个机器周期又包含若干个时钟周期(也称为节拍脉冲或T 周期)。 9.7 题目略。 解:1)平均指令周期:1/106 s =1us ; 2)时钟周期为0.1us ;机器周期时间跨度为0.4us 。 每个指令周期包含的平均机器周期数:1us/0.4us=2.5个机器周期。 平均指令执行速度为:0.25MIPS 。 应采用主频为8MHz 的CPU 芯片。 9.11 题目略。 说明:本题数据通路结构参见教材P 381图9.4。 1) PC O , MAR i MDR i +1PC O , MAR i MDR O , IR i C O , Y i B O , ALU i ,”+”Z O , B i 取指周期执行周期 2) 9.14 说明:本题中出现的R/W# 控制信号指代W R /;数据通路结构参见教材P 384图9.5。 1) PC O , MAR i MDR i +1PC O , MAR i MDR O , IR i C O , Y i B O , ALU i ,”-”Z O , A C i 取指周期 执行周期PC O , MAR i MAR O ,R/W# =R, MDR i +1 MDR O , IR i PC O , Ad(IR)O ,+,EAR i EAR O , MAR i MDR O , ACC i 取指周期 执行周期 MAR O ,R/W# =R, MDR i第六章作业参考标准答案
什么是面向对象程序设计
数据库平时作业题(华理2017)
第六章作业答案
山东大学计算机组成原理第6次作业及参考答案2012
《面向对象程序设计》答案