类与对象的练习题

该文展示了如何使用Java编程定义一个网络用户类,处理用户ID、密码和email,实现构造方法的重载。同时,还定义了一个学生信息类,包括学号、姓名、性别、年龄和Java成绩,提供了获取这些信息的方法,并演示了如何创建多个学生对象,计算Java成绩的平均值、最大值和最小值。
摘要由CSDN通过智能技术生成

题目1:

构造方法与重载:定义一个网络用户类,要处理的信息有用户 ID、用户密码、email地址。
在建立类的实例时把以上三个信息都作为构造函数的参数输入,其中用户 ID 和用户密码时没有缺省,而email地址缺省的时候
email地址是用户 ID 加上字符串"@gameschool.com"

代码实现:

import java.util.Scanner;
class NetUser{
    private String id;
    private String password;
    private String email;

    public NetUser(String id, String password) {
        this.id = id;
        this.password = password;
        this.email = id+"@gameschool.com";
    }

    public NetUser(String id, String password, String email) {
        this.id = id;
        this.password = password;
        this.email = email;
    }

    public void show(){
        System.out.println("用户ID:"+id+",密码:"+password+",邮箱:"+email);
    }
}
public class Test3 {
    public static void main(String[] args) {
        NetUser user;

        Scanner sc = new Scanner(System.in);
        System.out.println("请输入用户ID:");
        String id = sc.next();
        System.out.println("请输入密码:");
        String password = sc.next();
        System.out.println("是否要输入邮箱:(1/2)");
        int i = sc.nextInt();
        if(i==1){
            System.out.println("请输入用户的邮箱:");
            String email = sc.next();
            user = new NetUser(id,password,email);
        }else if(i==2){
            user = new NetUser(id,password);
        }else{
            System.out.println("输入有误");
            user = new NetUser(null,null,null);
        }
        user.show();
    }
}

运行截图:

 

 

题目2:

定义一个表示学生信息的类 Student,要求如下:
     (1)类 Student 的属性如下:
         sNO  表示学号; sName 表示姓名; sSex 表示性别; sAge 表示年龄;sJava:表示 Java 课程成绩。
     (2)类 Student 带参数的构造方法:
         在构造方法中通过形参完成对成员变量的赋值操作。
     (3)类 Student 的方法成员:
          getNo():获得学号;
          getName():获得姓名;
          getSex():获得性别;
          getAge()获得年龄;
          getJava():获得 Java  课程成绩
     (4)根据类 Student 的定义,创建五个该类的对象,输出每个学生的信息,计算并输出这五个学生 Java 语言成绩的平均值,以及计算并输出他们 Java 语言成绩的最大值和最小值。

代码实现: 

import java.util.Scanner;

class Student {
    private String sNo;
    private String sName;
    private String sSex;
    private int sAge;
    private int sJava;

    public Student() {
    }

    public Student(String sNo, String sName, String sSex, int sAge, int sJava) {
        this.sNo = sNo;
        this.sName = sName;
        this.sSex = sSex;
        this.sAge = sAge;
        this.sJava = sJava;
    }

    public String getsNo() {
        return sNo;
    }

    public String getsName() {
        return sName;
    }

    public String getsSex() {
        return sSex;
    }

    public int getsAge() {
        return sAge;
    }

    public int getsJava() {
        return sJava;
    }

    public void show() {
        System.out.println("学号:" + sNo);
        System.out.println("姓名:" + sName);
        System.out.println("性别:" + sSex);
        System.out.println("年龄:" + sAge);
        System.out.println("java课程成绩:" + sJava);
    }
}

public class Test4 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        //定义一个数组存放5个学生对象的java成绩
        Student[] arr = new Student[5];  //数组中存的是学生对象
        Student s;
        //创建5个学生对象
        for (int i = 0; i < 5; i++) {
            System.out.println("请输入第" + (i + 1) + "个学生信息:");
            System.out.println("请输入学生的学号:");
            String sNo = sc.next();
            System.out.println("请输入学生的姓名:");
            String sName = sc.next();
            System.out.println("请输入学生的性别:");
            String sSex = sc.next();
            System.out.println("请输入学生的年龄:");
            int sAge = sc.nextInt();
            System.out.println("请输入学生的java课程成绩:");
            int sJava = sc.nextInt();

            s = new Student(sNo, sName, sSex, sAge, sJava);
            arr[i] = s;
            System.out.println("===============================");

        }
        //调用方法求出5个学生的java课程成绩平均值
        double avgScore = getAvgScore(arr);
        System.out.println("5位学生的java课程成绩平均值为:" + avgScore);
        System.out.println("**************************************************");

        //调用方法求出5位学生中java课程成绩最高的学生信息
        Student student1 = getMaxScore(arr);
        System.out.println("java成绩最高的学生信息为:");
        student1.show();
        System.out.println("**************************************************");

        //调用方法求出5位学生中java课程成绩最低的学生信息
        Student student2 = getMinScore(arr);
        System.out.println("java成绩最低的学生信息为:");
        student2.show();


    }

    //定义方法求平均成绩
    public static double getAvgScore(Student[] array) {
        int sum = 0;

        for (int i = 0; i < array.length; i++) {
            sum = sum + array[i].getsJava();
        }
        return (sum * 1.0) / array.length;
    }

    //定义方法求最高成绩
    public static Student getMaxScore(Student[] array) {
        int max = array[0].getsJava();
        int index = 0;
        for (int i = 1; i < array.length; i++) {
            if (array[i].getsJava() > max) {
                max = array[i].getsJava();
                index = i;
            }
        }
        return array[index];
    }

    //定义方法求最低成绩
    public static Student getMinScore(Student[] array) {
        int min = array[0].getsJava();
        int index = 0;
        for (int i = 1; i < array.length; i++) {
            if (array[i].getsJava() < min) {
                min = array[i].getsJava();
                index = i;
            }
        }
        return array[index];
    }
}

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

+7_big data

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值