`

从键盘上获取名字、语文、数学的成绩,计算总分然后填充到Student对象中,并将对象写入文件

    博客分类:
  • Java
阅读更多
下面是源文件
Students.java文件
package com.kingsoft.main;

import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStreamReader;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.Serializable;

class Students implements Serializable {
  String name;
  int[] record = new int[4];
  int total;
  float avg;
  String grade;

  public Students() {
  }

  public String getName() {
    return name;
  }

  public int[] getRecord() {
    return record;
  }

  public int getTotal() {
    int s = 0;
    for (int i = 0; i < record.length; i++)
      s += record[i];
    return s;
  }

  public float getAvg() {
    float f = getTotal() / 4f;
    return f;
  }

  public String getGrade() {
    String str;
    if (avg < 100 && avg > 90)
      str = "A";
    else if (avg > 80)
      str = "B";
    else if (avg > 70)
      str = "C";
    else if (avg > 60)
      str = "D";
    else
      str = "F";
    return str;
  }
}


Students1.java文件
package com.kingsoft.main;

import java.io.*;

public class Students1 {
  public static int s = 0;

  /** Creates a new instance of Students1 */
  public Students1() {
  }

  public static void main(String[] args) throws Exception {
    InputStreamReader isr = new InputStreamReader(System.in);
    BufferedReader br = new BufferedReader(isr);
    System.out.println("请顺序输入名字及国语,英语,数学,科学的成绩.(eof:输入完毕)");
    String data;
    String[] str = new String[5];
    FileOutputStream fos = new FileOutputStream("C:\\Documents and Settings\\tliu\\桌面\\新建文件夹\\xi.txt");
    ObjectOutputStream oos = new ObjectOutputStream(fos);
    while (true) {
      data = br.readLine();
      s++;
      if (data.equals("eof"))
        break;
      str = data.split(" ");
      Students stu = new Students();
      stu.name = str[0];
      System.out.println(stu.name);
      stu.record[0] = Integer.parseInt(str[1]);
      System.out.println(stu.record[0]);
      stu.record[1] = Integer.parseInt(str[2]);
      stu.record[2] = Integer.parseInt(str[3]);
      stu.record[3] = Integer.parseInt(str[4]);
      stu.total = stu.getTotal();
      stu.avg = stu.getAvg();
      stu.grade = stu.getGrade();
      oos.writeObject(stu);
    }
    oos.close();
    System.out.println("文件内容");
    FileInputStream fis = new FileInputStream("D:\\xi.txt");
    ObjectInputStream ois = new ObjectInputStream(fis);
    for (int j = 1; j < s; j++) {
      Students stud;
      stud = (Students) ois.readObject();
      System.out.println("Students对象" + j + " " + "{" + stud.name + " " + stud.record[0] + " " + stud.record[1] + " "
          + stud.record[2] + " " + stud.record[3] + " " + stud.total + " " + stud.avg + " " + stud.grade + "}");
    }
    ois.close();
  }
}

class Students2 {
  public Students2() {
  }

  public static void main(String[] args) throws Exception {
    // TODO code application logic here
    int d = Students1.s;
    int[] a = new int[d];
    FileInputStream fis = new FileInputStream("C:\\Documents and Settings\\tliu\\桌面\\新建文件夹\\xi.txt");
    ObjectInputStream ois = new ObjectInputStream(fis);
    Students[] students = new Students[d];
    for (int i = 1; i < d; i++) {
      students[i] = (Students) ois.readObject();
    }
    ois.close();
    System.out.println("名字   " + "国语  " + "英语  " + "数学  " + "科学  " + "总分  " + "平均分  " + "学分  " + "顺序");
    for (int i = 1; i < d; i++) {
      int max = i;
      for (int j = i; j < d; j++) {
        if (students[j].avg > students[i].avg)
          max = j;
      }
      System.out.println(students[max].name + "   " + students[max].record[0] + "  " + students[max].record[1] + "  "
          + students[max].record[2] + "  " + students[max].record[3] + "  " + students[max].total + "  " + students[max].avg
          + "  " + students[max].grade + "  " + i);
    }
  }
}

分享到:
评论

相关推荐

    读取student.txt文件内容,每行作为一条数据,创建对应Student对象。

    读取student.txt文件内容,每行作为一条数据,创建对应Student对象。 1、计算各班平均成绩,输出其信息到控制台; 2、求出年纪总分最高和各班总分最高的同学,输出其信息到控制台; 3、按科目分别创建3个单科成绩表...

    设计一个学生类Student(学生学号、姓名、数学、英语、计算机成绩;)

    分别用来设置和获取学生各个属性值的set()和get()成员函数(例如:设置数学成绩的成员函数setMath().返回数学成绩的成员函数 getMath());计算三门课程总成绩的函数sum();显示学生数据信息的函数print();(注意:...

    sise高考管理系统的开发--java课程设计 Java课程设计.zip

    6月27日学院又获得第二批学生成绩明细表文件,格式同上述一样,第二批学生人数为30人,现在需要将两份文件学生按照总分大小从高分到低分排序,并且写入下列文件student.txt中或者数据库表中: 表二 由于软件工程专业...

    TestTreeSet.rar

    利用TreeSet实现:键盘录入5个学生信息(姓名,语文成绩,数学成绩,英语成绩),按照总分从高到低输出到控制台。

    SISE高考预录数据信息管理系统 java课程设计题目及代码

    6月27日学院又获得第二批学生成绩明细表文件,格式同上述一样,第二批学生人数为30人,现在需要将两份文件学生按照总分大小从高分到低分排序,并且写入下列文件student.txt中或者数据库表中: 表二 由于软件工程专业...

    C课程设计题成绩管理

    ① 录入:从键盘上录入学生的相关信息,包括姓名、学号、分数(可自行设定,如总分,数学分,语文分,外语分等)等信息。 ② 编辑:修改或删除某学生的信息,在操作前,需先进行查找定位。 ③ 查找:按姓名或学号等...

    visual studio 2010编写语文数学英语三科成绩

    文当焦点离开文本框时,能检查录入的成绩是否有效。若成绩不在0~100之间,则清除原数据,并且要求重新输入本框中能输入0~9之间的数字字符。...计算总分和计算平均成绩时,要求必须至少输入一门成绩

    数据结构课程设计__学生成绩管理系统

    一、 设计题目与要求 现有学生成绩信息文件1(1.txt),内容如下 ...3) 对合并后的文件3.txt中的数据按总分降序排序输入一个学生姓名后,能查找到此学生的信息并输出结果 4) 要求使用结构体,链或数组等实现上述要求.

    马克思手稿中的数学题(穷举算法)和学生成绩管理.rar

    有N名学生,每名学生含有如下信息:学号、姓名、某四门课的成绩,并计算其总分,用一结构体数组表示之。然后实现以下功能: (1)将这些数据存放至文件stuf.dat中; (2)将文件中的数据读出至结构体数组中,并显示...

    C语言输入学生成绩,计算并输出这些学生的最低分、最高分、平均分。

    输入学生人数n,再输入n个学生的成绩,将所有成绩累加,再除以n,得到平均分;将第一个学生的成绩赋给最大最小值,用第i个分数与最大值比较,若第i个分数&gt;最大值,将第i个分数赋值给最大值,同理得最小值,最后输出...

    学生成绩管理程序 C语言(详细注释)

    学生成绩管理系统: 输入、修改、删除和显示n个学生的m门考试科目的成绩,计算总分和平均分; 分别按总分和学号进行排序;...将输入的学生成绩数据保存到文件中; 从文件中读出学生成绩数据,查询学生成绩。 。

    成绩计算器MFC做的成绩计算器,可方便地计算出输入成绩的总分,和平均分

    这是一个MFC做的成绩计算器,可方便地计算出输入成绩的总分,和平均分,以及其它操作。

    学生信息系统

    *从文件中读取各学生的成绩,并计算所有学生成绩的平均值、最大值、最小值和总分。 这个程序还有很多可以改进,比如如何确定成绩,当有的成绩大于100时,有的为个位数时又该如何subString,事实上这种截取成绩的...

    编写学生成绩单程序 由于计算和显示5个学科的总分和平均分;

    编写学生成绩单程序,可以从键盘读取下列各项,1、学生姓名 2、学科编号 3、学生成绩(假设有4门课),此程序应显示考试分数,由于计算和显示5个学科的总分和平均分;

    学生成绩管理系统

    学生管理系统包括成绩录入手动或者文件录入学生信息,计算每门课程的总分和平均分,计算每个学生的总分和平均分 ;按每个学生的总分由高到低排出名次表 ; 按每个学生的学号由小到大排出名次表 ;按学号排出成绩表;...

    课程设计学生成绩管理系统设学生成绩已以一个学生一个记录的形式存储在文件中,

    学生成绩管理系统,学生成绩管理程序 编制一个统计学生考试分数的管理程序。 设学生成绩已以一个学生一个记录的形式存储在文件中, ...按学号寻找其记录并显示,浏览全部学生成绩和按总分由高到低显示学生信息等

    学生成绩管理VC总分平均分

    学生成绩信息包括:学期,学号,班别,姓名,四门课程成绩(语文、数学、英语和计算机)等。 主要功能: (1) 能按学期、按班级完成对学生成绩的录入、修改 (2) 能按班级统计学生的成绩,求学生的总分及平均分 (3...

    学生5门课程成绩

    获取学生5门课程成绩,并计算各科平均分,每个学生平均分,将其保存至文件后读取,显示在屏幕。 输出每科最高,最低分,以及该学生信息

    查询学生不同科目的成绩

    ②计算每个人的成绩,总分数,平均分,要求显示学号,姓名,语文,数学,英语,总分,平均分;③列出数学成绩的排名(要求显示字段:学号,姓名,成绩,排名)。资源里展现了从创建数据库到查询的全部过程。

Global site tag (gtag.js) - Google Analytics