实验八Java综合实验及练习

实验八Java综合实验及练习
实验八Java综合实验及练习

Java实验八综合实验及练习

第一部分:编程题

1、编写程序实现输入整数n,输出如下所示由数字组成的菱形。(图中n=5)1

1 2 1

1 2 3 2 1

1 2 3 4 3 2 1

1 2 3 4 5 4 3 2 1

1 2 3 4 3 2 1

1 2 3 2 1

1 2 1

1

package ex8_1;

public class Demo {

public static void main(String[] args){

for(int i=1;i<6;i++){

for(int j=1;j<=i;j++)

System.out.printf("%d ",j);

for(int j=i-1;j>0;j--)

System.out.printf("%d ",j);

System.out.println();

}

for(int i=4;i>0;i--){

for(int j=1;j<=i;j++)

System.out.printf("%d ",j);

for(int j=i-1;j>0;j--)

System.out.printf("%d ",j);

System.out.println();

}

}

}

2.给出年、月、日,计算该日是该年的第几天?

package ex8_2;

import java.util.Scanner;

public class DateFun {

public static boolean YearDemo(int year){

boolean flage=true;

if((year%4==0&&year%100!=0)||year%400==0)

flage=true;

else flage=false;

return flage;

}

public static void main(String[] args){

Scanner scan=new Scanner(System.in);

System.out.println("请输入年月日");

int sum=0;int year;int month; int day;

year=scan.nextInt();

month=scan.nextInt();

day=scan.nextInt();

if(YearDemo(year)){

int [] days={31,29,31,30,31,30,31,31,30,31,30,31};

for(int i=1;i

sum+=days[i-1];

sum+=day;

System.out.println("该日是当年的"+sum+"天");

}

else {

int [] days={31,28,31,30,31,30,31,31,30,31,30,31};

for(int i=1;i

sum+=days[i-1];

sum+=day;

System.out.println("该日是当年的"+sum+"天");

}

}

}

3、利用求素数的方法,就6~2000000之间的所有偶数验证歌德巴赫猜想:任何一个大于6的偶数可以分解为两个素数之和。

package ex8_3;

import java.util.Scanner;

public class Gede {

public static boolean Demo(int a){

boolean flage =true;

for(int i=1;i

int b=0;

for(int j=1;j

if(i%j==0)

flage=false;

if(flage)

for(int x=1;x

if((a-i)%x==0)

b++;

if(b==0){

flage=true;

break;

}

}

return flage;

}

public static void main(String [] args){

Scanner scan=new Scanner(System.in);

System.out.println("请输入一个大于6的偶数");

int a=scan.nextInt();

if(Demo(a))

System.out.println("哥德巴赫猜想成立");

else System.out.println("哥德巴赫猜想不成立");

}

}

4、现有15位选手参加比赛,有6个评委每个评委都要给每位选手打分,分数为60~100分,现需要定义二维数组存储选手成绩,每行存储一位选手打分情况,要求输出选手得分以及选手最后得分,以及选手名次。

评分规则:分数为60~100分。选手最后得分为:去掉一个最高分和一个最低分后其余4个分数的平均值。

package Ex8_4;

import java.util.*;

public class test {

public static int[][] initArr(){

int[][] a = new int [15][6];

for(int i=0;i<15;i++)

for(int j=0;j<6;j++)

a[i][j]=(int)(Math.random()*41+60);

return a;

}

public static float average(int[] a){

float sum=0;

float avg=0;

int max=0; int min=100;

int maxrow=0; int minrow=0;

for(int i=0;i

if(a[i]>max)

max=a[i];

}

for(int i=0;i

if(a[i]

min=a[i];

}

for(int i=0;i

sum=sum+a[i];

}

sum=sum-max-min;

avg=sum/(a.length-2);

return avg;

}

public static void main(String[] args) {

int[][] a=initArr();

for(int i=0;i

for(int j=0;j

System.out.printf("%-4d",a[i][j]);

System.out.println();

}

for(int i=0;i

System.out.println("NO."+(i+1)+"'s"+" score is "+average(a[i]));

}

}

5、设计一个描述二维平面上点的类Position,该类需要描述点的横坐标和纵坐标,并提供属性的set/get访问器方法和计算两点间距离的方法。写一个程序测试这个类

package Ex8_5;

public class Position {

private int x,y;

public Position(){

}

public Position(int x,int y){

this.x=x;

this.y=y;

}

public int getX(){

return x;

}

public int getY(){

return y;

}

public void setX(int x){

this.x=x;

}

public void setY(int y){

this.y=y;

}

public double distance(Position p){

double d=0.0;

d=Math.sqrt((this.x-p.x)*(this.x-p.x)+(this.y-p.y)*(this.y-p.y));

return d;

}

}

package Ex8_5;

public class Test {

public static void main(String[] args){

Position p1=new Position(1,0);

Position p2=new Position(2,0);

double d=p1.distance(p2);

System.out.println(d);

}

}

6、设计一个表示二维平面上点的类Point,包含有表示坐标位置的protected类型的成员变量x和y,获取和设置x 和y值的public方法。

设计一个表示二维平面上圆的类Circle,它继承自类Point,还包含有表示圆半径的

protected类型的成员变量r、获取和设置r值的public方法、计算圆面积的public方法。package Ex8_6;

public class Point {

protected int x,y;

public Point(){

}

public Point(int x,int y){

this.x=x;

this.y=y;

}

public int getX(){

return x;

}

public int getY(){

return y;

}

public void setX(int x){

this.x=x;

}

public void setY(int y){

this.y=y;

}

}

package Ex8_6;

public class Circle extends Point {

protected int r;

public Circle(){

}

public Circle(int x,int y,int r){

super(x,y);

this.r=r;

}

public void setR(int r){

this.r=r;

}

public int getR(){

return r;

}

}

package Ex8_6;

public class Test {

public static void main(String[] args) {

Circle c1=new Circle(2,3,4);

Circle c2=new Circle();

c2.setR(8);

c2.setX(2);

c2.setY(4);

System.out.println(c1.x+" "+c1.y+" "+c1.r);

System.out.println(c2.x+" "+c2.y+" "+c2.r);

}

}

7、编写一个完整的Java Application 程序。包含接口Shape,MyRectangle类,MyTriangle 类及Test类,具体要求如下:

⑴、接口Shape:

double area():求一个形状的面积

double perimeter ():求一个形状的周长

⑵、类 MyRectangle:

实现Shape接口,并有以下属性和方法:

①属性

width:double类型,表示矩形的长

height:double类型,表示矩形的高

②方法

MyRectangle(double w, double h):构造函数

ToString()方法:输出矩形的描述信息,如“width=1.0,height=2.0, perimeter=6.0, area=2.0”

⑶、类MyTriangle:

实现Shape 接口,并有以下属性和方法:

① 属性

x,y,z: double 型,表示三角形的三条边

s: 周长的1/2(注:求三角形面积公式为))()((z s y s x s s ---,s=(x+y+z)/2 ,

开方可用Math.sqrt(double)方法)

② 方法

MyTriangle(double x, double y, double z):构造函数,给三条边和s 赋

初值。

ToString():输出矩形的描述信息,如“three sides:3.0,4.0,5.0,perimeter=12.0,area=6.0” ⑷、Test 类作为主类要完成测试功能

① 生成MyRectangle 对象

② 调用对象的ToString 方法,输出对象的描述信息

package Ex8_7;

public interface Shape {

public abstract double area();

public abstract double perimeter(); }

package Ex8_7;

public class MyTriangle implements Shape{

public int x ,y ,z ;

public MyTriangle(int x,int y,int z){

this .x =x;

this .y =y;

this .z =z;

}

public double area(){

double s=(x +y +z )/2;

double area=Math.sqrt (s*(s-x )*(s-y )*(s-z ));

return area; }

public double perimeter() {

return x +y +z ; }

public String toString(){

return "three sides:"+x +","+y +","+z +",perimeter=" +perimeter()+",area="+area();

} }

package Ex8_7;

public class Test {

public static void main(String[] args) {

Shape t=new MyTriangle(3,4,5);

System.out.println(t.toString());

}

}

8 完成以下窗体制作

参考:这一题考虑使用组合布局,将上面控件放置在JPanel上,再将JPanel放到内容面板的中间。下面四个按钮先放在某JPanel再放置在内容面板的South部分

package Ex8_8;

import javax.swing.*;

import java.awt.*;

import java.awt.event.*;

public class LoginFrm extends JFrame implements ActionListener { JLabel lb_name=new JLabel("姓名:");

JLabel lb_sex=new JLabel("性别:");

JLabel lb_profession=new JLabel("身份:");

JLabel lb_unit=new JLabel("单位:");

JLabel lb_IDnum=new JLabel("证件号码:");

JLabel lb_rDate=new JLabel("注册日期:");

JLabel lb_eDate=new JLabel("有效日期:");

JTextField txt_name=new JTextField();

JComboBox cmb_profession=new JComboBox();

JComboBox cmb_unit=new JComboBox();

JTextField txt_IDnum=new JTextField();

JTextField txt_rDate=new JTextField();

JTextField txt_eDate=new JTextField();

JButton btn_ADD=new JButton("添加");

JButton btn_DEL=new JButton("删除");

JButton btn_BACK=new JButton("撤销");

JButton btn_ESC=new JButton("退出");

public LoginFrm(){

JPanel jp=(JPanel)this.getContentPane();

JPanel jp1=new JPanel();

jp1.setLayout(new GridLayout(7,2,5,10));

jp1.add(lb_name);jp1.add(txt_name);

jp1.add(lb_sex);jp1.add(cmb_sex);

jp1.add(lb_profession);jp1.add(cmb_profession);

cmb_profession.addItem("学生");

cmb_profession.addItem("教师");

cmb_profession.addItem("职工");

cmb_profession.setEditable(true);

jp1.add(lb_unit);jp1.add(cmb_unit);

cmb_unit.addItem("计算机系");

cmb_unit.addItem("工商管理系");

cmb_unit.setEditable(true);

jp1.add(lb_IDnum);jp1.add(txt_IDnum);

jp1.add(lb_rDate);jp1.add(txt_rDate);

jp1.add(lb_eDate);jp1.add(txt_eDate);

jp.add(jp1,BorderLayout.CENTER);

JPanel jp2=new JPanel();

jp2.setLayout(new GridLayout(1,4));

jp2.add(btn_ADD);jp2.add(btn_DEL);

jp2.add(btn_BACK);jp2.add(btn_ESC);

JScrollPane jsp_table = new JScrollPane(table);

jp.add(jsp_table);

jp.add(jp2,BorderLayout.SOUTH);

this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

this.setTitle("图书证办理");

btn_ADD.addActionListener(this);

btn_DEL.addActionListener(this);

btn_BACK.addActionListener(this);

btn_ESC.addActionListener(this);

}

public void actionPerformed(ActionEvent e){

}

public static void main(String[] args){

JFrame.setDefaultLookAndFeelDecorated(true);

LoginFrm frm=new LoginFrm();

frm.setSize(500, 400);

frm.setVisible(true);

}

}

9、以JDBC技术创建一个通讯录应用程序,要求通讯录中必须含有编号、姓名,性别、电话、地址、Email等等。实现该类并包含添加、删除、修改、按姓名查等几个方法。编写主程序测试。

参考如下:

第一步:编写一个Person联系人类

public class Person {

private int pid; //编号

private String name; //姓名

private String sex; //性别

private String tel; //电话

private String address; //地址

private String email; //email

/*构造函数以及set-get函数*/

}

第二步:编写一个PersonDao封装对联系人类的有关操作

public class PersonDao {

//添加联系人

public void addPerson(Person p){

String sql=””;

DBHelper.executeUpdate(sql);

}

//通过人的编号删除联系人

public void deletePersonByID(int pid){

String sql=”delete from person where pid=”+pid;

DBHelper.executeUpdate(sql);

}

//通过人的姓名查找联系人,返回一个集合

public List queryPersonByName(String name){

….

}

//...其余方法

}

第三步:编写一个测试Swing类,有界面使用JTable显示,参考书本上关于JTable控件的使用,参考界面如下

package Ex8_9;

import java.sql.*;

public class PersonDao {

private String driver = "sun.jdbc.odbc.JdbcOdbcDriver";

private String url = "jdbc:odbc:mydb";

private void executeUpdate(String sql) {

try {

Class.forName(driver);

Connection con = DriverManager.getConnection(url);

Statement cmd = con.createStatement();

cmd.executeUpdate(sql);

con.close();

} catch (Exception ex) {

ex.printStackTrace();

}

}

public void addStudent(String sno, String sname, String major, int zg) { String sql = "insert into student1 values('"+ sno + "','"+ sname+ "','" + major + "'," + zg + ")";

executeUpdate(sql);

}

public void deleteStudentBySno(String sno) {

String sql = "delete from student1 where sno='" + sno + "'";

executeUpdate(sql);

}

public String[][] queryPerson(){

String[][] table=null;

try{

Class.forName(driver);

Connection conn=DriverManager.getConnection(url);

Statement stmt=conn.createStatement();

ResultSet rs=stmt.executeQuery("SELECT count(*) FROM student1");

rs.next();

int c=rs.getInt(1);

table=new String[c][3];

c=0;

rs=stmt.executeQuery("SELECT * FROM student1");

while(rs.next()){

table[c][1]=rs.getString(1);

table[c][2]=rs.getString(2);

table[c][3]=rs.getString(3);

c++;

}

conn.close();

}catch(Exception e){

e.printStackTrace();

}

return table;

}

}

package Ex8_9;

import javax.swing.*;

import java.awt.*;

import java.awt.event.*;

import javax.swing.table.DefaultTableModel;

public class MyFrm extends JFrame{

public JTable table=null;

public String[] cols={"sno","sname","sbrith"};

PersonDao Student1_Dao=new PersonDao();

public MyFrm(){

JPanel jp = (JPanel) this.getContentPane();

String[][] rows = Student1_Dao.queryPerson();

JTable table=new JTable(rows,cols);

JScrollPane jsp_table = new JScrollPane(table);

jp.add(jsp_table);

table.setModel(new DefaultTableModel(rows, cols));

this.setSize(600, 400);

this.setVisible(true);

}

public static void main(String[] args) {

new MyFrm();

}

}

第二部分:选择题

B1、下面关于变量及其作用范围的陈述哪个是不对的?()

A.实例变量是类的成员变量。

B.实例变量用关键字static声明。

C.在方法中定义的局部变量在该方法被执行时创建。

D.局部变量在使用前必须被初始化。

B2、下面哪条语句把方法声明为抽象的公共方法?()

A.public abstract method();

B.public abstract void method();

C.public abstract void method(){}

D.public void method() extends abstract;

C 3、若在某一个类定义中定义有如下的方法:final void aFinalFunction( );

则该方法属于()。

A、本地方法

B、静态方法

C、最终方法

D、抽象方法

C 4、在Java中,一个类可同时定义许多同名的方法,这些方法的形式参数个数、

类型或顺序各不相同,传回的值也可以不相同。这种面向对象程序的特性称为()。

A、隐藏

B、覆盖

C、重载

D、Java不支持此特性

C 5、在Java applet程序中,用户自定义的Applet子类常常覆盖父类的( )

方法来完成applet界面的初始化工作。

A、start( )

B、stop( )

C、init( )

D、paint( )

C 6、下列关于构造方法的叙述中,错误的是()

A.Java语言规定构造方法名与类名必须相同

B.Java语言规定构造方法没有返回值,但不用void声明

C.Java语言规定构造方法不可以重载

D.Java语言规定构造方法只能通过new自动调用

C 7、关于被私有访问控制符private修饰的成员变量,以下说法正确的是()

A.可以被三种类所引用:该类自身、与它在同一个包中的其他类、

在其他包中的该类的子类

B.可以被两种类访问和引用:该类本身、该类的所有子类

C.只能被该类自身所访问和修改

D.只能被同一个包中的类访问

A 8、执行完以下代码int [ ] x = new int[10];后,以下哪项说明是正确的()

A.x[9]为0

B.x[9]未定义

C.x[10]为0

D.x[0]为空

B 9、类Test1定义如下:

1. public class Test1{

2.public float aMethod(float a, float b){ }

3.

4.}

将以下哪种方法插入行3是不合法的。()

A、public float aMethod(float a,float b,float c){ }

B、public float aMethod(float c,float d){ }

C、public int aMethod(int a,int b){ }

D、private float aMethod(int a,int b,int c){ }

D 10、以下哪个接口的定义是正确的?( )

A、interface A

{ void print() { } ;}

B、abstract interface A

{ void print() ;}

C、abstract interface A extends I1, I2 // I1、I2为已定义的接口

{ abstract void print(){ };}

D、interface A

{ void print();}

C 11、关于以下程序段,正确的说法是( )

1. String s1=“a”+“b”;

2. String s2=new String(s1);

3.if(s1==s2)

4.System.out.println(“= =is succeeded”);

5. if (s1.equals(s2))

6.System.out.println(“.equals() is succeeded”);

A.行4与行6都将执行 B.行4执行,行6不执行C.行6执行,行4不执行 D.行4、行6都不执行

D 12、下面哪个函数是public void aMethod(){...}的重载函数?()

A、void aMethod( ){...}

B、public int aMethod(){...}

C、public void aMethod ( ){...}

D、public int aMethod ( int m){...}

D 13、下面关于继承的哪些叙述是正确的? ( )

A.在java中允许多继承。

B.在java中一个类只能实现一个接口。

C.在java中一个类不能同时继承一个类和实现一个接口。

D. java的单一继承使代码更可靠。

C 14、关于length()这个方法的表述正确的是哪个? ( )

A.数组有length()这个方法,string也有length()这个方法。

B.数组有length()有这个方法,string没有length()这个方法。

C.数组没有length()这个方法,string有length()这个方法。

D.数组没有length()这个方法,string也没有length()这个方法。

BA 15、选择排序的思想是,将数据序列划分为两个子列,一个子列是排好序的,另一个是尚未排序的。现若想将数据序列由小到大排序,则每次放到有序子列尾部位置的元素,应从无序序列中选择( )。

A)最大的B)最小的C)任意的D)头上的

A 16、类与对象的关系是( )。

A. 类是对象的抽象

B. 类是对象的具体实例

C. 对象是类的抽象

D. 对象是类的子类

BD 17、下列关于修饰符混用的说法,错误的是( )

A. abstract不能与final并列修饰同一个类

B. abstract类中不可以有private的成员

C. abstract方法必须在abstract类中

D. static方法中能处理非static的属性

B 18、编译并运行下述程序段的结果是:( )。

public class Test{

public static void main(String argv[]){

int[] count = new int[4];

System.out.println(count[4]);

}

}

A.编译时错误

B.运行时错误

C.输出0

CB 19、下面是有关子类继承父类构造函数的描述,其中正确的是( )。

A.创建子类的对象时, 先调用子类自己的构造函数,然后调用父类的构造函数。B.子类无条件地继承父类不含参数的构造函数。

C.子类必须通过super关键字调用父类的构造函数。

D.子类无法继承父类的构造函数。

DC 20、下面哪个不是String类的方法?()

A、subString()

B、startsWith()

C、toString()

D、t oUpperCase()

A 21、编译并运行以下程序段的结果是:()

public class MyClass{

final static int i;

MyClass(){i =0;}

public static void main(String args[]){

System.out.println(i);

}

}

A、编译出错

B、null

C、1

D、0

C 22、下面关于java中类的说法哪个是不正确的?()

A、类体中只能有变量定义和成员方法的定义,不能有其他语句。

B、构造函数是类中的特殊方法。

C、类一定要声明为public的,才可以执行。

D、一个java文件中可以有多个class定义。

D 23、下列哪个类声明是正确的? ( )

A、 abstract final class H1{…}

B、 abstract private move(){…}

C、 protected private number;

D、 public abstract class Car{…}

A 24、方法重载是指 ( )

A.两个或两个以上的方法取相同的方法名,但形参的个数或类型不同

B.两个以上的方法取相同的名字和具有相同的参数个数,但形参的类型可以不同

C.两个以上的方法名字不同,但形参的个数或类型相同

D.两个以上的方法取相同的方法名,并且方法的返回类型相同

B 25、Frame的默认的布局管理器是下列哪一个? ( )

A.FlowLayout

B.BorderLayout

C.GridLayout

D.CardLayout

D 26、下面的哪个用户界面组件不是容器? ( )

A. JScrollPane

B. JFrame

C. JWindows

D. JScrollBar

C 27、在下列事件处理机制中哪个不是机制中的角色? ( )

A. 事件

B. 事件源

C. 事件接口

D. 事件处理者

B 28.欲构造ArrayList类的一个实例,此类继承了List接口,下列哪个方法是正确的?( )

A、 ArrayList myList=new Object();

B、 List myList=new ArrayList();

C、 ArrayList myList=new List();

D、 List myList=new List();

B 29器被重新设置大小后,哪种布局管理器的容器中的组件大小不随容器大小的变化而改变? ( )

A、 CardLayout

B、 FlowLayout

C、 BorderLayout

D、 GridLayout

B 30个关键字可以对对象加互斥锁? ( )

A、 transient

B、 synchronized

C、 serialize

D、 static

D 31Teacher和Student是类Person的子类;

Person p;

Teacher t;

Student s;

//p, t and s are all non-null.

if(t instanceof Person) { s = (Student)t; }

最后一句语句的结果是: ( )

A、将构造一个Student对象;

B、表达式是合法的;

C、表达式是错误的;

D、编译时正确,但运行时错误。

D 32行下列程序, 会产生什么结果 ( )

public class X extends Thread implements Runable{

public void run(){

System.out.println("this is run()");

}

public static void main(String args[])

{

Thread t=new Thread(new X());

t.start();

}

}

A、 in the Inner outer

B、 outer

C、 in the Inner

D、编译不通过

A 33下面哪个是对字符串String的正确定义()

A、String s1=null;

B、String s2=’null’ ;

C、String s3=(String) ‘abc’ ;

D、String s4=(String) ‘\uface’;

A 34下面哪条语句定义了5个元素的数组()

A、int [] a={22,23,24,25,12};

B、int a []=new int(5);

C、int [5] array;

D、int [] arr;

D 35给出一段程序,选择运行结果

public class sss {

public static void main(String args[])

{

String s1=args[1]; String s2=args[2];

String s3=args[3]; String s4=args[4];

System.out.println(“args[2]=”+s2);

}

}

命令行执行: java sss 1 2 3 4 结果是下面哪一个?( )

A、args[2]=2

B、args[2]=null

C、args[2]=1

D、运行出现异常

C 36下面哪个描述是正确的()

A、Applet程序中不需要main()方法,也不能有

B、Application程序中可以没有main()方法。

C、Applet程序中可以不定义init( )方法

D、Application程序中必须有run( )方法

B 37给出一段程序,试判断哪个是正确的结果()

public class rtExcept{

public static void throwit(){

System.out.print(“throwit”);

throw new RuntimeException(); }

public static void main(String [] aa){

try{

System.out.print(“hello “);

throwit(); }

catch(Exception re){

System.out.print(“caught ”); }

finally{

System.out.print(“finally ”); }

System.out.print(“after ”);

}

}

A、hello throwit caught

B、hello throwit caught finally after

C、hello throwit RuntimeException after

D、hello throwit caught finally after RuntimeException

C 38下面哪个描述是正确的()

A、Applet程序中不需要main()方法,也不能有

B、Application程序中可以没有main()方法。

C、Applet程序中可以不定义init( )方法

D、Application程序中必须有run( )方法

C 39面哪个修饰符修饰的变量是所有同一个类生成的对象共享的()A、public B、private C、static D、final

C 40面关于java中类的说法哪个是不正确的()

A、类体中只能有变量定义和成员方法的定义,不能有其他语句。

B、构造函数是类中的特殊方法。

C、类一定要声明为public的,才可以执行。

D、一个java文件中可以有多个class定义。

CD 41下面程序运行后的输出结果为()

class A

{static int y=3;

void showy( ){System.out.println(“y=”+y); } }

class testA

{

public static void main(String aaa [])

{ A a1=new A( );

A.y+=1; a1.y++;

a1.showy( );

}

}

输出结果选择:

A、y=3;

B、y=4;

C、y=5;

D、程序运行出错

A 43在java的一个异常处理中,哪个语句块可以有多个()

A、catch

B、finally

C、try

D、throws

B 44果希望所有的控件在界面上均匀排列,应使用下列那种布局管理器?( ) A、BoxLayout B、GridLayout C、BorderLayout D、FlowLouLayout

CD 132.给出如下代码:

class Test{

private int m;

public static void fun() {

// some code...

}

}

如何使成员变量m 被函数fun()直接访问? ( )

A、将private int m 改为protected int m

B、将private int m 改为 public int m

C、将private int m 改为 static int m

D、将private int m 改为 int m

8-实验八Java多线程操作(实验报告内容)

实验八 Java多线程操作 (实验报告) 一、目的 1.掌握Java多线程操作。 二、实验内容 启动线程,线程休眠,线程同步,等待和唤醒 三、实验环境 JDK1.6+dos环境 四、实验原理 通过案例掌握多线程操作。 五、实验步骤 1、设计一个线程操作类,要求可以产生三个线程对象,并可以分 别设置三个线程的休眠时间,如下所示: 线程A,休眠10秒 线程B,休眠20秒 线程C,休眠30秒 2、生产者与消费者问题,生产者生产一台电脑,消费者马上将生 产出的电脑取走。 六、实验小结 1、class MyThread implements Runnable{

String name; int time; public MyThread(String name,int time){ https://www.360docs.net/doc/8d2683567.html,=name; this.time=time; } public void run(){ try{ Thread.sleep(this.time); } catch(Exception e){ } System.out.println(https://www.360docs.net/doc/8d2683567.html,+"线程,休眠"+this.time/1000+"秒"); } } public class Demo08{ public static void main(String args[]){ MyThread mt1=new MyThread("线程A",10000); MyThread mt2=new MyThread("线程B",20000); MyThread mt3=new MyThread("线程C",30000);

JAVA实验报告一

Java语言程序设计实验报告一 班级:姓名:学号: 一、实验教学目的与基本要求 Java程序设计的实验是Java程序设计课程重要的实践教学环节。实验的目的不仅仅是验证理论知识,更重要的是通过上机加强学生的动手能力,掌握常用Java开发环境的使用方法,培养学生分析问题、解决问题、应用知识的能力和创新精神。充分放手让学生自行设计、自主调试,真正培养学生的实践动手能力,全面提高学生的综合素质。 本课程是一门程序设计语言课程,通过本课程的学习,学生能够掌握Java 语言程序的基本特点、基本编程方法和基本开发技巧,培养学生阅读、分析、设计和调试Java语言的能力,并具备一定的面向对象程序设计思想。 本课程的主要任务是在已学习的编程语言基础上,讲述Java语言的数据结构和语法规则;基本控制结构和编程技巧;Java语言面向对象的特点、编程方法和程序设计思路;Java语言的GUI程序和文件及I/O流的编程方法;能够正确配置Java开发环境,并使用相关的编辑、编译、调试、运行命令。 (1)掌握Java语言的编程技巧,能够独立进行面向对象的开发能力。 (2)具有根据编程需求独立查询Java类库文档及相关资料,完成系统的能力。 (3)具有分析、寻找和排除程序中常见问题的能力。 二、实验内容与收获 (1)Java的安装与配置。熟悉语言环境及简单程序设计的使用练习,正确配置Java 开发环境(Eclipse 集成开发环境的安装、配置与使用) a)安装JDK Sun公司为所有的Java程序员提供了一套免费的Java开发和运行环境。 可以通过IE或Netscape浏览器浏览网址:https://www.360docs.net/doc/8d2683567.html,/j2se,根据提示

Java集合框架实验报告

浙江大学城市学院实验报告 课程名称Java高级程序设计 实验项目名称Java集合框架实验 学生姓名专业班级学号 一、实验目的 1.理解Java集合框架的特点、接口与类之间的关系 2.掌握Java集合框架的List接口,以及List接口的重要实现类LinkedList、ArrayList 3.掌握Java集合框架的Set、SortedSet接口,以及重要实现类HashSet与TreeSet 4.掌握Java集合框架的Map、SortedMap接口及其重要实现类HashMap、TreeMap 5.掌握Java集合框架的Collection与Iterator接口的特点与使用方式 二、实验内容 1、使用List管理对象集合 2、使用Map管理对象集合 3、使用Set管理对象集合 4、设计一个自定义的集合类 三、实验步骤 1、在Eclipse中新建工程(即项目) 2、使用List管理对象集合 1)新建一个包listExample 2)在这个包中新建三个类:Student类,StudentList类,StudentListTest类。 参考代码: Student、java, StudentList、java,StudentListTest、java 3)完善上面三个类,相关要求参考源代码程序的注释,即根据要求修改源代码程序, 给出具体的实现代码(不使用泛型类)。

void addStudent(Student student){//添加一个学生对象 boolean a=true; for(int i=0;i

浙大JAVA 实验题答案05answer1

实验5 分支结构程序的设计 1.程序填空题,不要改变与输入输出有关的语句。 20004 计算旅途时间 输入2个整数time1和time2,表示火车的出发时间和到达时间,计算并输出旅途时间。 有效的时间范围是0000到2359,不需要考虑出发时间晚于到达时间的情况。 例:括号内是说明 输入 712 1411(出发时间是7:12,到达时间是14:11) 输出 The train journey time is 6 hrs 59 mins. import java.util.Scanner; public class Test20004 { public static void main(String[] args) { Scanner in=new Scanner(System.in); int time1, time2, hours, mins; time1=in.nextInt(); time2=in.nextInt(); /*------------------*/ /*计算两个时间之间的小时数和分钟数*/ hours=time2/100-time1/100; mins=time2%100-time1%100; /*当计算得到的分钟数为负数时进行调整*/ hours=mins>0?hours:hours-1; mins=mins>0?mins:mins+60; //或:if(mins<0){hours-=1;mins+=60;} System.out.println("The train journey time is "+hours+" hrs "+ mins+" mins."); } } 30001 显示两级成绩 输入一个正整数repeat (0

JAVA实验_题目8

第八章类和对象的扩展 【实验目的】 (1) 类的继承 a. 掌握父类及子类的关系及创建方法 b. 掌握上转型对象的使用方法 c. 掌握子类对象创建过程中与父类构造方法的关系,及super关键字的用法 (2) 多态与接口 a. 掌握抽象类与抽象方法的概念 b. 掌握多态的实现原理及方法 c. 了解成员变量的隐藏 d. 掌握接口的设计方法 【实验范例】 例1:(继承) (1)编写一个圆类Circle,该类拥有: ①一个成员变量 Radius(私有,浮点型);ustID == id) ind=i; } while (true) { "\n1.存款"); "2.取款"); "3.修改密码"); "4.查询"); "5.退出"); sc = new Scanner; switch()) { case 1: "请输入存款金额:"); money = (); cust[ind].deposit(money); cust[ind].displayAccout(); break; case 2: "请输入取款金额:"); money = (); if (cust[ind].withdraw(money)) cust[ind].displayAccout(); else "您的账号余额不足!"); break;

