学生成绩管理系统

ScoreInformation.java


public class ScoreInformation
{
 String stunumber;       //学生学号
 String name;            //学生姓名
 double mathematicsscore;//学生高数成绩
 double englishiscore;   //学生英语成绩
 double networkscore;    //学生计算机网络成绩
 double databasescore;   //学生数据库成绩
 double softwarescore;   // 学生软件工程成绩
 public ScoreInformation(String stu,String n,double math,double eng,double net,double data,double sofe)  //构造函数
 {
  this.stunumber=stu;
  this.name=n;
  this.mathematicsscore=math;
  this.englishiscore=eng;
  this.databasescore=net;
  this.softwarescore=sofe;
 }
 String getstunumber()  //获取学生学号
 {
  return stunumber;
 }
 void setstunumber(String a)  //设立学生学号
 {
  stunumber=a;
 }
 String getname() //获取学生姓名
 {
  return name;
 }
 void setname(String a) //设置学生姓名
 {
  name=a;
 }
 double getmathematicsscore()
 {
  return mathematicsscore;
 }
 void setmathematicsscore(double a)
 {
  mathematicsscore=a;
 }
 double getenglishiscore()
 {
  return englishiscore;
 }
 void setenglishiscore(double a)
 {
  englishiscore=a;
 }
 double getnetworkscore()
 {
  return networkscore;
 }
 void setnetworkscore(double a)
 {
  networkscore=a;
 }
 double getdatabasescore()
 {
  return databasescore;
 }
 void setdatabasescore(double a)
 {
  databasescore=a;
 }
 double getsoftwarescore()
 {
  return softwarescore;
 }
 void setsoftwarescore(double a)
 {
  softwarescore=a;
 }
}
 
 
 
StudentScoreManagement.java
 
 
import java.util.Scanner;
public class StudentScoreInformation {
  
   static ScoreInformation[] ss= {new ScoreInformation("20183694","边信哲",0,0,0,0,0),new ScoreInformation("00000000","null",0,0,0,0,0),new ScoreInformation("00000000","null",0,0,0,0,0),new ScoreInformation("00000000","null",0,0,0,0,0),new ScoreInformation("00000000","null",0,0,0,0,0)};   //利用数组实现存储五个学生的信息,并对其进行初始化
  
