救救孩子吧,Java也太难了吧(或许是我太笨了)
写了一半,下半段总是出错
创建类 student,包含五个私有成员变量,sno,sname,sex,age,grade;分别表示学号、姓
名、性别、年龄、成绩。
2) 类 student 带参数的构造方法,完成对 5 个成员变量的初始化赋值。
3) 类 student 中包含五个方法,
getSno():获取学号
getsname():获取姓名
getsex():获取性别
getAge():获取年龄
getGrade():获取成绩
4) 创建一个新类 MyPractice,在 main 方法中创建 5 个 student 类的实例对象,输出每个学 生的信息,并计算五个成绩的平均值、最大值和最小值。
import java.util.ArrayList;
public class MyPractice {
public static void main(String[] args) {
ArrayList<Student> students = new ArrayList<>();
// TODO 自动生成的方法存根
Student st1=new Student(2019001,"张","男",18,90);
Student st2=new Student(2019004,"李","女",19,80);
Student st3=new Student(2019003,"王","男",17,100);
Student st4=new Student(2019004,"李","女",19,70);
Student st5=new Student(2019005,"王","男",17,100);
System.out.println(st1);
System.out.println(st2);
System.out.println(st3);
System.out.println(st4);
System.out.println(st5);
students.add(st1);
students.add(st2);
students.add(st3);
students.add(st4);
students.add(st5);
//计算五个成绩的平均值
int sumGrade = 0;//五个成绩的总和
int maxGrade = 0;//最大值
int leastGrade = 0;//最小值
for (int i = 0; i <students.size() ; i++) {
sumGrade += students.get(i).getGrade();
int grade = students.get(i).getGrade();//每个人的成绩
if(i==0){//赋值不做比较
maxGrade = grade;
leastGrade = grade;
}else {
//如果大于maxGrade 最大值就是这个成绩
if (grade > maxGrade) {
maxGrade = grade;
}
if (grade < leastGrade) {
leastGrade = grade;
}
}
}
System.out.println("最大值="+maxGrade);
System.out.println("最小值="+leastGrade);
System.out.println("计算五个成绩的平均值="+(sumGrade/5));
}
}
这样写就可以了,试试吧。
这样写就可以了,试试吧。
这样写就可以了,试试吧。
不需要修改你的student类
# Student
package com.zhoutao123.algorithm;
/**
* 定义学生类,实现Comparable接口用于比较
*
* @apiNote Comparable 接口是java中用来比较的一个接口,其比较的具体实现在compareTo方法中
*/
public class Student implements Comparable<Student> {
// 学号
private int sno;
// 姓名
private String sname;
// 性别
private String sex;
// 年龄
private int age;
// 成绩
private int grade;
public Student(int sno, String sname, String sex, int age, int grade) {
this.sno = sno;
this.sname = sname;
this.sex = sex;
this.age = age;
this.grade = grade;
}
@Override
public int compareTo(Student o) {
if (o == null) {
return -1;
}
return this.grade > o.grade ? -1 : 1;
}
public int getSno() {
return sno;
}
public String getSname() {
return sname;
}
public String getSex() {
return sex;
}
public int getAge() {
return age;
}
public int getGrade() {
return grade;
}
}
# MyPractice
public class MyPractice {
public static void main(String[] args) {
Student s1 = new Student(2021001, "章1", "男", 18, 123);
Student s2 = new Student(2021002, "章2", "女", 12, 109);
Student s3 = new Student(2021003, "章3", "男", 14, 143);
Student s4 = new Student(2021004, "章4", "女", 15, 109);
Student s5 = new Student(2021005, "章5", "女", 16, 93);
Student[] s = {s1, s2, s3, s4, s5};
int sumGrade = s[0].getGrade();
Student minStudent = s[0];
Student maxStudent = s[0];
for (int i = 1; i < s.length; i++) {
sumGrade += s[i].getGrade();
if (minStudent.compareTo(s[i]) < 0) {
minStudent = s[i];
}
if (maxStudent.compareTo(s[i]) > 0) {
maxStudent = s[i];
}
}
System.out.printf("平均成绩:%s\n", sumGrade * 1.0 / s.length);
System.out.printf("最高成绩:%s\n", maxStudent.getGrade());
System.out.printf("最低成绩:%s\n", minStudent.getGrade());
}
}
0基础学习JAVA(QQ项目实训):https://edu.csdn.net/course/detail/2981
其实大体上没啥问题。你只是没有调用对构造方法罢了。把对应的类型改一改,就好了。
Student st1=new Student(2019001,"张","男",18,90);
Student st2=new Student(2019004,"李","女",19,80);
Student st3=new Student(2019003,"王","男",17,100);
Student st4=new Student(2019004,"李","女",19,70);
Student st5=new Student(2019005,"王","男",17,100);
这是我写的,有没有大佬给看看怎么修改啊,救救孩子吧谢谢啦
public class Student {
private int sno;
private String sname;
private String sex;
private int age;
private int grade;
public int getSno(){
return sno;
}
public String getsname(){
return sname;
}
public String getsex(){
return sex;
}
public int getAge(){
return age;
}
public int getGrade(){
return grade;
}
public Student(int sno,String sname,String sex,int age,int grade){
this.sno=sno;
this.sname=sname;
this.sex=sex;
this.age=age;
this.grade=grade;
}
public Student(String sno, String sname, String sex, String age, String string3) {
// TODO 自动生成的构造函数存根
}
@Override
public String toString(){
return " "+sno+" "+sname+" "+sex+" "+age+" "+grade;
}
public static void main(String[] args) {
// TODO 自动生成的方法存根
}
}
public class MyPractice {
public static void main(String[] args) {
// TODO 自动生成的方法存根
Student st1=new Student("2019001","张","男","18","90");
Student st2=new Student("2019004","李","女","19","80");
Student st3=new Student("2019003","王","男","17","100");
Student st4=new Student("2019004","李","女","19","70");
Student st5=new Student("2019005","王","男","17","100");
System.out.println(st1);
System.out.println(st2);
System.out.println(st3);
System.out.println(st4);
System.out.println(st5);
}
}
您好,我是有问必答小助手,你的问题已经有小伙伴为您解答了问题,您看下是否解决了您的问题,可以追评进行沟通哦~
如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~
ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632