1、Java 程序设计实验报告班级: 网络 151 姓名: 徐毅民 学号: 153299 实验一 Java 语言基础一实验目的掌握 Java 语言的基本语法、基本数据类型的使用方法,掌握从键盘输入基本类型的数据,熟练运用分支、循环等语句控制程序流程。2实验内容 1、编写一个 Java 应用程序,用户从键盘输入十名学生的信息,至少包括姓名、年龄、出生年月日、java 课程实验成绩,成绩使用浮点数,年龄使用整型,程序将输出年龄、java 课程实验成绩的平均值。提示:Scanner 对象调用 nextDouble()或 nextFloat()可以获取用户从键盘输入的浮点数。2、使用 Arrays 类实现
2、数组排序:使用 java.util 包中的 Arrays类的类方法 public static void sort(double a)可以把参数 a 指定的double 类型数组按升序排序; public static void sort(double a, int start , int end)可以把参数 a 指定的 double 类型数组中从位置 start到 end 位置的值按升序排序。给定数组 int a=12,34,9,-23,45,6,90,123,19,45,34; 从键盘读入一个整数,使用折半查找判断该整数是否在这个数组中,并将结果输出。3、输出100200 之间的所有素数。
3、4、采用for循环求1 至1000之内的所有“完全数” 。所谓“完全数”是指一个数,恰好等于它的因子之和。例如,6是一个完全数,因为6 的因子为1、2、 3,而61+2+3 。5、已知XYZ+YZZ=532,其中X、Y和Z为数字,编程求出X,Y和Z的值。三实验步骤实验1以最终学生信息管理系统为准实验2代码如下:import java.util.Arrays;import java.util.Scanner;public class test2 public static void printDoubleArray(double a) for(int i = 0; i = b.length) S
4、ystem.out.println(i+“输入数字不在数组中!“); else System.out.println(bi+“在数组b第“+(i+1)+“位!“);实验3代码如下:public class test3 public static boolean isPrime(int x) if(x = 1) return false;int s = (int)Math.sqrt(x);for(int i = 2; i MyDate.getDaysOfMonth(year, month) return false;return true;public static boolean isLeap
5、Year(int year) return year%400=0 | year%100!=0 public static void main(String args) int sel, y, m, d;Scanner in = new Scanner(System.in);while(true) System.out.println(“请输入年月日:“);y = in.nextInt();m = in.nextInt();d = in.nextInt();if(MyDate.isValidDate(y, m, d) System.out.println(y+“年“+m+“ 月“+d+“日“+“
6、 信息正确!“); else System.out.println(y+“年“+m+“ 月“+d+“日“+“ 信息不正确!“);System.out.println(“是否继续输入?(1:是,0:否)“);sel = in.nextInt(); if(sel = 0) break;实验2以最终学生信息管理系统为准实验3代码如下:Shape接口:public interface Shape public abstract double getArea();public abstract double getPerimeter();Rectangle类:public class Rectangle
7、 implements Shape private double width;private double height;private Coordinate c; /矩形左下角的点public Rectangle() this.width = 0;this.height = 0;this.c = new Coordinate(0, 0);public Rectangle(double width, double height, int x, int y) this.width = width;this.height = height;this.c = new Coordinate(x, y)
8、;Overridepublic double getArea() return this.width*this.height;Overridepublic double getPerimeter() return 2*(this.width+this.height);Circle 类public class Circle implements Shape private double radius;private Coordinate center;public Circle() this.radius = 0;this.center = new Coordinate(0, 0);public
9、 Circle(double radius, long x, long y) this.radius = radius;this.center = new Coordinate(x, y);Overridepublic double getArea() return Math.PI*this.radius*this.radius;Overridepublic double getPerimeter() return 2*Math.PI*this.radius;Triangle 类public class Triangle implements Shape private double a, b
10、, c;private Coordinate c1, c2, c3;public Triangle() this.a = 0;this.b = 0;this.c = 0;this.c1 = new Coordinate(0, 0);this.c2 = new Coordinate(0, 0);this.c3 = new Coordinate(0, 0);Overridepublic double getArea() double s = this.getPerimeter()/2;return Math.sqrt(s*(s-a)*(s-b)*(s-c);Overridepublic doubl
11、e getPerimeter() return this.a+this.b+this.c;public static boolean isVaild(double a, double b, double c) if(a+b = c | Math.abs(a-c) = b | Math.abs(b-c) = a) return false;return true;测试类public class test3 public static void main(String args) Shape shape;Scanner in = new Scanner(System.in);System.out.
12、println(“请输入矩形的宽、高,左下角点的横坐标、纵坐标:“);shape = new Rectangle(in.nextDouble(), in.nextDouble(), in.nextInt(), in.nextInt();System.out.println(“矩形的面积:“+shape.getArea()+“ 周长“+shape.getPerimeter();System.out.println(“请输入圆的半径,圆心的横坐标、纵坐标:“);shape = new Circle(in.nextDouble(), in.nextInt(), in.nextInt();System
13、.out.println(“圆形的面积:“+shape.getArea()+“ 周长“+shape.getPerimeter();double a, b, c;System.out.println(“请输入三角形的三条边长:“);a = in.nextDouble(); b = in.nextDouble(); c = in.nextDouble();while(!Triangle.isVaild(a, b, c) System.out.println(“这不是一个三角形,请重新输入三条边长:“);a = in.nextDouble(); b = in.nextDouble(); c = in
14、.nextDouble();System.out.println(“请分别输入三个顶点的横坐标、纵坐标:“);shape = new Triangle(a, b, c, in.nextInt(), in.nextInt(), in.nextInt(), in.nextInt(), in.nextInt(), in.nextInt();System.out.println(“三角形的面积:“+shape.getArea()+“ 周长“+shape.getPerimeter();实验4代码如下:5详细的调试和运行结果实验1运行结果:请输入年月日:2001 12 562001年12 月 56日信息不
15、正确!是否继续输入?(1:是, 0:否)1请输入年月日:1900 2 291900年2月29日信息不正确!是否继续输入?(1:是, 0:否)0实验2以最终学生信息管理系统为准实验3运行结果:请输入矩形的宽、高,左下角点的横坐标、纵坐标:7 8 9 10矩形的面积:56.0 周长30.0请输入圆的半径,圆心的横坐标、纵坐标:2 3 4圆形的面积:12.566370614359172 周长12.566370614359172请输入三角形的三条边长:3 4 5 请分别输入三个顶点的横坐标、纵坐标:4 5 8 5 4 8三角形的面积:6.0 周长12.0实验4运行结果:五实验感想通过本次从实验对 ja
16、va 语言的基本语法有了更深刻的了解,对java 中类的定义和面向对象的设计有了基本的了解。实验三 异常处理程序设计1实验目的了解 Java 中异常处理(exception)的作用及常用的异常类,掌握异常处理的设计方法。2实验内容1、用 try-catch-finally 结构实现异常处理。编译并运行程序,写出程序运行结果。2、设计一个 Java 程序,自定义异常类,从命令行(键盘)输入一个字符串,如果该字符串值为“XYZ” ,则抛出一个异常信息“This is a XYZ”,如果从命令行输入 ABC,则没有抛出异常。 (只有 XYZ 和 ABC 两种输入) 。3、声明一个 Average 接口,其中约定求平均值的方法;声明多个类实现 Average 接口,分别给出求平均值的方法实现。例如,在一组数值中,一种算法是,全部数值相加后求平均值,另一种算法是,去掉一个最高分和一个最低分后,再将总分求平均等;使用键盘输入数据时,对于不能转换成数值的字符串进行异常处理。三实验步骤实验 1 代码如下: