Java实验1 java语言程序设计基础训练

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/lzq_20150715/article/details/51027573

一、实验目的
熟悉Java程序结构,掌握基本数据类型的使用方法,熟练运用分支、循环等语句控制程序流程,掌握数组类型的使用方法。
二、实验内容
1.程序理解:
P77 六、编程题
1、参考答案

public class Test01 {
    public static void main(String[] args) {
        int sum = 0;
        for (int i = 1; i < 100; i++) {
            if (i % 2 != 0)
                sum += i;
        }
        System.out.println(sum);
    }
}

2、参考答案

public class Test02 {
    public static void main(String args[]) {
        int y = function(0);
        System.out.println(y);
    }
    public static int function(int x) {
        int y;
        if (x > 0) {
            y = x + 3;
        } else if (x == 0) {
            y = 0;
        } else {
            y = x * x - 1;
        }
        return y;
    }
}

3、参考答案

public class Test03 {
    public static void main(String[] args) {
        int[] arr = { 25, 24, 12, 76, 101, 96, 28 };
        for (int i = 0; i < arr.length - 1; i++) {
            // 定义内层循环
            for (int j = 0; j < arr.length - i - 1; j++) {
                if (arr[j] > arr[j + 1]) { // 比较相邻元素
                    // 下面的三行代码用于交换两个元素
                    int temp = arr[j];
                    arr[j] = arr[j + 1];
                    arr[j + 1] = temp;
                }
            }
        }
        for (int i = 0; i < arr.length; i++) {
            System.out.print(arr[i] + " "); // 打印元素和空格
        }
    }
}

2.编程题:
(1)写一个程序,打印出1到50间的整数,输出5个换一行(注:System.out.print()不换行,System.out.println()换行)。修改此程序,在值为41时用一个break退出程序,修改此程序把break换成continue试试。(程序1)
(2)方法重载:写一个重载方法,一个用来计算矩形的面积(参数为长和宽,整形),一个用来计算三角形的面积(参数为三个边,实型,面积计算用海伦公式:,p为三角形的半周长,使用方法Math.sqrt(),请查询JDK帮助文档,java.lang.Math类里面定义的方法),在main方法里面分别调用,输出面积计算的结果。(程序2)
(3)请定义一个方法,用选择排序算法将数组中的元素进行从小到大的排序。在main方法里面定义一个数组,输出排序前的数组,调用排序方法,输出排序后的数组。选择排序法的原理是:首先找到数组中的最值,将最小值(最大值)的下标与第一个元素的下标交换,再在剩下的元素中找最小值(最大值)的下标与第二个元素的下标交换,以此类推,完成所有元素的排序。(程序3)
三、实验结果和分析
说明:请截图给出各个程序的运行结果,并做必要的分析。
(1)程序1运行结果
这里写图片描述
这里写图片描述
这里写图片描述
分析:打印出1到50间的整数,输出5个换一行,将该数模5取余即可,break直接跳出循环,41(包括41在内)的数字不再输出,continue跳出本次循环,仅仅41不输出。
(2)程序2运行结果
这里写图片描述
分析:导入import java.util.Scanner,使用控制台输入数据,Scanner sc = new Scanner(System.in),int x1 = sc.nextInt(),计算面积使用重载方法

(3)程序3运行结果
这里写图片描述
分析:导入import java.util.Scanner,使用控制台输入数据,Scanner sc = new Scanner(System.in),用数组记录数据,int[] arr = new int[10],定义了打印数组的方法和直接选择排序的方法,printArray(arr),SelectSort(arr)

四、实验源代码
说明:请将各程序的源代码复制粘贴到这里。
(1)程序1源代码

public class Example1 {
    public static void main(String[] args) {
        System.out.println("1到50间的整数,输出5个换一行如下:");
        for (int i = 1; i <= 50; i++) {

            System.out.print("  " + i);

            if (i % 5 == 0)
                System.out.print("\n");
        }

        System.out.println("第一次修改程序后:");
        for (int i = 1; i <= 50; i++) {
            if (i == 41)
                break;
            System.out.print("  " + i);

            if (i % 5 == 0)
                System.out.print("\n");

        }

        System.out.println("第二次修改程序后:");
        for (int i = 1; i <= 50; i++) {
            if (i == 41)
                continue;
            System.out.print("  " + i);

            if (i % 5 == 0)
                System.out.print("\n");

        }
    }
}
/*(1)写一个程序,打印出1到50间的整数,输出5个换一行
(注:System.out.print()不换行,System.out.println()换行)。
修改此程序,在值为41时用一个break退出程序,
修改此程序把break换成continue试试。(程序1)*/
class Print
{
    public static void main(String[] args)
    {
        for(int i=1;i<=50;i++)
        {
            System.out.printf("%-10d",i);
            if(i%5==0)
                System.out.println();
        }
        System.out.println("第一次修改程序:");
        for(int i=1;i<=50;i++)
        {
            System.out.printf("%-10d",i);
            if(i%5==0)
                System.out.println();
            if(i==41)
                    break;
        }
        System.out.println();
        System.out.println("第二次修改程序:");
        for(int i=1;i<=50;i++)
        {
            System.out.printf("%-10d",i);
            if(i%5==0)
                System.out.println();
            if(i==41)
                    continue;
        }
        System.out.println();
    }
}