   static Scanner stud=new Scanner(System.in);
   public static void main(String[] args) {
    ZhuCaiDan();   //显示主菜单
   }
   static void ZhuCaiDan()           //主菜单
   {
       System.out.println("***********************************************");   //所画的界面
    System.out.println("         石家庄铁道大学软件工程系");
    System.out.println("         学生学籍管理系统 2019 版");
    System.out.println("***********************************************");
    System.out.println("         1、 学生考试成绩录入");
    System.out.println("         2、 学生考试成绩修改");
    System.out.println("         3、 计算学生成绩绩点");
    System.out.println("         4、退出学籍管理系统");
    System.out.println("***********************************************");
    
    Scanner stud=new Scanner(System.in);//用于输入学生信息
    int a=stud.nextInt();
       switch(a) {                                      //使用switch进行功能选择,这种情况优于for循环 我感觉使用do while循环也可以,先刷界面再循环,但是不知道哪里错误,不好控制功能。o(´^`)o
       case 1:add();break;                              //录入考试成绩                            后面有add函数控制
       case 2:rivise();break;                           //修改学生考试成绩                     后面由rivise函数控制
       case 3:count();break;                            //计算学生成绩绩点                       后面由count函数控制
       case 4:exit();break;                             //退出学籍管理系统                     后面由exit函数控制
       default:System.out.println("输入错误");          //输入有误,退回到主界面   
       ZhuCaiDan();                                      
       }
   }
  
  
  
  
  
  
  
  
  
  
  
  
   static void add()   //此函数用于函数的录入
   {
    System.out.println("***********************************************");
    System.out.println(" 石家庄铁道大学软件工程系学生学籍管理系统 2019 版 ");
    System.out.println("            学生考试成绩录入 ");
    System.out.println("***********************************************");
    System.out.println("            请输入学生学号: ");
    System.out.println("***********************************************");
   
    Scanner stud=new Scanner(System.in);
    String str=stud.nextLine();
   
    boolean k=false;//定义布尔型变量  分别运行是否是系统中的学生
   
    for(int i=0;i<5;i++)
    {
    
    if(str.equals(ss[i].getstunumber()))    //检测是否有这个学生
    {
     
      k=true;                           //如果有的话,就将布尔型变量k赋值为true
     
      System.out.println("***********************************************");        //刷新
      System.out.println("  石家庄铁道大学软件工程系学生学籍管理系统 2019 版");
      System.out.println("          学生考试成绩录入 ");
      System.out.println("***********************************************");
      System.out.println("          学生学号:"+str);
      System.out.println("          学生姓名:"+ss[i].getname());
      System.out.println("        请输入高等数学成绩:");
      System.out.println("***********************************************");
     
      double sc1=stud.nextDouble();                                                  //刷新
      System.out.println("***********************************************");
      System.out.println("  石家庄铁道大学软件工程系学生学籍管理系统 2019 版 ");
      System.out.println("         学生考试成绩录入");
      System.out.println("***********************************************");
      System.out.println("         学生学号:"+str);
      System.out.println("         学生姓名:"+ss[i].getname());
      System.out.println("         高等数学成绩:"+sc1);
      System.out.println("         请输入大学英语成绩:");
      System.out.println("***********************************************");
     
      double sc2 =stud.nextDouble();                                                  //刷新
     
      System.out.println("***********************************************");
      System.out.println("   石家庄铁道大学软件工程系学生学籍管理系统 2019 版 ");
      System.out.println("            学生考试成绩录入");
      System.out.println("***********************************************");
      System.out.println("           学生学号:"+str);
      System.out.println("           学生姓名:"+ss[i].getname());
      System.out.println("           高等数学成绩:"+sc1);
      System.out.println("           大学英语成绩:"+sc2);
      System.out.println("           请输入计算机网络成绩:");
      System.out.println("***********************************************");
     
      double sc3=stud.nextDouble();                                                    //刷新
     
      System.out.println("***********************************************");
      System.out.println("   石家庄铁道大学软件工程系学生学籍管理系统 2019 版  ");
      System.out.println("          学生考试成绩录入  ");
      System.out.println("***********************************************");
      System.out.println("          学生学号:"+str);
      System.out.println("          学生姓名:"+ss[i].getname());
      System.out.println("          高等数学成绩:"+sc1);
      System.out.println("          大学英语成绩:"+sc2);
      System.out.println("          计算机网络成绩:"+sc3);
      System.out.println("          请输入数据库成绩:");
      System.out.println("***********************************************");
     
      double sc4=stud.nextDouble();                                                      //刷新
     
      System.out.println("***********************************************");
      System.out.println("   石家庄铁道大学软件工程系学生学籍管理系统 2019 版");
      System.out.println("           学生考试成绩录入 ");
      System.out.println("***********************************************");
      System.out.println("           学生学号:"+str);
      System.out.println("           学生姓名:"+ss[i].getname());
      System.out.println("           高等数学成绩:"+sc1);
      System.out.println("           大学英语成绩:"+sc2);
      System.out.println("           计算机网络成绩:"+sc3);
      System.out.println("           数据库成绩:"+sc4);
      System.out.println("           请输入软件工程成绩:");
      System.out.println("***********************************************");
     
      double sc5=stud.nextDouble();                                                          //刷新
     
      System.out.println("***********************************************");
      System.out.println("  石家庄铁道大学软件工程系学生学籍管理系统 2019 版 ");
      System.out.println("        学生考试成绩录入  ");
      System.out.println("***********************************************");
      System.out.println("        学生学号:"+str);
      System.out.println("        学生姓名:"+ss[i].getname());
      System.out.println("        高等数学成绩:"+sc1);
      System.out.println("        大学英语成绩:"+sc2);
      System.out.println("        计算机网络成绩:"+sc3);
      System.out.println("        数据库成绩:"+sc4);
      System.out.println("        软件工程成绩:"+sc5);
      System.out.println("***********************************************");
      System.out.println("        该学生成绩已录入完毕,是否提交(Y/N)");
      System.out.println("***********************************************");
     
      Scanner stu=new Scanner(System.in);       //输入x或者n
      String s=stu.nextLine();
      if(s.equals("Y"))                         //如果输入Y
      {
       ss[i].setmathematicsscore(sc1);
       ss[i].setenglishiscore(sc2);
       ss[i].setnetworkscore(sc3);
       ss[i].setdatabasescore(sc4);
       ss[i].setsoftwarescore(sc5);
       ZhuCaiDan();
      }
      else
      {                                     //如果输入n               
       add();                            //进入到刚进入1的时候
      }
    }
    if(k==false)                       //输入的学号错误时
    {
     System.out.println("输入错误!");
     add();  //返回成绩录入界面
    }
    }
   }
 
