java简易成绩管理程序

来源:互联网 发布:国外无法访问国内网络 编辑:程序博客网 时间:2024/04/30 20:11

刚学完io老师布置的简易成绩管理程序作业,程序如下,本人程序如下(感谢室友及对门室友帮助调试):

源程序文件1:

    package qwe;
import java.util.*;

class Student {
  private String  name;
  private int java, sql, vb,id;
  public int mc;
  private int sco ;
  public int getId()
  {
   return id;
  }
  public String getName()
  {
   return name;
  }
  public int getJAVA()
  {
   return java;
  }
  public int getSQL()
  {
   return sql;
  }
  public int getVB()
  {
   return vb;
  }
  public int getSco()
  {
   return sco;
  }
  public void setId( int i )
  {
 id = i; 
  }
  public void setName(String n)
  {
 name  = n; 
  }
  public void setJAVA(int j)
  {
   java =j;
  }
  public void setSQL(int s)
  {
   sql = s;
  
  }
  public void setVB(int v)
  {
   vb = v;
  }
  public void setSco()
  {
   sco = vb + sql + java;
  }

  public String toString()
  {
   return id +"    "+ name +"    "+ java +"    "+ sql +"    "+ vb +"    "+ sco + "    " +mc;
  }

}

源程序文件2:
package qwe;


import java.util.*;
class ComTypeComparator implements Comparator<Student>{
 public int compare(Student o1, Student o2){
  return (o1.getSco() < o2.getSco() ? -1 :(o1.getSco() == o2.getSco() ? 0 :1));
 }
}
class ComTypeComparator2 implements Comparator<Student>{
 public int compare(Student o1, Student o2){
  return ((o1.getId() < o2.getId() ? -1 :(o1.getId() == o2.getId() ? 0 :1)));
 }
}
class AchievementList {
 public final static int CLASS_COUNT = 100;//班上人数
 private final static int TSCO_JIGEXIAN = 180;//三科总分的及格线
    private Student[] classstu = new Student[CLASS_COUNT];
   
