简单学生成绩管理系统(Java实现)

package stu_sys;

import java.lang.*;
import java.io.*;
import aprin.stu_sys.*;

public class Main
{
  public static void main(String[] args)
  {
    while(true)
    {
      Menu.paint();
      int ctrlTag = Console.readInt();
      switch(ctrlTag)
      {
        case 1:
        {
          Menu.action1();
          break;
        }

        case 2:
        {
          Menu.action2();
          break;
        }

        case 3:
        {
          Menu.action3();
          break;
        }

        case 4:
        {
          Menu.action4();
          break;
        }

        case 5:
        {
          Menu.action5();
          break;
        }

        case 6:
        {
          Menu.action6();
          break;
        }

        case 0:
        {
          System.exit(0);
          break;
        }
      }
    }
  }
}

class Student
{
  private int number;
  private String name;
  private int english;
  private int math;
  private int computer;
  private int average;
  private int total;

  public Student()
  {
  }

  public Student(int number, String name, int english, int math, int computer)
  {
    this.number = number;
    this.name = name;
    this.english = english;
    this.math = math;
    this.computer = computer;
    total = english + math + computer;
    average = total/3;
  }

  public int getNumber()
  {
    return number;
  }

  public String getName()
  {
    return name;
  }

  public int getEnglish()
  {
    return english;
  }

  public int getMath()
  {
    return math;
  }

  public int getComputer()
  {
    return computer;
  }

  public int getAverage()
  {
    return average;
  }

  public int getTotal()
  {
    return total;
  }
}

class StudentSet
{
  private static final int maxLen = 1000;
  private static int len = 0;
  private static Student[] data = new Student[maxLen];

  public static int getMaxLen()
  {
    return maxLen;
  }

  public static int getLen()
  {
    return len;
  }

  public static Student getData(int index)
  {
    return data[index];
  }

  public static int addData(Student newData)
  {
    if (len < maxLen)
    {
      data[len] = newData;
      len++;
      return 0;
    } else
    {
      return -1;
    }
  }

  public static void sortData()
  {
    for (int i = 0; i < len -1; i++)
    {
      int minIndex = i;
      for (int j = i+1; j < len; j++)
      {
        if (data[minIndex].getAverage() > data[j].getAverage())
        {
          minIndex = j;
        }
      }
      if (minIndex != i)
      {
        Student temp = data[i];
        data[i] = data[minIndex];
        data[minIndex] = temp;
      }
    }
  }

  public static int search(int number)
  {
    for(int i = 0; i < len; i++)
    {
      if (data[i].getNumber() == number)
      {
        return i;
      }
    }
    return -1;
  }

  public static int delete(int number)
  {
    for (int i = 0; i < len; i++)
    {
      if (data[i].getNumber() == number)
      {
        for (int j = i + 1; j < len; j++)
        {
          data[j-1] = data[j];
        }
        len--;
        return 0;
      }
    }
    return -1;
  }

  public static int stat(int min, int max)
  {
    int sum =0;

    for (int i = 0; i < len; i++)
    {
      if ((data[i].getAverage() >= min) && (data[i].getAverage() <= max))
      {
        sum++;
      }
    }
    return sum;
  }
}

class Console
{
  public static int readInt()
  {
    int result = 0;
    try{
      String temp =new BufferedReader(new InputStreamReader(System.in)).readLine();
      result = Integer.parseInt(temp);
    } catch (Exception e)
    {
      System.out.println("Error: "+e);
    }
    return result;
  }

  public static String readSting()
  {
    String result = null;
    try{
      result = new BufferedReader(new InputStreamReader(System.in)).readLine();
    } catch (Exception e)
    {
      System.out.println("Error: "+e);
    }
    return result;
  }
}

class Menu
{
  public static void paint()
  {
    clrscr();
    for (int i = 0; i < 80; i++)
    {
      System.out.print('=');
    }
    System.out.println();

    System.out.println("                             学生成绩管理系统                 ");
    System.out.println();
    System.out.println("               1 输入记录                       2 输出所有记录");
    System.out.println("               3 按平均成绩排序并输出           4 查找记录");
    System.out.println("               5 统计各分数段人数               6 删除记录");
    System.out.println("               0 退出");

    for (int i = 0; i < 80; i++)
    {
      System.out.print('=');
    }
    System.out.println("                                            Copyright (C) 2005 官成文 厦门大学");
    System.out.println();
    System.out.print("请输入命令:");
  }

  public static int action1()
  {
    while(true)
    {
      clrscr();
      System.out.print("待输入记录的学号(输入“-1”退出):");

      int number = Console.readInt();
      if (number != -1)
      {
        System.out.print("  *姓名:");
        String name = Console.readSting();
        System.out.print("  *英语:");
        int english = Console.readInt();
        System.out.print("  *数学:");
        int math = Console.readInt();
        System.out.print("  *计算机:");
        int computer = Console.readInt();
        Student newData = new Student(number, name, english, math, computer);
        if (StudentSet.addData(newData) == -1)
        {
          System.out.println("数据溢出!");
          return -2;
        }
      } else
      {
        return -1;
      }
    }
  }

