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

/*
 * 3、 有五个学生,每个学生有3门课(语文、数学、英语)的成绩,
 * 写一个程序接收从键盘输入学生的信息,输入格式为:name,30,30,30(姓名,三门课成绩),
 * 然后把输入的学生信息按总分从高到低的顺序写入到一个名称"stu.txt"文件中。
 * 要求:stu.txt文件的格式要比较直观,打开这个文件,就可以很清楚的看到学生的信息
 *
 */
import java.io.*;
import java.util.*;
public class Test3 {
    public static void main(String[] args)throws Exception{
        //传入学生人数
        Student(5);
    }
    //键盘录入学生,保存到stu.txt的方法
    public static void Student(int number)throws Exception{
        //创建Scanner对象 接受从控制台输入
        Scanner in=new Scanner(System.in);
        //因为可能会出现姓名和总分都一样的学生,为了保证学生不丢失,建立List容器
        List<Student> list=new ArrayList<>();
        //循环录入学生到集合,排好顺序
        System.out.println("输入格式为: 姓名,语文,数学,英语(,号是小写状态)");
        for(int x=1;x<=number;x++){
            System.out.println("请输入第"+x+"个学生的信息");
            String[] s=in.nextLine().split(",");
            int a=Integer.parseInt(s[1]);
            int b=Integer.parseInt(s[2]);
            int c=Integer.parseInt(s[3]);
            Student stu=new Student(s[0],a,b,c);
            list.add(stu);
        }
        //用比较器进行总分从高到低的排序
        Collections.sort(list,new StuCompare());
        //定义输出流输出到stu.txt
        BufferedWriter bufw=new BufferedWriter(new FileWriter("stu.txt"));
        for(Student stu:list){
            bufw.write(stu.getStu());
            bufw.newLine();
            bufw.flush();
        }
        //关闭资源
        in.close();
        bufw.close();
    }
}
//学生对象
class Student{
    private String name;
    private int a, b, c,sum;
    //学生对象建立需要传入姓名和3门课的成绩
    Student(String name, int a, int b, int c){
        this.name=name;
        this.a=a;
        this.b=b;
        this.c=c;
        sum=a+b+c;
    }
    public int getsum(){
        return sum;
    }
    //输出一个符合格式的字符串
    public String getStu(){
        return name+"    数学:"+a+"    语文:"+b+"    英语:"+c+"    总分:"+sum;
    }
}
//定义比较器,按总分排序
class StuCompare implements Comparator<Student>{
    public int compare(Student s1,Student s2){
        int a=new Integer(s2.getsum()).compareTo(s1.getsum());
        return a;
    }
}
时间: 2024-08-02 02:41:11

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

C++习题 对象转换(定义一个Teacher(教师)类(教师号,姓名,性别,薪金)和一个Student(学生)类(学号,姓名,性别,成绩)编写程序,将一个Student对象(学生)转换为Teacher(教师)类。

Description 定义一个Teacher(教师)类(教师号,姓名,性别,薪金)和一个Student(学生)类(学号,姓名,性别,成绩),二者有一部分数据成员是相同的,num(号码),name(姓名),sex(性别).编写程序,将一个Student对象(学生)转换为Teacher(教师)类,只将以上3个相同的数据成员移植过去.可以设想为: 一位学生大学毕业了,留校担任教师,他原有的部分数据对现在的教师身份来说仍然是有用的,应当保留并成为其教师数据的一部分. Input 一个教师的信息和一个学

写一个程序输出1到100这些数字。但是遇到数字为3的倍数的时候,输出“三”替代数字,为5的倍数用“五”代替,既是3的倍数又是5的倍数则输出“三五”。

1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset="UTF-8"> 5 <title>Document</title> 6 </head> 7 <body> 8 <script type="text/javascript"> 9 /*写一个程序输出1到100这些数字.

【C语言】有n个结构体变量,内含学生号, 姓名和三门课成绩。要求输出平均成绩最高学生的信息。

//有n个结构体变量,内含学生号, 姓名和三门课成绩.要求输出平均成绩最高学生的信息. #include <stdio.h> #define N 3 struct Student { int num; char name[20]; float socre[3]; float aver; }; void input(struct Student stu[]) { int i; printf("Çë·Ö±ðÊäÈë¸÷ѧÉúµÄÐÅÏ¢£ºÑ§ºÅ£¬ÐÕÃû£¬ÈýÃſγɼ¨\

有五个学生,每个学生有3门课的成绩,从键盘输入以上数据(包括学生号,姓名,三门课成绩),计算出平均成绩,况原有的数据和计算出的平均分数存放在磁盘文件

* 题目:有五个学生,每个学生有3门课的成绩,从键盘输入以上数据(包括学生号,姓名,三门课成绩),计算出平均成绩,况原有的数据和计算出的平均分数存放在磁盘文件 public class 第五十题保存学生成绩 { public static void main(String[] args) throws IOException { //保存学生成绩到文件stud中 int stuId = 0; //学号 String stuName = null;//姓名 int grade1 = 0;//第一门

初学Java4:从键盘录入学生信息(仅姓名和成绩)并输出

//从键盘录入学生信息(仅姓名和成绩)并输出.public class StuInformation {//此处命名用StuScore可能更恰当 String name; double score;}import java.util.Scanner; public class TextStuInformation { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int i = 0, j

【C语言】用指针函数完成:有a个学生,每个学生有b门课。要求在输入学生序号后输出该学生成绩

//用指针函数完成:有a个学生,每个学生有b门课.要求在输入学生序号后输出该学生成绩 #include <stdio.h> float * search(float (* pointer )[4],int n) //形参pointer是一个数组指针 { float *pt; pt=*(pointer+n); return pt; } int main() { float score[][4]={{60,70,80,90},{56,57,78,85},{75,45,36,85}}; float

使用结构体变量存储学生姓名和课程成绩,计算平均分及查找不及格同学姓名及分数

1 struct Student //声明Student类型结构体变量 2 { 3 char name[20]; 4 int score[5]; 5 }; 6 typedef struct Student Stu; 7 8 void main() 9 { 10 11 Stu stu[3]; 定义Student类型变量数组 12 int i,j; 13 for(i=0;i<3;i++) //输入学生姓名和成绩 14 { 15 printf("please input student[%d]'

不断要求用户输入学生姓名,输入q结束.

while (true) { Console.WriteLine("请输入学生姓名"); string a = Console.ReadLine(); if (a == "q") { Console.WriteLine("结束"); break; } } Console.WriteLine("请输入学生姓名"); string a = Console.ReadLine(); while (a != "q")

//输入学生人数,挨个输入姓名,身高,年龄,求平均年龄,然后按身高降序排列输出

13:52:49N U L L 2014/12/19 13:52:49using System;using System.Collections;using System.Collections.Generic;using System.Linq;using System.Text; namespace _1120_1210{    class JieGouTi    {        //输入学生人数,挨个输入姓名,身高,年龄,求平均年龄,然后按身高降序排列输出        public s