实验5.1
一.上机目的和要求
编写一个类,该类有如下一个方法:

public int f(int a, int b){
 …
 //要求该方法返回a和b的最大公约数}


再编写一个该类的子类,要求子类重写方法f(),而且重写的方法将返回两个整数的最小公倍数。
要求:在重写的方法的方法体中首先调用被隐藏的方法返回a和b的最大公约数m,然后将(ab)/m返回;在应用的程序的主类中分别使用父类和子类创建对象,并分别调用方法f(计算两个正整数的最大公约数和最小公倍数。
二.程序算法分析及实现(代码)(或问题解答)

package czw1;
 import java.util.;
 class A{
 public int f(int a,int b){
 int r;
 while((r=a%b)!=0){
 a=b;
 b=r;
 }
 return b;
 }
 public int g(int a,int b){
 if(a>b)return a;
 else return b;
 }
 }
 class B extends A{
 public int f(int a,int b){
 int m;
 m=f(a,b);
 return a*b/m;
 }
 }
 public class czw1 {
 public static void main(String args[]){
 int a,b;
 Scanner in=new Scanner(System.in);
 a=in.nextInt();
 b=in.nextInt();
 A x=new A();
 B y=new B();
 System.out.println("最小公约数: “+x.f(a,b)+” 最大公倍数: "+y.f(a,b));
 } }


三.结果分析及测试相关记录(包括运行截屏)

四.实验体会和学习感悟
A类实现求最小公约数,B类实现求最大公倍数class B extends A{

public int f(int a,int b){
 int m;
 m=f(a,b);
 return a*b/m;
 }


}是B类对A类的重写
实验6.2
一.上机目的和要求
编写一个Java应用程序,用户从键盘输入一行含有数字字符的字符串,程序仅仅输出该字符串中的全部数字字符。
二.程序算法分析及实现(代码)(或问题解答)

package czw1;
 import java.util.Scanner;
 public class czw1 {
 public static void main(String args[]){
 System.out.println(“输入含有数字字符的字符串:”);
 Scanner reader=new Scanner(System.in);
 while(reader.hasNext()){
 String a=reader.next();
 System.out.println(a.replaceAll("\D", “”)); 
 }
 }
 }


三.结果分析及测试相关记录(包括运行截屏)

四.实验体会和学习感悟
//D表示任何一个非数字字符,通过判断是否为数字,来确定输出结果
实验7.2
一.上机目的和要求
编写一个java应用程序,计算某年,某月,某日和某年,某月,某日之间的天数间隔。要求;年,月,日通过main()方法传递到程序中
二.程序算法分析及实现(代码)(或问题解答)

package czw1;
 import java.util.;
 public class czw1{
 public static void main(String[] args)
 {
 int a,b,c;
 int i,j,k;
 Scanner input=new Scanner(System.in);
 System.out.print(“输入年”);
 a=input.nextInt();
 System.out.print(“输入月”);
 b=input.nextInt();
 System.out.print(“输入日”);
 c=input.nextInt();
 System.out.print(“输入年”);
 i=input.nextInt();
 System.out.print(“输入月”);
 j=input.nextInt();
 System.out.print(“输入日”);
 k=input.nextInt();
 Calendar calendar=Calendar.getInstance();
 calendar.setTime(new Date());
 calendar.set(a,b,c);
 long time1=calendar.getTimeInMillis();
 calendar.set(i,j,k);
 long time2=calendar.getTimeInMillis();
 long d=(time2-time1)/(1000606024);
 System.out.println(d);
 }


三.}结果分析及测试相关记录(包括运行截屏)

四.实验体会和学习感悟
通过输入端口输入年月日,利用calender类 calendar.setTime来得到年月日,利用d=(time2-time1)/(1000606024);计算相差的天数。
实验7.4
一.上机目的和要求
有集合A={1,2,3,4}和B={1,3,7,9,11},编写一个应用程序输出它们的交集,并集和差集。
二.程序算法分析及实现(代码)(或问题解答)

package czw1;
 import java.util.;
 public class czw1{
 public static void main(String args[]) {
 Integer[] A = {1,2,3,4};
 Integer[] B = {1,3,7,9,11};
 List listA = Arrays.asList(A);
 List listB = Arrays.asList(B):
 List jiaoji = new ArrayList();
 for(Integer a:listA){
 if(listB.contains(a)){
 jiaoji.add(a);
 }
 }
 System.out.println(jiaoji);
 List bingji = new ArrayList();
 for(Integer a:listA){
 if(!bingji.contains(a)){
 bingji.add(a);
 }
 }
 for(Integer b:listB){
 if(!bingji.contains(b)){
 bingji.add(b); }}
 System.out.println(bingji);
 List chaji = new ArrayList();
 for(Integer a:listA){
 if(!listB.contains(a)){
 chaji.add(a);} }
 System.out.println(chaji);}}


三.结果分析及测试相关记录(包括运行截屏)

四.实验体会和学习感悟
Hashset泛型类来实现数学集合,进行交并差运算。
实验9.1
一.上机目的和要求
编写一个程序,读取一个文本文件的内容。
二.程序算法分析及实现(代码)(或问题解答)

package czw1;
 import java.io.*;
 public class czw1
 {
 public static void main(String[] args) throws Exception
 {
 FileInputStream file = new FileInputStream(“D:/source.txt”);
 BufferedReader file1 = new BufferedReader(new InputStreamReader(file));
 String t = null;
 while((t=file1.readLine())!=null)
 System.out.println(t);
 }
 }


三.结果分析及测试相关记录(包括运行截屏)

四.实验体会和学习感悟
将FileInputStream 流BufferedReader流连接在一起,将数据写到 "D:/source.txt文件目录下
实验9.4
一.上机目的和要求
编写一个应用程序,将用户从键盘输入的10个整数文件,在顺序读出
二.程序算法分析及实现(代码)(或问题解答)

package czw1;
 import java.io.*;
 public class czw1 {
 public static void main(String[] args) {
 FileOutputStream bw=null;
 FileInputStream bs=null;
 File f=new File(“12.txt”);
 try {
 f.createNewFile();
 } catch (IOException e){ }
 InputStreamReader h=new InputStreamReader(System.in);
 BufferedReader br=new BufferedReader(h);
 try {
 bw=new FileOutputStream(f);
 String s=br.readLine();
 bw.write(s.getBytes());
 bs=new FileInputStream(f);
 byte a[]=new byte[10];
 int i=0;
 while((i=bs.read(a))!=-1)
 {String j=new String(a, 0, i);
 System.out.print(j);}}
 catch (IOException e){ }}}


三.结果分析及测试相关记录(包括运行截屏)

四.实验体会和学习感悟
使用InputStreamReader流和BufferedReader流来控制数据的输入写入到文件12.txt中,来输入十个数据,enter键结束输入。