   static void rivise()              //用于修改学生的信息
   {
    String s;
    System.out.println("***********************************************");
    System.out.println("  石家庄铁道大学软件工程系学生学籍管理系统 2019 版 ");
    System.out.println("            学生考试成绩修改界面 ");
    System.out.println("***********************************************");
    System.out.println("            请输入学生学号: ");
    System.out.println("***********************************************");
   
    System.out.println("请输入八位学号");
    String str1=stud.nextLine();
   
    boolean k=false;            //利用布尔型k来控制选择
    for(int i=0;i<5;i++) {
     if(str1.equals(ss[i].getstunumber())) {
      System.out.println("***********************************************");
      System.out.println("  石家庄铁道大学软件工程系学生学籍管理系统 2019 版 ");
      System.out.println("            学生考试成绩修改界面 ");
      System.out.println("***********************************************");
      System.out.println("            学生学号:"+ss[i].getstunumber());
      System.out.println("            学生姓名:"+ss[i].getname());
      System.out.println("          1、高等数学成绩:"+ss[i].getmathematicsscore());
      System.out.println("          2、大学英语成绩:"+ss[i].getenglishiscore());
      System.out.println("          3、计算机网络成绩:"+ss[i].getnetworkscore());
      System.out.println("          4、数据库成绩:"+ss[i].getdatabasescore());
      System.out.println("          5、软件工程成绩:"+ss[i].getsoftwarescore());
      System.out.println("***********************************************");
     
      k=true;  //   如果存在这个学号的话,k的值就改变为true就不再执行输入错误的情况
     
      int a=stud.nextInt();  //序号
     
      if(a==1) {
       System.out.println("***********************************************");
       System.out.println("  石家庄铁道大学软件工程系学生学籍管理系统 2019 版 ");
       System.out.println("            学生考试成绩修改界面 ");
       System.out.println("***********************************************");
       System.out.println("            学生学号:"+ss[i].getstunumber());
       System.out.println("            学生姓名:"+ss[i].getname());
       System.out.println("          请输入修改后高等数学成绩:");
      
       double sc11=stud.nextDouble();
      
       System.out.println("***********************************************");
       System.out.println("  石家庄铁道大学软件工程系学生学籍管理系统 2019 版 ");
       System.out.println("            学生考试成绩修改界面 ");
       System.out.println("***********************************************");
       System.out.println("            学生学号:"+ss[i].getstunumber());
       System.out.println("            学生姓名:"+ss[i].getname());
       System.out.println("          1、高等数学成绩:"+sc11);
       System.out.println("          2、大学英语成绩:"+ss[i].getenglishiscore());
       System.out.println("          3、计算机网络成绩:"+ss[i].getnetworkscore());
       System.out.println("          4、数据库成绩:"+ss[i].getdatabasescore());
       System.out.println("          5、软件工程成绩:"+ss[i].getsoftwarescore());
       System.out.println("        该学生成绩已修改完毕,是否提交(Y/N)");
       System.out.println("***********************************************");
      
       Scanner stu=new Scanner(System.in);
       String s1=stu.nextLine();
      
       if(s1.equals("Y"))
       {
        ss[i].setmathematicsscore(sc11);
        ZhuCaiDan();
       }
       else {
        rivise();
       }
      }
     
      else if(a==2) {
       System.out.println("***********************************************");
       System.out.println("  石家庄铁道大学软件工程系学生学籍管理系统 2019 版 ");
       System.out.println("            学生考试成绩修改界面 ");
       System.out.println("***********************************************");
       System.out.println("            学生学号:"+ss[i].getstunumber());
       System.out.println("            学生姓名:"+ss[i].getname());
       System.out.println("***********************************************");
      
       double sc22=stud.nextDouble();
      
       System.out.println("***********************************************");
       System.out.println("  石家庄铁道大学软件工程系学生学籍管理系统 2019 版 ");
       System.out.println("            学生考试成绩修改界面 ");
       System.out.println("***********************************************");
       System.out.println("            学生学号:"+ss[i].getstunumber());
       System.out.println("            学生姓名:"+ss[i].getname());
       System.out.println("          1、高等数学成绩:"+ss[i].getmathematicsscore());
       System.out.println("          2、大学英语成绩:"+sc22);
       System.out.println("          3、计算机网络成绩:"+ss[i].getnetworkscore());
       System.out.println("          4、数据库成绩:"+ss[i].getdatabasescore());
       System.out.println("          5、软件工程成绩:"+ss[i].getsoftwarescore());
       System.out.println("        该学生成绩已修改完毕,是否提交(Y/N)");
       System.out.println("***********************************************");
      
       Scanner stu=new Scanner(System.in);
       String s1=stu.nextLine();
      
       if(s1.equals("Y")) {
        ss[i].setenglishiscore(sc22);
        ZhuCaiDan();
       }
       else {
        rivise();
       }
      }
     
      else if(a==3) {
       System.out.println("***********************************************");
       System.out.println("  石家庄铁道大学软件工程系学生学籍管理系统 2019 版 ");
       System.out.println("            学生考试成绩修改界面 ");
       System.out.println("***********************************************");
       System.out.println("            学生学号:"+ss[i].getstunumber());
       System.out.println("            学生姓名:"+ss[i].getname());
       System.out.println("***********************************************");
      
       double sc33=stud.nextDouble();
      
       System.out.println("***********************************************");
       System.out.println("  石家庄铁道大学软件工程系学生学籍管理系统 2019 版 ");
       System.out.println("            学生考试成绩修改界面 ");
       System.out.println("***********************************************");
       System.out.println("            学生学号:"+ss[i].getstunumber());
       System.out.println("            学生姓名:"+ss[i].getname());
       System.out.println("          1、高等数学成绩:"+ss[i].getmathematicsscore());
       System.out.println("          2、大学英语成绩:"+ss[i].getenglishiscore());
       System.out.println("          3、计算机网络成绩:"+sc33);
       System.out.println("          4、数据库成绩:"+ss[i].getdatabasescore());
       System.out.println("          5、软件工程成绩:"+ss[i].getsoftwarescore());
       System.out.println("        该学生成绩已修改完毕,是否提交(Y/N)");
       System.out.println("***********************************************");
      
       Scanner stu=new Scanner(System.in);
       String s1=stu.nextLine();
      
       if(s1.equals("Y")) {
        ss[i].setnetworkscore(sc33);
        ZhuCaiDan();
       }
       else {
       rivise();
       }
      }
     
      else if(a==4) {
       System.out.println("***********************************************");
       System.out.println("  石家庄铁道大学软件工程系学生学籍管理系统 2019 版 ");
       System.out.println("            学生考试成绩修改界面 ");
       System.out.println("***********************************************");
       System.out.println("            学生学号:"+ss[i].getstunumber());
       System.out.println("            学生姓名:"+ss[i].getname());
       System.out.println("          请输入修改后数据库成绩:");
      
       double sc44=stud.nextDouble();
      
       System.out.println("***********************************************");
       System.out.println("  石家庄铁道大学软件工程系学生学籍管理系统 2019 版 ");
       System.out.println("            学生考试成绩修改界面 ");
       System.out.println("***********************************************");
       System.out.println("            学生学号:"+ss[i].getstunumber());
       System.out.println("            学生姓名:"+ss[i].getname());
       System.out.println("          1、高等数学成绩:"+ss[i].getmathematicsscore());
       System.out.println("          2、大学英语成绩:"+ss[i].getenglishiscore());
       System.out.println("          3、计算机网络成绩:"+ss[i].getnetworkscore());
       System.out.println("          4、数据库成绩:"+sc44);
       System.out.println("          5、软件工程成绩:"+ss[i].getsoftwarescore());
       System.out.println("        该学生成绩已修改完毕,是否提交(Y/N)");
       System.out.println("***********************************************");
      
       Scanner stu=new Scanner(System.in);
       String s1=stu.nextLine();
      
       if(s1.equals("Y")) {
        ss[i].setdatabasescore(sc44);
        ZhuCaiDan();
       }
       else {
        rivise();
       }
      }
     
      else if(a==5) {
       System.out.println("***********************************************");
       System.out.println("  石家庄铁道大学软件工程系学生学籍管理系统 2019 版 ");
       System.out.println("            学生考试成绩修改界面 ");
       System.out.println("***********************************************");
       System.out.println("            学生学号:"+ss[i].getstunumber());
       System.out.println("            学生姓名:"+ss[i].getname());
       System.out.println("          请输入修改后软件工程成绩:");
      
       double  sc55=stud.nextDouble();
      
       System.out.println("***********************************************");
       System.out.println("  石家庄铁道大学软件工程系学生学籍管理系统 2019 版 ");
       System.out.println("            学生考试成绩修改界面 ");
       System.out.println("***********************************************");
       System.out.println("            学生学号:"+ss[i].getstunumber());
       System.out.println("            学生姓名:"+ss[i].getname());
       System.out.println("          1、高等数学成绩:"+ss[i].getmathematicsscore());
       System.out.println("          2、大学英语成绩:"+ss[i].getenglishiscore());
       System.out.println("          3、计算机网络成绩:"+ss[i].getnetworkscore());
       System.out.println("          4、数据库成绩:"+ss[i].getdatabasescore());
       System.out.println("          5、软件工程成绩:"+sc55);
       System.out.println("        该学生成绩已修改完毕,是否提交(Y/N)");
       System.out.println("***********************************************");
      
       Scanner stu=new Scanner(System.in);
       String s1=stu.nextLine();
      
       if(s1.equals("Y")) {
        ss[i].setsoftwarescore(sc55);
        ZhuCaiDan();
       }
       else {
        rivise();
       }
      }
     
     
    if(k==false) {
     System.out.println("输入错误!");
     rivise();
    }
    
   }
    }
   }
  
  
  
  
  
  
   static double judge(double score) //用来使绩点和所输入的成绩一一对应
   {
    double jidian;
    if(score<60) {
     jidian=0;
    }
    else if(score>=60&&score<=63.9) {
     jidian=1.0;
    }
    else if(score>=64&&score<=65.9) {
     jidian=1.5;
    }
    else if(score>=66&&score<=65.9) {
     jidian=1.7;
    }
    else if(score>=68&&score<=71.9) {
     jidian=2.0;
    }
    else if(score>=72&&score<=74.9) {
     jidian=2.3;
    }
    else if(score>=75&&score<=77.9) {
     jidian=2.7;
    }
    else if(score>=78&&score<=81.9){
     jidian=3.0;
    }
    else if(score>=82&&score<=84.0) {
     jidian=3.3;
    }
    else if(score>=85&&score<=89.9) {
     jidian=3.7;
    }
    else {
     jidian=4.0;
    }
    return jidian;
  }
  
  
  
  
  
