java实验及答案.doc
Java实验级答案实验一1. 编写一个程序,在屏幕上显示如下信息: * welcome<你的名字>*2. 写一个Java程序打印出下列信息:姓名 性别 年龄 学号系和专业兴趣爱好3. 编写一个程序,使用while循环计算11000之间能被3和7同时整除的整数之和实验一答案1.1public class welcome public static void main(String args) System.out.println("*"); System.out.println(" welcome 孙强 "); System.out.println("*");1.2public class Information public static void main(String args)System.out.println("姓名:xxx ");System.out.println("性别:女");System.out.println("年龄:18");System.out.println("学号:20132214xxx");System.out.println("系和专业:xxxx");System.out.println("兴趣爱好:Java");1.3public class Sum public static void main(String args) int i=1; int sum=0; while(i<=1000) if(i%7=0&&i%3=0) sum+=i; i+; System.out.print("sum="+sum);实验二1. 有一函数,编写一个程序,从键盘输入一个x值,程序输出y的值2. 编写一个程序,使用for循环计算8+88+888+8888+的前十项之和3. 利用for循环打印 9*9 表1*1=11*2=2 2*2=41*3=3 2*3=6 3*3=91*4=4 2*4=8 3*4=12 4*4=161*5=5 2*5=10 3*5=15 4*5=20 5*5=251*6=6 2*6=12 3*6=18 4*6=24 5*6=30 6*6=361*7=7 2*7=14 3*7=21 4*7=28 5*7=35 6*7=42 7*7=491*8=8 2*8=16 3*8=24 4*8=32 5*8=40 6*8=48 7*8=56 8*8=641*9=9 2*9=18 3*9=27 4*9=36 5*9=45 6*9=54 7*9=63 8*9=72 9*9=814. 从键盘输入一个百分制的成绩,输出相应的等级。 90分以上 A级 8089 B级 7079 C级 6069 D级 60分以下 E级实验二答案2.1package cn.ldu.sun;import java.util.Scanner;public class formula public static void main(String args) Scanner reader=new Scanner(System.in);int i=reader.nextInt();if(i<0)System.out.println(-1+2*i);else if(i>0)System.out.println(-1+3*i);else System.out.println(-1);2.2package cn.ldu.sun;public class Sum2 public static void main(String args) int sum=0;int temp=8;for(int i=1;i<=10;i+)sum+=temp;temp=temp*10+8;System.out.println("sum="+sum);2.3package cn.ldu.sun;public class multiplication public static void main(String args) for(int i=1;i<10;i+) for(int j=1;j<=i;j+) System.out.print(j+"*"+i+"="+i*j+" "); System.out.print('n'); 2.4package cn.ldu.sun;import java.util.Scanner;public class Score public static void main(String args) Scanner reader=new Scanner(System.in); int score=reader.nextInt();switch(score/10)case 10: case 9:System.out.println("A");break;case 8:System.out.println("B");break;case 7:System.out.println("C");break;case 6:System.out.println("D");break;case 5:case 4:case 3:case 2:case 1:case 0:System.out.println("E");break;default:System.out.println("ERROR");实验三1. 使用Java编写控制台应用程序,用户从键盘输入月份,使用switch语句输出该月份的天数,如果输入月份为2月份,则程序提示让用户输入年份,再输出结果。2. 使用Java编写控制台应用程序,输出九九乘法表。3. 使用Java编写控制台应用程序,计算有固定收入的党员每月所交纳的党费。月工资收入400元及以下者,交纳月工资总额的0.5%;月工资收入401600元者,交纳月工资总额的1%;月工资收入601800元者,交纳月工资总额的1.5%;月工资收入8011500元者,交纳月工资总额的2%;月工资收入1500元以上者,交纳月工资总额的3%。4. 使用Java编写控制台应用程序,用户从键盘输入n天的温度,n由用户指定,求出平均温度、最高和最低温度。实验三答案3.1package exercise1;import java.util.*;public class Month public static void main(String args)Scanner reader=new Scanner(System.in);int month;System.out.printf("请用户输入月份:");int day=0;month=reader.nextInt();if(month=2) System.out.printf("请用户输入年份:"); int year=reader.nextInt(); if(year%4=0&&year%100!=0|year%400=0) day=29; else day=28;switch(month)case 1:case 3: case 5:case 7:case 8:case 10:case 12: day=31;break;case 4:case 6:case 9:case 11: day=30;break;default: System.out.printf("该月份对应天数为:%d",day);3.2public class Sanjiujiu public static void main(String args)for(int i=1;i<=9;i+)for(int j=1;j<=i;j+)System.out.printf("%d*%d=%-2d",j,i,i*j);System.out.printf(" ");System.out.printf("n");System.out.printf("n");System.out.printf("n");for(int i=1;i<=9;i+)for(int j=1;j<=9;j+)System.out.printf("%d*%d=%-2d",i,j,i*j);System.out.printf(" ");System.out.printf("n");System.out.printf("n");System.out.printf("n");for(int i=1;i<=9;i+)for(int j=i;j<=9;j+)System.out.printf("%d*%d=%-2d",i,j,i*j);System.out.printf(" ");System.out.printf("n");for(int k=1;k<=i;k+)System.out.printf(" "); 3.3import java.util.*;public class Salary public static void main(String args)Scanner reader=new Scanner(System.in);System.out.printf("请用户输入工资:");float salary;float _out = 0;salary=reader.nextFloat();if(salary<=400&&salary>=0)_out=(float)(salary*(0.5/100);else if(salary>=401&&salary<=600)_out=(float)(salary*(1/100);else if(salary>=601&&salary<=800)_out=(float)(salary*(1.5/100);else if(salary>=801&&salary<=1500)_out=(float)(salary*(2/100);else_out=(float)(salary*(3/100);System.out.printf("应缴税:%f",_out);3.4import java.util.*;public class Temperature public static void main(String args)System.out.printf("How many day's temperatures?");Scanner reader=new Scanner(System.in);int day=0;int sum=0;int max=0;int min=0;float average=0;day=reader.nextInt();for(int i=1;i<=5;i+)int tem=reader.nextInt();System.out.printf("Day%d's temperature is:%d",i,tem);sum+=tem;if(max<tem)max=tem;if(min>tem)min=tem; average=(float)(sum/5.0);System.out.printf("Average temperature:%f",average);System.out.printf("Maxmun temperature:%d",max);System.out.printf("Minmum temperature:%d",min);实验四1. 定义一个int型的一维数组,包含10个元素,从键盘分别赋一些随机整数,然后求出所有元素的最大值,最小值,平均值,和值,并输出出来。2. 定义一个int型的一维数组,包含10个元素,分别赋值为1-10, 然后将数组中的元素都向前移一个位置,即,a0=a1,a1=a2,最后一个元素的值是原来第一个元素的值,然后输出这个数组。3. 定义一个int型的一维数组,包含40个元素,用来存储每个学员的成绩,循环产生40个0-100之间的随机整数,将它们存储到一维数组中,然后统计成绩低于平均分的学员的人数,并输出出来。4. 创建一个整型数组f,拥有20个元素,并将它的各个元素赋值如下,然后,输出它们,并编写一段程序输出fn的值,其中,n为任意 f0=1, f1=2 fi=fi-1+fi-2实验四答案4.1import java.util.*;public class shuzu1 public static void main(String args) int a=new int 10;int max=a0;int min=a0;int b,c;double sum=0;double avg=0;for (int i=0;i<10;i+) ai=(int)(Math.random()*100);for(b=0;b<=9;b+)if(max<ai)max=ai;for(c=0;c<=9;c+)if(min>ai)min=ai;for(int a=0;a<=a.length;a+)sum+=a;avg=sum/a.length;System.out.println(ai);System.out.println("max="+max);System.out.println("min="+min);System.out.println("sum=:"+sum);System.out.println("avg=:"+avg);4.2public class shuzu2public static void main(String args) int a =1,2,3,4,5,6,7,8,9,10;int temp=a0;for(int i=0;i<9;i+)ai=ai+1;a9=temp;System.out.println(ai);4.3public class shuzu3 public static void main(String args) int a = new int40; int i=0; int sum=0; double avg = 0; while(i<40) ai = (int)(Math.random()*100); i+; i=0; while(i<40) sum += ai; i+; avg = sum*1.0/i; System.out.println("学员平均分:"+avg); int j=0; i=0; System.out.println("成绩低于平均分的有:"); while(i<40) if(ai < avg) System.out.println("学员"+i+"成绩:"+ai); j+; i+; System.out.println("成绩低于平均分的人数为:"+j);4.4import java.util.scanner;public class shuzu4 public static void main(String args) int f = new int20;int i,n;f0=1;f1=2;for(i=2;i<20;i+)fi=fi-1+fi-2;for(i=0;i<20;i+) System.out.printf("%3d",fi);Scanner a=new Scanner(System.in); n=a.nextInt();System.out.printf("%d",fn);实验五1. 有一列乱序的字符,a、d、m、z、h、c、o,排序并按照英文字母表的逆序输出。2. 编程实现矩形类,其中包含常量:PI,方法:getPerimeter(周长)、getArea(面积)、getVolume(体积),并创建对象测试该类。3. 编写一个计数器类,其中包括属性counter用来保存该计数器类的对象数目;每个对象可以打印其序号(serial number),显示其是第几个生成的对象。4. 定义一个满足下列条件的学生类,并创建其对象,进行测试。 此学生类拥有属性名字、学号、分数(不止一门课程,共10门) 此类提供接受分数输入的方法,计算并返回总分及平均分的方法实验五答案5.1public class _charArray public static void main(String args) char a = 'a', 'd', 'm', 'z', 'h', 'c', 'o' ;for (int i = 0; i < a.length; i+) for (int j = 0; j < a.length - 1 - i; j+) if (aj > aj + 1) char temp = aj;aj = aj + 1;aj + 1 = temp;for (int i = a.length - 1; i >= 0; i-) System.out.print(ai);System.out.print(' ');5.2package lianxi;class Circleprivate double r;public void setr(double r)this.r=r;public double getPerimeter()return 2*Math.PI*r;public double getArea()return Math.PI*r*r; public double getVolume() return 4/3*Math.PI*r*r*r; public double getRadius() return r; public class shiyan5 public static void main(String args) Circle c=new Circle();c.setr(10);System.out.printf("圆周长为:%fn",c.getPerimeter();System.out.printf("圆面积为:%fn",c.getArea();System.out.printf("圆体积为:%fn",c.getVolume();5.3class Count int serialNumber;static int counter = 0;public Count() counter+;serialNumber = counter;public void printSN() System.out.println("当前对象是第" + this.serialNumber + "个生成对象");public class 三_Count public static void main(String args) Count nancy = new Count();Count Tom = new Count();Count John = new Count();System.out.print("Tom's serialNumber is");Tom.printSN();System.out.print("John's serialNumber is:");John.printSN();System.out.println("一共生成了"+Count.counter+"个对象");5.4class Student String name;int num;double score = new double5;double total = 0;double average;Student(String name, int num) this.name = name;this.num = num;for (int i = 0; i <5; i+)scorei = 0;void setscore() System.out.println("请输入五门成绩:");for (int i = 0; i < 5; i+) Scanner input = new Scanner(System.in);scorei = input.nextInt();double gettotal() for (int i = 0; i < 5; i+)total += scorei;return total;double getaverage() average = total / 5;return average;void display() System.out.println("学号为:" + num);System.out.println("姓名为:" + name);System.out.println("五门成绩为:");for (int i = 0; i < 5; i+)System.out.print(scorei + "t");System.out.println();System.out.println("总分为" + gettotal();System.out.println("平均成绩为" + getaverage();public class 四_student1 public static void main(String args) Student stu = new Student("wang", 2010222111);stu.setscore();stu.display();实验六1. 设一个班有4个学生,每个学生有姓名、学号、成绩等信息,请利用对象数组的概念编程,求平均成绩。2. 有一个二维整型数组int array = 1,2,3, 4,5; 请通过for循环和foreach循环两种方法遍历打印数组的值。3. 设计一个矩阵类,其中允许用户输入矩阵的列数和行数,以及每个元素,并提供矩阵加法和减法的方法。最终运行结果如下图:实验六答案6.1public class StudentArrayTest public static void main(String args) Student students = new Student4;for (int i = 0; i < students.length; i+) studentsi = initializeStu();double sum = 0;for (Student student : students) sum += student.getScore();System.out.println("班级学生的平均成绩:" + sum / students.length);private static Student initializeStu() Scanner console = new Scanner(System.in);System.out.println("请输入姓名:");String name = console.nextLine();System.out.println("请输入ID:");String sID = console.nextLine();System.out.println("请输入成绩:");int score = Integer.parseInt(console.nextLine();return new Student(name, sID, score);class Student private String name;private String sID;private int score;public Student(String name, String sID, int score) this.name = name;this.sID = sID;this.score = score;public Student(String name) this.name = name;public Student(String name, String sID) this.name = name;this.sID = sID;String getName() return name;void setName(String name) this.name = name;String getsID() return sID;void setsID(String sID) this.sID = sID;int getScore() return score;void setScore(int score) this.score = score;6.2public class TwoDimension public static void main(String args) int array = 1, 2, 3 , 4, 5 ;for (int i = 0; i < array.length; i+) for (int j = 0; j < arrayi.length; j+) System.out.print(arrayij+) + " ");System.out.println("n");for (int is : array) for (int i : is) System.out.print(i + " ");System.out.println("n");/foreach cannot used to modify collection elements/foreach不能用于修改集合的元素for (int is : array) for (int i : is) System.out.print(i+)+" ");System.out.println("n");for (int i = 0; i < array.length; i+) for (int j = 0; j < arrayi.length; j+) System.out.print(arrayij + " ");System.out.println();6.3import java.util.Scanner;class Matrix private final double data;public Matrix(double data) super();if (data != null)this.data = data.clone();else this.data = new double33;System.out.println("initialization fail, return 3*3 matrix");public Matrix(int row, int column) data = new doublerowcolumn;public Matrix() this(3, 3);public int getRow() return data.length;public int getColumn() int vNum = 0;if (data0 != null)return data0.length;return vNum;public double getElement(int row, int column) double element = 0.0;if (row >= 0 && row < getRow() && column >= 0 && column < getColumn()element = datarowcolumn;elseSystem.out.println("wrong parameters");return element;public static Matrix addMatrix(Matrix a, Matrix b) Matrix result = null;double elements = null;