武科大_java实验答案_全
- 格式:doc
- 大小:91.50 KB
- 文档页数:26
实验一熟悉NetBeans IDE 平台,开发环境及Java编程实验目的:1、我们使用的开发平台是NetBeans IDE,希望通过本次实验同学们能对NetBeans IDE 的开发环境有一个清楚的了解并能熟练运用,对Java语法进行初步运用,对面向对象的编程有一个直观的认识和深入理解,对于Java的基础知识进行理解运用和巩固。
为以后的实验中能够进行开发程序打下基础。
2、通过编程和上机实验理解Java语言是如何体现面向对象编程基本思想,了解类的封装方法,以及如何创建类和对象,了解成员变量和成员方法的特性,掌握OOP方式进行程序设计的方法,了解类的继承性和多态性的作用。
实验内容:● 1. 编写一个体现面向对象思想的程序。
● 2. 编写一个创建对象和使用对象的方法的程序。
● 3. 编写一个显示当前日期和时间的程序。
● 4. 编写不同成员变量修饰方法的程序。
● 5. 编写不同成员方法修饰方法的程序。
● 6. 编写体现类的继承性(成员变量、成员方法、成员变量隐藏)的程序。
●7. 编写体现类的多态性(成员方法重载、构造方法重载)的程序。
实验步骤:●双击桌面上的NetBeans IDE 6.5.1快捷方式或在文件菜单中打开它。
图1-1点击文件,创建新项目,创建一个项目名:experiment1。
点击按钮下一步:在项目名称处输入:experiment1 然后点击完成:项目experiment1在experiment1 下实现程序样例1:编写应用程序输出如下三角形。
****************【参考程序】public class Star{public static voidmain(String a[]){System.out.println(" *");System.out.println(" ***");System.out.println(" *****");System.out.println("*******");}}程序运行结果如图1-2所示。
本文部分内容来自网络整理,本司不为其真实性负责,如有异议或侵权请及时联系,本司将立即删除!== 本文为word格式,下载后可方便编辑和修改! ==java实验报告实验3答案实验三熟悉常用java工具包并运用编程实验目的:本实验旨在巩固同学们对上课所讲java.util工具包中Collection,List,Set,Map加深理解,对其用法编程有一个更加深入的理解,为同学们以后的能够用Java进行独立地编写桌面程序打下一定的基础。
实验内容:本实验的内容为:用Collection,List,Set,Map来存储数据,并进行排序,任何用Iterator,ListIterator或者Enumeration来打印其结果(按顺序和降序排列打印)。
共分为四部分部分(前三部分必做,如果选第四个,前三个可以不做。
):(1)按顺序把1,10,5,7,6,2,9,20,14,存入到List中(注:允许自己自定义任何数),并对其进行排序,打印其升序和降序排列的结果。
然后再向List中位置为第四位插入数 35看看会有啥结果?再向List中插入字符串“ddy”,试猜想排序是否会出错?然后看看运行结果是啥?程序:import java.util.*;public class SY3{public SY3(){List list=new ArrayList();list.add(1);list.add(10);list.add(5);list.add(7);list.add(6);list.add(2);list.add(9);list.add(20);list.add(14);list.add(35);list.add("ddy");System.out.println("原序列:");for(int i=0;i<=list.size()-1;i++){System.out.println(list.get(i));}System.out.println("新序列");for(int i=0;i<=list.size()-1;i++){Collections.sort(list);Collections.reverse(list);System.out.println(list.get(i));}}public static void main(String[] args){new SY3();}}结果如图(2)按顺序把下面一组数([1,2] [3,4] [2,2] [6,4] [5,2] [4,4])存放到Map中(注:允许自己自定义任何数),并按key 和value的值进行排序。
Java实验二实验二类与对象实验目的1、掌握面向对象程序设计的方法和Java作为面向对象程序设计语言的特点;2、掌握修饰符和构造方法的使用规则;3、掌握接口的特点、结构、调用和继承;4、掌握如何创建包,通过包如何管理类;5、掌握Java的继承机制和实现多态的方法实验内容(1)定义一个类Student,属性为学号、姓名和成绩;方法为增加记录SetRecord和得到记录GetRecord。
SetRecord赋值学号、姓名和成绩,GetRecord通过学号得到考生的成绩。
通过实例验证编程无误。
(2)定义一个接口Area,其中包含一个计算面积的抽象方法calculateArea(),然后设计Circle和Rectan两个类实现这个接口的方法calculateArea(),分别计算圆和矩形的面积。
通过实例验证编程无误。
(3)假定根据学生的3门学位课程的分数决定其是否可以拿到学位,对于本科生,如果3门课程的平均分数超过60分即表示通过,而对于研究生,则需要平均分超过80分才能够通过。
根据上述要求,请完成以下Java类的设计:(i)设计一个基类Student描述学生的共同特征。
(ii)设计一个描述本科生的类Undergraduate,该类继承并扩展Student类。
(iii)设计一个描述研究生的类Graduate,该类继承并扩展Student类。
(iv)设计一个测试类StudentDemo,分别创建本科生和研究生这两个类的对象,并输出相关信息附实验一名称是Java语言基础实验报告分为以下几个部分一实验名称二实验目的三实验仪器四实验步骤(把你的操作一步一步写清楚,java 程序代码要写)五实验结果(程序运行后的结果就是DOS环境下运行出来的结果写在实验报告上)六实验讨论(实验过程中的错误及如何改正,你的心得体会等)答案:(1)定义一个类Student,属性为学号、姓名和成绩;方法为增加记录SetRecord和得到记录GetRecord。
实验一熟悉NetBeans IDE 平台,开发环境及Java编程实验目的:1、我们使用的开发平台是NetBeans IDE,希望通过本次实验同学们能对NetBeans IDE 的开发环境有一个清楚的了解并能熟练运用,对Java语法进行初步运用,对面向对象的编程有一个直观的认识和深入理解,对于Java的基础知识进行理解运用和巩固。
为以后的实验中能够进行开发程序打下基础。
2、通过编程和上机实验理解Java语言是如何体现面向对象编程基本思想,了解类的封装方法,以及如何创建类和对象,了解成员变量和成员方法的特性,掌握OOP方式进行程序设计的方法,了解类的继承性和多态性的作用。
实验内容:● 1. 编写一个体现面向对象思想的程序。
● 2. 编写一个创建对象和使用对象的方法的程序。
● 3. 编写一个显示当前日期和时间的程序。
● 4. 编写不同成员变量修饰方法的程序。
● 5. 编写不同成员方法修饰方法的程序。
● 6. 编写体现类的继承性(成员变量、成员方法、成员变量隐藏)的程序。
●7. 编写体现类的多态性(成员方法重载、构造方法重载)的程序。
实验步骤:●双击桌面上的NetBeans IDE 6.5.1快捷方式或在文件菜单中打开它。
图1-1点击文件,创建新项目,创建一个项目名:experiment1。
点击按钮下一步:在项目名称处输入:experiment1 然后点击完成:在experiment1 下实现程序项目experiment1样例1:编写应用程序输出如下三角形。
****************【参考程序】public class Star{public static void main(Stringa[]){System.out.println(" *");System.out.println(" ***");System.out.println(" *****");System.out.println("*******");}}程序运行结果如图1-2所示。
Java实验综合实验及练习第一部分:编程题1、编写程序实现输入整数n,输出如下所示由数字组成的菱形。
(图中n=5)11 2 11 2 3 2 11 2 3 4 3 2 11 2 3 4 5 4 3 2 11 2 3 4 3 2 11 2 3 2 11 2 112.给出年、月、日,计算该日是该年的第几天?3、利用求素数的方法,就6~2000000之间的所有偶数验证歌德巴赫猜想:任何一个大于6的偶数可以分解为两个素数之和。
4、现有15位选手参加比赛,有6个评委每个评委都要给每位选手打分,分数为60~100分,现需要定义二维数组存储选手成绩,每行存储一位选手打分情况,要求输出选手得分以及选手最后得分,以及选手名次。
评分规则:分数为60~100分。
选手最后得分为:去掉一个最高分和一个最低分后其余4个分数的平均值。
5、设计一个描述二维平面上点的类Position,该类需要描述点的横坐标和纵坐标,并提供属性的set/get访问器方法和计算两点间距离的方法。
写一个程序测试这个类6、设计一个表示二维平面上点的类Point,包含有表示坐标位置的protected类型的成员变量x和y,获取和设置x 和y值的public方法。
设计一个表示二维平面上圆的类Circle,它继承自类Point,还包含有表示圆半径的protected类型的成员变量r、获取和设置r值的public方法、计算圆面积的public方法。
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 赋初值。
参考答案第1章一、判断题1. ×2. ×3. √4. √5. √6. ×7. ×8. ×二、选择题1. A、B、C、D、E2. B3. C4. A5. B6. B7. E三、填空题1. 面向对象的、解释的、结构中立的、可移植的、多线程的2. 一种与平台无关的二进制字节码(Byte code)3. 可移植性4. JVM5. Applet、Java Application6. 动态7. 命令行8. 慢9. 大大提高Java字节码的执行效率10. java、class四、问答题1. Java 是一种简单的、面向对象的、分布式的、解释的、健壮的、安全的、结构中立的、可移植的、性能优异的、多线程的、动态的语言,它还支持垃圾自动回收。
Java语言的“动态性”和C++语言相比,Java语言允许在运行时动态地装入所需要的类,这些类既可以位于本地,也可以是从Internet上下载的,这一特性是C++等其他编译型语言所无法实现的。
2.用户应用程序Java APIJVM硬件平台3. (见课本中设置Path一节)五、编程题1,2都是利用集成化开发环境实际动手操作。
第2章一、判断题1. √2. √3. √4. √5. √6. ×7. ×8. √二、选择题1. A、B2. A、C、D3. C4. C5. A、D6. C7. A8. A三、填空题1. 02. –128 ~ 1273. 位运算、关系运算4. 32,645. 保护变量6. 807. 在前面加个‘0’,0128. while四、问答题1. 十进制常数记法就是我们日常生活用的整数的写法:如365,0,-29456。
八进制常数记法只需要在前面加个‘0’即可。
如012表示八进制数12。
它转化为十进制的值是1×81 + 2×80=10,-012则和十进制数-10相等。
十六进制数记法是开头加上‘0x’ 或者‘0X’,如0x12表示十六进制数18。
JAVA上机实验题答案与解析实验一 Java程序编程1.编写一个Java应用程序,输出内容为Hello;注:文件位置位于e:\2:\Hello.java 编译:1e:2cd 2 3javac Hello.java4java Hello2.编写一个Java小应用程序,输出内容为我一边听音乐,一边学Java;第一步编写import java.awt.;import java.applet.;public class MyApplet extends Applet{public void paintGraphics g{g.drawString"我一边听音乐,我一边做java",25,25;}}第二步在DOS环境中编译....javac MyApplet.java第三步使用记事本编写<applet code=MyApplet.class height=200 width=120></applet>第四步将记事本文件名命名为MyApplet.html第五步打开MyApplet.html实验二类的定义1.编写Java应用程序,自定义Point类,类中有两个描述坐标位置的double变量x,y,利用构造方法,实现对Point 对象p1,p2初始化,p1和p2对应坐标分别为15,20,10,30;定义方法getX,getY分别获得点的横坐标和纵坐标;定义方法setX,setY分别获得点的横坐标和纵坐标;并且把p1和p2输出;public class Point {double x,y;Pointdouble x,double y{this.x=x;this.y=y;}double getX{return x;}double getY{return y;}void setXdouble x{this.x=x;}void setYdouble y{this.y=y;}public static void mainString args {Point p1=new Point15,20;//初始化Point p2=new Point10,30;}运行结果:横坐标为15.0 纵坐标为20.0横坐标为10.0 纵坐标为 30.02.编写Java应用程序,自定义Circle类,类中有两个double 变量r,s,一个类变量pi,利用构造方法实现对半径是3和5.5的初始化,自定义getArea方法实现圆面积求解;public class Circle {double s,r;public Circledouble r{this.r=r;}double get Area{this.s=pirr;return s;}public static void mainString args {Circle c1=new Circle3;Circle c2=new Circle5.5;Area ;Area;}}实验三类的继承和多态性1.1编写一个接口ShapePara,要求:接口中的方法: int getArea:获得图形的面积;int getCircumference:获得图形的周长2编写一个圆类Circle,要求:圆类Circle实现接口ShapePara;该类包含有成员变量:radius:public 修饰的double类型radius,表示圆的半径;x:private修饰的double型变量x,表示圆心的横坐标;y:protected修饰的double型变量y,表示圆心的纵坐标;包含的方法有:Circledouble radius 有参构造方法;以形参表中的参数初始化半径,圆心为坐标原点; double getRadius:获取半径为方法的返回值;void setCenterdouble x, double y:利用形参表中的参数设置类Circle的圆心坐标;void setRadiusdouble radius:利用形参表中的参数设置类Circle的radius域;在主方法中产生半径为5的圆;interface ShapePara {double getAreadouble r;double getCircumferencedouble r;}//注: Circle是在接口中建立的calss,即先建立接口,在建立接口的类class Circle implements ShapePara{private double x;protected double y;public double r;Circledouble r{this.r=r;}void setRadiusdouble r{this.r=r;}double getRadius{return r;double getArea{return 3.14rr;}double getCircumference{return 3.142r;}void setCenterdouble x,double y{this.x=x;this.y=y;}double getCenterx{return x;}double getCentery{return y;}}public class A {public static void mainString args { Circle ci=new Circle5;ci.setRadius5;ci.setCenter0, 0;}答案:78.50.00.02.定义图形类Shape,该类中有获得面积的方法getArea;定义长方形类Rect,该类是Shape 的子类,类中有矩形长和宽的变量double a,double b,设置长和宽的方法setWidth、setHeight,使用getArea求矩形面积;利用getArea方法实现题1中圆面积的求解; class Shape {double getAreadouble r{return 0;}}public class Rect extends Shape {double a,b,area;Rectdouble width,double heigh{a=width;b=height;;}void setWidthdouble width {a=width;}void setHeightdouble height {b=height;}double getWidth{return a;}double getHeight{return b;}double getArea{area=ab;return area;}}public class A {public static void mainString args {Rect rect=new Rect;double w=12.76,h=25.28;rect.setWidthw;rect.setHeighth;}}答案:圆的的面积:78.5矩形对象的宽:12.76 高:25.283. 编写Java应用程序,定义Animal类,此类中有动物的属性:名称 name,腿的数量legs,统计动物的数量 count;方法:设置动物腿数量的方法 void setLegs,获得腿数量的方法getLegs,设置动物名称的方法 setKind,获得动物名称的方法 getKind,获得动物数量的方法 getCount;定义Fish类,是Animal类的子类,统计鱼的数量 count,获得鱼数量的方法 getCount;定义Tiger类,是Animal类的子类,统计老虎的数量 count,获得老虎数量的方法 getCount;定义SouthEastTiger类,是Tiger类的子类,统计老虎的数量 count,获得老虎数量的方法 getCount;public class Animal {String name;int legs;static int count;Animal{count++;}void setLegsint legs{this.legs=legs;}int getLegs{return legs;}void setKindString name{=name;}String getKind{return name;}int getCount{return count;}}public class Fish extends Animal{static int countFish;Fish{countFish++;}int getCount{return countFish;}}public class Tiger extends Animal{static int countTiger;Tiger{countTiger++;}int getCount{return countTiger;}}public class SouthEastTiger extends Tiger{} public class A {public static void mainString args{Fish f=new Fish;Tiger t=new Tiger;SouthEastTiger st=new SouthEastTiger;}实验四异常处理1.建立exception包,编写TestException.java程序,主方法中有以下代码,确定其中可能出现的异常,进行捕获处理;forinti=0;i<4;i++{intk;switchi{case0:intzero=0;k=911/zero;break;case1:intb=null;k=b0;break;case2:int c=new int2;k=c9;break;case3:charch="abc".charAt99;break;}}package Exception;public class TestException {public static void mainString args{forint i=0;i<4;i++{try{int k;switchi{case 0: int zero=0;k=911/zero;break;case 1: int b=null;k=b0;break;case 2: int c=new int2;k=c9;break;case 3: char ch="abc".charAt99;break;}}catchArithmeticException e{}}catchArrayIndexOutOfBoundsException e{}}}}}运行结果:/ by zeronull9String index out of range: 992.建立exception包,建立Bank类,类中有变量double balance表示存款,Bank类的构造方法能增加存款,Bank类中有取款的发方法withDrawaldouble dAmount,当取款的数额大于存款时,抛出InsufficientFundsException,取款数额为负数,抛出NagativeFundsException,如new Bank100,表示存入银行100元,当用方法withdrawal150,withdrawal-15时会抛出自定义异常;提示: InsufficientFundsException,NagativeFundsException为自定义的类,分别产生余额不足异常和取款为负数异常,需继承Exception类;通过输出结果了解java异常的产生,并将该Java程序放在exception包中; package Exception;//注解先建立一个package,然后在包中建立各种类public class InsufficientFundsException extends Exception{ String s1;InsufficientFundsExceptionString t{s1=t;}public String getMassage1{return s1;}}package Exception;public class NagativeFundsException extends Exception{ String s;NagativeFundsExceptionString t{s=t;}public String getMassage{return s;}}package Exception;public class Bank extends Exception{static double ba=0;Bankdouble r{ba=ba+r;}void withDrawaldouble dAmount throws InsufficientFundsException,NagativeFundsException{ifdAmount>ba throw new InsufficientFundsException"取款余额不足";else ifdAmount<0 throw new NagativeFundsException"取款为负数";else}}package Exception;import java.util.;public class A{public static void mainString args {Bank b=new Bank100;Scanner sc=new ScannerSystem.in;try {b.withDrawalsc.nextInt;}catchInsufficientFundsException e{}catchNagativeFundsException e{}}}运行结果:请输入一个数80银行里还剩余:20.0实验五输入输出1.编写TextRw.java的Java应用程序,程序完成的功能是:首先向TextRw.txt中写入自己的学号和姓名,读取TextRw.txt中信息并将其显示在屏幕上;import java.io.;public class TextRw {public static void mainString args throws IOException {File f=new File"f:\\TextRw.txt";FileWriter fw=new FileWriterf;fw.write"学号姓名";fw.close;FileReader fr=new FileReaderf;int i;whilei=fr.read=-1fr.close;}}2.编写IoDemo.java的Java应用程序,程序完成的功能是:首先读取IoDemo.java源程序文件,再通过键盘输入文件的名称为iodemo.txt,把IoDemo.java的源程序存入3.编写BinIoDemo.java的Java应用程序,程序完成的功能是:完成1.doc文件的复制,复制以后的文件的名称为自己的学号姓名.doc;import java.io.;public class BinIoDemo{public static void mainString args throws IOException{File f1=new File"e:\\1.doc";FileInputStream in=new FileInputStreamf1;File f2 = new File"e:\\“学号”+“姓名”.doc";FileOutputStream out=new FileOutputStreamf2;byte buf = new byte2048;int num = in.readbuf;while num = -1 {out.writebuf, 0, num;out.flush;num = in.readbuf;}in.close;out.close;}}实验六多线程编程1.随便选择两个城市作为预选旅游目标;实现两个独立的线程分别显示10次城市名,每次显示后休眠一段随机时间1000ms以内,哪个先显示完毕,就决定去哪个城市;分别用Runnable接口和Thread类实现;通过Threadpublic class Hw1Thread extends Thread{String a;private int sleepTime;public Hw1ThreadString a{supera;this.a=a;sleepTime=intMath.random6000;}public void run{int count1=0,count2=0;ifThread.currentThread.getName.equalsIgnoreCase"ShangHai"{ forint i=0;i<10;i++{try{Thread.sleepsleepTime;count1++;ifcount1>count2 && count1==10{ //判断哪个城市的输出次数先达到10,达到则终止输出}else ifcount2>count1 && count2==10{}}catchInterruptedException exception{};//使用sleep方法需要抛出中断异常}}ifThread.currentThread.getName.equalsIgnoreCase"BeiJIng"{ forint i=0;i<10;i++{try{Thread.sleepsleepTime;count2++;ifcount1>count2 && count1==10{}else ifcount2>count1 && count2==10{}}catchInterruptedException exception{};//使用sleep方法需要抛出中断异常也可以在方法头抛出throw异常}}}}public class Hw1ThreadText {public static void mainString args throws InterruptedException { Hw1Thread td1=new Hw1Thread"ShangHai";Hw1Thread td2=new Hw1Thread"BeiJing";td1.start;td2.start;}}通过Runnable接口:public class Hw1Thread implements Runnable{String a;private int sleepTime;int count1=0,count2=0;public Hw1ThreadString a{this.a=a;sleepTime=intMath.random1000;}public void run{ //重写run方法ifThread.currentThread.getName.equalsIgnoreCase"td1"{ forint i=0;i<10;i++{try{Thread.sleepsleepTime;count1++;}catchInterruptedException exception{}; //使用sleep方法需要抛出中断异常ifcount1>count2 && count1==10{}else ifcount2>count1 && count2==10{}}}ifThread.currentThread.getName.equalsIgnoreCase"td2"{forint i=0;i<10;i++{try{Thread.sleepsleepTime;count2++;ifcount1>count2 && count1==10{ //判断哪个城市的输出次数先达到10,达到则终止输出}else ifcount2>count1 && count2==10{}catchInterruptedException exception{};//使用sleep方法需要抛出中断异常}}}}public class Hw1ThreadText {public static void mainString args throws InterruptedException { Hw1Thread td1=new Hw1Thread"ShangHai";Hw1Thread td2=new Hw1Thread"BeiJing";new Threadtd1,"td1".start;new Threadtd2,"td2".start;}}2.用继承Thread类方法实现多线程程序;有两个学生小明和小红,小明准备睡10分钟以后开始听课,小红准备睡1小时以后开始听课,雷老师大喊三声“上课了”,小明醒后把小红吵醒,他们开始听课;学生:小明、小红睡觉:明:10min 红:60min老师:喊三声明醒->红醒;上课;class Stu extends Thread{Thread student1,student2,teacher;Stu {teacher=new Threadthis;student1=new Threadthis;student2=new Threadthis;teacher.setName"雷老师";student1.setName"小明";student2.setName"小红";}public void run {ifThread.currentThread==student1 {Thread.sleep10006010;}catchInterruptedException e {}}ifThread.currentThread==student2 {Thread.sleep10006060;}catchInterruptedException e {}}else ifThread.currentThread==teacher { forint i=1;i<=3;i++ {try { Thread.sleep500;}catchInterruptedException e{} }student1.interrupt; //吵醒student student2.interrupt;}}}public class A{public static void mainString args {Stu s=new Stu;}}实验七图像用户界面1.编程实现如下界面:当在第一个文本框中输入直接回车,会在第二个文本框中得第一个文本框输入值的平方,单击求和,会在第二个文本框中得到两个文本框中的和;import java.awt.;public class Test implements ActionListener{TextField tf,tf1;Button b;Frame f;Test{f=new Frame;f.setSize150, 150;f.setLocation300, 300;Panel p=new Panel;Panel p1=new Panel;Panel p2=new Panel;tf=new TextField10;tf1=new TextField10;b=new Button"求和";p.addtf;p1.addtf1;p2.addb;f.addp,BorderLayout.NORTH;f.addp1,BorderLayout.CENTER;f.addp2,BorderLayout.SOUTH;f.setVisibletrue;f.addWindowListenernew WindowAdapter{public void windowClosingWindowEvent e{System.exit0;}};tf.addActionListenerthis;b.addActionListenerthis;}public static void mainString args {new Test;}public void actionPerformedActionEvent e{ int i;ife.getSource==tf{i=Integer.parseInttf.getText;tf1.setTextString.valueOfii;}else ife.getSource==b{i=Integer.parseInttf.getText+Integer.parseInttf1.getText;tf1.setTextString.valueOfi;}}}2.按照如下图所示的窗体布局,其中包含Label,TextField,Button控件,Label控件的名称为l1,l2,l3,l4,l5;TextField的大小为10,Button控件的名称如图所示;所完成的功能是:单击关闭按钮能够关闭窗体;单击“计算”按钮,将得出1号商品和2号商品的费用并显示在合计文本框中;输入1号商品的价格,如果2号商品的价格和1号商品价格相同,在1号商品显示价格控件中回车,2号商品的价格显示和1号商品相同;输入1号商品的数量,如果2号商品的数量和1号商品数量相同,在1号商品显示数量控件中回车,2号商品的数量和1号商品数量相同;import java.awt.;public class Price {public Price{Frame f=new Frame"商品计费";Label l1=new Label"1号商品价格";Label l2=new Label"数量";Label l3=new Label"2号商品价格";Label l4=new Label"数量";Label l5=new Label"合计";//创建标签Button b=new Button"计算";//创建按钮final TextField tf1=new TextField10;final TextField tf2=new TextField10;final TextField tf3=new TextField10;final TextField tf4=new TextField10;//文本框final TextField tf5=new TextField10;Panel p1=new Panel;Panel p2=new Panel;Panel p3=new Panel;p1.addl1;p1.addtf1;p1.addl2;p1.addtf2;p2.addl3;p2.addtf3;p2.addl4;p2.addtf4;p3.addb;p3.addl5;p3.addtf5;//使用这种布局添加方法可以使用Layout默认布局进行布局f.addp1,BorderLayout.NORTH;f.addp2,BorderLayout.CENTER;f.addp3,BorderLayout.SOUTH;f.setSize400, 150;f.setLocation200, 200;f.setVisibletrue; //以上备注同实验1以下蓝色字体按照题1中的思路编程tf1.addKeyListenernew KeyListener{public void keyPressedKeyEvent e{ife.getKeyCode == KeyEvent.VK_ENTER{tf3.setTexttf1.getText;}}public void keyReleasedKeyEvent e {}public void keyTypedKeyEvent e {}}; //对文本框1"1号商品价格"添加键盘监控器,接收到回车符完成相应功能tf2.addKeyListenernew KeyListener{public void keyPressedKeyEvent e{ife.getKeyCode == KeyEvent.VK_ENTER{tf4.setTexttf2.getText;}}public void keyReleasedKeyEvent e {}public void keyTypedKeyEvent e {}}; //对文本框2"数量"添加键盘监控器,接收到回车符完成相应功能f.addWindowListenernew WindowAdapter{public void windowClosingWindowEvent e{System.exit0;}};//窗体的关闭监控器b.addActionListenernew ActionListener {public void actionPerformedActionEvent e{int p1,p2,num1,num2;p1=Integer.parseInttf1.getText;p2=Integer.parseInttf3.getText;num1=Integer.parseInttf2.getText;num2=Integer.parseInttf4.getText;tf5.setTextInteger.toStringp1num1+p2num2;}};//按钮监控器}public static void mainString args {new Price;}}实验八 JDBC编程1. 用access建立数据库ssm,库中有student表,表中字段有:学号number,姓名name,性别gender,年龄 age,成绩score,科目course;1使用“insert into”向表中添加5个你熟悉的同学的学号、姓名、年龄、成绩和科目,并将添加以后的学生信息显示在控制台端;2使用“select ”条件查询得到成绩是80分以上的同学信息;3使用“update ”将表中学号等于自己学号的成绩修改为85分,并将修改以后的表中所有学生信息显示在控制台端;4 使用“delete ”将表中成绩高于80分以上的学生信息删除,并将删除以后的表中所有学生信息显示在控制台端;//以下代码中已经屏蔽的内容只可执行一次,多次执行会产生重复错误import java.sql.;public class DataTest {public static void mainString args throws SQLException {try {} catch ClassNotFoundException e {e.printStackTrace;}Connectioncon=DriverManager.getConnection"jdbc:odbc:ssm","test","1234";Statement state=con.createStatement;////ResultSet rs1=state.executeQuery"SELECT FROM student";//查找student表中的所有信息//ResultSet rs2=state.executeQuery"select FROM student WHERE score>80";//选择成绩大于80的学僧//ResultSet rs3=state.executeQuery"select FROM student";state.executeUpdate"DELETE FROM student WHERE score>80";//删除分数大于80的学生信息ResultSet rs4=state.executeQuery"select FROM student";whilers1.next{}whilers2.next{}whilers3.next{}/whilers4.next{}con.close;}}。
Java实验综合实验及练习第一部分:编程题1、编写程序实现输入整数n,输出如下所示由数字组成的菱形。
(图中n=5)11 2 11 2 3 2 11 2 3 4 3 2 11 2 3 4 5 4 3 2 11 2 3 4 3 2 11 2 3 2 11 2 112.给出年、月、日,计算该日是该年的第几天?3、利用求素数的方法,就6~2000000之间的所有偶数验证歌德巴赫猜想:任何一个大于6的偶数可以分解为两个素数之和。
4、现有15位选手参加比赛,有6个评委每个评委都要给每位选手打分,分数为60~100分,现需要定义二维数组存储选手成绩,每行存储一位选手打分情况,要求输出选手得分以及选手最后得分,以及选手名次。
评分规则:分数为60~100分。
选手最后得分为:去掉一个最高分和一个最低分后其余4个分数的平均值。
5、设计一个描述二维平面上点的类Position,该类需要描述点的横坐标和纵坐标,并提供属性的set/get访问器方法和计算两点间距离的方法。
写一个程序测试这个类6、设计一个表示二维平面上点的类Point,包含有表示坐标位置的protected类型的成员变量x和y,获取和设置x 和y值的public方法。
设计一个表示二维平面上圆的类Circle,它继承自类Point,还包含有表示圆半径的protected类型的成员变量r、获取和设置r值的public方法、计算圆面积的public方法。
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 赋初值。
实验内容1 输出俄文字母表1)实验目的本实验的目的是让同学们掌握char类型数据和int类型数据之间的相互转换,同时了解unicode 字符表。
2)实验要求编写一个 java应用程序,该程序在命令行窗口输出俄文字母表。
3)实验内容➢【代码1】、【代码2】和【代码3】分别是什么?【代码1】:startPosition=(int)'а';【代码2】:endPosition=(int)'я';【代码3】:c=(char)i;➢将一个float类型数据直接赋值给int类型变量,程序编译时提示怎样的错误?为什么?提示“可能损失精度”,因为float是单精度浮点型,取值范围远大于int整型变量,如果用int输出会损失小数点后边的数字。
➢语句byte x=128;能通过编译吗?为什么?不能。
因为byte类型变量的取值范围是-128到127,输入的128超过了范围。
➢int x=(byte)128;程序输出变量x的值是多少?为什么?输出x=-128。
因为byte类型变量的取值范围是-128到127,输入x=128超出了byte类型变量的范围。
实验内容2 从键盘输入数据1)实验目的本实验的目的是让同学们掌握从键盘输入基本类型的数据。
2)实验要求编写一个java 应用程序,用户从键盘输入一个浮点数据,程序将输出这个数的平方和三次方。
3)实验内容➢【代码1】、【代码2】和【代码3】分别是什么?【代码1】:a=reader.nextFloat();【代码2】:System.out.println("b="+b);【代码3】:System.out.println("c="+c);➢程序运行时,用户从键盘输入abc,程序提示怎样的错误?为什么?输入的abc是一个字符串,不是浮点型变量。
扩展实验内容数组1)实验目的本实验的目的是让同学们掌握一维数组的深拷贝与二维数组的创建与应用。
java实验报告实验2答案(共5篇)第一篇:java实验报告实验2答案互联网软件应用与开发实验指导书实验二熟悉Applet,GUI编程实验目的:本实验旨在巩固同学们对上课所讲Applet,异常处理,java的控制加深理解,图形用户界面基本组件窗口、按钮、文本框、选择框、滚动条等的使用方法,对java的语法和编程有一个更加深入的理解,为同学们以后的能够用Java进行独立地编写桌面程序打下一定的基础。
了解如何使用布局管理器对组件进行管理,以及如何使用Java的事件处理机制。
实验内容:创建一个java项目,命名为experiment2。
(如何创建项目参考《实验一》的项目创建方法。
)(一)创建图形用户界面图形用户界面(Graphic User Interface,简称GUI)是为方便用户使用设计的窗口界面,在图形用户界面中用户可以看到什么就操作什么,取代了在字符方式下知道是什么后才能操作什么的方式。
组件(Component)是构成GUI的基本要素,通过对不同事件的响应来完成和用户的交互或组件之间的交互。
组件一般作为一个对象放置在容器(Container)内,容器是能容纳和排列组件的对象,如Applet、Panel(面板)、Frame(窗口)等。
通过容器的add方法把组件加入到容器中。
1.在Applet中添加标签、按钮并使用网格布局(1)程序功能在Applet 容器中添加组件标签、按钮,并使用网格布局管理器排列组件在容器中的位置。
(2)编写LX6_1.java 程序文件,源代码如下:import java.awt.*;import java.applet.Applet;public class LX6_1 extends Applet { Label l1;Button b1, b2, b3, b4, b5,b6;public void init(){互联网软件应用与开发实验指导书setLayout(new GridLayout(3,3));// 设置网格布局(3 行3 列共9 个网格)l1=new Label(“标签1”);b1 = new Button(“按钮1”);b2 = new Button(“按钮2”);b3 = new Button(“按钮3”);b4 = new Button(“按钮4”);add(l1);add(b1);add(b2);add(b3);add(newLabel());add(b4);add(new Button(“按钮5”));add(new Button(“按钮6”));add(new Label(“标签2”));} }(3)编译程序LX6_1.java。
《Java编程》实验教学大纲实验学时:32 实验个数:6实验学分:1课程性质:专业限选课适用专业:软件工程教材及参考书:1.《Java语言程序设计》,郑莉等主编,北京:清华大学出版社,20062.《面向对象程序设计与Java语言》,周晓聪等著,北京:机械工业出版社,2004大纲执笔人:朱贵琼大纲审定人:李晓宁一、实验课的性质与任务Java语言是新兴起的面向对象程序设计语言,用于应用程序设计,尤其是应用在网络、因特网和移动设备上。
为培养学生网络应用程序的编程能力,在学生具有一定的计算机和网络知识的基础上开设Java程序设计课程,使学生能够运用Java语言作为完成应用程序设计的基本工具。
本课程将从面向对象的基本概念入手,结合课程设计,较为系统地介绍Java语言的主要特征和编程方法,包括:类型与转换、类的声明与对象产生、继承与多态性、包与接口、数组与字符串、多线程编程以及异常处理、JDBC等内容。
通过相关的实验设计,使学生具有一定的网络编程能力。
二、实验课程目的与要求1.实验目的:开设该课程设计,目的是让学生在掌握了Java程序设计的基本知识、基本理论方面后,能熟悉Java编程的思想和编程技巧,培养学生分析问题和解决问题的能力及技巧。
实验设计覆盖Java程序设计中主要的方法。
该课程以讲授、演示和实验法相结合。
按照重视基础,突出重点的原则进行。
通过程序设计培养学生的程序设计能力、解决和分析问题的能力,使学生对所学的内容有更深入的理解,逐步掌握Java编程方面的技巧。
2.实验要求:(1)实验安排在上机时间进行,如在上机时间不能完成可课后完成,到期交经过编译并能正常运行的软件。
(2)实验以前,学生应对实验设计的相关知识点和相关设计技术有所了解。
(3)每个实验都要求写出实验报告(实验报告包括:实验内容、目的、实现方法、调试结果)。
三、实验项目及内容提要四、实验内容安排:实验一 Java基础知识实验(验证型实验 4学时)1.目的要求:(1)熟悉Jbuilder的开发环境,学会Jbuilder基础的操作和调试。
补充第一节的容public class MyJavaClass{ int a;myjavaclass(int a){this.a=a;}public void main(){ myjavaclass c1=new MyJavaClass();System.out.printIn(c1.a);}System.out.printIn("程序结束。
");}1.上面的程序有几处错误?请依次改正。
2.这个程序的源代码应该保存为什么名字的文件?3.请写出编译和运行这个文件的完整命令,注意给出环境变量的设置(假设源文件保存在d:\java目录)4.如果在程序最前面加入下面语句:package Pkg;该程序又该如何编译和运行?答案:答案(1):修改以后的程序为(粗体为修改过的地方)public class MyJavaClass{ int a;MyJavaClass(int a){this.a=a;}public Static void main(String args[]){ MyJavaClass c1=new MyJavaClass(2) //此处的实际参数可为任意整数;System.out.println(c1.a);System.out.println("程序结束。
");}}答案(2)public class MyJavaClass{ int a;int myjavaClass(int a){this.a=a;return a;}//注此处函数返回值可为任意类型public static void main(String args[]){ MyJavaClass c1=new MyJavaClass();System.out.println(c1.a);System.out.println("程序结束。
");}}2、答案:这个程序的源代码应该保存为MyJavaClass.java。
3、答案(1)set class=c:\j2sdk\binset classpath=d:\java编译:javac d:\java\MyJavaClass.java运行:java MyJavaClass答案(2)编译:c:\j2sdk\bin\javac d:\java\MyJavaClass.javaset classpath=d:\java运行:java MyJavaClass4、答案:如果在程序最前面加入语句:package pkg;环境变量同3、设置编译:javac -d . d:\java\MyJavaClass.java运行:java pkg.MyJavaClassI 实验1答案1-(1-1):import java.io.*;class RandomMonth{public static void main(String args[]){ String months[]={"January","February","March","April","May","June","July", "Aguest","September","October", "November","December"};int i;i = (int)(Math.random() * 12);System.out.println(months[i]);}}1-(1-2):import java.io.*;import java.util.*;class RandomMonth2{ public static void main(String args[]){ String months[]={"January","February","March","April","May","June","July", "Aguest","September","October", "November","December"};Random r=new Random();int i;i = Math.abs(r.nextInt())%12;System.out.println(months[i]);}}1-(2)import java.util.*;class RandomPx{ public static void main(String args[]){ int num[]=new int[20];int i,j,temp;Random r=new Random();for(i=0;i<20;i++)num[i]=r.nextInt();for(i=0;i<19;i++)for(j=0;j<19-i;j++){ if (num[j]>num[j+1]){temp=num[j];num[j]=num[j+1];num[j+1]=temp;}}for(i=0;i<20;i++){if (i%5==0) System.out.print("\n\r");System.out.print(num[i]+" " );}}}II实验2 答案2-(1)public class studentx{private String no;private String classno private String name;private String sex;private int age;studentx(){ no="1";classno="1";name="lucy";sex="male";age=0;}String getno(){return no;}String getclassno(){return classno;}String getname(){return name;}int getage(){return age;}void updateage(int newage){this.age=newage;}public String toString(){ return(name+"学生:"+"性别"+sex+",年龄"+age+",学号为"+no+",班级为"+classno);}public static void main(String[] args){ studentx p=new studentx();p.updateage(25);System.out.println(p.getage());System.out.println(p);}};2-(2)import java.io.*;import java.util.*;class School{ static float scoreLine;static void setscoreLine(float score){scoreLine=score;}static float getscoreLine(){return scoreLine;}}class Student{String name,id;float comScore,score;float getcomScore(){return comScore;}float getscore(){return score; }Student(String name,String id,float comScore,float score){=name;this.id=id;Score=comScore;this.score=score;}}class Enroll{ static boolean isEnroll(Student s){ if(s.getcomScore()>=School.getscoreLine()||(s.getscore()>96 && s.getcomScore()>=300) )return true;else return false;}public static void main(String args[]){ Student s[]=new Student[3];String info[]=new String[4];int i,j;String messInfo;BufferedReader in=new BufferedReader(new InputStreamReader(System.in));StringTokenizer st;School.setscoreLine(550);for( i=0;i<s.length;i++ ){try{ messInfo=in.readLine();st=new StringTokenizer(messInfo);for(j=0;j<info.length;j++){info[j]=st.nextToken();}} catch(IOException ex){}s[i]=newStudent(info[0],info[1],Float.parseFloat(info[2]),Float.parseFloat(i nfo[3]));}for(i=0;i<s.length;i++)if(isEnroll(s[i]))System.out.println(s[i].name+" "+s[i].id +" "+ " 被录取!"); elseSystem.out.println(s[i].name+" "+s[i].id +" "+ " 没有录取!");}}2-(3)思考题:import java.io.*;class Complex{ double RealPart;double ImageinPart;Complex(double rp,double ip){ RealPart=rp; ImageinPart=ip;}Complex complexAdd(Complex a){ Complex temp;temp=new Complex(RealPart+a.RealPart,ImageinPart+a.ImageinPart);return temp;}Complex complexMinus(Complex a){ Complex temp;temp=new Complex(RealPart-a.RealPart,ImageinPart-a.ImageinPart);return temp;}public String toString(){ if (ImageinPart<0)return (RealPart+"-"+Math.abs(ImageinPart)+"i");elsereturn (RealPart+"+"+ImageinPart*+"i");}}class ComplexApp{ public static void main(String args[]){char operator;try{Complex c1=new Complex(1,2);Complex c2=new Complex(3,4);Complex complexResult;operator=(char)System.in.read();switch(operator){ case '+':complexResult=plexAdd(c2);break;case '-':complexResult=plexMinus(c2);break;}System.out.println(complexResult);}catch(IOException e){System.out.println(e);}}}III实验3 答案3-(1)1、class Person{public String name;public String sex;int age;Person(String name,String sex,int age){=name;this.sex=sex;this.age=age;}}class Student extends Person{public String sno;public int classno;public void updateAge(int age){this.age=age;}Student(String name,String sex,int age,String sno,int classno) {super(name,sex,age);this.sno=sno;this.classno=classno;}public String toString(){ System.out.println("name="+name+" sex="+sex +" age="+age+ "sno="+sno+" classno"+classno+" ");return "name="+name+" sex="+sex +" age="+age+ " sno="+sno+"classno"+classno+" ";}};public class TestStudent{public static void main(String[] args){Student s1=new Student("susan","女",20,"",2);s1.updateAge(21);s1.toString();}}3-(3)import java.util.*;abstract class Employee{ String name;long no;static long id=1000;abstract double getPay();Employee(String name){ =name;id=id+1;}};class Manager extends Employee{double pay=8000;double getPay(){return 8000;}Manager(String name){super(name);no=id;}public String toString(){return "name:"+name+" no:"+no+" pay:8000";} };class Sale extends Employee{ long saleNum;double getPay(){return saleNum*0.4;}Sale(String name,long saleNum){super(name);no=id;this.saleNum=saleNum;}public String toString(){return "name:"+name+" no:"+no+" pay:"+getPay();}}class Tech extends Employee{ long salaryHours;double getPay(){return salaryHours*100; }Tech(String name,long salaryHours){super(name);no=id;this.salaryHours=salaryHours;}public String toString(){return "name:"+name+" no:"+no+" pay:"+getPay();}};class EmployApp{public static void main(String args[]){Vector v=new Vector();Employee em;double numPay=0;v.addElement(new Sale("liping",10000));v.addElement(new Sale("susan",12000));v.addElement(new Tech("linda",40));v.addElement(new Tech("write",20));v.addElement(new Manager("gucci"));v.addElement(new Manager("jessica"));Enumeration e=v.elements();while(e.hasMoreElements()){em=(Employee)e.nextElement();numPay=numPay+em.getPay();System.out.println(em);}System.out.println("总工资:"+numPay);}};IV 实验4 答案4-(1)import ng.*;import java.io.*;class TestException{public static void main(String[] args) {try{outofBound();arraySize();nullPointer();}catch(NegativeArraySizeException e){System.out.println(e.toString());} }static void outofBound(){try{int i;int a[];a=new int[10];for(i=0;i<11;i++){ a[i]=i;System.out.println("a["+i+"]="+ a[i]);}}catch(IndexOutOfBoundsException e){System.out.println(e.toString());}}static void nullPointer(){try{String s=null;System.out.println(s.length());}catch(NullPointerException e){System.out.println(e.toString());}}static void arraySize() throws NegativeArraySizeException {try{int a[];a=new int[-3];}catch(NegativeArraySizeException e){throw e;}}}4-(2)class MyException extends Exception{private String Msg;public MyException(String message){super(message);Msg=message;}public void printMsg(){System.out.println(Msg);}}public class EX6_3{void GenerateMyException() throws MyException{ throw new MyException("此处发生异常信息");}public static void main(String args[]){EX6_3 obj=new EX6_3();try{obj.GenerateMyException();}catch (MyException e){e.printMsg();}}}4-(3)思考题class NullParameterException extends Exception {NullParameterException(String Message){super(Message);}};class TestArea{public static void main(String[] args){shape sh=null;int num;num=args.length;try{switch(num){case 1:sh=new Zangle(Double.parseDouble(args[0])); break;Case 2:sh=new Longangle(Double.parseDouble(args[0]),Double.parseDouble(args[1]));b reak;case 3:sh=new Triangle(Double.parseDouble(args[0]),Double.parseDouble(args[1]),Dou ble.parseDouble(args[2]));break;case 0:throw new NullParameterException("参数个数为零!");}System.out.println(sh.area());}catch(Exception e){System.out.println(e.toString());}}};abstract class shape{abstract double area();};class Triangle extends shape{double a,b,c;Triangle(double a,double b,double c){this.a=a;this.b=b;this.c=c;}double area(){double s;s=(a+b+c)/2;return(Math.sqrt(s*(s-a)*(s-b)*(s-c)));}};class Longangle extends shape{double l,w;Longangle(double l,double w){this.l=l;this.w=w;}double area(){return (l*w);}};class Zangle extends shape{double l;Zangle(double l){this.l=l;}double area(){return l*l;}};V 实验5 答案5-(1)import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.FileWriter;import java.io.IOException;import java.io.ObjectOutputStream;import java.io.PrintWriter;import java.io.Serializable;import java.util.*;class Student implements Serializable {String name;String sno;int age;Student(String name,String sno,int age) {=name;this.sno=sno;this.age=age;}void displayInfo(){System.out.println("name="+name+"sno="+sno+"age="+age);;}String getSno(){return sno;}int getAge(){return age;}String getName(){return name;}}class StudentAll{ Vector<Student> studentSet;StudentAll(){ studentSet=new Vector<Student>();}boolean addStudent(Student s){boolean flag=true;for(Student se:studentSet)if(se.getSno().equals(s.getSno())){flag=false;break;}if(flag) studentSet.addElement(s);return flag;}boolean removeStudent(String sno){ boolean flag=false;for(Student se:studentSet)if(se.getSno().equals(sno)){ studentSet.remove(se); flag=true;break;}return flag;}int getStudentNum(){ return studentSet.size();}void saveStudent(){try{PrintWriter ps=new PrintWriter(new FileWriter("sp3.txt"));for (Student se:studentSet){ps.print(se.getName());ps.print(" ");ps.print(se.getSno());ps.print(" ");ps.println(se.getAge());}ps.close();}catch(IOException e){}}void displayAllStudent(int displaySource){String name,sno;int age;if(displaySource==1){ studentSet.removeAllElements();try{Scanner ps=new Scanner(new FileInputStream("sp3.txt"));while(ps.hasNext()){name=ps.next();sno=ps.next();age=ps.nextInt();studentSet.addElement(new Student(name,sno,age));}ps.close();}catch(IOException e){}}for(Student se:studentSet){se.displayInfo();}}public class TestStudentAll{public static void main(String args[]){int i;StudentAll stSet=new StudentAll();/* stSet.addStudent(new Student("aaa","001",25));stSet.addStudent(new Student("bbb","002",21));if(! stSet.addStudent(new Student("ccc","002",21))) System.out.println("学号雷同");stSet.addStudent(new Student("ccc","003",21));stSet.displayAllStudent(0);stSet.saveStudent();*/stSet.displayAllStudent(1);stSet.removeStudent("002");System.out.println("\n删除后信息");stSet.displayAllStudent(0);}}import java.io.*;import java.util.*;class Student implements Serializable{String name;String sno;int age;Student(String name,String sno,int age){=name;this.sno=sno;this.age=age;}void displayInfo(){System.out.println("name="+name+"sno="+sno+"age="+age);;}String getSno(){return sno;}int getAge(){return age;}String getName(){return name;}}class StudentAll{ Vector<Student> studentSet;StudentAll(){ studentSet=new Vector<Student>();}boolean addStudent(Student s){boolean flag=true;for(Student se:studentSet)if(se.getSno().equals(s.getSno())){flag=false;break;}if(flag) studentSet.addElement(s);return flag;}boolean removeStudent(String sno){ boolean flag=false;for(Student se:studentSet)if(se.getSno().equals(sno)){ studentSet.remove(se); flag=true;break;}return flag;}int getStudentNum(){ return studentSet.size();}void saveStudent(){try{PrintWriter ps=new PrintWriter(new FileWriter("sp3.txt"));for (Student se:studentSet){ps.print(se.getName());ps.print(" ");ps.print(se.getSno());ps.print(" ");ps.println(se.getAge());}ps.close();}catch(IOException e){}}void displayAllStudent(int displaySource){String name,sno;int age;if(displaySource==1){ studentSet.removeAllElements();try{Scanner ps=new Scanner(new FileInputStream("sp3.txt"));while(ps.hasNext()){name=ps.next();sno=ps.next();age=ps.nextInt();studentSet.addElement(new Student(name,sno,age));}ps.close();}catch(IOException e){}}for(Student se:studentSet){se.displayInfo();}}}public class TestStudentAll{public static void main(String args[]){int i;StudentAll stSet=new StudentAll();/* stSet.addStudent(new Student("aaa","001",25));stSet.addStudent(new Student("bbb","002",21));if(! stSet.addStudent(new Student("ccc","002",21))) System.out.println("学号雷同");stSet.addStudent(new Student("ccc","003",21));stSet.displayAllStudent(0);stSet.saveStudent();*/stSet.displayAllStudent(1);stSet.removeStudent("002");System.out.println("\n删除后信息");Collections.sort(stSet.studentSet,new NameComparator());stSet.displayAllStudent(0);}}class NameComparator implements Comparator{public int compare(Object obj1,Object obj2){Student e1=(Student)obj1;Student e2=(Student)obj2;if(pareTo()==0) return 0;else if(pareTo()>0) return 1;else return -1;}}import java.io.*;import java.util.*;class Student implements Serializable,Comparable{String name;String sno;int age;Student(String name,String sno,int age){=name;this.sno=sno;this.age=age;}void displayInfo(){System.out.println("name="+name+"sno="+sno+"age="+age);;}String getSno(){return sno;}int getAge(){return age;}String getName(){return name;}public int compareTo(Object obj){Student p1;p1=(Student)obj;if (p1.age<age)return -1;else if(p1.age>age)return 1;return 0;}}class StudentAll{ Vector<Student> studentSet;StudentAll(){ studentSet=new Vector<Student>();}boolean addStudent(Student s){boolean flag=true;for(Student se:studentSet)if(se.getSno().equals(s.getSno())){flag=false;break;}if(flag) studentSet.addElement(s);return flag;}boolean removeStudent(String sno){ boolean flag=false;for(Student se:studentSet)if(se.getSno().equals(sno)){ studentSet.remove(se); flag=true;break;}return flag;}int getStudentNum(){ return studentSet.size();}void saveStudent(){try{PrintWriter ps=new PrintWriter(new FileWriter("sp3.txt"));for (Student se:studentSet){ps.print(se.getName());ps.print(" ");ps.print(se.getSno());ps.print(" ");ps.println(se.getAge());}ps.close();}catch(IOException e){}}void displayAllStudent(int displaySource){String name,sno;int age;if(displaySource==1){ studentSet.removeAllElements();try{Scanner ps=new Scanner(new FileInputStream("sp3.txt"));while(ps.hasNext()){name=ps.next();sno=ps.next();age=ps.nextInt();studentSet.addElement(new Student(name,sno,age));}ps.close();}catch(IOException e){}}for(Student se:studentSet){se.displayInfo();}}}public class TestStudentAll{public static void main(String args[]){int i;StudentAll stSet=new StudentAll();/* stSet.addStudent(new Student("aaa","001",25));stSet.addStudent(new Student("bbb","002",21));if(! stSet.addStudent(new Student("ccc","002",21))) System.out.println("学号雷同");stSet.addStudent(new Student("ccc","003",21));stSet.displayAllStudent(0);stSet.saveStudent();*/stSet.displayAllStudent(1);stSet.removeStudent("002");System.out.println("\n删除后信息");Collections.sort(stSet.studentSet);stSet.displayAllStudent(0);}}5-(2)import java.io.*;class FileCopy{public static void main(String[] args){try{String s1;int a=0;s1="abc"+a;int LineCount=0;BufferedReader input=new BufferedReader(new FileReader("AccessControl.java"));BufferedWriter output=new BufferedWriter(new FileWriter("test1.txt"));String c=input.readLine();String s;while(c!=null){ s=deleteComment(c);s=s.trim();if (!s.equals("")){output.write(LineCount+":"+deleteComment(c));output.newLine();System.out.println(deleteComment(c));LineCount++;}c=input.readLine();}input.close();output.close();}catch(IOException e){System.out.println(e);}}static String deleteComment(String s){int pos=0;if(s==null) return s;pos=s.indexOf("//");if (pos<0)return s;elsereturn s.substring(0,pos);}}。