java学生信息管理系统设计与实现

闲暇之余用JAVA写了个学生信息的管理系统,由于博主还是萌新,代码难免有冗余和错误的地方,如果您发现有什么不足之处或者错误,请留言。博主会尽量回复。

需求分析

一个学生信息管理系统应该包含这些内容:

教师页面

在教师页面应该包含:

学生页面

在教学生页面应该包含:

包含的类

根据分析,我们的学生信息系统应该包含三个类:

代码

学生类

Student.java

package com.gcl;

import com.sun.org.glassfish.external.statistics.AverageRangeStatistic;

import java.util.Scanner;

/**
 * Created by GCL on 2017/4/22.
 */
public class Student
{
  private int number;                 //学号
  private String name;                //姓名
  private int age;                  //年龄
  private double grade[]=new double[100];       //各科分数
  private String project[]=new String[100];      //各科名称
  private double average;              //平均分
  private int count;                 //科目数量
  public void setNumber(int num)
  {
    this.number=num;
  }
  public int getNumber()
  {
    return number;
  }
  public void setName(String name)
  {
    this.name=name;
  }
  public String getName()
  {
    return name;
  }
  public void setAge(int age)
  {
    this.age=age;
  }
  public int getAge()
  {
    return age;
  }
  public void setGrade(double a[])
  {
    System.arraycopy(a, 0, grade, 0, a.length);
  }
  public double getGrade(int i)
  {
    return grade[i];
  }
  public void setProject(String a[])
  {
    System.arraycopy(a,0,project,0,a.length);
    this.count=a.length;
  }
  public String getProject(int i)
  {
    return project[i];
  }
  public void setAverage(int len)
  {
    double sum=0;
    int i=0;
    for (;i<len;i++)
    {
      sum+=grade[i];
    }
    this.average=sum/(i*1.0);
  }
  public double getAverage()
  {
    return average;
  }
  public int getCount()
  {
    return count;
  }
}

账号密码类

Imfomation .java

package com.gcl;

/**
 * Created by GCL on 2017/5/6.
 */
public class Imfomation {
  private String code;
  private String account;

  public Imfomation(String admin, String s) {
    this.account=admin;
    this.code=s;
  }

  public void setCode(String code)
  {
    this.code=code;
  }
  public String getCode()
  {
    return code;
  }
  public void setAccont(String account)
  {
    this.account=account;
  }
  public String getAccont()
  {
    return account;
  }
}

系统操作类

MAIN.java

package com.gcl;

import java.util.Objects;
import java.util.Scanner;

/**
 * Created by GCL on 2017/5/7.
 */
