A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

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));
            }         
     }
}



评分

参与人数 2黑马币 +3 收起 理由
悟心_c6R1v + 1 很给力!
zhw634631 + 2 神马都是浮云

查看全部评分

24 个回复

正序浏览

你在哪个校区?
回复 使用道具 举报
真厉害,向你学习
回复 使用道具 举报
东邪 发表于 2015-5-25 22:51
不错不错,理解非常深刻,我要好好向你学习!!

相互学习!相互共勉!
回复 使用道具 举报

谢谢!还有改进版!
回复 使用道具 举报
不错  加油哦!
回复 使用道具 举报

谢谢!继续努力!
回复 使用道具 举报
很给力,不错
回复 使用道具 举报
不错给力顶一个
回复 使用道具 举报
不错不错,理解非常深刻,我要好好向你学习!!
回复 使用道具 举报

哪里哪里!革命尚未成功 同志继续努力!
回复 使用道具 举报
林思奇 发表于 2015-5-24 15:59
不愧是学霸,服了!顶个

哪里哪里!一起努力!
回复 使用道具 举报
重复 发表于 2015-5-25 00:18
必须赞,必须给力

谢谢!一起加油!
回复 使用道具 举报
青春印记深圳 来自手机 中级黑马 2015-5-25 00:46:13
13#
还可以。。。。呵呵
回复 使用道具 举报
必须赞,必须给力
回复 使用道具 举报
顶起来!什么时候能破解别人的密码的程序发给我。
回复 使用道具 举报
林思奇 来自手机 中级黑马 2015-5-24 15:59:37
10#
不愧是学霸,服了!顶个
回复 使用道具 举报
lixunwen 发表于 2015-5-24 15:01
集合是最简单的啦!只是开始比较难以理解!你要注意老师开始讲的是String 和Integer 都是特殊类型哦
自定 ...

嗯 那我今天好好搞搞 string和integer,谢谢
回复 使用道具 举报
飘过的云 发表于 2015-5-24 14:58
集合貌似 好难 的 看了 没一点印象 还头疼

集合是最简单的啦!只是开始比较难以理解!你要注意老师开始讲的是String 和Integer 都是特殊类型哦
自定义对象的话  针对String 你就要重写toString 方法 Integer  你就要设置你排序的规则!
回复 使用道具 举报
集合貌似 好难 的 看了 没一点印象 还头疼
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 加入黑马