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

下面是源文件
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);
}
}
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值