JAVA实验7 9+答案

合集下载

Java面向对象程序设计案例教程(王贺) 第七章习题答案[5页]

Java面向对象程序设计案例教程(王贺) 第七章习题答案[5页]

1.选择题(1)下列说法中错误的是()A.对Swing构件只能设置一个边框B.Swing构件能建立组合边框或自己设计边框C.在Swing构件中,按钮可以使用图标修饰D.Swing构件支持键盘代替鼠标的操作(2)向容器添加新构件的方法是(A)A. add( )B. insert( )C. fill( )D. set( )(3)关于布局管理器LayoutManager,下列说法中正确的是(D)A.布局管理器是用来部署Java应用程序的网上发布的youtManager本身不是接口C.布局管理器是用来管理构件放置在容器中的位置和大小的D.以上说法都不对(4)JTextField类提供的GUI功能是(A)A.文本区域 B.按钮 C.文本字段 D.菜单(5)将GUI窗口划分为东、西、南、北、中五个部分的布局管理器是(D)A.FlowLayout B.GridLayout C. BoxLayout D. BorderLayout(6)关于Panel,下列说法中错误的是(D)A. Panel可以作为最外层的容器单独存在B. Panel必须作为一个构件放置在其他容器中C. Panel可以是透明的,没有边框和标题D. Panel是一种构件,也是一种容器2.填空题(1)( BorderLayout )包括5个明显的区域:东、南、西、北、中。

(2)Java的图形界面技术经历了两个发展阶段,分别通过提供AWT开发包和(Swing)开发包来体现。

(3)可以使用setLoaction( )、setSize( )或(setBounds( ) )中的任何一种方法设置组件的大小或位置。

(4)( GridLayout )布局管理器使容器中各个构件呈网格布局,平均占据容器空间。

(5)框架的默认布局管理器( BorderLayout)。

3.编程题(1)制作如图7-20所示的登录界面。