    private double Jave;//各科目班上平均成绩
    private double Save;
    private double Vave;
    private double Tave;
    private int maxJsco;//各项成绩班上最高分
    private int maxSsco;
    private int maxVsco;
    private int maxTsco;
    private int minJsco;//各项成绩班上最低分
    private int minSsco;
    private int minVsco;
    private int minTsco;
    private int Jbujicount;//各项成绩班上不及格人数
    private int Sbujicount;
    private int Vbujicount;
    private int Tbujicount;
    public AchievementList(Student [] stu)
    {
     classstu = stu;
    }
    public void setJmax()//计算并设置各项成绩最高分
    {
     int[] j = new int[StudentManager.lineNum] ;
     for(int i = 0; i < StudentManager.lineNum; i++)
     j[i] = classstu[i].getJAVA();
     Arrays.sort(j);
     maxJsco = j[StudentManager.lineNum - 1];
    }
    public void setSmax()
    {
     int[] s = new int[StudentManager.lineNum] ;
     for(int i = 0; i < StudentManager.lineNum; i++)
     s[i] = classstu[i].getSQL();
     Arrays.sort(s);
     maxSsco =  s[StudentManager.lineNum - 1];
    }
    public void setVmax()
    {
     int[] v = new int[StudentManager.lineNum] ;
     for(int i = 0; i < StudentManager.lineNum; i++)
     v[i] = classstu[i].getVB();
     Arrays.sort(v);
     maxVsco =  v[StudentManager.lineNum - 1];
    }
    public void setTmax()
    {
     int[] t = new int[StudentManager.lineNum] ;
     for(int i = 0; i <StudentManager.lineNum; i++)
     t[i] = classstu[i].getSco();
     Arrays.sort(t);
     maxTsco =  t[StudentManager.lineNum - 1];
    }
    public void setJmin()//计算并设置各项成绩最低分
    {
     int[] j = new int[StudentManager.lineNum] ;
     for(int i = 0; i < StudentManager.lineNum; i++)
     j[i] = classstu[i].getJAVA();
     Arrays.sort(j);
     minJsco = j[0];
    }
    public void setSmin()
    {
     int[] s = new int[StudentManager.lineNum] ;
     for(int i = 0; i < StudentManager.lineNum; i++)
     s[i] = classstu[i].getSQL();
     Arrays.sort(s);
     minSsco =  s[0];
    }
    public void setVmin()
    {
     int[] v = new int[StudentManager.lineNum] ;
     for(int i = 0; i < StudentManager.lineNum; i++)
     v[i] = classstu[i].getVB();
     Arrays.sort(v);
     minVsco =  v[0];
    }
    public void setTmin()
    {
     int[] t = new int[StudentManager.lineNum] ;
     for(int i = 0; i < StudentManager.lineNum; i++)
     t[i] = classstu[i].getSco();
     Arrays.sort(t);
     minTsco =  t[0];
    }
    public void setJbuji()//计算并设置各项成绩不及格人数
    {
     int counter = 0;
     for(int i = 0; i <StudentManager.lineNum; i++)
     {
      
      if(classstu[i].getJAVA() < 60)
       counter++;
     }
     Jbujicount = counter;
    }
    public void setSbuji()
    {
     int counter = 0;
     for(int i = 0; i < StudentManager.lineNum; i++)
     {
      
      if(classstu[i].getSQL() < 60)
       counter++;
     }
     Sbujicount = counter;
    }
    public void setVbuji()
    {
     int counter = 0;
     for(int i = 0; i < StudentManager.lineNum; i++)
     {
      
      if(classstu[i].getVB() < 60)
       counter++;
     }
     Vbujicount = counter;
    }
    public void setTbuji()
    {
     int counter = 0;
     for(int i = 0; i < StudentManager.lineNum; i++)
     {
      
      if(classstu[i].getSco() < TSCO_JIGEXIAN)
       counter++;
     }
     Tbujicount = counter;
    }
    public void setJave()//计算和设置各科的班上平均成绩
    {
     int sum = 0;
     int[] j = new int[StudentManager.lineNum] ;
     for(int i = 0; i <StudentManager.lineNum; i++)
     j[i] = classstu[i].getJAVA();
     for(int i = 0; i < StudentManager.lineNum; i++)
        sum = sum + j[i];
     Jave = sum / StudentManager.lineNum;
    }
    public void setSave()
    {
     int sum = 0;
     int[] j = new int[StudentManager.lineNum] ;
     for(int i = 0; i < StudentManager.lineNum; i++)
     j[i] = classstu[i].getSQL();
     for(int i = 0; i < StudentManager.lineNum; i++)
        sum = sum + j[i];
     Save = sum / StudentManager.lineNum;
    }
    public void setVave()
    {
     int sum = 0;
     int[] j = new int[StudentManager.lineNum] ;
     for(int i = 0; i < StudentManager.lineNum; i++)
     j[i] = classstu[i].getVB();
     for(int i = 0; i <StudentManager.lineNum; i++)
        sum = sum + j[i];
     Vave = sum / StudentManager.lineNum;
    }
    public void setTave()
    {
     int sum = 0;
     int[] j = new int[StudentManager.lineNum] ;
     for(int i = 0; i < StudentManager.lineNum; i++)
     j[i] = classstu[i].getSco();
     for(int i = 0; i < StudentManager.lineNum; i++)
        sum = sum + j[i];
     Tave = sum / StudentManager.lineNum;
    }
    public String printAve()
    {
     return "各科班上的平均分: " + "    java: " + Jave + "   sql: " + Save + "   vb: " + Vave + "   总分平均分: " + Tave;
    }
    public String printMax()
    {
     return "各科班上最高分: " + "   java: " + maxJsco + "   sql: " + maxSsco + "   vb: " + maxVsco + "   总分最高分: " + maxTsco;
    }
    public String printMin()
    {
     return "各科班上最低分: " + "   java: " + minJsco + "   sql: " + minSsco + "   vb: " + minVsco + "   总分最低分: " + minTsco;
    }
    public String printBujicount()
    {
     return "各科班上不及格人数"+ "   java: " + Jbujicount + "   sql: " + Sbujicount + "   vb: " + Vbujicount + "   总分最低分: " + Tbujicount;
    }
    public void setMc()
    {
     Student[] classstu1=new Student[StudentManager.lineNum];
     for(int i=0;i<StudentManager.lineNum;i++)
        classstu1[i]=classstu[i];
      Arrays.sort(classstu1, new ComTypeComparator());
      for(int i = 0; i < StudentManager.lineNum; i++)
      {
       classstu1[i].mc = StudentManager.lineNum - i;
      }
      Arrays.sort(classstu1,new ComTypeComparator2());
    }
 
}

