当前位置: 代码迷 >> Eclipse >> 大一学生编程入门,求大神见教
  详细解决方案

大一学生编程入门,求大神见教

热度:84   发布时间:2016-04-23 00:17:32.0
大一学生编程入门,求大神指教啊
import java.util.Scanner;
public class Main {
/**
 * @param args
 */
public static void main(String[] args) {
// TODO Auto-generated method stub
//(1)定义一个表示学生信息的类Student,要求如下:
// ①类Student的成员变量:
// sNO表示学号;sName表示姓名;sSex表示性别;
// sAge表示年龄;sJava表示Java课程成绩
//  ②类Student的成员方法:
// getNo()获得学号;getName()获得姓名;getSex()获得性别;
// getAge()获得年龄;getJava()获得Java 课程成绩
// (2)按(1)中学生类Student的定义,创建两个该类的对象,存储并输出两个学生的信息,计算并输出这两个学生Java语言成绩的平均值。
// (3)创建第(1)题的Student类的5个对象,求他们Java语言成绩的最大值和最小值。

Scanner in=new Scanner(System.in);
Student student[]=new Student[5];
for(int i=0;i<5;i++)
{
student[i]=new Student();
System.out.println("请输入第"+(i+1)+"个人的编号:");
student[i].sNo=in.nextInt();
System.out.println("请输入第"+(i+1)+"个人的名字:");
student[i].sName=in.next();
System.out.println("请输入第"+(i+1)+"个人的性别:");
student[i].sSex=in.next();
System.out.println("请输入第"+(i+1)+"个人的年龄:");
student[i].sAge=in.nextInt();
System.out.println("请输入第"+(i+1)+"个人的成绩:");
student[i].sJava=in.nextDouble();
}
student.compare();
System.out.println("前两名同学的java平均成绩为"+sum);
System.out.println("这五名同学的最大成绩为"+max);
System.out.println("这五名同学的最大成绩为"+min);
}
}


------解决思路----------------------
compare方法调用的方式有问题,这个方法是Student对象的方法,你用对象数组调用了,方法有参数传递,你直接没有,这样编译不报错吗?看了一眼,编译bug应该不少
------解决思路----------------------
等发布刚好,帮你改了下:

package com.pojo;

import java.util.HashMap;
import java.util.Map;
public class Student {
public int sNo;
public String sName;
public String sSex;
public int sAge;
public double sJava;

public int sNo() {
return sNo;
}

public String sName() {
return sName;
}

public String sSex() {
return sSex;
}

public int sAge() {
return sAge;
}

public double sJava() {
return sJava;
}

public static Map<String, Object> compare(Student[] student) {
double sum;
sum = (student[0].sJava() + student[1].sJava()) / 2;
double max = 0, min = 100;
for (int i = 0; i < 5; i++) {
if (student[i].sJava() > max)
max = student[i].sJava();
if (student[i].sJava() < min)
min = student[i].sJava();
System.out.println("第" + (i + 1) + "名同学的编号是:" + student[i].sNo()
+ " 名字:" + student[i].sName() + " 性别:" + student[i].sSex()
+ " 年龄:" + student[i].sAge() + " java成绩:"
+ student[i].sJava());
}
Map<String, Object> map = new HashMap<String, Object>();
map.put("sum", sum);
map.put("max", max);
map.put("min", min);
return map;
}

}


package com.pojo;

import java.util.Map;
import java.util.Scanner;

public class Main {
/**
 * @param args
 */
public static void main(String[] args) {
// TODO Auto-generated method stub
// (1)定义一个表示学生信息的类Student,要求如下:
//  ①类Student的成员变量:
// sNO表示学号;sName表示姓名;sSex表示性别;
// sAge表示年龄;sJava表示Java课程成绩
//  ②类Student的成员方法:
// getNo()获得学号;getName()获得姓名;getSex()获得性别;
// getAge()获得年龄;getJava()获得Java 课程成绩
// (2)按(1)中学生类Student的定义,创建两个该类的对象,存储并输出两个学生的信息,计算并输出这两个学生Java语言成绩的平均值。
// (3)创建第(1)题的Student类的5个对象,求他们Java语言成绩的最大值和最小值。

Scanner in = new Scanner(System.in);
Student student[] = new Student[5];
for (int i = 0; i < 5; i++) {
student[i] = new Student();
System.out.println("请输入第" + (i + 1) + "个人的编号:");
student[i].sNo = in.nextInt();
System.out.println("请输入第" + (i + 1) + "个人的名字:");
student[i].sName = in.next();
System.out.println("请输入第" + (i + 1) + "个人的性别:");
student[i].sSex = in.next();
System.out.println("请输入第" + (i + 1) + "个人的年龄:");
student[i].sAge = in.nextInt();
System.out.println("请输入第" + (i + 1) + "个人的成绩:");
student[i].sJava = in.nextDouble();
}
Map<String, Object> map = Student.compare(student);
System.out.println("前两名同学的java平均成绩为" + map.get("sum"));
System.out.println("这五名同学的最大成绩为" + map.get("max"));
System.out.println("这五名同学的最大成绩为" + map.get("min"));
}
}

------解决思路----------------------
public void compare(int sjava){
}
在调用的时候 compare(studet.sjava)
感觉是这样
建议你的student和student数组不要一样名字换一下比较好 有点乱
新手互相帮助
错了别打我
  相关解决方案