图7-20package com.zhouzhou;import java.awt.*;import javax.swing.*;public class Demo11 extends JFrame {// 定义组件JPanel jp1, jp2, jp3;JLabel jlb1, jlb2;JButton jb1, jb2;JTextField jtf1;JPasswordField jpf1;public static void main(String[] args) {// TODO Auto-generated method stubDemo11 d1 = new Demo11();}// 构造函数public Demo11() {jp1 = new JPanel();jp2 = new JPanel();jp3 = new JPanel();jlb1 = new JLabel("用户名");jlb2 = new JLabel("密码");jb1 = new JButton("登录");jb2 = new JButton("取消");jtf1 = new JTextField(10);jpf1 = new JPasswordField(10);// 设置布局管理(上面忘记:extends JFrame,这里出错了) this.setLayout(new GridLayout(3, 1));// 加入各个组件jp1.add(jlb1);jp1.add(jtf1);jp2.add(jlb2);jp2.add(jpf1);jp3.add(jb1);jp3.add(jb2);// 加入到JFramethis.add(jp1);this.add(jp2);this.add(jp3);this.setSize(250, 150);this.setTitle("登录");this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);this.setVisible(true);}}(2)制作如图7-21所示的选择界面。

Java语言程序设计(郑莉)第七章课后习题答案

Java语言程序设计(郑莉)第七章课后习题答案

Java语言程序设计第七章课后习题答案1.数组的声明与数组元素的创建有什么关系?答:声明数组仅仅是代表试图创建数组,不分配任何存储空间,声明是为创建做“铺垫”。

2.Vector类的对象与数组有什么关系?什么时候适合使用数组,什么时候适合使用Vector?答:vector是一个能够存放任意对象类型的动态数组,容量能自动扩充,而数组存储固定且类型相同的对象;对于存储固定类型相同的对象使用数组,对于存储不同类型或者动态调整数组大小的情况使用Vector。

3.与顺序查找相比,二分查找有什么优势?使用二分查找的条件?答:对于大数据量中进行查找时二分查找比顺序查找效率高得多;条件是已排序的数组。

4.试举出三种常见的排序算法,并简单说明其排序思路。

答:①选择排序:基本思想是站在未排序列中选一个最小元素,作为已排序子序列,然后再重复地从未排序子序列中选取一个最小元素,把它加到已经排序的序列中,作为已排序子序列的最后一个元素,直到把未排序列中的元素处理完为止。

②插入排序:是将待排序的数据按一定的规则逐一插入到已排序序列中的合适位置处,直到将全部数据都插入为止。

③二分查找:将表中间位置记录的关键字与查找关键字比较,如果两者相等,则查找成功;否则利用中间位置记录将表分成前、后两个子表,如果中间位置记录的关键字大于查找关键字,则进一步查找前一子表,否则进一步查找后一子表。

重复以上过程,直到找到满足条件的记录,使查找成功,或直到子表不存在为止,此时查找不成功。

5.声明一个类People,成员变量有姓名、出生日期、性别、身高、体重等;生成10个People 类对象,并放在一个以为数组中,编写方法按身高进行排序。

//People类public class People{private String name;private String birthdaydate;private String sex;private double height;private double weight;public People(){//默认构造函数}public People(People p){=;this.birthdaydate=p.birthdaydate;this.sex=p.sex;this.height=p.height;this.weight=p.weight;}public People(String name,String birthdaydate,String sex,double height,double weight){=name;this.birthdaydate=birthdaydate;this.sex=sex;this.height=height;this.weight=weight;}public String getName() {return name;}public void setName(String name) { = name;}public String getBirthdaydate() {return birthdaydate;}public void setBirthdaydate(String birthdaydate) {this.birthdaydate = birthdaydate;}public String getSex() {return sex;}public void setSex(String sex) {this.sex = sex;}public double getHeight() {return height;}public void setHeight(double height) {this.height = height;}public double getWeight() {return weight;}public void setWeight(double weight) {this.weight = weight;}public String toString(){return"姓名:"+name+"\n出生年月:"+birthdaydate+"\n性别:"+sex+"\n 身高:"+height+"\n体重:"+weight;}}//test7_5类public class test7_5 {/***@param args*/public static void main(String[] args) {// TODO Auto-generated method stubPeople[] people={new People("林楚金","1989年8月13日","男",182,63.5),new People("诸葛亮","181年7月23日","男",184,76.6),new People("迈克杰克逊","1958年8月29日","男",180,60),new People("乔丹","1963年2月17日","男",198,98.1),new People("拿破仑","1769年8月15日","男",159.5,63),new People("苍井空","1983年11月11日","女",155,45),};People temp=new People();for(int i=0;i<people.length-1;i++)for(int j=i+1;j<people.length;j++){if(people[i].getHeight()<people[j].getHeight()){temp=people[j];people[j]=people[i];people[i]=temp;}}System.out.println("按身高从小到大排序后的结果如下:");for(int i=0;i<people.length;i++)System.out.println(people[i]+"\n");}}运行结果:6.声明一个类,此类使用私有的ArrayList来存储对象。

JAVA程序设计课后习题及答案7

JAVA程序设计课后习题及答案7

第7章1.Swing是一个用于开发Java应用程序界面的工具包,它以抽象窗口工具包(abstract window toolkit,AWT)为基础,使跨平台应用程序可以使用任何可插拔的外观风格。

只用很少的代码就可以利用Swing丰富、灵活的功能和模块化组件来创建优雅的用户界面。

也可以这样说,Swing是Java平台的UI(user interface),充当了处理用户与计算机之间全部交互的角色。

相对于AWT来说,Swing的主要优势就在于MVC体系结构的普遍使用。

因为为了简化组件的设计工作,在Swing组件中,视图和控件两部分被合为一体。

每个组件都有一个相关的分离模型和它使用的界面(包括视图和控件)。

2.Swing组件从功能上可以按下面的类型来划分。

(1)顶层容器:如JFrame、JApplet、JDialog、JWindow。

(2)中间容器:如JPanel、JScrollPane、JSplitPane、JToolBar。

(3)特殊容器:在GUI上起特殊作用的中间层,如JInternalFrame、JLayeredPane、JRootPane。

(4)基本控件:实现人机交互的组件,如JButton、JComboBox、JList、JMenu、JSlider、JTextField。

(5)不可编辑信息的显示:向用户显示不可编辑信息的组件,如JLabel、JProgressBar、ToolTip。

(6)可编辑信息的显示:向用户显示可被编辑的格式化信息的组件,如JColorChooser、JFileChooser、JTable、JTextArea。

3.(1)面板(JPanel)。

面板是一个轻量级容器组件,用于容纳界面元素,以便在布局管理器的设置下容纳更多的组件,实现容器的嵌套。

JPanel、JScrollPane、JSplitPane和JInternalFrame都属于常用的中间容器,都是轻量级组件。

JPanel的默认布局管理器是FlowLayout。

JAVA实验7

JAVA实验7

浙江经贸职业技术学院实训报告系部______________ 班级____________ 姓名____________ 学号_______________日期______________ 地点____________ 指导教师_____________ 成绩实验七JAVA 面向对象编程(3)【实验目的】1.掌握JAVA语言类的定义和使用。

2.掌握JAVA语言对象的声明和使用。

3.掌握JAVA语言构造方法的概念和使用。

4.掌握类及其成员的访问控制符的区别和使用。

【预习内容】1. JAVA 类的定义格式;2.JAVA对象的使用三步骤:声明、创建以及初始化;3.访问控制修饰符:public、private和protected的功能和区别;4.JAVA构造方法的概念和特点;5.JAVA多态的概念,及重载和覆盖的区别;【实验内容及步骤】1.上机验证题1.阅读下面的程序,在main()方法里添加语句完成如下功能:(1)创建一个MyValue类的对象myValue.(2)为myValue对象中的value域赋值10。

(3)使用getVaule()方法获得myValue对象中的数据并将它打印在屏幕上。

class MyValue {private int value;public void setValue(int x) {value = x;}public int getValue() {return value;}}public class UseValue {public static void main(String args[]) {MyValue myvalue = new MyValue();myvalue.setValue(10);System.out.println(myvalue.getValue());}}[程序运行过程]2.(1)程序功能:通过LX7_1_P类产生子类LX7_2,其不仅具有父类的成员变量xm(姓名)、xh(学号),还定义了新成员变量xy(学院)、xi(系)。

Java程序设计实用教程第4版习题解答与实验指导第1-8章

Java程序设计实用教程第4版习题解答与实验指导第1-8章

Java程序设计实用教程(第4版)习题解答与实验指导叶核亚编著2013年11月目录“Java程序设计”课程教学要求 (1)第1章Java概述 (3)第2章Java语言基础 (5)第3章类的封装、继承和多态 (22)第4章接口、内部类和Java API基础 (37)第5章异常处理 (42)第6章图形用户界面 (44)第7章多线程 (49)第8章输入/输出流和文件操作 (51)“Java程序设计”课程教学要求1. 课程性质、目的和任务程序设计是高等学校计算机学科及电子信息学科各专业本科的核心专业基础课程,是培养学生软件设计能力的重要课程。

在计算机学科的本科教学中,起着非常重要的作用。

“Java程序设计”是计算机科学与技术专业本科的专业基础限选课,开设本课程的目的是:进行程序设计和面向对象方法的基础训练;使用Java编程技术,设计解决操作系统、网络通信、数据库等多种实际问题的应用程序。

本课程通过全面、系统地介绍Java语言的基础知识、运行机制、多种编程方法和技术,使学生理解和掌握面向对象的程序设计方法,理解和掌握网络程序的特点和设计方法,建立起牢固扎实的理论基础,培养综合应用程序的设计能力。

本课程的先修课程包括:C/C++程序设计I、C/C++程序设计II、数据结构、操作系统、计算机网络、数据库原理等。

2. 教学基本要求本课程的基本要求如下。

①了解Java语言特点,理解Java Application应用程序的运行原理和方法。

掌握在JDK 环境中编译和运行程序的操作,熟悉在MyEclipse集成开发环境中,编辑、编译、运行和调试程序的操作。

②掌握Java语言中语句、数组、引用类型等基本语法成分的使用方法,通过类、接口、内嵌类型、包、异常处理等机制表达和实现面向对象程序设计思想。

③掌握Java的多种实用技术,包括图形用户界面、多线程、文件操作和流、使用URL 和Socket进行网络通信等。

④熟悉Java JDBC数据库应用的设计方法。

java实验答案全.doc

java实验答案全.doc
}
public void Display(){
if(this.average>=80) status = 1;
else statu$=O;
if(status==l) System.out.println(name+":通过!");if(status==O) System.out.println(name+••:不通过!’•);
}
public float get_y(){ return this.y;
}
//显示点的位罝
public String getLocation(){
String str = "("+(this.x)+","+(this.y)+")"+"\n"; return str;
}
//修改点的坐标
public void changeLocation(float a,float b){
st2.Display();
}
}
实验
2.按照要求编写Java Application程序。
假定要为某个公司编写雇员工资支付程序。这个公司有各种类型的雇员(Employee),不同类型的雇员按不同的方式支付工资:
经理(Manager):每月获得一份固定的工资;
销售人员(Salesman):在基本工资的基础上每月还有销售提成;
class Student {
public String name; public double a,b,c; public double average; int status;
}
class Undergraduate extends Student {

Java语言程序设计(郑莉)第七章课后习题答案

Java语言程序设计(郑莉)第七章课后习题答案

Java语言程序设计第七章课后习题答案1.数组的声明与数组元素的创建有什么关系?答:声明数组仅仅是代表试图创建数组,不分配任何存储空间,声明是为创建做“铺垫”。

2.Vector类的对象与数组有什么关系?什么时候适合使用数组,什么时候适合使用Vector?答:vector是一个能够存放任意对象类型的动态数组,容量能自动扩充,而数组存储固定且类型相同的对象;对于存储固定类型相同的对象使用数组,对于存储不同类型或者动态调整数组大小的情况使用Vector。

3.与顺序查找相比,二分查找有什么优势?使用二分查找的条件?答:对于大数据量中进行查找时二分查找比顺序查找效率高得多;条件是已排序的数组。

4.试举出三种常见的排序算法,并简单说明其排序思路。

答:①选择排序:基本思想是站在未排序列中选一个最小元素,作为已排序子序列,然后再重复地从未排序子序列中选取一个最小元素,把它加到已经排序的序列中,作为已排序子序列的最后一个元素,直到把未排序列中的元素处理完为止。

②插入排序:是将待排序的数据按一定的规则逐一插入到已排序序列中的合适位置处,直到将全部数据都插入为止。

③二分查找:将表中间位置记录的关键字与查找关键字比较,如果两者相等,则查找成功;否则利用中间位置记录将表分成前、后两个子表,如果中间位置记录的关键字大于查找关键字,则进一步查找前一子表,否则进一步查找后一子表。

重复以上过程,直到找到满足条件的记录,使查找成功,或直到子表不存在为止,此时查找不成功。

5.声明一个类People,成员变量有姓名、出生日期、性别、身高、体重等;生成10个People 类对象,并放在一个以为数组中,编写方法按身高进行排序。

//People类public class People{private String name;private String birthdaydate;private String sex;private double height;private double weight;public People(){//默认构造函数}public People(People p){=;this.birthdaydate=p.birthdaydate;this.sex=p.sex;this.height=p.height;this.weight=p.weight;}public People(String name,String birthdaydate,String sex,double height,double weight){=name;this.birthdaydate=birthdaydate;this.sex=sex;this.height=height;this.weight=weight;}public String getName() {return name;}public void setName(String name) { = name;}public String getBirthdaydate() {return birthdaydate;}public void setBirthdaydate(String birthdaydate) {this.birthdaydate = birthdaydate;}public String getSex() {return sex;}public void setSex(String sex) {this.sex = sex;}public double getHeight() {return height;}public void setHeight(double height) {this.height = height;}public double getWeight() {return weight;}public void setWeight(double weight) {this.weight = weight;}public String toString(){return"姓名:"+name+"\n出生年月:"+birthdaydate+"\n性别:"+sex+"\n 身高:"+height+"\n体重:"+weight;}}//test7_5类public class test7_5 {/***@param args*/public static void main(String[] args) {// TODO Auto-generated method stubPeople[] people={new People("林楚金","1989年8月13日","男",182,63.5),new People("诸葛亮","181年7月23日","男",184,76.6),new People("迈克杰克逊","1958年8月29日","男",180,60),new People("乔丹","1963年2月17日","男",198,98.1),new People("拿破仑","1769年8月15日","男",159.5,63),new People("苍井空","1983年11月11日","女",155,45),};People temp=new People();for(int i=0;i<people.length-1;i++)for(int j=i+1;j<people.length;j++){if(people[i].getHeight()<people[j].getHeight()){temp=people[j];people[j]=people[i];people[i]=temp;}}System.out.println("按身高从小到大排序后的结果如下:");for(int i=0;i<people.length;i++)System.out.println(people[i]+"\n");}}运行结果:6.声明一个类,此类使用私有的ArrayList来存储对象。

浙江大学Java语言程序设计实验答案全集

浙江大学Java语言程序设计实验答案全集

Java答案全集实验汇总。

实验2 数据类型和变量的使用一、程序填空,在屏幕上显示一个短句“Programming in Java is fun!”import java.io.*;public class Test10001{public static void main(String args[]){/*------------------------*/System.out.println("Programming in Java is fun!"); }}二、程序填空,在屏幕上显示如下网格。

+---+---+| | || | |+---+---+import java.io.*;public class Test10002{public static void main(String args[]){/*------------------------*/System.out.println("+---+---+");System.out.println("| | |");System.out.println("| | |");System.out.println("+---+---+");}}三、编写程序,在屏幕上显示如下图案。

(要求:第1行行首无空格,每行行尾无空格)* * * ** * ** **public class Test10003{public static void main(String args[]){/*------------------------*/System.out.println("* * * *");System.out.println(" * * *");System.out.println(" * *");System.out.println(" *");} }实验3 运算符和表达式的使用1、运行结果:m=2 k=1x=1.0 y=2.0 z=-3.0ch1=-A ch2=Ach1=-A ch2=aHello,Welcome to core Java!思考题:(1)字符'A'的Unicode码比字符'a'的Unicode码小32。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验 8
一、选择题
1.关于异常的含义,下列描述中最正确的一个是( D )。
A.程序编译错误
B.程序语法错误
C.程序自定义的异常事件
D.程序编译或运行时发生的异常事件
【解析】异常就是程序编译或运行时发生的异常事件。
2.自定义异常时,可以通过对下列哪一项进行继承?( C )
A.Error 类
B.Applet 类
public void disp(int n) {
int sum=0; for(int i=1;i<=n;i++) {
sum=sum+i; } System.out.println(sum); } } class Pro implements OneToN { public void disp(int n) { long pro=1; for(int i=1;i<=n;i++) {
SubClass descendent = new SubClass();创建一个抽象类 shape 类,定义一个函数 Area 为求面积的公共方法, 再定义 Triangle,Rectangle 和 circle 类,实现 computerArea 方法;增加 display 方法,显示 name 和 area,并在 Triangle,Rectangle 和 circle 类覆盖该方法,并为每个类增加自己的构造 方法;在主类中创建不同对象,求得不同形状的面积。 答案略。
ArrayIndexOutOfBoundsException 异常。
6.下列程序执行的结果是( B )。
public class X7_1_6 { public static void main(String[] args) { try{ return; } finally{ System.out.println("Finally"); } }
ArithmeticException 异常。
5.运行下面程序时,会产生什么异常?( C )
public class X7_1_5 {
public static void main(String[] args) {
int[] z = {1,2,3,4};
int p = z[4];
int x = 0;
pro=pro*i; } System.out.println(pro); } }
public class interfaceTest { public static void main(String[] args) { // TODO code application logic here Sum x=new Sum(); x.disp(100); }
C.Exception 类及其子类
D.AssertionError 类
【解析】自定义异常类时,该类必须继承 Exception 类及其子类。
3.对应 try 和 catch 子句的排列方式,下列哪一项是正确的?( A )
A.子类异常在前,父类异常在后
B.父类异常在前,子类异常在后
C.只能有子类异常
【参考程序】
// X5_3_6.java 文件
package p3;
import p2.*;
public class X5_3_6 { // 定义主类
public static void main(String[] args) {
Circle cir1 = new Circle(120.5);
Circle cir2 = new Circle(183.8);
int y = 5/x;
}
}
A.ArithmeticException
B.NumberFormatException
C.ArrayIndexOutOfBoundsException
D.IOException
【 解析 】 当 程序 执 行到 “int p = z[4] ” 语 句时 , 发 生异 常 ,程 序 中止 执 行 ,因 此 发生
实验 7
1. 编一个程序,包含以下文件。
(1)Shape.java 文件,在该文件中定义接口 Shape,该接口在 shape 包中。
属性:PI。
方法:求面积的方法 area()。
(2)Circle.java 文件,在该文件中定义圆类 Circle,该类在 circle 包中,实现 Shape 接口。
System.out.println("cir1.area: "+cir1.area());
System.out.println("cir1.perimeter: "+cir1.perimeter());
System.out.println("cir2.area: "+cir2.area());
System.out.println("cir2.perimeter: "+cir2.perimeter());
// 定义 Shape 接口
double PI=Math.PI;
double area(); // 求面积方法
}
// Circle.java 文件
package p2; // 创建 p2 包
import p1.*;
public class Circle implements Shape{ // 定义实现 Shape 接口的 Circle 类
System.out.println("cy2.area: "+cy2.area());
System.out.println("cy2.volume: "+cy2.volume());
}
}
// Shape.java 文件
package p1; // 创建 p1 包
public interface Shape{
D.父类和子类不能同时出现在 try 语句块中
【解析】对应 try 和 catch 子句的排列方式,要求子类异常(范围小的异常)在前,父类异
常(范围大的异常)在后。
4.运行下面程序时,会产生什么异常?( A )
public class X7_1_4 {
public static void main(String[] args) {
7.下列代码中给出正确的在方法体内抛出异常的是( B )。
A.new throw Exception(" ");
B.throw new Exception(" ");
2)定义一个接口 OneToN,在接口中包含一个抽象方法 disp()。定义 Sum 和 Pro 类,并分别 用不同代码实现 ONeToN 的 disp()方法,在 Sum 的方法中计算 1~n 的和,在 Pro 的方法中计 算 1~n 的乘积 interface OneToN {
public void disp(int n); } class Sum implements OneToN {
double radius; // 半径
public Circle(double r){
radius = r;
}
public double area(){ // 实现 Shape 接口中的方法(这是必须的)
return PI*radius*radius;
}
public double perimeter(){ // 定义求圆周长的方法
}
3)改错,上传正确答案,并以注释形式给出错误原因
class SuperClass
{
public SuperClass(String msg)
{ System.out.println("SuperClass constructor: " +msg);}
}
class SubClass extends SuperClass
{
public SubClass(String msg)
{
Super(msg);
//父类没有无参的构造方法,应采用 super 显示调用父类的构造
方法
System.out.println("SubClass constructor");
}
}
public class Test1 {
public static void main(String[] args) {
Cylinder cy1 = new Cylinder(27.3,32.7);
Cylinder cy2 = new Cylinder(133.5,155.8);
System.out.println("cy1.area: "+cy1.area());
System.out.println("cy1.volume: "+cy1.volume());

}
第三步:创建主类,在其中的 main()方法中创建对象,实现相应的功能。
// X5_3_6.java 文件
package p3;
import p2.*;
public class X5_3_6 { // 定义主类
public static void main(String[] args) {

}
}
// Circle.java 文件
package p2; // 创建 p2 包
import p1.*;
public class Circle implements Shape{ // 定义实现 Shape 接口的 Circle 类

}
// Cylinder.java 文件
相关文档
最新文档