case 3: "请输入新密码:"); cust[ind].custPWD = (); break; case 4: cust[ind].displayAccout(); break; case 5: "欢迎使用xxx银行系统!"); (1); } } } } 【练习题目】 8-1 (继承与多态)有哺乳动物类mammal,将其作为父类,从其派生出子类猫cat和子类狗dog,基类中有方法speak()。 8-2 (重载)编写一个Java应用程序,从键盘读取用户输入两个字符串,并重载3个strAdd函数分别实现这两个字符串的拼接、整数相加和浮点数相加。要进行异常处理,对输入的不符合要求的字符串提示给用户,不能使程序崩溃。(异常处理) 8-3 (接口) 1.利用接口继承完成对生物、动物、人三个接口的定义。其中生物接口定义呼吸抽象方法; 2.动物接口除具备生物接口特征之外,还定义了吃饭和睡觉两个抽象方法; 3.人接口除具备动物接口特征外,还定义了思维和学习两个抽象方法。 4.定义一个学生类实现上述人接口。 8-4 (继承、接口) 实现一个名为Person的类和它的子类Employee,Manager是Employee的子类,设计一个接口Wage,用于涨工资,普通员工一次能涨10%,经理能涨20%。 具体要求如下: (1)接口Wage包含addWage方法,创建类WageImpl用于实现接口Wage (2)Person类中的属性有:姓名name(String类型),地址address(String类型),定义该类的构造方法; (3)Employee类中的属性有:工号ID(String型),工资wage(double类型),工龄(int型),定义该类的构造方法; (4)Manager类中的属性有:级别level(String类型)定义该类的构造方法; (5)编写一个测试类,产生一个员工和一个经理给该员工和经理涨工资,并输出其具有的信息。