public class MAIN {
  private static int m=0;                            //科目数量
  private static int n=0;                            //学生数量
  private static String[] a=new String[50];
  private static Imfomation ac=new Imfomation("Admin","123456");   //初始化教师账号密码
  private static Student su[]=new Student[100];                //实例化学生类数组
  public static void main(String[] args)
  {
    show();                                 //进入系统初始页面
  }
  //系统初始页面
  private static void show()
  {
    System.out.println("----------欢迎来到学生综合信息管理系统----------");
    System.out.println("-          请先登录:         -");
    System.out.println("-          1.教师登录         -");
    System.out.println("-          2.学生登录         -");
    System.out.println("-          0.退出           -");
    System.out.println("------------------------------------------------");
    Scanner in=new Scanner(System.in);
    int ch=in.nextInt();
    if (ch==1) Login(ac);
    else if (ch==2) Student();
    else if (ch==0) System.exit(0);
    else System.exit(1);
  }
  //教师登录页面
  private static void Login(Imfomation ac)                   //把ac当作参数传入
  {
    Scanner in=new Scanner(System.in);
    System.out.println("请输入账户名称:");
    String c=in.nextLine();
    if (!Objects.equals(c, ac.getAccont()))
    {
      System.out.println("账号不存在!");
      MAIN.Login(ac);
    }
    System.out.println("请输入密码:");
    String b=in.nextLine();
    {
      if (!Objects.equals(b, ac.getCode()))
      {
        System.out.println("密码错误!");
        MAIN.Login(ac);
      }
    }
    System.out.println("登录成功!");
    MAIN.Teacher();
  }
  //教师主页面
  private static void Teacher()
  {
    System.out.println("-----------------------------------------------");
    System.out.println("-----请选择你要执行的操作:   ---------------");
    System.out.println("-----1.创建学生信息       ---------------");
    System.out.println("-----2.查询学生信息       ---------------");
    System.out.println("-----3.显示学生信息       ---------------");
    System.out.println("-----4.删除学生信息       ---------------");
    System.out.println("-----5.修改学生信息       ---------------");
    System.out.println("-----6.修改密码         ---------------");
    System.out.println("-----0.退出系统         ---------------");
    Scanner ch=new Scanner(System.in);
    int c=ch.nextInt();
    if (c==1) Create();
    else if (c==2) Search(1);
    else if (c==3) Show();
    else if (c==4) Delete();
    else if (c==5) Renew();
    else if (c==6) Recode();
    else if (c==0) show();
    else
    {
      System.out.println("输入错误!");
      Teacher();
    }
  }
  //学生主页面
  private static void Student()
  {
    System.out.println("-----------------------------------------------");
    System.out.println("-----请选择你要执行的操作:   ---------------");
    System.out.println("-----1.查询学生信息       ---------------");
    System.out.println("-----0.退出系统         ---------------");
    Scanner In=new Scanner(System.in);
    int ch=In.nextInt();
    if (ch==1) Search(2);
    else if (ch==0) show();
    else
    {
      System.out.println("输入错误!");
      Student();
    }
  }
  //创建学生信息
  private static void Create()
  {
    String str;
    int num1=0,t;
    double[] g=new double[50];
    while(true)
    {
      su[n]=new Student();
      System.out.println("请输入学生学号:");
      Scanner in=new Scanner(System.in);
      num1=in.nextInt();
      for (int i=0;i<n;i++)                    //检测学号是否重复
      {
        while(su[i].getNumber() == num1)
        {
          System.out.println("已经存在该学号,请重新输入:");
          num1=in.nextInt();
        }
      }
      su[n].setNumber(num1);
      System.out.println("请输入学生姓名:");
      str=in.next();
      su[n].setName(str);
      System.out.println("请输入学生年龄:");
      t=in.nextInt();
      su[n].setAge(t);
      if (n==0)  //在创建第一个学生时,同时创建学科的数量和名称
      {
        System.out.println("请输入N门课");
        m=in.nextInt();
        System.out.println("请分别输入"+m+"门科目的名字:");
        for(int i=0;i<m;i++)
        {
          a[i]=in.next();
        }
      }
      su[n].setProject(a);
      for (int i=0;i<m;i++)
      {
        System.out.println("请输入"+su[n].getProject(i)+"科目的成绩:");
        g[i]=in.nextInt();
      }
      su[n].setGrade(g);
      su[n].setAverage(m);
      n++;
      System.out.println("是否继续添加?(是/Y,否/N)");
      String cho=in.next();
      char ch=cho.charAt(0);
      if (ch=='N'||ch=='n')
        Teacher();   //返回教师主页面
      while(ch!='N'&&ch!='n'&&ch!='Y'&&ch!='y')
      {
        System.out.println("输入无效,请重新输入:");
        cho=in.next();
        ch=cho.charAt(0);
      }
    }
  }
  //展示学生信息
  private static void Show()
  {
    System.out.println("学生信息如下:");
    for (int i=0;i<n;i++)
    {
      System.out.println("第"+i+"名学生:");
      System.out.println("学号:"+su[i].getNumber()+"\t姓名:"+su[i].getName()+"\t年龄:"+su[i].getAge());
      System.out.println("该学生各科成绩为:");
      for (int j=0;j<m;j++)
      {
        System.out.println(su[i].getProject(j)+":\t"+su[i].getGrade(j));
      }
      System.out.println("该学生平均分为:"+su[i].getAverage());
    }
    System.out.println("输入任意值返回主菜单");
    Scanner in=new Scanner(System.in);
    in.next();
    Teacher();
  }
  //搜索学生信息,参数是用来判断访问该函数的是学生还是老师
  private static void Search(int jud)
  {
    System.out.println("----------------------");
    System.out.println("----请选择搜索方式----"); //选择搜索方式
    System.out.println("----1.按学号搜索 ----");
    System.out.println("----2.按姓名搜索 ----");
    System.out.println("----0.返回主菜单 ----");
    System.out.println("----------------------");
    Scanner In=new Scanner(System.in);
    int ch=In.nextInt();
    boolean temp=false;
    if (ch==1)
    {
      System.out.println("请输入学号:");
      int nu=In.nextInt();
      for (int i=0;i<n;i++)
      {
        if (su[i].getNumber()==nu)
        {
          System.out.println("寻找成功");
          System.out.println("学号:"+su[i].getNumber()+"\t姓名:"+su[i].getName()+"\t年龄:"+su[i].getAge());
          System.out.println("该学生各科成绩为:");
          for (int j=0;j<m;j++)
          {
            System.out.println(su[i].getProject(j)+":\t"+su[i].getGrade(j));
          }
          System.out.println("该学生平均分为:"+su[i].getAverage());
          System.out.println("输入任意值返回主菜单");
          Scanner in=new Scanner(System.in);
          in.next();
          if (jud==1)  //如果是老师访问,返回Teacher()
           Teacher();
          Student();   //否则返回Student()
        }
      }
      System.out.println("没有找到该学生,即将返回");
      if (jud==1)
        Teacher();
      Student();
    }
    else if (ch==2)
    {
      System.out.println("请输入姓名:");
      String na=In.next();
      for (int i=0;i<n;i++)
      {
        if (Objects.equals(su[i].getName(), na))
        {
          System.out.println("寻找成功");
          System.out.println("学号:"+su[i].getNumber()+"\t姓名:"+su[i].getName()+"\t年龄:"+su[i].getAge());
          System.out.println("该学生各科成绩为:");
          for (int j=0;j<m;j++)
          {
            System.out.println(su[i].getProject(j)+":\t"+su[i].getGrade(j));
          }
          System.out.println("该学生平均分为:"+su[i].getAverage());
          temp=true;
        }
      }
      if (temp)
      {
        System.out.println("输入任意值返回主菜单");
        Scanner in=new Scanner(System.in);
        in.next();
        if (jud==1)
          Teacher();
        Student();
      }
      else
      {
        System.out.println("没有找到该学生,即将返回");
        if (jud==1)
          Teacher();
        Student();
      }
    }
    else if (ch==0)
    {
      if (jud==1)
        Teacher();
      Student();
    }
    else
    {
      System.out.println("输入错误!");
      Search(jud);
    }
  }
  //删除学生信息
  private static void Delete()
  {
    System.out.println("请输入要删除的学生的学号:");
    Scanner In=new Scanner(System.in);
    int num=In.nextInt();
    boolean temp=true;  //判断是否找到该学生
    int tem=0,i=0;
    for (i=0;i<n;i++)
    {
      if (su[i].getNumber()==num)
      {
        temp=false;
        tem=i;  //用tem记录该学生的位置
        break;
      }
    }
    if (temp)
    {
      System.out.println("未找到该学生信息");
      System.out.println("输入任意值返回主菜单");
      Scanner in=new Scanner(System.in);
      in.next();
      Teacher();
    }
    else
    {
      System.out.println("你要删除的学生信息:");
      System.out.println("学号:"+su[tem].getNumber()+"\t姓名:"+su[tem].getName()+"\t年龄:"+su[tem].getAge());
      System.out.println("该学生各科成绩为:");
      for (int j=0;j<m;j++)
      {
        System.out.println(su[tem].getProject(j)+":\t"+su[tem].getGrade(j));
      }
      System.out.println("该学生平均分为:"+su[tem].getAverage());
      System.out.println("你确定要删除该学生吗?(是/Y,否/N)");
      String ch=In.next();
      char se=ch.charAt(0);
      while(se!='N'&&se!='n'&&se!='Y'&&se!='y')
      {
        System.out.println("输入无效,请重新输入:");
        ch=In.next();
        se=ch.charAt(0);
      }
      if (se=='N'||se=='n') {
        System.out.println("返回主菜单");
        Teacher();
      }
      if (se=='Y'||se=='y') //通过线性表的删除操作来删除该学生的信息
      {
        for (i=tem;i<n-1;i++)
        {
          su[i]=su[i+1];
        }
        n--;
        System.out.println("学生信息删除成功!");
        System.out.println("输入任意值返回主菜单");
        Scanner in=new Scanner(System.in);
        in.next();
        Teacher();
      }
    }
  }
  //修改学生信息
  private static void Renew()
  {
    System.out.println("请输入要修改的学生的学号:");
    Scanner In=new Scanner(System.in);
    int num=In.nextInt();
    boolean temp=true;
    int tem=0,i=0;
    for (i=0;i<n;i++)
    {
      if (su[i].getNumber()==num)
      {
        temp=false;
        tem=i;
        break;
      }
    }
    if (temp)
    {
      System.out.println("未找到该学生信息");
      System.out.println("输入任意值返回主菜单");
      Scanner in=new Scanner(System.in);
      in.next();
      Teacher();
    }
    else
    {
      System.out.println("你要修改的学生信息如下:");
      System.out.println("你要修改的学生信息:");
      System.out.println("学号:"+su[tem].getNumber()+"\t姓名:"+su[tem].getName()+"\t年龄:"+su[tem].getAge());
      System.out.println("该学生各科成绩为:");
      for (int j=0;j<m;j++)
      {
        System.out.println(su[tem].getProject(j)+":\t"+su[tem].getGrade(j));
      }
      System.out.println("该学生平均分为:"+su[tem].getAverage());
      System.out.println("你确定要修改该学生吗?(是/Y,否/N)");
      String ch=In.next();
      char se=ch.charAt(0);
      while(se!='N'&&se!='n'&&se!='Y'&&se!='y')
      {
        System.out.println("输入无效,请重新输入:");
        ch=In.next();
        se=ch.charAt(0);
      }
      if (se=='N'||se=='n')
      {
        System.out.println("返回主菜单");
        Teacher();
      }
      if (se=='Y'||se=='y')
      {
        double[] g=new double[50];
        System.out.println("请选择修改的内容:");                        //选择修改哪些内容
        System.out.println("---1.修改姓名----");
        System.out.println("---2.修改年龄----");
        System.out.println("---3.修改成绩----");
        System.out.println("---0.返回主菜单--");
        int cho=In.nextInt();
        if (cho==1)
        {
          System.out.println("请输入姓名:");
          String name=In.next();
          su[tem].setName(name);
          System.out.println("修改成功!");
          System.out.println("还要继续修改吗?(是/Y,否/N)");
          ch=In.next();
          se=ch.charAt(0);
          while (se!='N'&&se!='n'&&se!='Y'&&se!='y')
          {
            System.out.println("输入无效,请重新输入:");
            ch=In.next();
            se=ch.charAt(0);
          }
          if (se=='N'||se=='n')
          {
            System.out.println("返回主菜单");
            Teacher();
          }
          if (se=='y'||se=='Y')
          {
            Renew();
          }
        }
        else if (cho==2)
        {
          System.out.println("请输入年龄:");
          int ag=In.nextInt();
          su[tem].setAge(ag);
          System.out.println("修改成功!");
          System.out.println("还要继续修改吗?(是/Y,否/N)");
          ch=In.next();
          se=ch.charAt(0);
          while (se!='N'&&se!='n'&&se!='Y'&&se!='y')
          {
            System.out.println("输入无效,请重新输入:");
            ch=In.next();
            se=ch.charAt(0);
          }
          if (se=='N'||se=='n')
          {
            System.out.println("返回主菜单");
            Teacher();
          }
          if (se=='y'||se=='Y')
          {
            Renew();
          }
        }
        else if (cho==3)
        {
          for (int j=0;j<m;j++)
          {
            System.out.println("请输入"+su[tem].getProject(j)+"科目的成绩:");
            g[j]=In.nextInt();
          }
          su[tem].setGrade(g);
          su[tem].setAverage(m);
          System.out.println("修改成功!");
          System.out.println("还要继续修改吗?(是/Y,否/N)");
          ch=In.next();
          se=ch.charAt(0);
          while (se!='N'&&se!='n'&&se!='Y'&&se!='y')
          {
            System.out.println("输入无效,请重新输入:");
            ch=In.next();
            se=ch.charAt(0);
          }
          if (se=='N'||se=='n')
          {
            System.out.println("返回主菜单");
            Teacher();
          }
          if (se=='y'||se=='Y')
          {
            Renew();
          }
        }
        else if (cho==0)
        {
          Teacher();
        }
        else
        {
          System.out.println("输入无效!");
          Renew();
        }
      }
    }
  }
  //修改教师的密码
  private static void Recode()
  {
    System.out.println("请输入原来的密码:");
    Scanner In=new Scanner(System.in);
    String code =In.nextLine();
    if (!Objects.equals(code, ac.getCode()))
    {
      System.out.println("密码输入错误!");
      Teacher();
    }
    System.out.println("请输入新密码:"); //要求输入两次新密码
    String co1=In.nextLine();
    System.out.println("请再次输入新密码:");
    String co2=In.nextLine();
    if (!Objects.equals(co1, co2))
    {
      System.out.println("两次输入密码不一致!");
      System.out.println("即将返回主界面");
      Teacher();
    }
    else
    {
      ac.setCode(co1);
      System.out.println("密码修改成功!");
      System.out.println("输入任意值返回主菜单");
      Scanner in=new Scanner(System.in);
      in.next();
      Teacher();
    }
  }
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

您可能感兴趣的文章:

