package it.cast_01;
/**
* 这是一个学生类基本信息
* @author
* @version V1.0
*/
public class Student {
/**姓名*/
private String name;
/**语文成绩*/
private int chinese;
/**数学成绩*/
private int math;
/**英语成绩*/
private int english;
/**总分*/
private int sum;
/**平均分*/
private int avg;
static int i=1;
/**
* 这是无参构造方法
*/
public Student() {
super();
// TODO Auto-generated constructor stub
}
/**
* @param name 姓名
* @param chinese 语文
* @param math 数学
* @param english 英语
*/
public Student(String name, int chinese, int math, int english) {
super();
this.name = name;
this.chinese = chinese;
this.math = math;
this.english = english;
sum = this.chinese+this.math+this.english;
avg =sum/3;
}
/**
* @return 获取姓名
*/
public String getName() {
return name;
}
/**
* @param 设置姓名
*/
public void setName(String name) {
this.name = name;
}
/**
* @return 获取语文成绩
*/
public int getChinese() {
return chinese;
}
/**
* @param 设置语文成绩
*/
public void setChinese(int chinese) {
this.chinese = chinese;
}
/**
* @return 获取数学成绩
*/
public int getMath() {
return math;
}
/**
* @param 设置数学成绩
*/
public void setMath(int math) {
this.math = math;
}
/**
* @return 获取英语成绩
*/
public int getEnglish() {
return english;
}
/**
* @param 设置英语成绩
*/
public void setEnglish(int english) {
this.english = english;
}
/**
* @param 设置总分
*/
/*public void setSum() {
sum =chinese+math+english;
}
*/
/**
* @return 获取总分
*/
public int getSum() {
return sum =chinese+math+english;
}
/**
* @param the avg 设置平均分
*/
/* public void setAvg() {
avg=sum/3;
}*/
/**
* @return the avg 获取平均分
*/
public int getAvg() {
return avg=sum/3;
}
/*
* @param 获取一个学生的整个信息
*/
/*@Override
public String toString() {
return name+"\t"+chinese+"\t"+math+"\t"+english+"\t"+sum+"\t"+avg+"\t"+(i++);
}*/
}
package cn.itcast_02;
import it.cast_01.Student;
import java.util.Comparator;
import java.util.Scanner;
import java.util.TreeSet;
/**
* 这是一个学生管理系统的测试
*
* @author
* @version V1.0
*
*/
public class StudentTest {
public static void main(String[] args) {
// 创建集合
TreeSet<Student> ts = new TreeSet<Student>(new Comparator<Student>() {
@Override
public int compare(Student s1, Student s2) {
int num1 = s1.getSum() - s2.getSum();
int num2 = num1 == 0 ? s1.getChinese() - s2.getChinese() : num1;
int num3 = num2 == 0 ? s1.getMath() - s2.getMath() : num2;
int num4 = num3 == 0 ? s1.getEnglish() - s2.getEnglish() : num3;
return -num4;
}
});
// //添加元素
// ts.add(new Student("李四",89,78,99));
// ts.add(new Student("王五",66,80,90));
// ts.add(new Student("王二",79,99,99));
// ts.add(new Student("黄振源",99,88,78));
// ts.add(new Student("张宏文",69,97,67));
// ts.add(new Student("文综",100,88,99));
// 采用输入获取元素:
Scanner sc = new Scanner(System.in);
System.out.println("开始录入数据:");
System.out.println("请输入总人数:");
String s1 = sc.nextLine();
for (int j = 1; j <= Integer.parseInt(s1); j++) {
System.out.println("总共有" + Integer.parseInt(s1) + "学生信息要录入");
System.out.println("请录入第" + j + "的姓名");
String name = sc.nextLine();
System.out.println("请录入第" + j + "的语文成绩:");
int chinese = Integer.parseInt(sc.nextLine());
System.out.println("请录入第" + j + "的数学成绩:");
int math = Integer.parseInt(sc.nextLine());
System.out.println("请录入第" + j + "的英语成绩:");
int english = Integer.parseInt(sc.nextLine());
ts.add(new Student(name, chinese, math, english));
}
//
// 遍历
int i=1;
System.out.println("姓名" + "\t" + "语文成绩" + "\t" + "数学成绩" + "\t" + "英语成绩"
+ "\t" + "总分" + "\t" + "平均分" + "\t" + "名次");
for (Student s : ts) {
System.out.println(s.getName()+"\t"+s.getChinese()+"\t"+s.getMath()+"\t"
+s.getEnglish()+"\t"+s.getSum()+"\t"+s.getAvg()+"\t"+(i++));
}
}
}
方式二:用数组实现
package cn.itcast_03;
import java.util.Scanner;
public class Xsgll {
public static void main(String[] args){
Scanner in=new Scanner(System.in);
System.out.println("请输入学生的人数:");
int number=in.nextInt();
System.out.println("请输入课程数目:");
int course=in.nextInt();
String cname[]=new String[course];//存储课程的姓名
String name[]=new String[number];//存储学生的姓名
int score[][]=new int[number][course];//存储学生的各科成绩
int zongfen[]=new int[number];//存储学生的总分
int avg[]=new int[number];//存储学生的平均分
String stll[]=new String[number];//存储学生的整个信息
for(int i=0;i<course;i++) //输入课程名
{
System.out.println("请输入第"+(i+1)+"门课程名");
cname[i]=in.next();
}
for(int i=0;i<number;i++){
System.out.println("请输入第"+(i+1)+"学生的姓名");
name[i]=in.next();
String stll1="";
for(int j=0;j<course;j++){
System.out.println("请输入"+name[i]+"的"+cname[j]+"的成绩");
score[i][j]=in.nextInt();
stll1+=score[i][j]+"\t";
zongfen[i]+=score[i][j];//录入总分
}
avg[i]=zongfen[i]/course;//录入平均分
stll[i]=name[i]+"\t"+stll1+zongfen[i]+"\t"+avg[i];//组成字符串
}
for(int i=0;i<number-1;i++){
for(int j=i+1;j<number;j++){
if(zongfen[i]<zongfen[j]){
int t=zongfen[i]; String stll2=stll[i];
zongfen[i]=zongfen[j]; stll[i]=stll[j];
zongfen[j]=t; stll[j]=stll2;
}
}
}
System.out.print("姓名"+"\t"); //输出开始
for(int i=0;i<course;i++) //输出课程名
{
System.out.print(cname[i]+"\t");
}
System.out.print("总分"+"\t");
System.out.print("平均分"+"\t");
System.out.print("名次"+"\n");
for(int i=0;i<number;i++){
System.out.println(stll[i]+"\t"+(i+1));
}
}
}
|