java 实验七 对象集合 实验报告

实验七对象集合的组织 实验目标: 1.了解Collection、List、Set、Map等常用数据结构的层次结构 2.掌握LinkList、Vector、ArrayList、HashTable、HashMap等类的用法 3.掌握Enumeration(枚举)及Iterator(迭代器)的遍历用法 4.了解自学HashSet、TreeSet这两个Set接口下的重要实现类 5.了解自学比较器接口 实验任务: 1. 填空 List 接口的特点是元素__有__(有|无)顺序,___可以___(可以|不可以)重复; Set 接口的特点是元素__无___(有|无)顺序,__不可以____(可以|不可以)重复; Map 接口的特点是元素是键、值对象,其中__键__可以重复,_值对象__不可以重复 2. (List)有如下代码: import java.util.*; public class TestList{ public static void main(String args[]){ List list = new ArrayList(); list.add(“Hello”); list.add(“World”); list.add(1, “Learn”); list.add(1, “Java”); printList(list); } public static void printList(List list){ //1 } } 要求: 1) 把//1 处的代码补充完整,要求输出list 中所有元素的内容,请使用三种方式来实现(课本227页,Iterator、增强for循环,普通循环)。 2) 三种代码与执行结果截图 1、用Iterator实现的代码如下: package zi; import java.util.*; publicclass Ex7_2{ publicstaticvoid main(String args[]){ List list = new ArrayList(); list.add("Hello"); list.add("World"); list.add(1, "Learn");

浙大JAVA 实验题答案09answer

实验9-1 Method的使用(二) 1.程序填空题,不要改变与输入输出有关的语句。 50010 十进制转换二进制 输入一个正整数 repeat (0

n=n/2; //获得除2后的商 }while(n>0); System.out.print(t); //本方法无返回值,需要在方法体中输出结果 } } 说明:本题中方法dectobin(n)的输出虽然与要求有所出入,但上传是正确的。 以下用递归算法实现方法的设计: 50001 求1 + 1/2! +....+ 1/n! 输入一个正整数repeat (0

实验一java基础知识

实验一:java基础知识 实验目的: 1.掌握jave中变量的类型。 2.掌握常用的运算符 3.程序流程控制:顺序,选择和分支 实验内容: 1、回文数: 编写一个Java程序。用户从键盘输入一个1-9999之间的数,程序将判断这个数是几位数,并判断这个数是否回文数。回文数是指该数含有的数字逆序排列后得到的数和原数相同。 实验类别:验证性 2、猜数字游戏 编写一个Java应用程序,实现如下功能: 程序随机分配给客户一个1-100之间的整数 用户在输入对话框中输入自己的猜测 程序返回提示信息,提示信息分别是:“猜大了”、“猜小了”、和“猜对了”用户可以根据提示信息再次输入猜测,直到提示信息是“猜对了” 实验类别:设计性 3、输出希腊字母表 为了输出希腊字母表,首先获取希腊字母表的第一个字母和最后一个字母在unicode表中的位置,然后使用循环输出剩余的希腊字母 要观察一个字符在uniclde表中的顺序位置 实验类别:设计性

实验二类和对象 实验目的: 1.理解类的基本概念。 2.掌握如何定义类,定义类的成员变量和成员方法.创建和使用对象。 3.掌握定义重载方法和构造方法,方法参数的传递。 4. static变量和方法的使用。 实验内容: 1、定义一个名为Rectangle的类表示矩形,其中含有length,width两个double型 的成员变量表示矩形的长和宽。要求为每个变量定义访问方法和修改方法,定义求矩形周长的方法peremeter和求面积的方法area。定义一个带参数构造方法,通过给出的长和宽创建矩形对象。定义默认构造方法,在该方法中调用有参构造方法,将矩形长宽设置为1.0。 实验类别:验证性 2、方法重载: 编写一个Java程序,反映方法重载的使用特点,该程序包含多个重载的加法的运算,如整型加法,实型加法。 实验类别:验证性 3、学生类的创建: 1)创建一个student类,包括的域有学号、班号、姓名、性别、年龄等 2)声明一个构造方法,以初始化对象的所有域 3)声明分别获得各属性(学号、班号、姓名、性别、年龄)的各个public方法。4)声明修改各属性(学号、班号、姓名、性别、年龄)的各个public方法。5)创建一个具体学生对象,进行输出。 实验类别:设计性 4、定义一个类,类中有两个整型变量x和y,并定义构造函数初始化这两个变量。(通过构造函数传数据,数据值自定) 类中还可定义以下方法: 求两个数的和(x+y)并返回结果,求两个数的差(x-y)并返回结果,求两个数商(x/y)并返回结果,求两个数的余数(x%y)并返回结果,求两个数的最大值并返回结果。 编写应用程序,测试上面定义的类,使用类中定义的各个方法并将其结果输出。实验类别:验证性 5、用set()、get()方法传递数据: 本工程共有三个类,Person类、Employee类、和Test类,其中Test类 为测试类,其中有main()方法。 调用的是默认的构造方法,参数为空。 实验类别:设计性

