JAVA编程:有五个学生,每个学生有3门课(语文、数学、英语)的成绩,

  1 import java.io.FileReader;
  2 import java.io.FileWriter;
  3 import java.io.IOException;
  4 import java.util.Collections;
  5 import java.util.Comparator;
  6 import java.util.LinkedList;
  7 import java.util.Scanner;
  8
  9 public class Student
 10 {
 11     double chinese;
 12     double math;
 13     double english;
 14     double sum;
 15     String sname;
 16
 17     public Student ( double chinese, double math, double english, double sum, String sname )
 18     {
 19         this.chinese = chinese;
 20         this.math = math;
 21         this.english = english;
 22         this.sum = sum;
 23         this.sname = sname;
 24     }
 25
 26     @Override
 27     public String toString ()
 28     {
 29         return String.format ("%s\t\t%2$.1f\t\t\t%3$.1f\t\t\t%4$.1f\t\t\t%5$.1f", sname, chinese, math, english, sum);
 30     }
 31
 32     public static void main ( String[] args )
 33     {
 34         Scanner scanner = new Scanner (System.in);
 35         LinkedList<Student> list = new LinkedList<Student> ();
 36         System.out.println ("从键盘输入学生的信息,输入格式为:name,30,30,30(姓名,<a href="https://www.baidu.com/s?wd=%E4%B8%89%E9%97%A8&tn=44039180_cpr&fenlei=mv6quAkxTZn0IZRqIHckPjm4nH00T1YvuhnkuWN-njmvnyPBPWnv0ZwV5Hcvrjm3rH6sPfKWUMw85HfYnjn4nH6sgvPsT6K1TL0qnfK1TL0z5HD0IgF_5y9YIZ0lQzqlpA-bmyt8mh7GuZR8mvqVQL7dugPYpyq8Q1DLPWT3PWR3rjRLPjfdrHRvP0" target="_blank" class="baidu-highlight">三门</a>课成绩)<直接回车结束>");
 37         while (scanner.hasNextLine ())
 38         {
 39             String line = scanner.nextLine ().trim ();
 40             if ("".equals (line))
 41             {
 42                 break;
 43             }
 44             String[] info = line.split ("\\,");
 45             String name = info[0];
 46             double chinese = 0;
 47             double math = 0;
 48             double english = 0;
 49             double sum = 0;
 50             try
 51             {
 52                 chinese = Double.parseDouble (info[1]);
 53                 math = Double.parseDouble (info[2]);
 54                 english = Double.parseDouble (info[3]);
 55                 sum = chinese + math + english;
 56             }
 57             catch (Exception e)
 58             {
 59                 System.out.println ("格式不正确,重写输入:");
 60                 continue;
 61             }
 62             Student student = new Student (chinese, math, english, sum, name);
 63             list.add (student);
 64         }
 65         scanner.close ();
 66         Collections.sort (list, new Comparator<Student> ()
 67         {
 68             @Override
 69             public int compare ( Student o1, Student o2 )
 70             {
 71                 if (o1.sum > o2.sum)
 72                 {
 73                     return -1;
 74                 }
 75                 else if (o1.sum < o2.sum)
 76                 {
 77                     return 1;
 78                 }
 79                 else
 80                 {
 81                     return 0;
 82                 }
 83             }
 84         });
 85         try
 86         {
 87             String file = "stu.txt";
 88             String line = System.getProperty ("line.separator");
 89             FileWriter fw = new FileWriter (file, true);
 90             FileReader fr = new FileReader (file);
 91             if (fr.read () == -1)
 92             {
 93                 fw.write ("姓名\t\t语文\t\t数学\t\t<a href="https://www.baidu.com/s?wd=%E8%8B%B1%E8%AF%AD&tn=44039180_cpr&fenlei=mv6quAkxTZn0IZRqIHckPjm4nH00T1YvuhnkuWN-njmvnyPBPWnv0ZwV5Hcvrjm3rH6sPfKWUMw85HfYnjn4nH6sgvPsT6K1TL0qnfK1TL0z5HD0IgF_5y9YIZ0lQzqlpA-bmyt8mh7GuZR8mvqVQL7dugPYpyq8Q1DLPWT3PWR3rjRLPjfdrHRvP0" target="_blank" class="baidu-highlight">英语</a>\t\t总分" + line);
 94             }
 95             fr.close ();
 96             for ( Student student : list )
 97             {
 98                 fw.write (student.toString () + line);
 99                 fw.flush ();
100             }
101             fw.close ();
102             System.out.println ("加入完毕.");
103         }
104         catch (IOException e)
105         {}
106     }
107 }
时间: 2024-10-10 08:15:23

JAVA编程:有五个学生,每个学生有3门课(语文、数学、英语)的成绩,的相关文章

Java编程思想(五) —— 多态(上)

上一章,Java编程思想(四) -- 复用类里面讲到了向上转型,感觉和多态放在一起写更好. 多态,polymorphism.一个重要的特性,篇幅太长了,分上下两篇写. (1)向上转型 class TV{ public static void show(TV tv){ System.out.println("TV"); } } public class LeTV extends TV{ public static void main(String[] args) { LeTV letv

Python和Java编程题(五)

题目:将一个正整数分解质因数.例如:输入90,打印出90=2*3*3*5. 程序分析:对n进行分解质因数,应先找到一个最小的质数k,然后按下述步骤完成: (1)如果这个质数恰等于n,则说明分解质因数的过程已经结束,打印出即可. (2)如果n<>k,但n能被k整除,则应打印出k的值,并用n除以k的商,作为新的正整数你n,重复执行第一步. (3)如果n不能被k整除,则用k+1作为k的值,重复执行第一步. 题目来源:http://blog.sina.com.cn/s/blog_60fafdda010

Java编程思想(五) —— 多态(下)

多态(上)基本讲解了很多多态的特性和问题.下面继续. 1)构造器和多态 这个问题其实前面写过了,构造器实际上是static方法,只不过是隐式声明,所以构造器并没有多态性. 但是需要知道加载的顺序. class GrandFather{ GrandFather(){ print(); } private int print(){ System.out.println("g"); return 1; } } class Father extends GrandFather{ Father(

有五个学生,每个学生有3门课(语文、数学、英语)的成绩, * 写一个程序接收从键盘输入学生的信息,输入格式为:name,30,30,30(姓名,三门课成绩)

/* * 3. 有五个学生,每个学生有3门课(语文.数学.英语)的成绩, * 写一个程序接收从键盘输入学生的信息,输入格式为:name,30,30,30(姓名,三门课成绩), * 然后把输入的学生信息按总分从高到低的顺序写入到一个名称"stu.txt"文件中. * 要求:stu.txt文件的格式要比较直观,打开这个文件,就可以很清楚的看到学生的信息 * */ import java.io.*; import java.util.*; public class Test3 { publi

Java编程思想(四) —— 复用类

看了老罗罗升阳的专访,情不自禁地佩服,很年轻,我之前以为和罗永浩一个级别的年龄,也是见过的不是初高中编程的一位大牛之一,专访之后,发现老罗也是一步一个脚印的人.别说什么难做,做不了,你根本就没去尝试,也没有去坚持. If you can't fly then run,if you can't run then walk, if you can't walk then crawl,but whatever you do,you have to keep moving forward--Martin

Java-第十四章-代参的方法(二)-编程实现,输入班里10名学生的身高,获得身高最高的学生要求对象数组类型方法

package com.ww.yzpA; public class Students { int No; int Height; } package com.ww.yzpA; public class Height { public Students getMaxHeigth(Students[] str) { Students A = new Students(); for (int i = 0; i < str.length; i++) { if (str[i].Height > A.He

五本书籍助你从零基础学习java编程到精通之路

前天的文章给大家介绍了Java初学者应该学习哪些基础,亦是美网络小编从Java的三个大方向:J2SE.J2EE.J2ME对大家做了前景分析,这两天也收到了大家的很多反馈,很多小伙伴看了后对自己的Java编程方向有了比较明确的目标,也有小伙伴们说,要是能提供一些Java初学者应看的书籍就更好了,其实推荐Java书籍已经被规划在小编写的Java编程系列文章之中,常言道:书中自有黄金屋,书中自有颜如玉,下面亦是美网络小编给大家推荐的Java书籍中虽然没有黄金屋和颜如玉,但却能让Java编程的初学者快速

疯狂JAVA讲义---第十二章:Swing编程(五)进度条和滑动条

http://blog.csdn.net/terryzero/article/details/3797782 疯狂JAVA讲义---第十二章:Swing编程(五)进度条和滑动条 标签: swing编程java任务timerstring 2009-01-16 21:12 6722人阅读 评论(0) 收藏 举报  分类: J2SE(63)  版权声明:本文为博主原创文章,未经博主允许不得转载. 前几天讲了Swing基本的控件,今天开始讲特殊控件.一天讲2个吧,首先讲用JProgressBar,Pro

《Java编程那点事儿》读书笔记(五)

System 1)arraycopy int[] a = {1.2.3.4}; int[] b = new int[5]; System.arraycopy(a,1,b,3,2); //把数组a中从下标1开始的元素复制到数组b中下标为3的位置,总共复制2个元素 2)currentTimeMillis long l = System.currentTimeMillis(); //返回当前时间与1970年01月01日0时0分0秒的差值数(毫秒) 3)gc:请求系统进行垃圾回收 4)public st

java面向对象编程(五)--四大特征之抽象、封装

1.抽象 我们在前面去定义一个类时候,实际上就是把一类事物的共有的属性和行为提取出来,形成一个物理模型(模版).这种研究问题的方法称为抽象. 2.封装 封装就是把抽象出来的数据和对数据的操作封装在一起,数据被保护在内部,程序的其它部分只有通过被授权的操作(成员方法),才能对数据进行操作. java中实现封装的方法: 案例:不能随便查看人的年龄,工资等隐私[Demo116.java] //封装案例[Demo116.java] public class Demo116{ public static