java 程序设计 实验五

合集下载

JAVA实验报告5异常处理实验

JAVA实验报告5异常处理实验

JAVA实验报告5异常处理实验异常处理是Java程序设计中非常重要的一部分,能够有效地处理程序在运行过程中可能出现的异常情况。

在本次实验中,我们主要学习了Java中的异常处理机制,并对其进行了实践。

一、实验目的:1、学习Java中的异常处理机制;2、掌握如何使用try-catch来处理异常;3、了解Java中常见的异常类和异常处理语句的使用方法。

二、实验内容:1、编写一个Java程序,在程序中故意引发一个异常,然后使用try-catch语句来处理该异常,并在catch块中打印异常的详细信息;2、使用多个catch块来处理不同类型的异常,并在每个catch块中打印对应异常的详细信息;3、使用finally块来执行一些必须要执行的代码,比如关闭文件等。

三、实验步骤:1、首先,我们编写一个简单的Java程序,使用try-catch语句来处理异常。

假设我们在程序中故意除以0,然后在catch块中打印出异常信息。

代码如下:```public class ExceptionHandlingDemopublic static void main(String[] args)tryint result = 10 / 0;} catch (ArithmeticException e)System.out.println("发生异常:" + e);}}```2、接下来,我们使用多个catch块来处理不同类型的异常。

假设我们在程序中使用一个空数组,然后尝试访问数组的第一个元素。

如果数组为空,则会抛出ArrayIndexOutOfBoundsException异常。

代码如下:```public class ExceptionHandlingDemopublic static void main(String[] args)int[] array = new int[0];tryint firstElement = array[0];} catch (ArrayIndexOutOfBoundsException e)System.out.println("发生异常:" + e);} catch (Exception e)System.out.println("未知异常:" + e);}}```3、最后,我们使用finally块来执行一些必须要执行的代码。

java编程实验报告

java编程实验报告

java编程实验报告Java编程实验报告引言:Java是一种广泛应用于软件开发领域的高级编程语言,具有跨平台、面向对象、安全性高等特点。

本篇文章将介绍我在Java编程实验中的实践和收获。

实验一:Hello World程序在本实验中,我学习了如何使用Java编写一个简单的Hello World程序。

通过这个实验,我了解了Java的基本语法和程序结构。

在编写过程中,我发现Java的语法规范相对严格,需要注意语句的结束符号和代码的缩进。

通过运行程序,我成功输出了"Hello World"这个简单的字符串,这让我对Java编程的基本流程和语法有了更深入的了解。

实验二:变量与运算符在本实验中,我学习了Java中的变量和运算符的使用。

通过编写程序,我实现了对不同类型的变量进行声明和赋值,并进行基本的运算操作。

在这个过程中,我发现Java的变量需要先声明后使用,而且在进行运算时需要注意数据类型的匹配。

通过这个实验,我对Java中的变量和运算符有了更深入的理解。

实验三:条件语句与循环结构在本实验中,我学习了Java中的条件语句和循环结构的使用。

通过编写程序,我实现了对不同条件进行判断,并根据不同的条件执行相应的操作。

同时,我还学习了循环结构的使用,通过循环语句实现了对一段代码的重复执行。

在这个实验中,我发现条件语句和循环结构是Java编程中非常重要的部分,能够帮助程序实现更复杂的逻辑。

实验四:数组和字符串在本实验中,我学习了Java中数组和字符串的使用。

通过编写程序,我实现了对数组和字符串的声明、赋值和操作。

在这个过程中,我发现Java中的数组和字符串是一种非常方便的数据结构,能够帮助程序处理大量的数据。

通过这个实验,我对Java中数组和字符串的使用有了更深入的了解。

实验五:面向对象编程在本实验中,我学习了Java中的面向对象编程的基本概念和使用。

通过编写程序,我实现了对类的定义、对象的创建和方法的调用。

实验报告java程序设计

实验报告java程序设计

实验报告java程序设计一、引言本次实验是针对Java程序设计的实践性活动。

Java是一种广泛应用于各种平台的编程语言,具有跨平台、面向对象、安全性高等特点。

通过本次实验,我们将学习如何利用Java语言进行程序设计,并进一步熟悉Java的基本语法和面向对象的思想。

二、实验目的1. 掌握Java的基本语法和面向对象的思想;2. 熟悉Java程序的编写和运行过程;3. 学会利用Java进行简单的程序设计。

三、实验内容3.1 实验环境为了进行本次实验,我们需要安装以下工具和环境:- JDK(Java Development Kit):Java开发工具包,包含了编译器和相关工具;- IDEA(Integrated Development Environment for Java):一种常用的Java集成开发环境。

3.2 实验步骤1. 安装JDK和IDEA,并完成相应的配置工作;2. 创建一个Java项目,并创建一个名为`HelloWorld`的Java类;3. 在`HelloWorld`类中编写代码,实现输出`Hello, World!`的功能;4. 编译和运行程序,观察结果。

四、实验过程和结果4.1 实验过程首先,我们需要安装JDK和IDEA,并完成相应的配置工作。

然后,我们打开IDEA,创建一个新的Java项目。

接着,在该项目中创建一个名为`HelloWorld`的Java类。

在`HelloWorld`类中,我们编写以下代码:javapublic class HelloWorld {public static void main(String[] args) {System.out.println("Hello, World!");}}完成代码编写后,我们点击IDEA工具栏上的编译按钮,对代码进行编译。

编译成功后,我们点击运行按钮,运行程序。

4.2 实验结果在IDEA的控制台窗口上,我们可以看到以下输出:Hello, World!这就是我们期望的输出结果,说明我们成功地使用Java编写并运行了一个程序。

JAVA实验报告5异常处理实验

JAVA实验报告5异常处理实验

JAVA实验报告5异常处理实验一、实验目的1. 了解Java异常处理机制;2. 掌握Java中异常处理的方式;3.熟悉自定义异常的方法。

二、实验内容本实验通过编写代码来体验Java中的异常处理机制,主要包括以下几个方面:1.了解异常的基本知识;2. 学习try-catch语句的使用方法;3. 掌握throws关键字的用法;4.编写自定义异常类。

三、实验步骤1. 编写一个“除法计算器”类DivideCalculator,该类有一个名为divide的方法,用于计算两个整数的商,并返回结果。

如果除数为0,则会抛出一个自定义的异常类DivideByZeroException;2. 在DivideCalculator类中,先使用try-catch语句来捕获DivideByZeroException异常,如果除数为0,则在控制台上打印出“不能除以0”的错误信息;3. 在该方法中再使用throws关键字将异常抛出,以便调用方能捕获该异常;4. 编写一个测试类CalculatorTest来测试DivideCalculator类,将两个整数输入给divide方法,观察控制台输出的结果;5. 在CalculatorTest类中使用try-catch语句来捕获DivideByZeroException异常,并打印出错误信息;6. 在CalculatorTest的main方法中调用divide方法,传入5和0作为参数;7.运行程序,观察控制台输出的结果。

四、实验结果根据实验步骤中的代码编写,可得到以下实验结果:1.当传入的除数为非零整数时,程序正常执行并返回正确结果;2. 当传入的除数为0时,程序会抛出自定义的异常DivideByZeroException,并在控制台上打印出错误信息"不能除以0";3. 在CalculatorTest的try-catch语句中捕获到DivideByZeroException异常,并打印出错误信息"不能除以0"。

JAVA程序设计实验报告

JAVA程序设计实验报告

JAVA程序设计实验报告实验报告一、实验目的本次实验的主要目的是熟悉并掌握JAVA程序设计的基本知识和技能,通过实验来加深对JAVA的理解和应用。

二、实验内容本次实验主要是设计一个简单的学生信息管理系统,实现学生信息的添加、查找、修改和删除功能。