JAVA实验报告

宁夏师范学院实验课程报告单 (数计)学院(08)级(计算机科学与技术)专业()班(java)课程学号31 姓名张娅娟班级08级 实验课程java 实验题 目 基本数据类型 实验日期2011.4.2 指导老 师 褚万军 实验内容及具体步骤: 实验4 基本数据类型的使用 1.实验目的 ●学习标识符的命名规则。 ●学习基本数据类型变量的声明。 ●学习基本数据类型变量的初始化。 ●明确局部变量使用前初始化的意义。 ●学习常量的使用。 2.实验内容 编写一个Java 程序,在程序中声明各种基本数据类型的变量,对它们进行初始化,再显示它们各自的值;定义一个双精度数据类型的常量,并显示它的值。 3. 程序清单与测试数据 //InitVar.java public class InitVar{

public static void main(String [] args) { byte a=10;//声明一个字节型变量a,初始化为10 short b=20;//声明一个短整形变量b,初始化为20 int c=30;//声明一个整数形变量c,初始化为30 long d=40L; float e=50f;//声明一个单精度变量e,初始化为50f double f=60d; //声明一个双精度变量f,初始化为60d char g='A';//声明一个字符形变量g,初始化为‘A’ boolean h=true;//声明一个布尔形变量h,初始化为true double pi=3.14;//声明一个双精度形常量pi,初始化为3.14 //以下是输出语句,请给出。 System.out.println("字节型,a="+a); System.out.println("短整型,b="+b); System.out.println("整型,c="+c); System.out.println("长整型,d="+d); System.out.println("单精度型,e="+e); System.out.println("双精度型,f="+f); System.out.println("字符型,g="+g); System.out.println("布尔型,h="+h); System.out.println("圆周率,pi="+pi);

实验二 Java类-实验报告

南京信息工程大学实验(实习)报告 实验(实习)名称Java类实验(实习)日期 10.17 得分指导教师刘文杰院计算机与软件学院专业软件工程年级 2017级班次 1 姓名张成学号20171344024 1.实验目的: 1)熟练MyEclipse工具的使用与调试; 2)掌握Java类、方法和变量的定义和使用; 3)熟悉方法重载和覆盖、掌握this和supper关键字使用; 4)掌握4类访问控制符的使用。 2.实验内容: (1)定义一个类Circle,实现其面积计算功能getArea(); (2)编写程序,读入一个正整数并按降序显示它的所有最小因子。(教材第3章习题9)(3)利用多态性编程,实现求三角形、正方形和圆形的面积。(教材第4章习题6) 3.实验步骤 1、 public class Circle { public double radius; public Circle(double r) { radius= r; } public double getArea() { return radius*radius*Math.PI; } public static void main(String[] args) { Circle area1 = new Circle(5); System.out.println("The area is " + area1.getArea()); } }

