你们好,我是九旅网的小编小九,学生管理系统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类和部分代码只能省略,需要完整项目的话请留言。
本文到此讲解完毕了,希望对大家有帮助。