三、实验步骤1. 首先,创建一个名为Student的类,用于存储学生的信息。

该类需要包含学生的姓名、年龄和学号等信息的私有变量,并提供对应的get和set方法。

2. 接下来,创建一个名为StudentManager的类,用于实现学生信息的管理功能。

该类需要包含一个存储学生信息的List,并提供添加、查找、修改和删除学生信息的方法。

3. 在StudentManager类中,实现添加学生信息的方法。

该方法需要先实例化一个Student对象,然后通过调用Student对象的set方法设置学生信息,并将该学生信息添加到List中。

4. 实现查找学生信息的方法。

该方法需要输入一个学生的学号,并在List中查找对应的学生信息,然后返回该学生的相关信息。

5. 实现修改学生信息的方法。

该方法需要输入一个学生的学号和需要修改的信息,并在List中找到对应的学生信息,然后调用Student对象的set方法修改学生信息。

6. 实现删除学生信息的方法。

该方法需要输入一个学生的学号,并在List中找到对应的学生信息,然后将该学生信息从List中删除。

7. 在主函数中,创建一个StudentManager对象,然后可以通过调用StudentManager对象的方法来实现学生信息的管理。

四、实验结果通过运行程序,可以实现对学生信息的添加、查找、修改和删除等功能,可以有效地管理学生的信息。

五、实验总结通过本次实验,我进一步加深了对JAVA程序设计的理解和应用。

学会了如何创建类、定义变量、编写方法以及使用集合等技能。

同时,我也体会到了实验的重要性,通过实验加深了对理论知识的掌握,提高了解决问题的能力。

java 实验报告

java 实验报告

java 实验报告Java 实验报告引言:Java 是一种广泛应用于软件开发的计算机编程语言,具有跨平台、面向对象、简单易学等特点。

本实验报告将介绍我在学习 Java 过程中进行的一系列实验,包括实验目的、实验过程、实验结果和实验总结。

实验一:Hello World 程序实验目的:通过编写一个简单的 Hello World 程序,熟悉 Java 的开发环境和基本语法。

实验过程:1. 安装 Java Development Kit(JDK)并配置环境变量。

2. 使用文本编辑器编写以下代码:```javapublic class HelloWorld {public static void main(String[] args) {System.out.println("Hello, World!");}}```3. 将代码保存为 HelloWorld.java。

4. 打开命令提示符,切换到代码所在目录,输入以下命令编译代码:```javac HelloWorld.java```5. 输入以下命令运行程序:```java HelloWorld```实验结果:命令提示符中输出 "Hello, World!"。

实验二:数据类型和运算符实验目的:了解 Java 的数据类型和运算符,并能够正确使用它们进行计算。

实验过程:1. 声明并初始化不同类型的变量,例如整数、浮点数和布尔类型。

2. 使用算术运算符进行基本的数值计算。

3. 使用逻辑运算符进行布尔类型的操作。

实验结果:根据实验过程中的代码和输入,得到相应的计算结果。

实验三:条件语句和循环结构实验目的:掌握 Java 中的条件语句和循环结构,能够根据不同的条件执行相应的代码块。

实验过程:1. 使用 if-else 语句实现条件判断。

2. 使用 switch-case 语句实现多分支选择。

3. 使用 for 循环、while 循环和 do-while 循环实现不同的循环结构。

《Java程序设计》上机实验报告 实验五 流、文件及基于文本的应用

《Java程序设计》上机实验报告 实验五   流、文件及基于文本的应用

信息科学与工程学院《Java程序设计》上机实验报告专业班级姓名学号主要实验记录及个人小结(包括部分实验源程序、调试结果及实验结果分析等)2.编写一个程序,能将一个源程序中的空行及注释去掉,并将处理后的内容写到目标文件中。