(2)程序2源代码

import java.util.Scanner;

public class Example2 {

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        // 下面是针对求面积方法的调用
        System.out.println("请输入矩形的长和宽:");
        int x1 = sc.nextInt();
        int y1 = sc.nextInt();
        int s1 = area(x1, y1);
        System.out.println("请输入三角形的边长:");
        double x2 = sc.nextDouble();
        double y2 = sc.nextDouble();
        double z2 = sc.nextDouble();
        double s2 = area(x2, y2, z2);
        // 下面的代码是打印求面积的结果
        System.out.println("矩形的面积是" + s1);
        System.out.println("三角形的面积是" + s2);
    }

    // 下面的方法实现了用来计算矩形的面积(参数为长和宽,整形)
    public static int area(int a, int b) {
        return a * b;
    }

    public static double area(double a, double b, double c) {
        double p = (a + b + c) / 2;
        double temp = Math.sqrt(p * (p - a) * (p - b) * (p - c));
        return temp;
    }

}

 import java.util.Scanner;
 class Area {
 public static void main(String[] args) {
    Scanner s = new Scanner(System.in); 
    System.out.print("请输入三角形三边a,b,c:");
  Double a=s.nextDouble();
    Double b=s.nextDouble();
    Double c=s.nextDouble();
    System.out.print("请输入矩形两边x,y:");
  int x=s.nextInt();
    int y=s.nextInt();


  System.out.println("三角形的面积:" + area(a,b,c));
  System.out.println("矩形的面积:" + area(x,y));
 }

 //求三角形的面积
 public static double area(double a, double b, double c){
  double p = (a + b + c) / 2;
  return Math.sqrt(p*(p-a)*(p-b)*(p-c));
 }

 //求矩形的面积
 public static int area(int width, int height){
  return width * height;
 }

}

(3)程序3源代码

import java.util.Scanner;

public class Example3 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.print("请输入十个数字:\n");
        int[] arr = new int[10];
        for (int x = 0; x < 10; x++) {
            arr[x] = sc.nextInt();
        }
        System.out.print("排序前:");
        printArray(arr); // 打印数组元素
        SelectSort(arr); // 调用排序方法
        System.out.print("排序后:");
        printArray(arr); // 打印数组元素
    }

    // 定义打印数组元素
    public static void printArray(int[] arr) {
        // 循环遍历数组元素
        for (int i = 0; i < arr.length; i++) {
            System.out.print(arr[i] + " ");// 打印元素和空格
        }
        System.out.println();
    }

    // 定义对数组直接选择排序的方法
    public static void SelectSort(int[] arr) {
        for (int i = 0; i < arr.length - 1; i++) {
            // 设第i个数据元素关键字最小
            for (int j = i + 1; j < arr.length; j++)// 寻找关键字最小的数据元素
            {
                int small = i;
                if (arr[j] < arr[small])
                    small = j;
                if (small != i) // 当最小元素的下标不为i时交换位置
                {
                    int temp = arr[i];
                    arr[i] = arr[small];
                    arr[small] = temp;
                }
            }
        }
    }
}
/*请定义一个方法,用选择排序算法将数组中的元素进行从小到大的排序。
在main方法里面定义一个数组,输出排序前的数组,调用排序方法,
输出排序后的数组。选择排序法的原理是:首先找到数组中的最值,
将最小值(最大值)的下标与第一个元素的下标交换,再在剩下的元素
中找最小值(最大值)的下标与第二个元素的下标交换,以此类推,完成所有元素的排序。*/
 import java.util.Scanner;
class Paixu
{

    public static void main(String[] args)
    {
        Scanner s = new Scanner(System.in);
        System.out.println("请输入数组的十个数字:");
        int[] arr=new int[10];
        for(int x=0;x<10;x++)
        {
            arr[x]=s.nextInt();
        }
        System.out.println("排序前:");
        show(arr);
        System.out.println();
        System.out.println("排序后:");
        sort(arr);
        show(arr);
    }
    public static void show(int[] arr)
    {
        for(int i=0;i<arr.length;i++)
        {
            System.out.print(arr[i]+"    ");
        }
    }
    public static void sort(int[] arr)
    {
        for(int x=0;x<arr.length-1;x++)
        {
            for(int y=x+1;y<arr.length;y++)
            {
                if(arr[x]>arr[y])
                {
                    int temp=arr[x];
                    arr[x]=arr[y];
                    arr[y]=temp;
                }
            }
        }
    }
}
阅读更多
想对作者说点什么?

博主推荐

换一批

没有更多推荐了,返回首页