Java语言程序设计-实验7

合集下载

Java实验7

Java实验7

实验7多线程程序设计一、实验目的:1、理解多线程程序运行的基本原理。

2、掌握多线程程序设计的基本方法。

3、学习多线程的同步机制,掌握利用同步机制访问共享资源的方法。

二、实验任务:1、编写一个GUI选号程序,在程序的主窗体中安排6个标签,每个标签上显示一个数字,每个数字都在0~9之间变化。

单击窗体上的“停止”按钮使所有数字停止变化。

2、编写一个学校向教师发放工资的应用程序。

学校负责向教师的工资帐户上发放工资,教师从各自的帐户上领取工资。

三、实验步骤:1、设计一个图形界面应用程序,在程序中首先创建一个标签类MyLabel,并使该类实现Runnable接口。

2、MyLabel类中包含两个数据成员:(1)整型数据成员value代表显示在标签上的数字;(2)布尔型数据成员stop,其初始值为false,当其值变为true时,标签上显示的数字停止变化。

3、创建一个框架窗体类ChooseNumber,并向其中添加6个MyLabel类的对象和一个按钮,为了能使6个标签上的数字在程序运行时不停地在0~9之间变化,需实现以下2步:(1)创建6个线程分别控制6个标签上的数字变化;(2)在MyLabel类的run方法中,使用Math类的random方法产生0~9之间的随机整数,并将其显示在标签上,然后使线程对象睡眠500毫秒,然后判断stop的值,如果stop的值为false,则重复上述过程直到其值为true时,退出次循环。

4、程序的参考代码如下:5、以下几步完成本次上机实验的第2个任务。

6、这是一个典型的线程同步问题,如果教师在工资未发放前提取,则应使其进入等待状态。

学校发放工资后会通知教师可以提取。

这里用到了阻塞线程的方法wait和唤醒被阻塞线程的方法notify。

7、程序中创建TeacherAccount类作为教师帐户类,SchoolBank类代表学校,而Teacher类代表教师。

SchoolBank类对象和Teacher类对象有一个共享的TeacherAccount类对象。

Java程序设计实验指导书(答案)

Java程序设计实验指导书(答案)

第Ⅰ部分:实验指导实验1:Java开发环境J2SE一、实验目的(1)学习从网络上下载并安装J2SE开发工具。

(2)学习编写简单的Java Application程序.(3)了解Java源代码、字节码文件,掌握Java程序的编辑、编译和运行过程。

二、实验任务从网络上下载或从CD-ROM直接安装J2SE开发工具,编写简单的Java Application程序,编译并运行这个程序。

三、实验内容1.安装J2SE开发工具Sun公司为所有的java程序员提供了一套免费的java开发和运行环境,取名为Java 2 SDK,可以从上进行下载。

安装的时候可以选择安装到任意的硬盘驱动器上,例如安装到C:\j2sdk1.4.1_03目录下。

教师通过大屏幕演示J2SE的安装过程,以及在Windows98/2000/2003下环境变量的设置方法。

2.安装J2SE源代码编辑工具Edit Plus教师通过大屏幕演示Edit Plus的安装过程,以及在Windows98/2000/2003操作系统环境下编辑Java 原程序的常用命令的用法。

3.编写并编译、运行一个Java Application程序。

创建一个名为HelloWorldApp的java Application程序,在屏幕上简单的显示一句话"老师,你好!"。

public class HelloWorldApp{public static void main(String[] args){System.out.println("老师,你好!");}}4.编译并运行下面的Java Application程序,写出运行结果。

1:public class MyClass {2:private int day;3:private int month;4:private int year;5:public MyClass() {6:day = 1;7:month = 1;8:year = 1900;9:}10:public MyClass(int d,int m,int y) {11:day = d;12:month = m;13:year = y;14:}15:public void display(){16:System.out.println(day + "-" + month + "-" + year);17:}18:public static void main(String args[ ]) {19:MyClass m1 = new MyClass();20:MyClass m2 = new MyClass(25,12,2001);21:m1.display();22:m2.display();23:}24:}运行结果:1-1-190025-12-2001实验2:Java基本数据类型一、实验目的(1)掌握javadoc文档化工具的使用方法。

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实验5到7

太原理工大学java实验5到7