  • java学生管理系统界面简单实现(全)
  • java学生成绩管理系统设计与实现
  • java实现水果超市管理系统
  • Java实现购物管理系统
  • Java版水果管理系统源码
  • Java基于MySQL实现学生管理系统
  • 图书管理系统java代码实现
  • Java实现学生管理系统
  • Java GUI制作简单的管理系统
  • javaWeb实现学生信息管理系统
(0)

相关推荐

  • Java实现购物管理系统

    本文实例为大家分享了Java实现购物管理系统的具体代码,供大家参考,具体内容如下 重点内容 JAVA分支结构练习 动态数组 注册表读写删 代码: package Endless; import java.util.ArrayList; import java.util.Random; /** * @JAVA01.person1.java * @author 当前用户:Endless作者 :Endless * @version 创建时间:2017年7月26日 下午6:29:16 * //实现商品及

  • Java GUI制作简单的管理系统

    本文实例为大家分享了Java GUI管理系统的具体代码,供大家参考,具体内容如下 1.先完成主页面MainUI(代码如下) package com.pag_1; import javax.swing.*; import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; public class MainUI extends JFrame implements ActionLis

  • Java基于MySQL实现学生管理系统

    本文为大家分享了Java基于MySQL实现学生管理系统,供大家参考,具体内容如下 因为实验室要交作业然后就做了一个学生管理系统,贴个代码纪念一下,做的太急界面什么的也比较差. 还有一些小细节没有完善不过还是能实现主要的功能的. Window是主界面 package First; import java.sql.*; import java.awt.*; import java.awt.event.*; import javax.swing.*; public class Window { pub

  • javaWeb实现学生信息管理系统

    本文为大家分享了javaWeb实现学生信息管理系统,供大家参考,具体内容如下 初始版 初始版是没有加分页的.因为没怎么学过前端,界面很丑陋.主要技术:JSP,JavaBean,servlet,JDBC主要页面如下: 登录页面 主页 添加学生 查看所有学生 查询学生 工程目录 数据库 两个表,user表和student表.为了使用DBUtils工具,一定要注意数据库表的属性的命名和JavaBean的get(),set() 方法的匹配.比如t_user表里的uname,在JavaBean中是:pri

  • Java版水果管理系统源码

    水果管理系统Java版分享给大家. 主类 FruitsDemo /** * 功能: * 1. 查看所有的水果 * 2. 添加新的水果(添加的时候判断水果名是否有重复) * 3. 对所有的水果进行排序(价格排序.库存排序) * 4. 删除指定的水果 * 5. 退出系统 * * 注意: * 1. 每种水果都必须有水果id,水果名,水果数量,水果价格 * 2. 添加水果时,要由用户输入水果名.数量和价格 * 3. 删除水果时要二次确认 * * 评分依据: 功能实现的情况,代码规范性(命名规范.格式规范

  • java实现水果超市管理系统

    本文为大家分享了java实现水果超市管理系统的具体代码,供大家参考,具体内容如下 首先建立水果类的界面 public class Fruit { //定义ID private String id; //定义名称 private String name; //定义价格 private int price; //定义单位 private String unit; //定义数量 private int number; public Fruit(String id, String name, int p

  • Java实现学生管理系统

    项目描述:通过管理员帐号登录,对学员信息进行管理.可以实现学员信息的增加.修改.删除.查询. 知识点:数组.do{}while循环.for循环.if语句.switch条件语句 学生管理系统的流程图 import java.util.Scanner; public class Stu{ public static void main(String[] args){ Scanner sc = new Scanner(System.in); boolean flag = false; int stuN

  • java学生管理系统界面简单实现(全)

    学生管理系统简单的实现,供初学Java Swing同学学习使用. import java.awt.Dimension; import java.awt.Toolkit; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JLabel; import jav

  • 图书管理系统java代码实现

    本文实例为大家分享了java实现图书管理系统的具体代码,供大家参考,具体内容如下 /* (程序头部注释开始) * 程序的版权和版本声明部分 * Copyright (c) 2011, 烟台大学计算机学院学生 * All rights reserved. * 文件名称:    <图书管理系统--java>                          * 作    者:       刘江波                       * 完成日期:    2012     年  3    

  • java学生成绩管理系统设计与实现

    本文实例为大家分享了java学生成绩管理系统的具体代码,供大家参考,具体内容如下 /* *@copyright by LzyRapx on 2016/4/12. *@name:java学生成绩管理系统. *@功能:学生相关信息,录入,查询,统计,修改等.... *@PS:图形界面的学生管理系统不要求就不做了. */ import java.util.Scanner; import java.lang.*; import java.io.*; class Student { private sta

随机推荐