   static void count() {
   
    System.out.println("***************************************");
    System.out.println("  石家庄铁道大学软件工程系学生学籍管理系统 2019 版 ");
    System.out.println("            学生考试成绩绩点计算界面 ");
    System.out.println("***************************************");
    System.out.println("            请输入学生学号: ");
    System.out.println("***************************************");
   
    System.out.println("请输入八位学号");
   
    String str=stud.nextLine();
   
    for(int i=0;i<5;i++) {
     if(str.equals(ss[i].getstunumber())) {
     
      System.out.println("***************************************");
      System.out.println("  石家庄铁道大学软件工程系学生学籍管理系统 2019 版 ");
      System.out.println("        学生考试成绩录入  ");
      System.out.println("***************************************");
      System.out.println("        学生学号:"+ss[i].getstunumber());
      System.out.println("        学生姓名:"+ss[i].getname());
      System.out.println("        1、高等数学成绩绩点:"+judge(ss[i].getmathematicsscore()));
      System.out.println("        2、大学英语成绩绩点:"+judge(ss[i].getenglishiscore()));
      System.out.println("        3、计算机网络成绩绩点:"+judge(ss[i].getnetworkscore()));
      System.out.println("        4、数据库成绩绩点:"+judge(ss[i].getdatabasescore()));
      System.out.println("        5、软件工程成绩绩点:"+judge(ss[i].getsoftwarescore()));
      double average;
      average=(judge(ss[i].getmathematicsscore())*4+judge(ss[i].getenglishiscore())*3+judge(ss[i].getnetworkscore())*4+judge(ss[i].getdatabasescore())*3+judge(ss[i].getsoftwarescore())*2)/16;
      System.out.println("        你的平均学分绩点为:"+String.format("%.2f", average));
      if(average>=2) {
       System.out.println("   你的学分绩点已达到毕业要求!");
      }
      else {
       System.out.println("   你的学分绩点不满足毕业要求!");
      }
      System.out.println("        是否返回系统主界面:(Y/N)");
      System.out.println("***************************************");
      }
     Scanner st=new Scanner(System.in);
     String s=st.nextLine();
     if(s.equals("Y")) {
      ZhuCaiDan();
     }
    }
  }
  
  
  
  
   static void exit()  //退出
   {
    System.out.println("***********************************************");
    System.out.println("  谢谢使用石家庄铁道大学软件工程系学生学籍管理系统 2019 版 ");
    System.out.println("         制作人:信1805-1 20183694 边信哲");
    System.out.println("***********************************************");
   }
}
 
 
以上就是学生成绩管理系统的代码,下面附上运行截图。

 

 

 

 

 

 

 

 

 

 

下面让我来介绍一下写作思路:

首先需要一个ScoreInforntion类来存储学生的信息;然后使用一个数组来存储5个ScoreInfornation类的对象。考虑一下 大概需要七个函数:主函数  主菜单函数,录入函数,修改函数,计算函数,退出函数和对应函数。

主菜单函数:绘制界面  ,使用switch函数控制函数选择,优于for循环,但是 我感觉使用do while循环也可以,先刷界面再循环,但是不知道哪里错误,不好控制功能。o(´^`)o  主菜单函数中包括除了对应函数的其他四种函数的调用。同时要考虑到输入学号错误这种情况。

录入函数:首先要考虑两种情况:是否输入对了学号,因为只有两种情况,所以使用布尔型控制比较方便。使用get函数来设置学生信息。

修改函数:同上也需要考虑是否输入正确的学号。同样使用布尔型比较简单。使用get函数来设置信息。

对应函数:使学生得分与绩点一一对应的函数。

计算函数:计算学生的绩点  并根据条件判断学生是否合格  需要调用对应函数。

退出函数:绘制对应的操作界面即可。

 

 

posted @ 2019-09-12 20:26  Mr_WildFire  阅读(460)  评论(0编辑  收藏  举报