学生成绩管理系统

 

import java.io.*;
class Keyboard
{
 static BufferedReader inputStream = new BufferedReader(new InputStreamReader(System.in));
 public static  int getInteget()
 {
  try
  {
   return (Integer.valueOf(inputStream.readLine().trim()).intValue());
  }
  catch (Exception e)
  {
   e.printStackTrace();
   return 0;
  }
 }
 public static String getString()
 {
  try
  {
   return (inputStream.readLine());
  }
  catch (IOException e)
  {
   return "0";
  }
 }
}
class Student
{
 private String id;
 private String name;
 private int eng;
 private int math;
 private int comp;
 private int sum;
 //构造方法
 public Student()
 {}
 public Student(String id,String name,int eng,int math,int comp,int sum)
 {
  this.id = id;
  this.name = name;
  this.eng = eng;
  this.math = math;
  this.comp = comp;
  sum();
 }
 
 public Student(Student s)
 {
  this.id = s.id;
  this.name = new String(s.name);
  this.eng = s.eng;
  this.math = s.math;
  this.comp = s.comp;
  sum();

 }

 public void setID(String id)
 {
  this.id = id;
 }
 public void setName(String name)
 {
  this.name = name;
 }
 public void setENG(int eng )
 {
  this.eng = eng;
  sum();
 }
 public void setMath(int math)
 {
  this.math = math;
  sum();
 }
 public void setComp(int comp)
 {
  this.comp = comp;
  sum();
 }
 public String getID()
 {
  return  id;
 }
 public String getName()
 {
  return name;
 }
 public int getEng()
 {
  return eng;
 }
 public int getMath()
 {
  return math;
 }
 public int getComp()
 {
  return comp;
 }
 public int getSum()
 {
  return sum;
 }
 
 void sum()
 {
  this.sum = eng + math + comp;
 }
 public String toString()
 {
  return getID() +"\t" +getName()+"\t"+getEng()+"\t"+getMath()+"\t"+getComp()+"\t"+getSum();
 }

 //比较两个Student对象是否相等
 public boolean equals(Object obj)
 {
  if(this.getClass()!=obj.getClass())
   return false;
  Student b = (Student)obj;
  return ((this.getID()).equals(b.getID()));
 }
 public int compare(Student A)
 {
  if( this.getSum() > A.getSum() )
   return 1;
  else if( this.getSum() == A.getSum() )
   return 0;
  else
   return -1;
 }

}

class StudentClass
{
 private String name;
 private int capacity = 40;
 private Student[] students;
 private int size;

 public StudentClass(String name , int size)
 {
  this.name = name;
  this.size = size;
  students = new Student[capacity];
 }
 public String getName()
 {
  return name;
 }
 public int  getCapacity()
 {
  return capacity;
 }
 public Student[] getStudents()
 {
  return students;
 }
 public int getSize()
 {
  return size;
 }
 public void setName(String name)
 {
  this.name = name;

 }
 public void setCapacity(int capacity)
 {
  this.capacity = capacity;
 }
 public void setSize(int size)
 {
  this.size = size;
 
 }
 public void setStudents(Student[] students)
 {
  for(int i = 0;i < size; i++)
  {
   this.students[i] = new Student(students[i]);
  }
 }
 public String toString()
 {
  String s;
  
   s = "班级:"+name+"\t"+"容量:"+capacity+"\t"+"实际人数:"+size+"\n\n";
   s = s+ "学号"+"\t"+"姓名"+"\t"+"英语"+"\t"+"数学"+"\t"+"计算机"+"\t"+"总成绩\n";
   for(int i = 0;i<size;i++)
   {
    s = s + students[i].getID()+"\t"+students[i].getName()+"\t"+students[i].getEng()+"\t"+students[i].getMath()+"\t"+students[i].getComp()+"\t"+students[i].getSum()+"\n";
   }
   return s;
 }
}

public class StudentTest
{
 public static void main(String[] args)
 {
  Student[] students;
  StudentClass aClass = new StudentClass("软件0201",5);
  students = new Student[5];
  for(int i =0 ;i<5;i++)
  {
   students[i] = new Student(getAStudent(i+1));
  } 
  aClass.setStudents(students);
  System.out.println(aClass);

  //将学生信息保存到文件stu.ser中
  try
  {
   FileOutputStream fo = new FileOutputStream("stu.ser");
   ObjectOutputStream so =new ObjectOutputStream(fo);
   for(int i = 0; i<5;i++)
   {
    so.writeObject(students[i]);
   }
   so.close();
  }
  catch (Exception e)
  {
   System.out.println(e);
  }
 }
 public static void sop(Object obj)
 {
  System.out.print(obj);
 }
 public static Student getAStudent(int i)
 {
  Student studenti;
  sop("输入第"+i+"个学生的信息"+"\n");
  sop("学号:"+"\n");
  String id = Keyboard.getString();
  sop("姓名:"+"\n");
  String name = Keyboard.getString();
  sop("英语成绩:"+"\n");
  int eng = Keyboard.getInteget();
  sop("数学成绩:"+"\n");
  int math= Keyboard.getInteget();
  sop("计算机成绩:"+"\n");
  int comp= Keyboard.getInteget();
  studenti = new Student(id,name,eng,math,comp, comp);
  return studenti;
 }
}

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值