本科实验报告课程名称: Java语言程序设计实验项目:多线程编程实验地点:软件楼专业班级:软件工程1410 学号: 2014005791 学生姓名:王超指导教师:李君婵2016年1 月 17 日实验记录(写出实验内容中3的程序代码和运行结果)3.package com.wangchao.exercise5;import java.util.Date;public class Threethread extends Thread {public static void main(String[] args) {Threethread t1 = new Threethread();t1.start();Threethread t2 = new Threethread();t2.start();Threethread t3 = new Threethread();t3.start();}public void run() {System.out.println("当前运行的线程 " + this.getName() + " "+ new Date(System.currentTimeMillis()));}}遇到的问题和解决方法在编写程序时对于接口的概念理解不深,通过自己看书实验加深了认识。

心得体会线程是提高cpu运行效率的方法,内容很重要,需要认真学习和理解。

本科实验报告课程名称: Java语言程序设计实验项目:图形用户界面编程实验地点:软件楼专业班级:软件工程1410 学号: 2014005791 学生姓名:王超指导教师:李君婵2016年1 月 17 日}public void actionPerformed(ActionEvent e) {if (btn.getText().equals("Click Me")) {btn.setText("Click Me Again");} elsebtn.setText("Click Me");}}遇到的问题和解决方法在编写时,有些方法记不住,就会翻阅书籍,把那些组件内容都给添加上。

Java语言程序设计7-1-java第7章(文件数据流)

Java语言程序设计7-1-java第7章(文件数据流)
例题的执行结果
在屏幕上显示文字时需要注意的事项: 在屏幕上显示文字时需要注意的事项: FileReader.read()函数返回整型数,显示时必 函数返回整型数, 函数返回整型数 须把它强制转换成字符类型 如果不转换,显示结果如下: 如果不转换,显示结果如下:
软件学院
7.1 写入和读出数据文件
二进制数据文件的读写
DataInputStream in1 = new DataInputStream(file1); DataOutputStream out1 = new DataOutputStream(file2);
软件学院
7.1 写入和读出数据文件
3.用DataInputStream类读出数据 用 类读出数据
FileInputStream file1 = new FileInputStream("save1.dat"); FileOutputStream file2 = new FileOutputStream("save2.dat");
软件学院
7.1 写入和读出数据文件
2.创建文件读写对象 创建文件读写对象
while (aChar != '\u0000') { str.append(aChar); aChar = in1.readChar(); }
软件学院
7.1 写入和读出数据文件
5.关闭文件 关闭文件
在读取或写入文件之后, 在读取或写入文件之后,同样应当调用文件读写对 象的close函数关闭文件 象的 函数关闭文件 在写入文件时,内容往往只写在缓存里, 在写入文件时,内容往往只写在缓存里,只有在关 闭文件时才会真正将内容写入 关闭文件的代码如下: 关闭文件的代码如下:

《Java》实验指导7&8

《Java》实验指导7&8
public class TestStudent { public static void main(String[] args){ Student stu1 = new Student("0251102", "刘美丽", '女'); stu1.setAddress("河北邯郸"); stu1.setSpeciality("计算机软件"); System.out.println(stu1.toString()); } }
6
}

运行结果 算法分析

2、掌握类的的多态(重写) //P77-78,例 5-2 import java.io.*; class Point{ int x,y; void setXY(int a,int b){ x=a;y=b; } void show(){ System.out.println("Location:("+x+","+y+")"); } } class Rectangle extends Point{ int y; int width,height; int area(){ return width*height; } void setWHY(int w,int h,int yy){width=w; height=h; y=yy; } void show(){ //重写 System.out.println("Location:("+x+","+y+")"); System.out.println("Area:"+area()); } } public class ExtendsExample{ public static void main(String args[]){ Rectangle rect1=new Rectangle(); rect1.setXY(100,200); rect1.setWHY(20,35,300);//父类中的 y=200 被隐藏了,变成了 300 rect1.show(); } } 运行结果 Location:(100,300) Area:700

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数据库应用的设计方法。

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

1.创建用户界面,一个文本框与两个按钮,“运行”、“停止”。

1)创建线程,运行时显示线程名,随机睡眠0-100ms。

2)文本框输入线程名,点击“运行”时,运行指定线程。

3)点击“停止”时,停止所有线程。

4)(附加题)再添加一个按钮,点击时停止与文本框相符的线程。

2.创建用户界面,一个文本区域、一个文本框与两个按钮,“保存”、“读取”。

1)用Scanner输入布局方式,指定两种不同的布局。

2)文本区域输入文字,文本框输入文件名。

3)点击“保存”时,将文本区域的文字保存到文本框指定文件。

4)点击“读取”时,读取与文本框相符的文件,将内容显示到文本区域。

Tips: 文本框、文本区域等用静态声明,监听、线程等其他类访问时会较为方便。

相关文档
最新文档