(源文件名称和目标文件名称均要求以命令行参数形式输入)import java.io.BufferedReader;import java.io.File;import java.io.FileNotFoundException;import java.io.FileReader;import java.io.FileWriter;import java.io.IOException;import java.io.PrintWriter;public class CopyFile {static String delComm(String s){if(s==null)return s;int pos=s.indexOf("//"); //去掉以//开始的注释if(pos<0)return s;return s.substring(0,pos);}public static void main(String args[]){String infname="CopyFile.java";String outfname="CopyFile.txt";if(args.length>=1)infname=args[0];if(args.length>=2)outfname=args[1];try{File fin=new File(infname);File fout=new File(outfname);BufferedReader in = new BufferedReader(new FileReader(fin));PrintWriter out = new PrintWriter(new FileWriter(fout));int cnt=0;String s = in.readLine(); //写字符串while(s != null){主要实验记录及个人小结(包括部分实验源程序、调试结果及实验结果分析等)cnt ++;s=delComm(s); //去掉以//开始的注释out.println(cnt+":\t"+s);//写出s=in.readLine(); //读入}in.close(); //关闭缓冲读入流及文件读入流的连接out.close();}catch (FileNotFoundException e1){System.out.println("File not found");}catch(IOException e2){e2.printStackTrace();}}}主要问题的出错现象:1)运行程序后,无对应的输出结果出现2)源程序编写过程中,出现方法和类的调用无法完成.出错原因:1)函数调用时候,相关函数输入变量错误2)方法名的书写不符合规范,使得方法变为变量.解决方法及效果:1) 编写和调用类的方法时,注意参数的类型和数量的对应.2)规范命名.常量用大写字母,变量用小写字母开始,类以大写字母开始.实验小结:1) 为每个类分配正确的职责.尽量保持类功能单一. 不要在一个类中做太多事.2) BufferedReader的方法:readLine():String ,当他的返回值是null时,就表示读取完毕了。

java实验报告5

java实验报告5

《Java语言程序设计》上机实验报告(5)实验名称:实验五Java面向对象编程(2) 班级:软件工程 101姓名:周顺权学号: 110029026上机时间:指导教师:王华一、实验内容或题目:1.方法中参数传递---传值调用。

编写一个传值调用的程序。

2.方法中参数传递---调用对象方法。

编写一个调用对象方法的程序。

3.类的继承。

(1)首先预测下列程序的运行结果,然后编译、执行以验证你的预测:(2) 修改Dog类的构造函数,使之可以初始化Dog类中的weight值。

(3) 在Dog类中添加方法getWeight以获得其weight值(4) 修改类JLab0501,使用新的构造函数创建一个名为“snoopy”,重为10的Dog类的对象,并利用其方法输出包括重量在内的各项值。

(5) 要使Dog类对象的speak()方法返回值为“Woof Woof”,应如何做?修改(1)中程序,并验证你的做法。

4.方法的重载。

(1)首先预测下列程序的运行结果,然后编译、执行以验证你的预测:(2)在类JLab0502中添加下列方法:二、实验目的与要求:1.程序首先给整型变量x 和y 赋一个初值10,然后使用传值调用方式调用方法ff1对x 和y 做乘方及输出x 和y 的乘方值。

2.通过调用对象的方法在方法调用后修改了成员变量的值。

4.(2)编译该程序,观察报错信息,并思考原因。

三、实验步骤与源程序:(1)实验步骤a) 编辑源文件b) 编译c) 运行(2)源代码1:package test5;class XY{int x,y;void setX(int a){x=a;}void setY(int b){y=b;}int getX(){return x;}int getY(){return y;}void ff1(){x=getX()*getX();y=getY()*getY();System.out.println("x^2="+x);System.out.println("y^2="+y);}}public class Involution {public static void main(String args[]){XY xy=new XY();xy.setX(10);xy.setY(10);xy.ff1();}}2:package test5;public class KY3_6 {public static void main(String args[]) {Power p=new Power();p.ff2(10,10);System.out.println("方法调用后x="+p.x+", y="+p.y);}}class Power{int x=10, y=10;void ff2(int passX, int passY) {System.out.println("初始时x="+x+", y="+y);x=passX*passX;y=passY*passY;System.out.println("方法调用中x="+x+", y="+y);}}3(1):class Pet{protected String name;public Pet(String n){name = n;}public String getName(){return name;}public String move(){return "run";}public String speak(){return "";}public String toString(){return "My pet " + name;}}class Dog extends Pet{protected int weight;public Dog(String s){super(s);}}class JLab0501{public static void main(String[] args){Pet myPet = new Pet("George");Dog myDog = new Dog("Spot");System.out.println(myPet.toString() + "\n" + "Speak: " +myPet.speak() +"\n" + myPet.move() + " " +myPet.getName() + "\n");System.out.println(myDog.toString() + "\n" + "Speak: " +myDog.speak() +"\n" + myDog.move() + " " +myDog.getName() + "\n"); }}3(2),3(3),3(4),3(5)(已集合在一起):class Pet{protected String name;public Pet(String n){name = n;}public String getName(){return name;}public String move(){return "run";}public String speak(){return "";}public String toString(){return "My pet " + name;}}class Dog extends Pet{protected int weight=0;void setWeight(int a){weight=a;}int getWeight(){return weight;}public Dog(String s){super(s);// super是指向父类的指针可以通过该指针调用父类//的函数}public String speak(){return "woof woof";}}class JLab0501{public static void main(String[] args){Pet myPet = new Pet("George");Dog myDog = new Dog("Spot");Dog dog=new Dog(“snoopy”);dog.setWeight(10);System.out.println(myPet.toString() + "\n" + "Speak: " +myPet.speak() +"\n" + myPet.move() + " " +myPet.getName() + "\n");System.out.println(myDog.toString() + "\n" + "Speak: " +myDog.speak() +"\n" + myDog.move() + " " +myDog.getName() + "\n");System.out.println(dog.toString()+"\n"+"Speak:"+dog.speak()+"\n"+dog.m ove()+" "+dog.getName()+"\n"+"Weight:"+dog.getWeight()+"\n");}}4(1):public class JLab0502 {public static void test() {System.out.println("test() invoked");}public static int test(int i) {System.out.println("test(" + i + ") invoked");return i;}public static String test(String s) {System.out.println("test(" + s + ") invoked");return s;}public static void test(String s, int i) {System.out.println("test(" + s + ", " + i + ") invoked");}public static void test(int i, String s) {System.out.println("test(" + i + ", " + s + ") invoked");}public static void main(String[] args) {test();test(100);test("test");test("test",100);test(100,"test");}}4(2):添加方法:public static int test(int j) {System.out.println("test(" + j + ") invoked");return j;}四、测试数据与实验结果:1:2:3(1):猜测:My pet GeorgeSpeak:run GeorgeMy pet SpotSpeak:run Spot结果截图:3(2),3(3),3(4),3(5)(已集合在一起):4(1):猜想:test() invokedtest(100) invokedtest(test) invokedtest(test,100) invokedtest(100,test) invoked截图结果:4(2):重载必须保证参数不同。

java程序设计课程--实验报告-实验05

java程序设计课程--实验报告-实验05
System.out.println("middle3:" + middle3);
System.out.println("brithplace: "+brithplace2);
//Get the lengths of the sides as input
System.out.print("Please enter the lengths of the two sides of" + "a right triangle(separate by a blank space):");
side1 = scan.nextDouble();
side2 = scan.nextDouble();
//Compute the length of the hypotenuse
hypotenuse =Math.sqrt(side1*side1+side2*side2);
//Print the result
change1 = college.toUpperCase();//part(c)
change2 = change1.replace('o','*');//part(d)
change3 = college.concat(town);//part(e)
System.out.println("The final string is" + change3);
代码如下(红色字体表示填空部分):
public class StringPlay {
public static void main (String[] args){

java程序设计实验报告

java程序设计实验报告

java程序设计实验报告实验一、Java编译IDE环境的安装和使用一、实验目的1. 掌握JDK的上机安装过程和环境变量配置。

2. 掌握Java程序的编译过程,和Java应用程序的执行。

二、实验内容1. 安装jdk1.5.0,配置path和classpath环境变量2、编写java程序HelloWorld,并完成程序的编译和运行三、实验要求独立完成安装过程与程序编译四、实验工具Jdk1.5.0文本文件实验操作步骤:实验小结:通过该实验掌握了jdk的安装及环境变量的配置,学会编写第一个java程序,并能够使用java和javac命令编译程序。

实验二、Java程序的基本结构一、实验目的1.理解Java程序的三种基本结构,即顺序结构、分支结构和循环结构。

2.掌握用于分支的if…else、switch…case语句。

3.掌握用于循环的for、while、do…while语句。

4.熟悉break、cotinue作用。

二、实验内容用Eclipse创建一个工程文件,编写一个java文件,放在该工程里,该文件主要测试java中的基本控制结构。

三、实验要求要求掌握java程序的三种基本控制结构,掌握java中10个流程控制关键字的使用。

四、实验工具Jdk1.5.0Eclipse3.2实验操作步骤:求2~50之间的所有素数public class Primes {public static void main(String args[]){final int MAX=50;int i, k;boolean yes;for(k=2; k<="" p="">{yes=true;i=2;while (i<=k-1 && yes){if (k%i==0)yes=false;i++;}if (yes)System.out.print(k+" ");}}}实验小结:通过该实验掌握了java程序的基本控制结构。

JAVA语言程序设计实验报告

JAVA语言程序设计实验报告

实验一、安装JDK并熟悉java的运行环境实验二、基本语法练习实验三、面向对象编程实验(4)实验四、异常处理实验实验五、小应用程序实验实验六、图形图像实验实验七、GUI(图形用户接口)实验(4)实验八、多线程实验实验九、输入输出流实验(4)实验十、数据库应用实验(4)实验一、安装JDK并熟悉java的运行环境一、实验目的熟悉JA V A的运行环境及学习简单的编程。

二、预习内容安装工具软件的基本方法。

三、实验设备与环境装有JA V A语言工具软件(Eclipse )的微机若干四、实验内容安装Eclipse及JA V A的核心编译程序J2SDK。

1、打开Eclipse的安装盘安装Eclipse。

2、在相同目录下安装J2SDK。

3、打开Eclipse软件对J2SDK文件进行配置。

4、编写一应用程序,在屏幕上显示“HELLO WORLD”和爱心标志。

Pulic class Hello{public static void main(String args[]){//在屏幕上显示“HELLO WORLD”和爱心标志}}5、编写一小程序实现上述功能:在屏幕上显示“HELLO WORLD”和爱心标志。

实验结果五、注意事项⒈认真填写实验报告⒉遵守实验室各项制度,服从实验指导教师的安排⒊按规定的时间完成实验六、说明本次实验建议学时数2学时七、实验总结与体会实验二、基本语法练习一、实验目的⒈熟悉Java的基本语法⒉编写应用程序接收命令行参数⒊编写应用程序接收用户从键盘的输入⒋掌握字符串与数组的基本方法二、预习内容java编程的基本结构三、实验设备与环境装有JA V A语言工具软件(Eclipse )的微机若干四、实验内容⒈编写一个应用程序求若干个数的平均数,原始数字要求从命令行输入。

应用程序中main方法的参数String类型的数组args能接受用户从命令行键入的参数。

(1)编辑A verage.java。

class A verage{public static void main(String args[ ]){double n,sun=0;for (int l=0;l<args.legth;l++){sum=sum+Double.valueOf(arg[l].doubleV alue();)}n=sum/args.length;System.out.println(“average=”+n);}}命令行参数:12.34 34.45 21212121注意:1)参数的个数可以利用args.length来取得。

JAVA第五次实验报告

JAVA第五次实验报告

JAVA第五次实验报告实验五:数组的引用类型与多态性实验目的:1.掌握数组的引用类型和多态性的概念和使用。

2. 熟悉Java中数组的创建、初始化和遍历。

3.理解多态性的概念和实现方式。

4. 掌握Java中类和对象的定义和使用。

实验过程:1. 创建了一个名为"Person"的类,拥有一个私有成员变量"name"和一个公有的构造方法和一个公有的成员方法printName(。

2. 创建了一个名为"Student"的类,作为Person类的子类,拥有一个私有成员变量"grade"和一个公有的构造方法和一个公有的覆盖了父类方法的成员方法printName(。

3. 创建了一个名为"Teacher"的类,作为Person类的子类,拥有一个私有成员变量"subject"和一个公有的构造方法和一个公有的覆盖了父类方法的成员方法printName(。

4. 在主函数中,创建了一个长度为5的Person类型的数组,并分别实例化了两个Student对象和两个Teacher对象,并将这四个对象赋值给数组的前四个元素。

5. 遍历数组,调用每个对象的printName(方法,分别输出每个对象的名称。

实验结果:运行程序后,实验结果如下:Student - 1Student - 2Teacher - 1Teacher - 2实验分析:通过以上实验,我们可以看到数组可以存储同一父类引用类型的不同子类对象,这种特性称为多态性。

在遍历数组时,可以调用每个对象的方法,实现多态的效果。

在本实验中,通过将两个Student对象和两个Teacher对象赋值给Person类型的数组,我们实现了多态性。

在遍历数组时,调用每个对象的printName(方法,程序会根据对象的具体类型执行对应的方法。

实验总结:通过本次实验,我学会了如何使用数组的引用类型和多态性。

java实验报告五

java实验报告五

java实验报告五Java实验报告五一、引言Java是一种面向对象的编程语言,具有跨平台性、安全性和易学性等特点。

本实验报告将介绍我们在学习Java过程中进行的第五个实验。

二、实验目的本次实验的主要目的是通过实践进一步熟悉Java的基本语法和面向对象的编程思想,并掌握Java中的异常处理机制。

三、实验内容本次实验主要分为两个部分:实现一个简单的图书管理系统和异常处理。

3.1 图书管理系统我们设计了一个简单的图书管理系统,主要包括图书类、用户类和图书管理类。

图书类包含图书的基本信息,如书名、作者、出版社等;用户类包含用户的基本信息,如姓名、年龄、性别等;图书管理类实现了对图书和用户的管理功能,如添加图书、删除图书、借阅图书等。

3.2 异常处理在图书管理系统中,我们使用了异常处理机制来处理一些可能发生的异常情况,如图书馆中没有要借阅的图书、图书已被借完等。

我们使用try-catch语句来捕获异常,并根据具体情况进行相应的处理。

四、实验过程4.1 图书管理系统的实现首先,我们定义了图书类和用户类,并在类中定义了相应的属性和方法。

然后,我们创建了一个图书管理类,并在该类中实现了对图书和用户的管理功能。

最后,我们编写了一个测试类,通过创建对象并调用相应的方法来测试图书管理系统的功能是否正常。

4.2 异常处理在图书管理类的方法中,我们使用了try-catch语句来捕获可能发生的异常。

当出现异常时,程序会跳转到catch块中,并执行相应的处理代码。

我们根据具体情况,输出相应的错误信息或进行其他操作,以保证程序的正常运行。

五、实验结果通过测试,我们发现图书管理系统的功能正常运行,并且能够正确处理可能发生的异常情况。

我们成功添加了图书、删除了图书,并能够正确借阅和归还图书。

六、实验总结通过本次实验,我们进一步熟悉了Java的基本语法和面向对象的编程思想。

我们学会了如何设计和实现一个简单的图书管理系统,并掌握了异常处理的基本方法。

(完整版)《JAVA程序设计》实验报告

(完整版)《JAVA程序设计》实验报告

福建师范大学协和学院本科实验报告课程名称:JA V A程序设计系别:专业:班级:学号:学生姓名:2011年月日实验项目列表《JA V A程序设计》实验相关说明实验要求:1.明确实验课是课程的重要组成部分,与理论课有着同等地位,是培养自身的实验技能与创新能力的重要途径;2.在实验课前,对实验的目的、要求和基本内容,实验的重点和难点,应进行预习与讨论,确定实施措施,并编写好程序;3.了解实验室的规章制度和安全用电常识、实验设备损坏赔偿制度等,加强安全意识,爱惜实验设备;4.实验课期间不得擅自离开实验室或从事与本实验无关的活动,按时按质完成实验作业,培养创造性思维,努力提高自身的实践能力;5.每次实验应提交实验结果,指导老师将结合实验操作过程给予综合评分(对于有创造性的实验成果酌情给予加分),作为期末考试成绩的一部分。

实验须知:1.每次实验完成之后,学生须填写实验报告,并上交。

报告内容包括:实验目的、实验内容、实验步骤、思路分析或流程图、程序源代码、实验中未解决的问题、屏幕出错提示代码、出错原因、解决方法及实验心得等内容。

不交实验报告的学生,本次实验成绩为0分。

2.若有拷贝现象,程序代码雷同的学生实验成绩一律为0分。

3.每次实验任务必须在2-6节课内完成,并经过实验指导老师检查才能得分。

没能按时完成的同学,本次实验成绩为0分。

福建师范大学协和学院《JA V A程序设计》课程实验报告班级:______学号:_________________姓名:_____________成绩:教师签字:实验一简单输入/输出项目设计一、实验目的1、了解Java运行环境的安装与配置。

2、了解程序的基本结构,编辑、编译与运行方法。

3、掌握方法的调用、异常的处理。

二、实验环境(主要仪器设备和软件)1、操作系统Windows XP2、JA V A开发包JSDK1.63、代码编辑器Jcreart3.24、数据库管理系统MySQL5.05、数据库可视化管理平台CapVideo8.06、Web服务器TomCat5.07、JA V A开发工具MyEclipse7.08、微机三、实验内容1、Java开发包的下载与安装;2、环境变量的设置;3、安装配套开发软件;4、熟悉各类软件的使用;5、以下内容至少任选一项完成:选项一:编写一个应用程序绘制一个如下的操作菜单。

Java程序设计实验报告

Java程序设计实验报告

Java程序设计实验报告—. 实验要求1. 实验一:Java程序的编辑、编译和运行(1)了解java语言特点,掌握JDK环境中编译、运行程序的操作。

(2)熟悉EditPlus编辑器的使用。

(3)掌握Java Application的程序结构和开发过程。

(4)了解Java程序文件需和类名的说明方法。

2. 实验二:Java程序设计基础(1)了解Java的数据类型:(2)掌握各种变疑的声明方式:(3)理解运算符的优先级;(4)掌握Java基本数据类型、运算符与表达式、数组的使用方法;(5)理解Java程序语法结构,掌握顺序结构、选择结构和循环结构语法的程序设il•方法:(6)熟练掌握数组的使用(7)通过以上内容,掌握Java语言的编程规则。

3. 实验三:类的封装性设计(1)掌握从实体中抽象类与对象的方法(2)掌握泄义类、创建对象、使用类与对象(3)掌握类及其成员的修饰符的使用(4)掌握构造函数的使用。

4. 实验四:类的继承性与多态设汁(1)掌握类的继承机制(2)熟悉类中成员的访问控制(3)掌握方法的多态性5. 实验五:Applet小程序图形用户界而设计(1)掌握Java的GUI设计技术,(2)掌握AWT和Swing的应用技巧。

(3)掌握布局管理器(4)掌握事件处理的方法。

(5)掌握Java小程序的特点和编写方法。

二. 实验内容1.实验一:java程序的编辑、编译和运行。

(1)使用EditPlus编写源程序(V)吏奚⑸如(D)工侵(P) IM(T)浏览詢BJ窗口(W) ^EtJ(H)Z3E4*1inport javax・swing・JCpnioDFane:2public C13L S3Hello Java□ Ipublic static void itain(String[] args)(JOptionlanc・nhnvMcnncgrDidog(null. Jiva r,-Display message0, JQpxicnFane ・ INFOR}1AIION_ME55AGI); £ F 9 )(2) 编写两个Java Application程序(A)输岀一行文字"Hello, JAVA!"用消息对话框显示文本信息。

《JAVA程序设计基础》实验报告5

《JAVA程序设计基础》实验报告5

河南工业大学《JAVA程序设计基础》实验报告5实验五数组及其应用实验时间: 3.28【实验目的】1.掌握Java中数组的定义及创建方法。

2.掌握Java语言中数组的遍历方法。

3.掌握Java中数组的应用。

【实验环境】JDK、Eclipse【实验内容】1.定义一个数组来存储12个学生的成绩,计算并输出学生的平均成绩。

2.定义一个15个元素的数组,对其中的元素按升序排列,输出排序后的结果3.定义一个10个元素数组,找出其最小值并输出该最小值和其下标。

【实验源码及结果】1、定义一个数组来存储12个学生的成绩,计算并输出学生的平均成绩。

代码:package ch4;public class Fan1 {public static void main(String[] args) {// TODO Auto-generated method stubint [] score={67,78,72,78,90,89,98,64,69,74,71,56};System.out.println("十二学生的平均成绩:"+average(score));}public static double average(int []sco){double sum=0.0d;for(int i=0;i<sco.length;i++){sum+=sco[i];}return sum/sco.length;}}运行结果:2、定义一个15个元素的数组,对其中的元素按升序排列,输出排序后的结果。

代码:package ch4;public class Fan2 {public static void main(String[] args) {// TODO Auto-generated method stubint i;int[]score={67,78,72,78,90,89,98,64,69,74,71,56,89,99,76};int n=score.length;for (i=0;i<n-1;i++){for(int j=0;j<n-i-1;j++){if (score [j]> score [j+1]){int a=score[j];score[j]=score[j+1];score[j+1]=a;}}}for(i=0;i<n;i++){System.out.println(score [i]);}}}运行结果:3、定义一个10个元素数组,找出其最小值并输出该最小值和其下标。

《JAVA程序设计》实验报告5

《JAVA程序设计》实验报告5

《JAVA程序设计》实验报告5实验单元五Java 类的应用、继承实验六Java类的应用实验时间: 4.4【实验目的】1、定义自己的Java类。

2、能够应用类。

【实验环境】JDK、Eclipse【实验内容】1.定义一个学生类,包括属性:学号、姓名、年龄(取值介于0-100之间)、成绩(取值介于0-100之间),定义一个方法显示学生信息。

并测试该类。

2.定义一个长方形类,有长、宽属性,并给出计算面积及周长的方法。

并测试该类。

3.设计一个人类Person,包含姓名,年龄,性别基本信息,修饰为私有的设计一个人类Person,包含姓名,年龄,性别基本信息,修饰为私有的;定义构造方法,用来初始化基本信息;定义方法show,用来显示基本信息值。

测试该类。

4.建立一个名叫Cat的类:属性:姓名、毛色、年龄行为:显示姓名、喊叫请编写主类:创建一个对象猫,姓名为“妮妮”,毛色为“灰色”,年龄为2岁,在屏幕上输出该对象的毛色和年龄,让该对象调用显示姓名和喊叫两个方法。

5.类的成员变量请定义一个交通工具(Vehicle)的类其中有: 属性速度(speed)体积(size)等等方法移动(move())设置速度(setSpeed(int speed))加速speedUp(),减速speedDown()等等. 最后在测试类Vehicle中的main()中实例化一个交通工具对象并通过方法给它初始化speed,size的值并且通过打印出来。

另外调用加速减速的方法对速度进行改变。

【详细分析】(此项由学生自己完成)【实验源码】(此项由学生自己完成)1.定义一个学生类,包括属性:学号、姓名、年龄(取值介于0-100之间)、成绩(取值介于0-100之间),定义一个方法显示学生信息。

并测试该类。

代码:package ch5;public class Student {public int no;public String name;public int age;public int cg;public void setNo(int no){this.no=no;}public void setName(String name){=name;}public void setAge(int age){this.age=age;if(age>0&&age<=100);elseSystem.out.println("请输入合法的年龄值:");}public void setCg(int cg){this.cg=cg;if(cg>0&&cg<=100);elseSystem.out.println("请输入合法的成绩值:");}}package ch5;public class StudentText {public static void main(String[] args) {// TODO Auto-generated method stubStudent stu=new Student();stu.setNo(12);System.out.println("学号:"+stu.no);stu.setName("lihua");System.out.println("姓名:"+);stu.setAge(18);System.out.println("年龄:"+stu.age);stu.setCg(21);System.out.println("成绩:"+stu.cg);}}2.定义一个长方形类,有长、宽属性,并给出计算面积及周长的方法。

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

C H ANG Z H OU U N I V E RSITY实验报告课程名称:JAVA程序设计学生姓名:文浩班级计算机141 学号14416122学院(系):信息数理学院指导教师:吕猛实验时间:2016 年12 月 6 日实验名称:实验五基于Swing的图形用户界面开发实验实验五基于Swing的图形用户界面开发实验一实验容(1)完成开发界面如图所示,实现如下功能①选中“查看已有名片”按钮,程序处于查看状态,可以在“名片列表”中选择要查看的名片,程序在“名片详实信息”栏显示该名片的详实信息,此状态中名片信息处于不可编辑状态②选中“添加新名片”按钮,程序处于添加状态,所有关于明天信息的项目都处于可编辑状态,设置完成相关信息后,单击“添加”按钮,在“名片列表”中出现新添加名片的名称。

单击“清空”按钮可以清空还没提交的容③在查看状态和添加状态下,都可以通过点击“爱好”、“学历”单选按钮以显示名片的不同附加信息(备注:名片附加信息部分,当点击“爱好”按钮时显示的如图1所示,当点击“学历”按钮时显示如图2所示。

)图1图2(2)记事本设计与实现如图所示(1)编程实现如图所示的界面(2)实现文件、编辑、格式、查看,帮助菜单(3)实现记事本的基本功能二实验目的(1)理解组件的分类(2)掌握容器、布局管理器、普通组件的使用(3)理解事件处理机制的工作原理(4)掌握事件的添加和功能代码的编写方法三实验过程(1)问题分析答:名片的设计除了使用最基本的组件,如JButton,Jlist,JCheckBox,JTextField, JRadioButton, CardLayout以外,最主要的是逻辑事件的编写,在成功布局完见面后,就需要编写事件处理。

首先,由于是名片信息,保存着一个人的基本信息,所以可以用一个类来表示,如PersonInf类,其次,由于是多个人的信息,可以通过ArrayList 来存放类;其次就是当点击按钮的时候,正确添加和显示信息,此处用到cardLayout 布局,可以减少界面的复杂度,在使用JList的时候,除了加滚动条意外,还需要listModel 获取数据等。

(2)代码编写答:(1)public class PersonInf {public String yourname;public String address1;public String address2;public String email;public String sing = null;public String dance = null;public String web = null;public String football = null;public String basketball = null;public String volleyball = null;public String xueshi = null;public String shuoshi = null;public String boshi = null;public String qita = null;public PersonInf(String yourname, String address1, String address2, String email, String sing, String dance,String web, String football, String basketball, String volleyball,String xueshi,String shuoshi,String boshi, String qita) {super();this.yourname = yourname;this.address1 = address1;this.address2 = address2;this.email = email;this.sing = sing;this.dance = dance;this.web = web;this.football = football;this.basketball = basketball;this.volleyball = volleyball;this.xueshi = xueshi;this.shuoshi = shuoshi;this.boshi = boshi;this.qita = qita;}}import java.awt.BorderLayout;import javax.swing.*;import java.awt.*;import java.awt.EventQueue;import javax.swing.JFrame;import javax.swing.JPanel;import javax.swing.border.EmptyBorder;import javax.swing.JInternalFrame;import javax.swing.JRadioButton;import javax.swing.JLayeredPane;import javax.swing.JSplitPane;import javax.swing.BorderFactory;import javax.swing.Box;import javax.swing.DefaultListModel;import ponent;import javax.swing.border.SoftBevelBorder;import javax.swing.event.ListSelectionEvent;import javax.swing.event.ListSelectionListener; import javax.swing.border.BevelBorder;import javax.swing.JLabel;import javax.swing.JTextField;import javax.swing.JButton;import javax.swing.border.EtchedBorder;import javax.swing.JFormattedTextField;import javax.swing.JSpinner;import javax.swing.JTable;import javax.swing.JList;import javax.swing.JScrollPane;import java.awt.Color;import javax.swing.JTextArea;import java.awt.event.ActionListener;import java.awt.event.ItemEvent;import java.awt.event.ItemListener;import java.util.ArrayList;import java.awt.event.ActionEvent;import java.awt.CardLayout;public class card extends JFrame {private JPanel contentPane;public JTextField nametext;public JTextField address1test;public JTextField address2test;public JTextField emailtest;public JButton addmessagebutton;public JButton clearbutton;private JList list;//学历,爱好,添加新名片,查看名片的按钮private JRadioButton rdbtnNewRadioButton_2;private JRadioButton rdbtnNewRadioButton_3;public JRadioButton rdbtnNewRadioButton_1;public JRadioButton rdbtnNewRadioButton;private JPanel panel_4;//学历和爱好的多选项public JCheckBox singbox;public JCheckBox dancebox;public JCheckBox webbox;public JCheckBox footballbox;public JCheckBox basketballbox;public JCheckBox volleyballbox;public JCheckBox xueshibox;public JCheckBox boshibox;public JCheckBox shuoshibox;public JCheckBox qitabox;ListSelectionModel listSelectionModel;CardLayout mycard; //用于切换爱好和学历卡片//定义默认的list模型DefaultListModel defaultListModel = new DefaultListModel();/*** Launch the application.*/public static void main(String[] args) {EventQueue.invokeLater(new Runnable() {public void run() {try {card frame = new card();frame.setVisible(true);} catch (Exception e) {e.printStackTrace();}}});}/*** Create the frame.*///窗体的构造函数,用于设定相关组件并且添加事件,合理安排组建的位置public card() {setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);setBounds(100, 100, 464, 338);contentPane = new JPanel();contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));setContentPane(contentPane);contentPane.setLayout(null);JPanel panel = new JPanel();panel.setBounds(0, 0, 459, 316);contentPane.add(panel);panel.setLayout(null);Box horizontalBox = Box.createHorizontalBox();horizontalBox.setBounds(131, 203, 121, -41);panel.add(horizontalBox);Box horizontalBox_1 = Box.createHorizontalBox();horizontalBox_1.setBounds(0, 0, 1, 1);panel.add(horizontalBox_1);JPanel panel_1 = new JPanel();panel_1.setBounds(16, 27, 166, 66);panel_1.setBorder(BorderFactory.createLoweredSoftBevelBorder());panel.add(panel_1);rdbtnNewRadioButton_1 = new JRadioButton("查看已有名片");rdbtnNewRadioButton_1.setSelected(true);panel_1.add(rdbtnNewRadioButton_1);rdbtnNewRadioButton_1.addActionListener(new cardseechangelistener());rdbtnNewRadioButton = new JRadioButton("添加新名片");panel_1.add(rdbtnNewRadioButton);rdbtnNewRadioButton.addActionListener(new cardseechangelistener());ButtonGroup group2 = new ButtonGroup();group2.add(rdbtnNewRadioButton_1);group2.add(rdbtnNewRadioButton);JPanel panel_2 = new JPanel();panel_2.setBorder(new SoftBevelBorder(BevelBorder.LOWERED, null, null, null, null)); panel_2.setBounds(194, 27, 248, 182);panel.add(panel_2);panel_2.setLayout(null);JLabel lblNewLabel = new JLabel("");lblNewLabel.setBounds(34, 13, 61, 16);panel_2.add(lblNewLabel);nametext = new JTextField();nametext.setBounds(100, 8, 130, 26);panel_2.add(nametext);nametext.setColumns(10);address1test = new JTextField();address1test.setColumns(10);address1test.setBounds(100, 36, 130, 26);panel_2.add(address1test);JLabel label = new JLabel("地址");label.setBounds(34, 41, 61, 16);panel_2.add(label);address2test = new JTextField();address2test.setColumns(10);address2test.setBounds(100, 64, 130, 26);panel_2.add(address2test);JLabel label_1 = new JLabel("联系地址");label_1.setBounds(28, 69, 61, 16);panel_2.add(label_1);JLabel label_2 = new JLabel("电子");label_2.setBounds(28, 97, 61, 16);panel_2.add(label_2);emailtest = new JTextField();emailtest.setColumns(10);emailtest.setBounds(100, 92, 130, 26);panel_2.add(emailtest);rdbtnNewRadioButton_2 = new JRadioButton("爱好");rdbtnNewRadioButton_2.setBounds(18, 125, 61, 16);panel_2.add(rdbtnNewRadioButton_2);rdbtnNewRadioButton_2.addActionListener(new cardchangelistener());rdbtnNewRadioButton_3 = new JRadioButton("学历"); rdbtnNewRadioButton_3.setBounds(18, 153, 61, 16);panel_2.add(rdbtnNewRadioButton_3);rdbtnNewRadioButton_3.addActionListener(new cardchangelistener());ButtonGroup group1 = new ButtonGroup();group1.add(rdbtnNewRadioButton_2);group1.add(rdbtnNewRadioButton_3);addmessagebutton = new JButton("添加");addmessagebutton.addActionListener(new addmessagebuttonlistener());addmessagebutton.setBounds(123, 121, 85, 27);panel_2.add(addmessagebutton);//清空按钮,点击时触发清空的事件clearbutton = new JButton("清空");clearbutton.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent e) {if(e.getSource() == clearbutton){singbox.setSelected(false);dancebox.setSelected(false);webbox.setSelected(false);footballbox.setSelected(false);basketballbox.setSelected(false);volleyballbox.setSelected(false);xueshibox.setSelected(false);shuoshibox.setSelected(false);boshibox.setSelected(false);qitabox.setSelected(false);nametext.setText("");address1test.setText("");address2test.setText("");emailtest.setText("");}}});clearbutton.setBounds(123, 149, 85, 27);panel_2.add(clearbutton);clearbutton.setEnabled(false);addmessagebutton.setEnabled(false);JPanel panel_3 = new JPanel();panel_3.setBorder(new SoftBevelBorder(BevelBorder.LOWERED, null, null, null, null)); panel_3.setBounds(16, 123, 166, 187);panel.add(panel_3);panel_3.setLayout(null);list = new JList();list.setModel(defaultListModel);list.setBounds(19, 82, 85, 87);listSelectionModel = list.getSelectionModel();listSelectionModel.addListSelectionListener(new SharedListSelectionHandler());JScrollPane scrollPane = new JScrollPane(list);scrollPane.setBounds(6, 6, 154, 175);panel_3.add(scrollPane);panel_4 = new JPanel();panel_4.setBounds(194, 232, 248, 78);panel.add(panel_4);mycard = new CardLayout();panel_4.setLayout(mycard);JPanel panel_5 = new JPanel();panel_5.setBorder(new SoftBevelBorder(BevelBorder.LOWERED, null, null, null, null)); panel_4.add(panel_5);panel_5.setLayout(null);singbox = new JCheckBox("唱歌");singbox.setBounds(6, 16, 66, 23);panel_5.add(singbox);dancebox = new JCheckBox("跳舞");dancebox.setBounds(82, 16, 66, 23);panel_5.add(dancebox);webbox = new JCheckBox("上网");webbox.setBounds(160, 16, 66, 23);panel_5.add(webbox);footballbox = new JCheckBox("足球");footballbox.setBounds(6, 41, 66, 23);panel_5.add(footballbox);basketballbox = new JCheckBox("篮球");basketballbox.setBounds(82, 41, 66, 23);panel_5.add(basketballbox);volleyballbox = new JCheckBox("排球");volleyballbox.setBounds(160, 41, 66, 23);panel_5.add(volleyballbox);JPanel panel_6 = new JPanel();panel_6.setBorder(new SoftBevelBorder(BevelBorder.LOWERED, null, null, null, null)); panel_4.add(panel_6);panel_6.setLayout(null);xueshibox = new JCheckBox("学士");xueshibox.setBounds(16, 16, 75, 23);panel_6.add(xueshibox);boshibox = new JCheckBox("博士");boshibox.setBounds(16, 49, 83, 23);panel_6.add(boshibox);shuoshibox = new JCheckBox("硕士");shuoshibox.setBounds(111, 16, 75, 23);panel_6.add(shuoshibox);qitabox = new JCheckBox("其他");qitabox.setBounds(111, 49, 111, 23);panel_6.add(qitabox);nametext.setEnabled(false);address1test.setEnabled(false);address2test.setEnabled(false);emailtest.setEnabled(false);JLabel lblNewLabel_1 = new JLabel("选择动作");lblNewLabel_1.setBounds(16, 6, 61, 16);panel.add(lblNewLabel_1);JLabel lblNewLabel_2 = new JLabel("名片详细信息");lblNewLabel_2.setBounds(194, 6, 84, 16);panel.add(lblNewLabel_2);JLabel lblNewLabel_3 = new JLabel("名片附加信息");lblNewLabel_3.setBounds(191, 214, 87, 16);panel.add(lblNewLabel_3);JLabel lblNewLabel_4 = new JLabel("名片列表");lblNewLabel_4.setBounds(16, 105, 61, 16);panel.add(lblNewLabel_4);}public ArrayList <PersonInf> items = new ArrayList<>();//当点击添加按钮时,将文本编辑框及多选框中的信息保存到新建的personinf类中//并且将每个新建的personinf放到Arraylist中,只将名字显示到list中class addmessagebuttonlistener implements ActionListener{Overridepublic void actionPerformed(ActionEvent e) {// TODO Auto-generated method stubif(e.getSource() == addmessagebutton){System.out.println("you add addmessagebutton");String dance = null;String sing = null;String web = null;String football = null;String basketball = null;String volleyball = null;String xueshi = null;String shuoshi = null;String boshi = null;String qita = null;if(singbox.isSelected()){sing = singbox.getText();}if(dancebox.isSelected()){dance = dancebox.getText();}if(webbox.isSelected()){web = webbox.getText();}if(footballbox.isSelected()){football = footballbox.getText();}if(basketballbox.isSelected()){basketball = basketballbox.getText();}if(volleyballbox.isSelected()){volleyball = volleyballbox.getText();}if(xueshibox.isSelected()){xueshi = xueshibox.getText();}if(shuoshibox.isSelected()){shuoshi = shuoshibox.getText();}if(boshibox.isSelected()){boshi = boshibox.getText();}if(qitabox.isSelected()){qita = qitabox.getText();}PersonInf p1 = new PersonInf(nametext.getText(),address1test.getText(), address2test.getText(),emailtest.getText(),sing,dance,web,football,basketball,volleyball,xueshi,shuoshi,boshi,qita);items.add(p1);defaultListModel.addElement("名字为:"+p1.yourname);}}}//此处用于判断是选择爱好卡片还是学历卡片class cardchangelistener implements ActionListener{Overridepublic void actionPerformed(ActionEvent e) {// TODO Auto-generated method stub//如果选择的是爱好,则显示爱好的界面if(rdbtnNewRadioButton_2.isSelected()){mycard.next(panel_4);}//如果是选择学历,则显示学历的界面if(rdbtnNewRadioButton_3.isSelected()){mycard.previous(panel_4);}}}//此处是用与判断名片的两种状态,如果是查看已有名片,则将可编辑区的属性设置为不可编辑//如果是添加现有名片,则可以编辑class cardseechangelistener implements ActionListener{Overridepublic void actionPerformed(ActionEvent e) {// TODO Auto-generated method stubif(e.getSource() == rdbtnNewRadioButton){nametext.setEnabled(true);address1test.setEnabled(true);address2test.setEnabled(true);emailtest.setEnabled(true);addmessagebutton.setEnabled(true);clearbutton.setEnabled(true);rdbtnNewRadioButton_2.setSelected(true);singbox.setEnabled(true);dancebox.setEnabled(true);webbox.setEnabled(true);footballbox.setEnabled(true);basketballbox.setEnabled(true);volleyballbox.setEnabled(true);xueshibox.setEnabled(true);boshibox.setEnabled(true);shuoshibox.setEnabled(true);qitabox.setEnabled(true);}if(e.getSource() == rdbtnNewRadioButton_1) {nametext.setEnabled(false);address1test.setEnabled(false);address2test.setEnabled(false);emailtest.setEnabled(false);addmessagebutton.setEnabled(false);clearbutton.setEnabled(false);singbox.setSelected(false);dancebox.setSelected(false);webbox.setSelected(false);footballbox.setSelected(false);basketballbox.setSelected(false);volleyballbox.setSelected(false);xueshibox.setSelected(false);shuoshibox.setSelected(false);boshibox.setSelected(false);qitabox.setSelected(false);singbox.setEnabled(false);dancebox.setEnabled(false);webbox.setEnabled(false);footballbox.setEnabled(false);basketballbox.setEnabled(false);volleyballbox.setEnabled(false);xueshibox.setEnabled(false);boshibox.setEnabled(false);shuoshibox.setEnabled(false);qitabox.setEnabled(false);}}}//list中的事件处理器,当点击list中的选项时,将类信息显示到文本框中//与radiobutton上,此时处理不可编辑状态class SharedListSelectionHandler implements ListSelectionListener{Overridepublic void valueChanged(ListSelectionEvent e) {// TODO Auto-generated method stub//将学历及爱好的编辑状态设为不可编辑singbox.setSelected(false);dancebox.setSelected(false);webbox.setSelected(false);footballbox.setSelected(false);basketballbox.setSelected(false);volleyballbox.setSelected(false);xueshibox.setSelected(false);shuoshibox.setSelected(false);boshibox.setSelected(false);qitabox.setSelected(false);//获取list的index值int k = 0;k = list.getSelectedIndex();//创建PersonInf空类,用于存储从arraylist中获取的类对象PersonInf px = null;px = items.get(k);//将此类的信息显示到相应的组件上nametext.setText(px.yourname);address1test.setText(px.address1);address2test.setText(px.address2); emailtest.setText(px.email);if(px.sing != null){singbox.setSelected(true);}if(px.dance != null){dancebox.setSelected(true);}if(px.web != null){webbox.setSelected(true);}if(px.football != null){footballbox.setSelected(true);}if(px.basketball != null){basketballbox.setSelected(true);}if(px.volleyball != null){volleyballbox.setSelected(true);}if(px.xueshi != null){xueshibox.setSelected(true);}if(px.shuoshi != null){shuoshibox.setSelected(true);}if(px.boshi != null){boshibox.setSelected(true);}if(px.qita != null){qitabox.setSelected(true);}}}}(2)import java.io.*;import java.awt.*;import java.awt.event.*;import javax.swing.*;import java.util.Date;import java.text.SimpleDateFormat;public class Notepad extends JFrame{JMenuBar menub=new JMenuBar();JTextArea text=new JTextArea();JMenu files=new JMenu("文件(F)");JMenu edit=new JMenu("编辑(E)");JMenu formats=new JMenu("格式(O)");JMenu look=new JMenu("查看(V)");JMenu help=new JMenu("帮助(H)");JMenuItem newFile=new JMenuItem("新建(N)");JMenuItem open=new JMenuItem("打开(O)...");JMenuItem save=new JMenuItem("保存(S)");JMenuItem saveAs=new JMenuItem("另存为(A)...");JMenuItem page=new JMenuItem("页面设置(U)...");JMenuItem print=new JMenuItem("打印(P)...");JMenuItem exit=new JMenuItem("退出(X)");JMenuItem undo=new JMenuItem("撤销(U)");JMenuItem cut=new JMenuItem("剪切(T)");JMenuItem copy=new JMenuItem("复制(C)");JMenuItem paste=new JMenuItem("粘贴(P)");JMenuItem selectAll=new JMenuItem("全选(A)");JMenuItem timeDate=new JMenuItem("时间/日期(D)"); JCheckBoxMenuItem lineWrap=new JCheckBoxMenuItem("自动换行(M)");JMenuItem fonts=new JMenuItem("字体...");JMenuItem state=new JMenuItem("状态栏(S)..."); JMenuItem lookhelp=new JMenuItem("查看帮助(H)"); JMenuItem about=new JMenuItem("关于记事本(A)"); JFrame th=this;String name;String openedPath=null;boolean opened=false;boolean reworked=false;//初始化窗体Notepad(String name){super(name);=name;int x,y;Dimension size=Toolkit.getDefaultToolkit().getScreenSize(); x=(size.width-600)/2;y=(size.height-400)/2;setSize(600,400);setLocation(x,y); //让程序界面显示在屏幕中央setMinimumSize(new Dimension(250,150)); setDefaultCloseOperation(EXIT_ON_CLOSE);}//初始化布局void init(){//为控件添加助记符files.setMnemonic('F');edit.setMnemonic('E');formats.setMnemonic('O');help.setMnemonic('H');newFile.setMnemonic('N');open.setMnemonic('O');save.setMnemonic('S');saveAs.setMnemonic('A');page.setMnemonic('U');exit.setMnemonic('X');undo.setMnemonic('U');cut.setMnemonic('T');copy.setMnemonic('C');paste.setMnemonic('P');selectAll.setMnemonic('A');timeDate.setMnemonic('D');lineWrap.setMnemonic('M');lookhelp.setMnemonic('H');about.setMnemonic('A');//为控件添加快捷键newFile.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_N,InputEvent.CTRL_MASK)); open.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_O,InputEvent.CTRL_MASK)); save.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_S,InputEvent.CTRL_MASK)); print.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_P,InputEvent.CTRL_MASK)); exit.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_Q,InputEvent.CTRL_MASK)); cut.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_X,InputEvent.CTRL_MASK)); copy.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_C,InputEvent.CTRL_MASK)); paste.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_V,InputEvent.CTRL_MASK)); selectAll.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_A,InputEvent.CTRL_MASK)); timeDate.setAccelerator(KeyStroke.getKeyStroke("F5"));//将菜单项添加到菜单中files.add(newFile);files.add(open);files.add(save);files.add(saveAs);files.add(page);files.add(print);files.addSeparator();files.add(exit);edit.add(undo);edit.addSeparator();edit.add(cut);edit.add(copy);edit.add(paste);edit.addSeparator();edit.add(selectAll);edit.add(timeDate);formats.add(lineWrap);formats.add(fonts);look.add(state);help.add(lookhelp);help.add(about);menub.add(files);menub.add(edit);menub.add(formats);menub.add(look);menub.add(help);setJMenuBar(menub);getContentPane().add(new JScrollPane(text));//为控件添加事件侦听器Listen listen=new Listen();Listen1 listen1=new Listen1();newFile.addActionListener(listen);open.addActionListener(listen);save.addActionListener(listen);saveAs.addActionListener(listen);exit.addActionListener(listen);cut.addActionListener(listen);copy.addActionListener(listen);paste.addActionListener(listen);selectAll.addActionListener(listen); timeDate.addActionListener(listen); lineWrap.addActionListener(listen); lookhelp.addActionListener(listen);about.addActionListener(listen);open.addActionListener(listen1);save.addActionListener(listen1);saveAs.addActionListener(listen1);//暂时没有实现的功能undo.setEnabled(false);fonts.setEnabled(false);state.setEnabled(false);}class Listen implements ActionListener {//实现用于一般操作的事件侦听器public void actionPerformed(ActionEvent e) {Object source=e.getSource();if(source==newFile){text.setText("");th.setTitle(name);openedPath=null;opened=false;}else if(source==exit)System.exit(0);else if(source==selectAll)text.selectAll();else if(source==cut)text.cut();else if(source==copy)text.copy();else if(source==paste)text.paste();else if(source==lineWrap)text.setLineWrap(!text.getLineWrap());else if(source==lookhelp){String message=" ----这是一个帮助---";JOptionPane.showMessageDialog(th,message,"帮助",JOptionPane.PLAIN_MESSAGE); }else if(source==about){String message=" ----这是一个记事本----";JOptionPane.showMessageDialog(th,message,"关于",JOptionPane.PLAIN_MESSAGE); }else if(source==timeDate){Date nowTime=new Date();SimpleDateFormat times=new SimpleDateFormat("HH:mm yyyy-MM-dd");text.insert(times.format(nowTime),text.getCaretPosition());}}}class Listen1 implements ActionListener{//实现用于对文件进行操作的事件侦听器public void actionPerformed(ActionEvent e){Object source=e.getSource();//打开文件事件if(source==open){FileDialog openFile=new FileDialog(th,"打开文件...",FileDialog.LOAD);openFile.setVisible(true);String filePath=openFile.getDirectory()+openFile.getFile();try{FileInputStream fis=new FileInputStream(filePath);byte [] content=new byte[fis.available()];fis.read(content);text.setText(new String(content));text.setCaretPosition(0);if(openFile.getFile()!=null){th.setTitle(openFile.getFile()+name);openedPath=filePath;opened=true;}fis.close();catch(Exception ex){ex.printStackTrace();}opened=true;}//保存及另存为事件else if(source==save||source==saveAs){String savePath=openedPath;if(savePath==null||source==saveAs){FileDialog saveFile=new FileDialog(th,"保存文件...",FileDialog.SAVE);saveFile.setVisible(true);savePath=saveFile.getDirectory()+saveFile.getFile();}try{FileOutputStream fos=new FileOutputStream(savePath);fos.write(text.getText().getBytes());fos.close();}catch(Exception ex){ex.printStackTrace();}if(source==save)openedPath=savePath;}}}public static void main(String[] args){try {UIManager.setLookAndFeel( UIManager.getSystemLookAndFeelClassName());}catch (Exception e) {System.err.println("Couldn't use the system look and feel:"+e);}String name=("sun- 记事本");Notepad note=new Notepad(name);note.init();note.setVisible(true);}(3)程序运行和结果分析答:(1)(2)四实验小结经过本次实验,我理解组件的分类,掌握容器、布局管理器、普通组件的使用,理解事件处理机制的工作原理,掌握事件的添加和功能代码的编写方法。

相关文档
最新文档