学生管理系统Java总结(学生管理系统java)

导读 你们好,我是九旅网的小编小九,学生管理系统Java总结,学生管理系统java很多人还不知道,现在让我们一起来看看吧!内容较多,你先自己用一...

你们好,我是九旅网的小编小九,学生管理系统Java总结,学生管理系统java很多人还不知道,现在让我们一起来看看吧!

内容较多,你先自己用一下,感受感受,请看实例:

User类:

public class User {

private int id;

private String name;

private String password;

private Course[] courses;

private int role; //0老师,1学生

public int total(){

int total=0;

if(role==1 && courses!=null){

for(Course c:courses){

total+=c.getScore();

}

}

return total;

}

public String toString(String courseName){

if(courses==null){

return "编号:"+id+" 姓名"+name;

}else if(courses!=null && new Config().notEmpty(courseName)){

for(Course c:courses){

if(courseName.equals(c.getName())){

return "编号:"+id+" 姓名:"+name+" "+courseName+c.getScore();

}

}

}else{

return "编号:"+id+" 姓名:"+name+" 总分"+total();

}

return "";

}

//有参和无参构造方法不再赘述

}

Course门课:

public class Course {

private String name;

private int score;

//getter和setter及有参、无参构造方法不再赘述

}

Config类:

public class Config {

private User[] users;

public Config(){}

public Config(User[] users){

this.users=users;

}

public User[] getUsers() {

return users;

}

public void setUsers(User[] users) {

this.users = users;

}

//查询数组内有无空元素

public boolean cheakHasNull(){

for(User u:users){

if(u==null){

return true;

}

}

return false;

}

//输入字符串

public String inputString(Scanner sc,String attr){

String str="";

do{

System.out.println("请输入"+attr);

str=sc.next();

if(!notEmpty(str)){

System.out.println(attr+"不为空,请重新输入");

}

}while(!notEmpty(str));

return str;

}

//输入整数

public int inputInt(Scanner sc,String attr){

int sum=0;

do{

System.out.println("请输入"+attr);

sum=sc.nextInt();

if(sum==0){

System.out.println(attr+"不为空,请重新输入");

}

}while(sum==0);

return sum;

}

//筛选出所有学生

public User[] cheakStudents(){

List<User>userList=new ArrayList<User>();

for(User u:users){

if(u!=null && u.getRole()==1){

userList.add(u);

}

}

int len=userList.size();

User[] result=new User[len];

for(int i=0;i<len;i++){

result[i]=userList.get(i);

}

return result;

}

//查询有无重复id

public boolean cheakRepeat(int id){

for(User u:users){

if(u!=null && id==u.getId()){

return true;

}

}

return false;

}

//打印数组信息

public void print(String courseName){

if(notEmpty(courseName)){

for(int i=0;i<users.length;i++){

if(users[i]!=null && users[i].getRole()==1){

System.out.println("第"+i+"名: "+users[i].toString(courseName));

}

}

}else{

for(int i=0;i<users.length;i++){

if(users[i]!=null && users[i].getRole()==1){

System.out.println("第"+i+"名: "+users[i].toString(null));

}

}

}

}

//字符串非空验证

public boolean notEmpty(String str){

return str!=null && !"".equals(str);

}

//登录验证

public User login(String name,String password){

if(users!=null && notEmpty(name) && notEmpty(password)){

for(User u:users){

if(u!=null && name.equals(u.getName()) && password.equals(u.getPassword())){

return u;

}

}

}

return null;

}

//寻找指定id的学生信息

public User find(int id){

for(User u:users){

if(u!=null && id==u.getId()){

return u;

}

}

return null;

}

//增加

public boolean add(User user){

for(int i=0;i<users.length;i++){

if(users[i]==null){

users[i]=user;

return true;

}

}

return false;

}

//修改

public boolean update(User user){

for(User u:users){

if(user.getId()==u.getId()){

u=user;

return true;

}

}

return false;

}

//删除

public boolean remove(int id){

int index=-1;

for(int i=0;i<users.length;i++){

if(id==users[i].getId()){

index=i;

}

}

if(index==-1){

return false;

}

for(int i=index;i<users.length-1;i++){

users[i]=users[i+1];

}

users[users.length-1]=null;

return true;

}

//排序

public void sort(){

if(users!=null){

for(int i=0;i<users.length;i++){

for(int j=i+1;j<users.length;j++){

if(users[i]!=null && users[j]!=null && users[i].total()<users[j].total()){

User temp=users[i];

users[i]=users[j];

users[j]=temp;

}

}

}

}

}

//按门课排序

public void sort(String courseNum){

if(users!=null){

for(int i=0;i<users.length;i++){

for(int j=i+1;j<users.length;j++){

if(users[i]!=null && users[j]!=null && users[i].total()<users[j].total()){

User temp=users[i];

users[i]=users[j];

users[j]=temp;

}

}

}

}

}

}