源程序文件3:

package qwe;
import java.io.*;
import java.util.*;
public class StudentManager {
    static int lineNum = 0;
 /**
  * @param args
  */
 public static void main(String[] args) throws IOException{
  // TODO Auto-generated method stub
      
      try{  InputStreamReader iin = new InputStreamReader(System.in);
           BufferedReader bin = new BufferedReader(iin);
           File file1 = new File("d://class1.txt");
           FileWriter fw1 = new FileWriter(file1);
           BufferedWriter bw = new BufferedWriter(fw1);
           String re;
           System.out.println("请输入:学号,姓名,各科成绩,以空格隔开,输入下条记录按回车");
           re = bin.readLine();
           while(true)
           {
            System.out.flush();
            if(re.length() == 0) break;
            bw.write(re);
            bw.newLine();
            re = bin.readLine();
           }
           bw.close();
          Student[] cla = new  Student[AchievementList.CLASS_COUNT];
         FileReader fi = new FileReader(file1);
         BufferedReader br = new BufferedReader(fi);
         String se = br.readLine();
       
        
        
            
         while (se != null)
         {
         Scanner scan = new  Scanner(se);
         cla[lineNum] = new Student();
         cla[lineNum].setId(scan.nextInt());
         cla[lineNum].setName(scan.next());
         cla[lineNum].setJAVA(scan.nextInt());
         cla[lineNum].setSQL(scan.nextInt());
         cla[lineNum].setVB(scan.nextInt());
         cla[lineNum].setSco();
         se = br.readLine();
         lineNum++;
         }
       
         AchievementList class1 = new AchievementList(cla);
         class1.setJave();
         class1.setJbuji();
         class1.setJmax();
         class1.setJmin();
         class1.setSave();
         class1.setSbuji();
         class1.setSmax();
         class1.setSmin();
         class1.setVave();
         class1.setVbuji();
         class1.setVmax();
         class1.setVmin();
         class1.setTave();
         class1.setTbuji();
         class1.setTmax();
         class1.setTmin();
         class1.setMc();
         File file2 = new File("d://class2.xls");
         FileWriter fw2 = new FileWriter(file2);
         BufferedWriter bw2 = new BufferedWriter(fw2);
        
         //System.out.flush();
         bw2.write("      成绩表         ");
         bw2.newLine();
         bw2.write("学号  姓名  java  sql  vb  总分  名次");
         bw2.newLine();
         //System.out.flush();
         for(int i = 0; i <lineNum; i++)
         {
         bw2.write(cla[i].toString());
         bw2.newLine();
         //System.out.flush();
         }
         bw2.write(class1.printAve());
         bw2.newLine();
         bw2.write(class1.printBujicount());
         bw2.newLine();
         bw2.write(class1.printMax());
         bw2.newLine();
         bw2.write(class1.printMin());
         bw2.close();
 }catch(Exception e){
  e.printStackTrace();
 }
 }
 
}

 

原创粉丝点击