  public static void action2()
  {
    clrscr();
    if (StudentSet.getLen() == 0)
    {
      System.out.println("没有记录!");
    } else
    {
      System.out.println("         数学|英语|计算机|平均|总计");
      for (int i = 0; i < StudentSet.getLen(); i++)
      {
        System.out.println("学号:"+StudentSet.getData(i).getNumber()+"  姓名:"+StudentSet.getData(i).getName());
        System.out.println("      "+StudentSet.getData(i).getMath()+"    "+StudentSet.getData(i).getEnglish()+
          "    "+StudentSet.getData(i).getComputer()+"    "+StudentSet.getData(i).getAverage()+"    "+StudentSet.getData(i).getTotal());
      }
    }
  }

  public static void action3()
  {
    StudentSet.sortData();
    action2();
  }

  public static void action4()
  {
    clrscr();
    System.out.print("请输入要查找记录的学号:");
    int number = Console.readInt();
    int i;
    if ((i = StudentSet.search(number)) != -1)
    {
      clrscr();
      System.out.println("         数学|英语|计算机|平均|总计");
      System.out.println("学号:"+StudentSet.getData(i).getNumber()+"  姓名:"+StudentSet.getData(i).getName());
      System.out.println("      "+StudentSet.getData(i).getMath()+"    "+StudentSet.getData(i).getEnglish()+
        "    "+StudentSet.getData(i).getComputer()+"    "+StudentSet.getData(i).getAverage()+"    "+StudentSet.getData(i).getTotal());
    } else
    {
      System.out.println("没有找到相应的记录!");
    }
  }
  public static void action5()
  {
    clrscr();
    System.out.println("90-100: "+StudentSet.stat(90, 100)+"人");
    System.out.println("80-89: "+StudentSet.stat(80, 89)+"人");
    System.out.println("70-79: "+StudentSet.stat(70, 79)+"人");
    System.out.println("60-69: "+StudentSet.stat(60, 69)+"人");
    System.out.println("0-59: "+StudentSet.stat(0, 59)+"人");
  }

  public static void action6()
  {
    while(true)
    {
      clrscr();
      System.out.print("请输入要删除记录的学号(输入“-1”退出):");
      int number = Console.readInt();
      if (number != -1)
      {
        if(StudentSet.delete(number) == -1)
        {
          System.out.println("没有找到相应的记录!");
          return;
        } else
        {
          System.out.println("删除记录成功!");
        }
      } else
      {
        return;
      }
    }
  }

  public static void clrscr()
  { //temp function

    System.out.println();
    System.out.println();
  }
}

  • 5
    点赞
  • 42
    收藏
    觉得还不错? 一键收藏
  • 14
    评论
该学生成绩信息管理系统涉及到学生、教师、系统管理员、班级、学生成绩、课程。设置一个系统管理员对系统进行管理。所有用户需输入账号、密码登录进入系统;管理员进入系统后可对学生、老师、班级、课程进行增删改查操作;学生进入系统,查看成绩、查看和修改自己的信息;老师进入系统后,对自己这门课程的学生设置课程成绩、查看和修改自己的信息,查看学生的信息和成绩、以及统计分析学生的成绩; 管理员为班级设置年级,为年级设置课程,为班级的每门课程设置老师,为学生设置班级。一个年级有多门课程(语文、数学、外语等等),班级的每门课程只能有一名老师,一个老师可以有多门课程;老师选择自己这门课程为该课程的学生登记成绩。老师可以查看其他老师的信息(可以当成是老师的通讯录),查看本课程学生的信息和成绩;学生可以查看班级其他同学的信息(可以看成是班级的同学录)。 考试分为两种,一种是年级统考,一种是平时考试。年级统考需要管理员事先添加一次年级统考,考试成绩出来后,老师进入系统选择该次考试为学生登记成绩。平时考试则是班级平时的考试,老师添加考试信息,登记成绩。成绩统计分析则是针对年级统考进行分析,主要涉及各学科分数名次,总分名次。 技术实现 系统环境:Windows开发工具:IDEAJava版本:JDK 1.8服务器:Tomcat 1.8数据库:MySQL 5.X系统采用技术:Servlet+Jsp+Jdbc+H-ui+EasyUI+jQuery+Html+Css+Ajax 系统功能系统主要分为三种用户角色,分别是管理员、老师以及学生,其具体功能如下: - 管理员   学生信息管理、教师信息管理、年级信息管理、班级信息管理、课程信息管理、考试信息管理,系统参数设置 - 老师   教学管理、教师个人信息维护、教师通讯录管理 - 学生考试成绩查询、学生通讯录、学生个人信息维护 运行截图 登录界面: 管理员界面: 考试列表:  成绩统计: 学生信息管理: 教师信息管理: 年级、班级信息管理:  系统设置: 教师界面:  成绩登记:  教师通讯录: 个人信息:  学生界面: 学生成绩查询: 班级通讯录: 学生个人信息:              

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值