public class Manager {

private User[] users;

public Manager(User[] users){

this.users=users;

}

public void doManager(){

try{

Scanner sc=new Scanner(System.in);

Config config=new Config(users);

int choose1=0;

for(;choose1!=3;){

System.out.println("欢迎来到学生管理系统 1.登录 2.注册 3.退出");

choose1=sc.nextInt();

if(choose1==1){

User loginUser=null;

String loginName="";

for(;loginUser==null || !"exit".equals(loginName);){

System.out.println("请输入用户名或输入exit退出");

loginName=sc.next();

if(loginName.equals("exit")){

break;

}

System.out.println("请输入密码");

String loginPassword=sc.next();

loginUser=config.login(loginName, loginPassword);

if(loginUser!=null && loginUser.getRole()==1){

System.out.println("你好,学生"+loginUser.getName());

int choose2=0;

do{

System.out.println("1.查询个人信息 2.修改个人信息 3.排行榜 4.退出");

choose2=sc.nextInt();

if(choose2==1){

System.out.println("请输入编号");

int id=sc.nextInt();

User search=config.find(id);

if(search!=null){

System.out.println(search.toString(null));

}else{

System.out.println("查无此人");

}

}else if(choose2==2){

System.out.println("请输入编号");

int id=sc.nextInt();

User search=config.find(id);

if(search!=null){

System.out.println(search.toString(null)+" 请选择要修改的内容 1.姓名 2.密码");

int choose3=sc.nextInt();

if(choose3==1){

System.out.println("输入新的用户名");

String newName=sc.next();

search.setName(newName);

}else if(choose3==2){

String newPassword=sc.next();

search.setPassword(newPassword);

}

System.out.println(config.update(search)?"修改成功":"修改失败");

}else{

System.out.println("查无此人");

}

}else if(choose2==3){

System.out.println("1.总分排行2.单门排行");

int choose6=sc.nextInt();

users=config.cheakStudents();

if(choose6==1){

config.sort();

config.print(null);

}else if(choose6==2){

String courseNum=config.inputString(sc, "科目");

config.sort(courseNum);

config.print(courseNum);

}

}

}while(choose2!=4);

}else if(loginUser!=null && loginUser.getRole()==0){

int choose4=0;

System.out.println("你好,管理员"+loginUser.getName());

do{

System.out.println("1.添加 2.修改 3.删除 4.查询 5.排行榜 6.退出");

choose4=sc.nextInt();

if(choose4==1){

if(config.cheakHasNull()){

System.out.println("请输入编号,输入0退出");

int id=0;

boolean flag=false;

do{

id=sc.nextInt();

if(id==0){

break;

}

flag=config.cheakRepeat(id);

if(flag){

System.out.println("编号重复,请重新输入");

}

}while(flag);

String name=config.inputString(sc, "用户名");

String password=config.inputString(sc, "密码");

int role=config.inputInt(sc, "角色");

User user=new User(id,name,password,role,null);

config.add(user);

}else{

System.out.println("名额已满");

}

}else if(choose4==2){

System.out.println("请输入编号");

int id=sc.nextInt();

User search=config.find(id);

if(search!=null){

if(search.getRole()==1){

int choose5=0;

do{

System.out.println(search.toString(null)+" 请选择要修改的内容 1.姓名 2.密码 3.成绩 4.退回");

choose5=sc.nextInt();

if(choose5==1){

String name=config.inputString(sc, "用户名");

search.setName(name);

}else if(choose5==2){

String password=config.inputString(sc, "密码");

search.setPassword(password);

}else if(choose5==3){

System.out.println("一共几门课?");

int len=sc.nextInt();

Course[] courses=new Course[len];

for(int i=0;i<len;i++){

String name=config.inputString(sc, "科目");

int score=config.inputInt(sc, "分数");

courses[i]=new Course(name,score);

}

search.setCourses(courses);

}

}while(choose5!=4);

}

}else{

System.out.println("查无此人");

}

}else if(choose4==3){

System.out.println("请输入编号");

int id=sc.nextInt();

boolean result=config.remove(id);

System.out.println(result?"成功删除":"查无此人");

}else if(choose4==4){

System.out.println("请输入编号");

int id=sc.nextInt();

User user=config.find(id);

System.out.println(user==null?"查无此人":user.toString(null));

}else if(choose4==5){

System.out.println("1.总分排行2.单门排行");

int choose6=sc.nextInt();

users=config.cheakStudents();

if(choose6==1){

config.sort();

config.print(null);

}else if(choose6==2){

String courseNum=config.inputString(sc, "科目");

config.sort(courseNum);

config.print(courseNum);

}

}

}while(choose4!=6);

}else{

System.out.println("登录失败,用户名或密码错误");

}

}

}else if(choose1==2){

if(config.cheakHasNull()){

System.out.println("请输入编号");

int id=0;

do{

id=config.inputInt(sc, "id");

if(config.cheakRepeat(id)){

System.out.println("编号已被注册,请重新输入");

}

}while(config.cheakRepeat(id));

String name=config.inputString(sc, "姓名");

String password=config.inputString(sc, "密码");

int role=config.inputInt(sc, "角色");

User newUser=new User(id,name,password,role,null);

boolean result=config.add(newUser);

System.out.println(result?"添加成功":"添加失败");

}else{

System.out.println("名额已满");

}

}else{

System.out.println("正在退出...");

};

};

}catch(InputMismatchException e){

System.out.println("您的输入有误,回主界面");

doManager();

}

}

}

测试:

Manager manager=new Manager(Data.getData());

manager.doManager();

部分效果图:

由于有字数限制,设置初始数据的Data类和部分代码只能省略,需要完整项目的话请留言。

本文到此讲解完毕了,希望对大家有帮助。