2、 import java.util.Scanner; public class Read { public static void main(String[] args) { Scanner input =new Scanner(System.in); System.out.print("输入一个正整数:"); int n=input.nextInt(); int []a=new int[n]; int []b=new int[n]; int p,q=0,m=0; for(p=2;p<=n;p++) { while(n%p==0) { n=n/p; if(n!=1) { a[q]=p; q++; } else { a[q]=p; } } } while(q!=-1) { b[m]=a[q]; m++; q--; } for(p=0;p

java实验题及答案

面向对象程序设计(Java)实验报告 实验四数组 指导教师:赵丹 姓名:刘坤(贵州民大)学号: 专业:信息管理与信息系统日期:2015-04-22 一、实验目的: 熟悉Java数组的创建、初始化、遍历、排序等操作。 二、实验内容: 1、将一个给定的整型数组转置输出, 例如:源数组,1 2 3 4 5 6 转置之后的数组,6 5 4 3 2 1。 2、现在有如下的一个数组: int oldArr[]={1,3,4,5,0,0,6,6,0,5,4,7,6,7,0,5} ; 要求将以上数组中值为0的项去掉,将不为0的值存入一个新的数组,生成的新数组为: int newArr[]={1,3,4,5,6,6,5,4,7,6,7,5} ; 3、现在给出两个数组: 数组a:“1,7,9,11,13,15,17,19”; 数组b:“2,4,6,8,10” 两个数组合并为数组c,按升序排列。 4、自己出一个和本章有关的有趣的题目,并编程解答。 三、实验步骤、分析与结论: 1、将一个给定的整型数组转置输出, 例如:源数组,1 2 3 4 5 6 转置之后的数组,6 5 4 3 2 1。 ①java程序如下: public class ArraySwap { public static void main(String[] args){ int oldArr[]=new int[]{1,2,3,4,5,6}; System.out.println("转置前的数组为:"); printArray(oldArr); //输出一维数组 int newArr[]=new int[oldArr.length]; for(int i=0;i

java实验报告完整版

实验报告 (计算机与信息工程学院实验中心) 学期: 2014-2015 课程名称:《Java程序设计实验》 班级:信息1202 姓名:方逸梅 学号: 31 指导老师:费玉莲

《Java程序设计》 独立实验教学安排 一、实验的教学方式、安排及实验环境 (一)教学方式 对照本课程的实验教材,实验一至实验十一,由教师提示实验原理、方法、步骤等内容,在教师的指导下,学生独立完成程序设计及调试工作。实验十二的内容由学生自行设计完成。 (二)教学安排 学时数:30课时 学时安排:每次实验3学时,从学期第五周开始,共十次上机实验。 (三)实验环境 实验环境为JDK 。 (四)具体安排 地点:信息大楼实验室。 辅导:每个班次一名辅导老师,原则上由任课老师担任。 登记:实验完成,由辅导老师登记实验纪录。 学生:实验做完,完成实验报告内容,并在学期末上交实验册。 老师:批改实验,成绩与平时成绩一起占期末的30%。 二、实验的具体内容和要求 见实验报告。

浙江工商大学 计算机与信息工程学院实验报告(1)日期:地点:成绩: ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 实验目的、实验原理和内容: 一、实验目的:熟悉Java开发环境及简单程序Java设计。 二、实验原理:SDK 的下载与安装,设置环境变量,安装java 虚拟机,使用Eclipse,编译Java 源程序,运行Java 程序。 三、实验内容及要求: 1.下载、安装并设置Java SDK 软件包。 2.熟悉Eclipse 编辑软件。 3.掌握运行Java 程序的步骤。 4.分别编写Application和Applet程序,显示字符串”Hello Java!欢迎使用!”。 要求:请同学把预备知识、步骤、程序框图、调试好的程序及存在的问题写在下面(不够可以附页)。 程序一 public class hello { public static void main(String[] args) { for(int i=0;i<=4;i++) { "Hello java! 欢迎使用!"); } }

JAVA实验报告-集合框架与泛型机制

Java 语言程序设计 C 实验报告 集合框架及泛型机制 学生姓名 专业、班级 指导教师 成绩 计算机与信息工程学院 年月日

一、实验目的 学习课程相关章节知识,通过上机练习,掌握以下知识: 1.掌握 List 接口下 ArrayList 及 LinkedList 的使用方法。 2.掌握 Map 接口下 HashMap 及 HashTable的使用方法 3.掌握集合中泛型的使用 二、实验内容 利用集合完成象数据库那样存储数据,并且可以简单查询,利用 map 存储学生信息,字段如下: id ,name,age,实现步骤: (1)创建类,类图如下: (2)在 main 方法编写逻辑代码 (3)运行程序并测试结果 package https://www.360docs.net/doc/8d2683567.html,; public class Student { private String name ; private int age ; private String id ;

public String getName() { return name ; } public void setName(String name ) { this . name =name ; } public int getAge() { return age ; } public void setAge(int age ) { this. age=age ; } public String getId() { return id; } public void setId(String id) { this. id=id; } public Student(String name ,int age , String id ) { super(); this. name =name ; this. age=age ; this. id=id; } public void sayHi() { System.out.println("name=" +this.getName()+"age=" + this .getAge()+" " + "id=" + this.getId()); } }

浙大JAVA实验题答案answer

实验8 Method的使用 1.程序填空题,不要改变与输入输出有关的语句。 50001 输入一个正整数repeat (0

《Java面向对象程序设计》实验-实验八(输入输出流)

广西科技大学 计通学院 《Java面向对象程序设计》实验实验八输入输出流 学生姓名:××× 学号:××× 班级:××× 指导老师:××× 专业:计算机科学与技术 提交日期:×××年××月××日 实验报告内容 1.实验目的 掌握字符输入、输出流用法; 掌握使用Scanner类解析文件; 掌握Console流的使用。 2.实验内容 实验教材-第12章实验1、2、3 字符输入输出流;Scanner类与Console类。 要求:完善程序,给出实验结果截图; 完成试验后练习。 3.程序代码及运行结果: 实验1 举重成绩单 //AnalysisResult、java import java、io、*; import java、util、*;

public class AnalysisResult { public static void main(String[] args) { File("score、txt"); File("scoreAnalysis、txt"); try{ Writer out=new (fWrite); BufferedWriter bufferWrite=new BufferedWriter(out); Reader in=new (fRead); BufferedReader bufferRead=new BufferedReader(in); String str=null; while((str=bufferRead、 readLine())!=null){ double totalScore=Fenxi、getTotalScore(str); str=str+"总成绩:"+totalScore; System、out、println(str); bufferWrite、write(str); bufferWrite、newLine(); } bufferRead、close(); bufferWrite、close(); } catch(IOException e){ System、out、println(e、toString()); } } } //Fenxi、java import java、util、*;

操作系统实验报告java

操作系统实验报告 院系: 专业: 班级: 学号: 姓名: 指导老师:

进程调度的模拟与内存管理 一、实验目的 在采用多道程序设计的系统中,往往有若干个进程同时处于就绪状态。当就续进程个数大于处理器数时,就必须依照某种策略来决定哪些进程优先占用处理器。实验模拟实现处理机调度,以加深了解处理机调度的工作,并体会优先级和时间片轮转调度算法的具体实施方法。帮助了解在不同的存储管理方式下,应怎样实现主存空间的分配和回收。 二、实验要求 1、可随机输入若干进程,并按优先权排序; 2、从就绪队首选进程运行:优先权-1/要求运行时间-1 要求运行时间=0时,撤销该进程 3、重新排序,进行下轮调度。 4、可随时增加进程; 5、规定道数,设置后备队列和挂起状态。若内存中进程少于规定道数,可 自动从后备队列调度一作业进入。被挂起进程入挂起队列,设置解挂功 能用于将指定挂起进程解挂入就绪队列。 6、每次调度后,显示各进程状态。

7、自行假设主存空间大小,预设操作系统所占大小并构造未分分区表; 表目内容:起址、长度、状态(未分/空表目) 8、结合以上实验,PCB增加为: {PID,要求运行时间,优先权,状态,所需主存大小,主存起始位置, PCB指针} 9、采用最先适应算法分配主存空间; 10、进程完成后,回收主存,并与相邻空闲分区合并。 11、采用图形界面; 三、实验内容 选择一个调度算法,实现处理机调度。 1、设计一个按优先权调度算法实现处理机调度的程序; 2、设计按时间片轮转实现处理机调度的程序。 3、主存储器空间的分配和回收。在可变分区管理方式下,采用最先适应算法实现主存空间的分配和回收。 四、实验原理 该模拟系统采用java语言实现,要实现的功能有新建进程、进程调度、挂起进程、解挂进程、删除进程,道数和时间片大小可以由用户自己调整,有两种调度策略:按优先权调度和按时间片轮转调度。每个进程可能有5种状态:新建(new)、就绪(ready)、运行(running)、阻塞(waiting)、挂起(suspend)。每个状态都有一个队列用来存放处于该状态的进程,不同的调度策略采用不同的队列实现。当创建进程时,如果内存中的进程数还没达到规定道数,则将新建进程插入就绪

浙大JAVA-实验题答案05answer1

浙大JAVA-实验题答案05answer1

实验5 分支结构程序的设计 1.程序填空题,不要改变与输入输出有关的语句。 20004 计算旅途时间 输入2个整数time1和time2,表示火车的出发时间和到达时间,计算并输出旅途时间。 有效的时间范围是0000到2359,不需要考虑出发时间晚于到达时间的情况。 例:括号内是说明 输入 712 1411(出发时间是7:12,到达时间是14:11) 输出 The train journey time is 6 hrs 59 mins. import java.util.Scanner; public class Test20004 { public static void main(String[] args) { Scanner in=new Scanner(System.in); int time1, time2, hours, mins; time1=in.nextInt(); time2=in.nextInt(); /*------------------*/ /*计算两个时间之间的小时数和分钟数*/ hours=time2/100-time1/100; mins=time2%100-time1%100; /*当计算得到的分钟数为负数时进行调整*/ hours=mins>0?hours:hours-1; mins=mins>0?mins:mins+60; //或:if(mins<0){hours-=1;mins+=60;} System.out.println("The train journey time is "+hours+" hrs "+ mins+" mins."); } } 30001 显示两级成绩 输入一个正整数repeat (0

Java 实验八

实验八事件处理 学号201617406 姓名刘顺专业网络工程成绩 【实验目的与要求】 1、理解和掌握Java中事件处理模式; 2、理解和掌握Java中事件处理的流程和方法; 3、实验后及时总结、归纳、分析,并完成实验报告。 【实验内容与要求】 设计信息注册窗口,并完成组件的事件处理功能。 编程提示: 1)完成界面设计和实现; 2)单击“确定”按钮后,在“基本信息”文本域中显示选择的信息内 容。 3)给按钮添加事件监听,实现事件处理。 button.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { setText() // JTextArea的方法,设置文本域内容 append() // JTextArea的方法,文本域内容追加 getText() // 组件的方法,获取组件内容 isSelected() // JcheckBox的方法,复选框内容被选中 getSelectedItem() //JComboBox()的方法,获取选中项 } 【实验过程与结果】 import java.awt.Color; import java.awt.FlowLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.*; import javax.swing.border.TitledBorder; public class Test8 { public static void main(String[] args) { //FlowLayout flow=new FlowLayout(); JFrame j=new JFrame("新用户注册"); //创建窗体 j.setVisible(true); //窗体可见

相关文档
最新文档