java 第 二 次实验

                                              

    怀德学院         

 

 Java面向对象程序设计   实验报告

 

 

 

第      次实验

 

 

 

实验名称       Java开发环境配置及简单程序编写         

专业和班级                计算机184                   

 

同实验者                      记录                     

实验时间                2020.4.16                      

成 绩                    审阅教师     刁小敏            

 

 

 

一、实验目的

1.理解程序的结构(选择、循环、顺序)的含义

2.掌握if…elseswitch…case, for, while, do…while语句的应用。

3、掌握数组结构的使用。

4、掌握数组的排序等方法,并应用于实际问题中。

二、实验内容

1.编写程序提示用户从键盘输入一个年份(如2021)和该年第一天是星期几(如5),星期用数字表示,0表示星期日,1表示星期一等。程序打印该年的每月的月历。如下所示。

2.编写程序,利用for循环嵌套打印输出前10行杨辉三角形。

3、编写程序,提示用户输入学生个数(人数大于6),学生姓名,学生成绩,然后按照学生成绩的降序打印输出学生的姓名和成绩。运行结果如下。

三、实验过程

1、编写程序提示用户从键盘输入一个年份(如2021)和该年第一天是星期几(如5),星期用数字表示,0表示星期日,1表示星期一等。程序打印该年的每月的月历。

(1)代码设计

   

    package com.cad.task;

 

import java.text.DateFormat;

import java.text.ParseException;

import java.text.SimpleDateFormat;

import java.util.Calendar;

import java.util.Date;

import java.util.GregorianCalendar;

import java.util.Scanner;

 

public class TestCalender {

    public static void main(String[] args) throws ParseException {

     

        Scanner scan = new Scanner(System.in);

        System.out.println("请输入年份:");

        int year = scan.nextInt(); //这里可输入所要查询的年份

       

        Calendar date = Calendar.getInstance();      

        year = date.get(Calendar.YEAR); //获得当前年

       

       

       

        int m = 1;//月份计数

          while (m < 13) {

            int month = m;

            Calendar cal = Calendar.getInstance();//获得当前日期对象

              cal.clear();//清除信息

              cal.set(Calendar.YEAR, year);

            cal.set(Calendar.MONTH, month - 1);//1月从0开始

              int count = cal.getActualMaximum(Calendar.DAY_OF_MONTH);

            int week = cal.get(Calendar.DAY_OF_WEEK);

            System.out.printf("\t\t\t%d年%d月\n\n", year, month);

            System.out.print("日\t一\t二\t三\t四\t五\t六\n");

            int i;

            for (i = 0; i < week - 1; i++) {

                System.out.print("\t");

            }

            for (int j = 1; j <= count; j++) {

                System.out.print(j + "\t");

                if ((i + j) % 7 == 0) {

                    System.out.println();

                }

            }

            System.out.println();

            m++;

        }

    }

}

 

(2)运行结果

      

 

2、编写程序,利用for循环嵌套打印输出前10行杨辉三角形。。

  1. 代码设计

 

package com.cad.task;

 

import java.util.Scanner;

 

public class TestTriangle {

    public static void main(String[] args) {

    int n = 10;

    int mat[][] = new int[10][];

    int i, j;

    for (i = 0; i < n; i++) {

        mat[i] = new int[i + 1];

        //mat[i][0] = 1;//是否显示0

        mat[i][i] = 1;

        for (j = 1; j < i; j++) {

            mat[i][j] = mat[i - 1][j - 1] + mat[i - 1][j];//中间的数字等于上方的2个数字之和

      }

     

     

     }

     for (i = 0; i < mat.length; i++) {

   

         for (j = 0; j < mat[i].length; j++)

             System.out.print(" " + mat[i][j]);

             System.out.println();

     }

 

 

    }

       

   

}

 

  1. 运行结果

 

 

 

3、编写程序,提示用户输入学生个数(人数大于6),学生姓名,学生成绩,然后按照学生成绩的降序打印输出学生的姓名和成绩。

(1) 代码设计

             

 

       package com.cad.task;

 

import java.util.Scanner;

 

public class TestStudent {

    private String name;

    private long grade;

   

    public long getGrade() {

        return grade;

    }

    public void setGrade(long grade) {

        this.grade = grade;

    }

    public String getName() {

        return name;

    }

    public void setName(String name) {

        this.name = name;

    }

    public String toString(){

        return this.name;

    }

    public static void main(String[] args) {

        Scanner sc = new Scanner(System.in);

        System.out.println("请输入学生数");

        int stuNumT = sc.nextInt();

        TestStudent objArr[] = new TestStudent[stuNumT];

        for(int i = 0; i < objArr.length; i++){

            objArr[i] = new TestStudent();

            System.out.println("请输入第" + (i+1) + "个学生的姓名");

            String name = sc.next();

            objArr[i].setName(name);

            System.out.println("请输入第" + (i+1) + "个学生的成绩");

            long grade = sc.nextLong();

            objArr[i].setGrade(grade);

        }

        System.out.println("打印开始:");

        for(int i = 0; i < objArr.length; i++){

            for(int j = i+1; j < objArr.length; j++){

                if(objArr[i].getGrade() < objArr[j].getGrade()){

                   TestStudent s = new TestStudent();

                   s = objArr[i];

                   objArr[i] = objArr[j];

                   objArr[j] = s;

                }

            }

        }

        for(int i=0; i < objArr.length; i++){

            System.out.println(""+(i+1)+""+objArr[i].getName()+"的成绩是:"+objArr[i].getGrade());

        }

    }

}

 

(2)运行结果

 

 

四、实验小结

本次实验理解了程序的结构(选择、循环、顺序)的含义,掌握if…elseswitch…case, for, while, do…while语句的应用,掌握数组结构的使用,掌握数组的排序等方法,并应用于实际问题中。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值