java學(xué)生信息管理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)
閑暇之余用JAVA寫了個(gè)學(xué)生信息的管理系統(tǒng),由于博主還是萌新,代碼難免有冗余和錯(cuò)誤的地方,如果您發(fā)現(xiàn)有什么不足之處或者錯(cuò)誤,請(qǐng)留言。博主會(huì)盡量回復(fù)。
需求分析
一個(gè)學(xué)生信息管理系統(tǒng)應(yīng)該包含這些內(nèi)容:

教師頁面
在教師頁面應(yīng)該包含:

學(xué)生頁面
在教學(xué)生頁面應(yīng)該包含:

包含的類
根據(jù)分析,我們的學(xué)生信息系統(tǒng)應(yīng)該包含三個(gè)類:

代碼
學(xué)生類
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; //學(xué)號(hào)
private String name; //姓名
private int age; //年齡
private double grade[]=new double[100]; //各科分?jǐn)?shù)
private String project[]=new String[100]; //各科名稱
private double average; //平均分
private int count; //科目數(shù)量
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;
}
}
賬號(hào)密碼類
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;
}
}
系統(tǒng)操作類
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; //科目數(shù)量
private static int n=0; //學(xué)生數(shù)量
private static String[] a=new String[50];
private static Imfomation ac=new Imfomation("Admin","123456"); //初始化教師賬號(hào)密碼
private static Student su[]=new Student[100]; //實(shí)例化學(xué)生類數(shù)組
public static void main(String[] args)
{
show(); //進(jìn)入系統(tǒng)初始頁面
}
//系統(tǒng)初始頁面
private static void show()
{
System.out.println("----------歡迎來到學(xué)生綜合信息管理系統(tǒng)----------");
System.out.println("- 請(qǐng)先登錄: -");
System.out.println("- 1.教師登錄 -");
System.out.println("- 2.學(xué)生登錄 -");
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) //把a(bǔ)c當(dāng)作參數(shù)傳入
{
Scanner in=new Scanner(System.in);
System.out.println("請(qǐng)輸入賬戶名稱:");
String c=in.nextLine();
if (!Objects.equals(c, ac.getAccont()))
{
System.out.println("賬號(hào)不存在!");
MAIN.Login(ac);
}
System.out.println("請(qǐng)輸入密碼:");
String b=in.nextLine();
{
if (!Objects.equals(b, ac.getCode()))
{
System.out.println("密碼錯(cuò)誤!");
MAIN.Login(ac);
}
}
System.out.println("登錄成功!");
MAIN.Teacher();
}
//教師主頁面
private static void Teacher()
{
System.out.println("-----------------------------------------------");
System.out.println("-----請(qǐng)選擇你要執(zhí)行的操作: ---------------");
System.out.println("-----1.創(chuàng)建學(xué)生信息 ---------------");
System.out.println("-----2.查詢學(xué)生信息 ---------------");
System.out.println("-----3.顯示學(xué)生信息 ---------------");
System.out.println("-----4.刪除學(xué)生信息 ---------------");
System.out.println("-----5.修改學(xué)生信息 ---------------");
System.out.println("-----6.修改密碼 ---------------");
System.out.println("-----0.退出系統(tǒng) ---------------");
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("輸入錯(cuò)誤!");
Teacher();
}
}
//學(xué)生主頁面
private static void Student()
{
System.out.println("-----------------------------------------------");
System.out.println("-----請(qǐng)選擇你要執(zhí)行的操作: ---------------");
System.out.println("-----1.查詢學(xué)生信息 ---------------");
System.out.println("-----0.退出系統(tǒng) ---------------");
Scanner In=new Scanner(System.in);
int ch=In.nextInt();
if (ch==1) Search(2);
else if (ch==0) show();
else
{
System.out.println("輸入錯(cuò)誤!");
Student();
}
}
//創(chuàng)建學(xué)生信息
private static void Create()
{
String str;
int num1=0,t;
double[] g=new double[50];
while(true)
{
su[n]=new Student();
System.out.println("請(qǐng)輸入學(xué)生學(xué)號(hào):");
Scanner in=new Scanner(System.in);
num1=in.nextInt();
for (int i=0;i<n;i++) //檢測(cè)學(xué)號(hào)是否重復(fù)
{
while(su[i].getNumber() == num1)
{
System.out.println("已經(jīng)存在該學(xué)號(hào),請(qǐng)重新輸入:");
num1=in.nextInt();
}
}
su[n].setNumber(num1);
System.out.println("請(qǐng)輸入學(xué)生姓名:");
str=in.next();
su[n].setName(str);
System.out.println("請(qǐng)輸入學(xué)生年齡:");
t=in.nextInt();
su[n].setAge(t);
if (n==0) //在創(chuàng)建第一個(gè)學(xué)生時(shí),同時(shí)創(chuàng)建學(xué)科的數(shù)量和名稱
{
System.out.println("請(qǐng)輸入N門課");
m=in.nextInt();
System.out.println("請(qǐng)分別輸入"+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("請(qǐng)輸入"+su[n].getProject(i)+"科目的成績:");
g[i]=in.nextInt();
}
su[n].setGrade(g);
su[n].setAverage(m);
n++;
System.out.println("是否繼續(xù)添加?(是/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("輸入無效,請(qǐng)重新輸入:");
cho=in.next();
ch=cho.charAt(0);
}
}
}
//展示學(xué)生信息
private static void Show()
{
System.out.println("學(xué)生信息如下:");
for (int i=0;i<n;i++)
{
System.out.println("第"+i+"名學(xué)生:");
System.out.println("學(xué)號(hào):"+su[i].getNumber()+"\t姓名:"+su[i].getName()+"\t年齡:"+su[i].getAge());
System.out.println("該學(xué)生各科成績?yōu)椋?);
for (int j=0;j<m;j++)
{
System.out.println(su[i].getProject(j)+":\t"+su[i].getGrade(j));
}
System.out.println("該學(xué)生平均分為:"+su[i].getAverage());
}
System.out.println("輸入任意值返回主菜單");
Scanner in=new Scanner(System.in);
in.next();
Teacher();
}
//搜索學(xué)生信息,參數(shù)是用來判斷訪問該函數(shù)的是學(xué)生還是老師
private static void Search(int jud)
{
System.out.println("----------------------");
System.out.println("----請(qǐng)選擇搜索方式----"); //選擇搜索方式
System.out.println("----1.按學(xué)號(hào)搜索 ----");
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("請(qǐng)輸入學(xué)號(hào):");
int nu=In.nextInt();
for (int i=0;i<n;i++)
{
if (su[i].getNumber()==nu)
{
System.out.println("尋找成功");
System.out.println("學(xué)號(hào):"+su[i].getNumber()+"\t姓名:"+su[i].getName()+"\t年齡:"+su[i].getAge());
System.out.println("該學(xué)生各科成績?yōu)椋?);
for (int j=0;j<m;j++)
{
System.out.println(su[i].getProject(j)+":\t"+su[i].getGrade(j));
}
System.out.println("該學(xué)生平均分為:"+su[i].getAverage());
System.out.println("輸入任意值返回主菜單");
Scanner in=new Scanner(System.in);
in.next();
if (jud==1) //如果是老師訪問,返回Teacher()
Teacher();
Student(); //否則返回Student()
}
}
System.out.println("沒有找到該學(xué)生,即將返回");
if (jud==1)
Teacher();
Student();
}
else if (ch==2)
{
System.out.println("請(qǐng)輸入姓名:");
String na=In.next();
for (int i=0;i<n;i++)
{
if (Objects.equals(su[i].getName(), na))
{
System.out.println("尋找成功");
System.out.println("學(xué)號(hào):"+su[i].getNumber()+"\t姓名:"+su[i].getName()+"\t年齡:"+su[i].getAge());
System.out.println("該學(xué)生各科成績?yōu)椋?);
for (int j=0;j<m;j++)
{
System.out.println(su[i].getProject(j)+":\t"+su[i].getGrade(j));
}
System.out.println("該學(xué)生平均分為:"+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("沒有找到該學(xué)生,即將返回");
if (jud==1)
Teacher();
Student();
}
}
else if (ch==0)
{
if (jud==1)
Teacher();
Student();
}
else
{
System.out.println("輸入錯(cuò)誤!");
Search(jud);
}
}
//刪除學(xué)生信息
private static void Delete()
{
System.out.println("請(qǐng)輸入要?jiǎng)h除的學(xué)生的學(xué)號(hào):");
Scanner In=new Scanner(System.in);
int num=In.nextInt();
boolean temp=true; //判斷是否找到該學(xué)生
int tem=0,i=0;
for (i=0;i<n;i++)
{
if (su[i].getNumber()==num)
{
temp=false;
tem=i; //用tem記錄該學(xué)生的位置
break;
}
}
if (temp)
{
System.out.println("未找到該學(xué)生信息");
System.out.println("輸入任意值返回主菜單");
Scanner in=new Scanner(System.in);
in.next();
Teacher();
}
else
{
System.out.println("你要?jiǎng)h除的學(xué)生信息:");
System.out.println("學(xué)號(hào):"+su[tem].getNumber()+"\t姓名:"+su[tem].getName()+"\t年齡:"+su[tem].getAge());
System.out.println("該學(xué)生各科成績?yōu)椋?);
for (int j=0;j<m;j++)
{
System.out.println(su[tem].getProject(j)+":\t"+su[tem].getGrade(j));
}
System.out.println("該學(xué)生平均分為:"+su[tem].getAverage());
System.out.println("你確定要?jiǎng)h除該學(xué)生嗎?(是/Y,否/N)");
String ch=In.next();
char se=ch.charAt(0);
while(se!='N'&&se!='n'&&se!='Y'&&se!='y')
{
System.out.println("輸入無效,請(qǐng)重新輸入:");
ch=In.next();
se=ch.charAt(0);
}
if (se=='N'||se=='n') {
System.out.println("返回主菜單");
Teacher();
}
if (se=='Y'||se=='y') //通過線性表的刪除操作來刪除該學(xué)生的信息
{
for (i=tem;i<n-1;i++)
{
su[i]=su[i+1];
}
n--;
System.out.println("學(xué)生信息刪除成功!");
System.out.println("輸入任意值返回主菜單");
Scanner in=new Scanner(System.in);
in.next();
Teacher();
}
}
}
//修改學(xué)生信息
private static void Renew()
{
System.out.println("請(qǐng)輸入要修改的學(xué)生的學(xué)號(hào):");
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("未找到該學(xué)生信息");
System.out.println("輸入任意值返回主菜單");
Scanner in=new Scanner(System.in);
in.next();
Teacher();
}
else
{
System.out.println("你要修改的學(xué)生信息如下:");
System.out.println("你要修改的學(xué)生信息:");
System.out.println("學(xué)號(hào):"+su[tem].getNumber()+"\t姓名:"+su[tem].getName()+"\t年齡:"+su[tem].getAge());
System.out.println("該學(xué)生各科成績?yōu)椋?);
for (int j=0;j<m;j++)
{
System.out.println(su[tem].getProject(j)+":\t"+su[tem].getGrade(j));
}
System.out.println("該學(xué)生平均分為:"+su[tem].getAverage());
System.out.println("你確定要修改該學(xué)生嗎?(是/Y,否/N)");
String ch=In.next();
char se=ch.charAt(0);
while(se!='N'&&se!='n'&&se!='Y'&&se!='y')
{
System.out.println("輸入無效,請(qǐng)重新輸入:");
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("請(qǐng)選擇修改的內(nèi)容:"); //選擇修改哪些內(nèi)容
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("請(qǐng)輸入姓名:");
String name=In.next();
su[tem].setName(name);
System.out.println("修改成功!");
System.out.println("還要繼續(xù)修改嗎?(是/Y,否/N)");
ch=In.next();
se=ch.charAt(0);
while (se!='N'&&se!='n'&&se!='Y'&&se!='y')
{
System.out.println("輸入無效,請(qǐng)重新輸入:");
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("請(qǐng)輸入年齡:");
int ag=In.nextInt();
su[tem].setAge(ag);
System.out.println("修改成功!");
System.out.println("還要繼續(xù)修改嗎?(是/Y,否/N)");
ch=In.next();
se=ch.charAt(0);
while (se!='N'&&se!='n'&&se!='Y'&&se!='y')
{
System.out.println("輸入無效,請(qǐng)重新輸入:");
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("請(qǐng)輸入"+su[tem].getProject(j)+"科目的成績:");
g[j]=In.nextInt();
}
su[tem].setGrade(g);
su[tem].setAverage(m);
System.out.println("修改成功!");
System.out.println("還要繼續(xù)修改嗎?(是/Y,否/N)");
ch=In.next();
se=ch.charAt(0);
while (se!='N'&&se!='n'&&se!='Y'&&se!='y')
{
System.out.println("輸入無效,請(qǐng)重新輸入:");
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("請(qǐng)輸入原來的密碼:");
Scanner In=new Scanner(System.in);
String code =In.nextLine();
if (!Objects.equals(code, ac.getCode()))
{
System.out.println("密碼輸入錯(cuò)誤!");
Teacher();
}
System.out.println("請(qǐng)輸入新密碼:"); //要求輸入兩次新密碼
String co1=In.nextLine();
System.out.println("請(qǐng)?jiān)俅屋斎胄旅艽a:");
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();
}
}
}
更多學(xué)習(xí)資料請(qǐng)關(guān)注專題《管理系統(tǒng)開發(fā)》。
以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- java學(xué)生信息管理系統(tǒng)設(shè)計(jì)
- Java學(xué)生信息管理系統(tǒng)設(shè)計(jì)(數(shù)據(jù)庫版)
- 學(xué)生信息管理系統(tǒng)java版
- java學(xué)生信息管理系統(tǒng)源代碼
- java實(shí)現(xiàn)簡單的學(xué)生信息管理系統(tǒng)代碼實(shí)例
- java實(shí)現(xiàn)學(xué)生信息管理系統(tǒng)
- 用java實(shí)現(xiàn)學(xué)生信息管理系統(tǒng)
- Java實(shí)現(xiàn)學(xué)生信息管理系統(tǒng)(使用數(shù)據(jù)庫)
- Java實(shí)現(xiàn)學(xué)生信息管理系統(tǒng)超詳細(xì)教程
相關(guān)文章
解決在啟動(dòng)eclipse的tomcat進(jìn)行訪問時(shí)出現(xiàn)404問題的方法
這篇文章主要介紹了解決在啟動(dòng)eclipse的tomcat進(jìn)行訪問時(shí)出現(xiàn)404問題的方法,感興趣的小伙伴們可以參考一下2016-04-04
關(guān)于JVM垃圾回收的java.lang.ref.Finalizer問題
這篇文章主要介紹了關(guān)于JVM垃圾回收的java.lang.ref.Finalizer問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-05-05
spring-boot-starter-web更換默認(rèn)Tomcat容器的方法
Spring Boot支持容器的自動(dòng)配置,默認(rèn)是Tomcat,當(dāng)然我們也是可以進(jìn)行修改的。下面小編給大家?guī)砹藄pring-boot-starter-web更換默認(rèn)Tomcat容器的方法,感興趣的朋友跟隨小編一起看看吧2019-04-04
Java項(xiàng)目中如何訪問WEB-INF下jsp頁面
這篇文章主要介紹了Java項(xiàng)目中如何訪問WEB-INF下jsp頁面,文章通過示例代碼和圖文解析介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-08-08

