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

 更新时间:2018年01月16日 09:03:14   作者:PYLON_GCL  
这篇文章主要为大家详细介绍了java学生信息管理系统设计与实现,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
(福利推荐:【腾讯云】服务器最新限时优惠活动,云服务器1核2G仅99元/年、2核4G仅768元/3年,立即抢购>>>:9i0i.cn/qcloud

(福利推荐:你还在原价购买阿里云服务器?现在阿里云0.8折限时抢购活动来啦!4核8G企业云服务器仅2998元/3年,立即抢购>>>:9i0i.cn/aliyun

闲暇之余用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自写一个生成ID的工具类

    利用Java自写一个生成ID的工具类

    平时项目中只要涉及表,那么一定能接触到众多各式各样的ID编号。本文将通过Java语言实现手写一个ID生成工具类,需要的小伙伴可以参考一下
    2022-11-11
  • eclipse 安装lombok插件

    eclipse 安装lombok插件

    这篇文章主要介绍了eclipse 安装lombok插件的详细步骤,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下
    2018-07-07
  • 使用SpringBoot代码详细解释<List>的用法

    使用SpringBoot代码详细解释<List>的用法

    List是Java集合框架中的一种数据结构,用于存储一组有序的元素,使用List可以方便地向其中添加、删除或者修改元素,也可以通过下标或者迭代器遍历其中的元素,这篇文章主要介绍了用SpringBoot代码详细解释<List>的用法,需要的朋友可以参考下
    2023-09-09
  • Mybatis或Mybatis-Plus框架的xml文件中特殊符号的使用详解

    Mybatis或Mybatis-Plus框架的xml文件中特殊符号的使用详解

    这篇文章主要介绍了Mybatis或Mybatis-Plus框架的xml文件中特殊符号的使用详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-11-11
  • springboot在服务器上的几种启动方式(小结)

    springboot在服务器上的几种启动方式(小结)

    这篇文章主要介绍了springboot在服务器上的几种启动方式(小结),小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-09-09
  • Java实现XML文件学生通讯录

    Java实现XML文件学生通讯录

    这篇文章主要为大家详细介绍了Java实现XML文件学生通讯录,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-02-02
  • Spring MVC温故而知新系列教程之从零开始

    Spring MVC温故而知新系列教程之从零开始

    Spring MVC 框架在 Java 的 Web 项目中应该是无人不知的吧,你不会搭建一个 Spring 框架?作为身为一个刚刚学习Java的我都会,如果你不会的话,那可真令人忧伤。下面这篇文章主要给大家介绍了关于Spring MVC从零开始的相关资料,需要的朋友可以参考下
    2018-05-05
  • Windows系统中Java调用cmd命令及执行exe程序的方法

    Windows系统中Java调用cmd命令及执行exe程序的方法

    这篇文章主要介绍了Windows系统中Java调用cmd命令及执行exe程序的方法,主要用到了IOException类,需要的朋友可以参考下
    2016-03-03
  • maven导入本地仓库jar包,报:Could?not?find?artifact的解决

    maven导入本地仓库jar包,报:Could?not?find?artifact的解决

    这篇文章主要介绍了maven导入本地仓库jar包,报:Could?not?find?artifact的解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-03-03
  • Java排序算法三之归并排序的递归与非递归的实现示例解析

    Java排序算法三之归并排序的递归与非递归的实现示例解析

    这篇文章主要介绍了Java排序算法三之归并排序的递归与非递归的实现示例解析,文章通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-08-08

最新评论

?


http://www.vxiaotou.com