有五个学生,每个学生有3门课的成绩, 从键盘输入以上数据(包括姓名,三门课成绩), 输入的格式:如:zhagnsan,30,40,60计算出总成绩, 并把学生的信息和计算出的总分数高低顺序存放在磁盘文
2016-08-23 18:44
1701 查看
有五个学生,每个学生有3门课的成绩,
从键盘输入以上数据(包括姓名,三门课成绩),
输入的格式:如:zhagnsan,30,40,60计算出总成绩,
并把学生的信息和计算出的总分数高低顺序存放在磁盘文件"stud.txt"中。
1:定义一个描述学生的类
2定义一个操作学生的工具类.0
//比较棒的程序,用到了流读写文件,集合泛型
import java.io.*;
import java.util.*;
class Student implements Comparable<Student>
{
private String name;
private int shu,yu,eng;
private int sum;
public Student(){}
public Student(String name,int shu,int yu,int eng)
{
this.name = name;
this.shu = shu;
this.yu = yu;
this.eng = eng;
sum = shu+yu+eng;
}
public int compareTo(Student stu)
{
int num = this.sum-stu.sum;
return num==0?this.name.compareTo(stu.name):num;
}
public String getName()
{
return name;
}
public int getShu()
{
return shu;
}
public int getYu()
{
return yu;
}
public int getEng()
{
return eng;
}
public int getSum()
{
return sum;
}
public String toString()
{
return name+","+shu+","+yu+","+eng;
}
}
class StuTool
{
public static Set<Student> getStudents() throws IOException
{
return getStudents(null);
}
//从键盘获取学员信息,存到集合中
public static Set<Student> getStudents(Comparator<Student> com)throws IOException
{
TreeSet<Student> ts = null;
if(com==null)
ts = new TreeSet<>();
else
ts = new TreeSet<>(com);
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String line = null;
for(int i=1;i<=3;i++)
{
System.out.println("请输入第"+i+"个学员的信息");
line = br.readLine();
String[] arr = line.split(",");
ts.add(new Student(arr[0],Integer.parseInt(arr[1]),Integer.parseInt(arr[2]),Integer.parseInt(arr[3])));
}
br.close();
return ts;
}
//把学员信息 按照成绩从高到低写入到文件中
public static void writeInfo(Set<Student> stus)throws IOException
{
BufferedWriter bw = new BufferedWriter(new FileWriter("stud.txt"));
for(Student stu:stus)
{
bw.write(stu.toString()+" ");
bw.write(""+stu.getSum());
bw.newLine();
bw.flush();
}
bw.close();
}
}
class n1
{
public static void main(String[] args) throws IOException
{
Comparator<Student> com = Collections.reverseOrder();
Set<Student> stus = StuTool.getStudents(com);
//但是这一句采用由低到高的默认顺序
// Set<Student> stus = StuTool.getStudents();
StuTool.writeInfo(stus);
}
}
//采用更简明的解法
import java.io.*;
import java.util.*;
class Student {
private String name;
private int chinese;
private int math;
private int english;
private int sum;
public Student(){}
public Student(String name, int chinese, int math, int english){
super();
this.name = name;
this.chinese = chinese;
this.math = math;
this.english = english;
this.sum = this.chinese + this.math + this.english;
}
public int getSum(){
return sum;
}
public String toString(){
return name+","+chinese+","+math+","+english+",总成绩:"+sum;
}
}
class ComBySum implements Comparator<Student>
{
public int compare(Student t1, Student t2)
{
int num=t1.getSum()-t2.getSum();
return num;
}
}
public class n1 {
public static void main(String[] args) throws IOException
{
getMassage();
}
public static void getMassage() throws IOException{
Scanner sc = new Scanner(System.in);
System.out.println("请输入学生信息,输入格式为:name,30,30,30");
ComBySum comBySum=new ComBySum();
TreeSet<Student> ts = new TreeSet<>(comBySum);
for(int i=0;i<5;i++)
{
String line = sc.nextLine();
String[] arr;
int chinese;
int math;
int english;
try {
arr = line.split("\\,");
chinese = Integer.parseInt(arr[1]);
math = Integer.parseInt(arr[2]);
english = Integer.parseInt(arr[3]);
ts.add(new Student(arr[0],chinese,math,english));
} catch (NumberFormatException e) {
System.out.println("录入格式错误,请重新录入。。。。");
}
}
BufferedWriter bw = new BufferedWriter(new FileWriter("stu.txt"));
for(Student s : ts)
{
bw.write(s.toString());
bw.newLine();
}
bw.close();
}
}
从键盘输入以上数据(包括姓名,三门课成绩),
输入的格式:如:zhagnsan,30,40,60计算出总成绩,
并把学生的信息和计算出的总分数高低顺序存放在磁盘文件"stud.txt"中。
1:定义一个描述学生的类
2定义一个操作学生的工具类.0
//比较棒的程序,用到了流读写文件,集合泛型
import java.io.*;
import java.util.*;
class Student implements Comparable<Student>
{
private String name;
private int shu,yu,eng;
private int sum;
public Student(){}
public Student(String name,int shu,int yu,int eng)
{
this.name = name;
this.shu = shu;
this.yu = yu;
this.eng = eng;
sum = shu+yu+eng;
}
public int compareTo(Student stu)
{
int num = this.sum-stu.sum;
return num==0?this.name.compareTo(stu.name):num;
}
public String getName()
{
return name;
}
public int getShu()
{
return shu;
}
public int getYu()
{
return yu;
}
public int getEng()
{
return eng;
}
public int getSum()
{
return sum;
}
public String toString()
{
return name+","+shu+","+yu+","+eng;
}
}
class StuTool
{
public static Set<Student> getStudents() throws IOException
{
return getStudents(null);
}
//从键盘获取学员信息,存到集合中
public static Set<Student> getStudents(Comparator<Student> com)throws IOException
{
TreeSet<Student> ts = null;
if(com==null)
ts = new TreeSet<>();
else
ts = new TreeSet<>(com);
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String line = null;
for(int i=1;i<=3;i++)
{
System.out.println("请输入第"+i+"个学员的信息");
line = br.readLine();
String[] arr = line.split(",");
ts.add(new Student(arr[0],Integer.parseInt(arr[1]),Integer.parseInt(arr[2]),Integer.parseInt(arr[3])));
}
br.close();
return ts;
}
//把学员信息 按照成绩从高到低写入到文件中
public static void writeInfo(Set<Student> stus)throws IOException
{
BufferedWriter bw = new BufferedWriter(new FileWriter("stud.txt"));
for(Student stu:stus)
{
bw.write(stu.toString()+" ");
bw.write(""+stu.getSum());
bw.newLine();
bw.flush();
}
bw.close();
}
}
class n1
{
public static void main(String[] args) throws IOException
{
Comparator<Student> com = Collections.reverseOrder();
Set<Student> stus = StuTool.getStudents(com);
//但是这一句采用由低到高的默认顺序
// Set<Student> stus = StuTool.getStudents();
StuTool.writeInfo(stus);
}
}
//采用更简明的解法
import java.io.*;
import java.util.*;
class Student {
private String name;
private int chinese;
private int math;
private int english;
private int sum;
public Student(){}
public Student(String name, int chinese, int math, int english){
super();
this.name = name;
this.chinese = chinese;
this.math = math;
this.english = english;
this.sum = this.chinese + this.math + this.english;
}
public int getSum(){
return sum;
}
public String toString(){
return name+","+chinese+","+math+","+english+",总成绩:"+sum;
}
}
class ComBySum implements Comparator<Student>
{
public int compare(Student t1, Student t2)
{
int num=t1.getSum()-t2.getSum();
return num;
}
}
public class n1 {
public static void main(String[] args) throws IOException
{
getMassage();
}
public static void getMassage() throws IOException{
Scanner sc = new Scanner(System.in);
System.out.println("请输入学生信息,输入格式为:name,30,30,30");
ComBySum comBySum=new ComBySum();
TreeSet<Student> ts = new TreeSet<>(comBySum);
for(int i=0;i<5;i++)
{
String line = sc.nextLine();
String[] arr;
int chinese;
int math;
int english;
try {
arr = line.split("\\,");
chinese = Integer.parseInt(arr[1]);
math = Integer.parseInt(arr[2]);
english = Integer.parseInt(arr[3]);
ts.add(new Student(arr[0],chinese,math,english));
} catch (NumberFormatException e) {
System.out.println("录入格式错误,请重新录入。。。。");
}
}
BufferedWriter bw = new BufferedWriter(new FileWriter("stu.txt"));
for(Student s : ts)
{
bw.write(s.toString());
bw.newLine();
}
bw.close();
}
}
相关文章推荐
- 有五个学生,每个学生有3门课的成绩,定义一种比较直观的文本文件格式, 输入学生姓名和成绩,输入的格式:name,30,30,30从键盘输入以上数据(包括姓名,三门课成绩), 按总分数从高到低的顺序将学
- 【程序50】TestStu.java 题目:有五个学生,每个学生有3门课的成绩,从键盘输入以上数据(包括学生号,姓名,三门课成绩), //计算 出平均成绩,况原有的数据和计算出的平均分数存放在磁盘
- 有五个学生,每个学生有3门课的成绩,从键盘输入以上数据(包括学生号,姓名,三门课成绩),计算出平均成绩, 况原有的数据和计算出的平均分数存放在磁盘文件"stud"中。
- java 有五个学生,每个学生有3门课的成绩,从键盘输入以上数据(包括学生号,姓名,三门课成绩),计算出平均成绩,将原有的数据和计算出的平均分数存放在磁盘文件"stud"中。
- 有五个学生,每个学生有3门课的成绩,从键盘输入以上数据(包括学生号,姓名,三门课成绩), 计算出平均成绩,况原有的数据和计算出的平均分数存放在磁盘文件"stud"中。
- 文件操作:有五个学生,每个学生有 3 门课的成绩,从键盘输入以上数据(包 括学生号,姓名,三门课成绩),计算出平均成绩,将所输入有的数据和计算出 的平均分数存放在磁盘文件 "stud "中
- 有五个学生,每个学生有3门课(语文、数学、英语)的成绩,写一个程序接收从键盘输入学生的信息,输入格式为:name,30,30,30(姓名,三门课成绩), 然后把输入的学生信息按总分从高到低的顺序写入
- 有五个学生,每个学生有3门课(语文、数学、英语)的成绩, * 写一个程序接收从键盘输入学生的信息,输入格式为:name,30,30,30(姓名,三门课成绩)
- 有10个学生,每个学生的数据包括学号、姓名、3门课的成绩,从键盘输入10个学生数据,要求打印出3门课总平均成绩,以及最高分的学生的数据(包括学号、姓名、3门课的成绩、平均分数)。
- 有五个学生,每学生有3门课的成绩,从键盘输入以上数据(学生号,姓名,三门课成绩)
- 习题 9.5 有10个学生,每个学生的数据包括学号、姓名、3门课程的成绩,从键盘输入10个学生数据,要求输出3门课程总平均成绩,以及最高分的学生的数据(包括学号、姓名、3门课程成绩、平均分数)。
- 写一个程序接收从键盘输入学生的信息,输入格式为:name,30,30,30(姓名,三门课成绩)
- (c++)有N个学生,每个学生的数据包括学号、姓名、3门课的成绩,从键盘输入N个学生的数据,要求打印出3门课的总平均成绩,以及最高分的学生的数据(包括学号、姓名、3门课成绩)
- 编写一个函数print,打印一个学生的成绩数组,该书组中有五个学生的数据,每个学生的数据包括num(学号)、name(姓名)、score(3门课的成绩)、用主函数输入这些数据,用print函数输出这些
- 有10个学生,每个学生的数据包括学号、姓名、3门课的成绩,编写如下函数: (1) 输入10个学生 的基本信息(input); (2) 求出每个学生的平均分(average); (3) 求出平均分
- 假设有10位同学,各有3门课程的成绩。从键盘输入每位同学的学号、姓名和3门课程的成绩,然后把数据保存到磁盘文件,再将磁盘文件中的学生信息读入并显示
- 有5个学生每个学生有3门课程的成绩,从键盘输入学生数据(包括学号,姓名,3门成绩)。
- 从键盘输入10个学生数据,要求打印出3门课总平均成绩,以及最高分的学生的数据(包括学号、姓名、3门课成绩、平均分数)
- 五十道编程小题目 --- 50 有五个学生,每个学生有3门课的成绩,计算出平均成绩,况原有的数据和计算出的平均分数存放在磁盘文件"stud"中java
- PHP之键盘输入四个学生的学号 姓名 语文 数学 英语信息 ,计算出每个学生的平均成绩,输出