java面向对象一些基本练习题5

创建一个简单的学生信息管理系统,能够实现管理员登录,修改密码,录入教师账号和密码,录入学生账号和密码,查看个人信息,查看所有账号信息;教师登录,查看个人信息,修改密码,录入学生成绩,查询学生成绩;学生登录,查看个人信息,修改个人密码。(是java面向对象一些基本练习题4的一些修改,所有使用到Person数组的地方,用集合类对象取代,建议使用ArrayList类。)

 

我的答案:


package information_systemom2;


import java.util.ArrayList;
import java.util.Collection;
import java.util.List;


public class Dome {

 public static void main(String[] args) {
  ArrayList<Integer> persons = new ArrayList<Integer>(100);
  persons.add((Collection)new Manager("001","001",Person.MANAGER));
  while(true) {
   Integer person = Person.login(persons);
   if(person!=null) {
   person.menu(persons);
    
   }else {
    System.out.println("登录失败");
   }
   System.out.println("确定退出请输入n,继续请按y");
   if("N".equalsIgnoreCase(KB.scan()))break;
  }
 }

}


package information_systemom2;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;

public class KB {
 public static String scan(){
 String string = "";
 BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(System.in));
 try{
  string = bufferedReader.readLine();
 }catch(IOException e){
  e.printStackTrace();
 }
 return string;
}
 public static int scanInt(){
  String string = "";
  int n = 0;
  BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(System.in));
  try{
   string = bufferedReader.readLine();
   n = Integer.parseInt(string);
  }catch(IOException e){
   //e.printStackTrace();
  }
  return n;
  
 }
 public static int arrayNum(ArrayList<Integer> p) {
  
  int n= 0;
  for(int i = 0; i<p.size();i++) {
   if(p.get(i)!=null)n++;
  }
  return n ;
 }
 
}


package information_systemom2;

import java.util.ArrayList;

public abstract class Person {
 private String id;
 private String pwd;
 private int role;

 public String getId() {
  return id;
 }
 public void setId(String id) {
  this.id = id;
 }

 public String getPwd() {
  return pwd;
 }

 public void setPwd(String pwd) {
  this.pwd = pwd;
 }

 public int getRole() {
  return role;
 }

 public void setRole(int role) {
  this.role = role;
 }

 public static final int MANAGER = 1;
 public static final int TEACHER = 2;
 public static final int STUDENT = 3;

 // 有参和无参构造方法
 public Person() {
  super();
 }

 public Person(String id, String pwd, int role) {
  super();
  this.id = id;
  this.pwd = pwd;
  this.role = role;

 }

 public abstract void menu(ArrayList<Integer>  person);
 
 public void changePwd() {
  System.out.println("输入新密码");
  this.setPwd(KB.scan());
  System.out.println("密码修改成功!");//添加的
 }
 public void search() {
  String roles = "";
  switch(role) {
  case Person.MANAGER:
   roles = "管理员";
   break;
  case Person.TEACHER:
   roles = "教师";
   break;
  case Person.STUDENT:
   roles = "学生";
   break;
   
  
  }
  System.out.println(roles + "账号是:" + id + "\n密码是:" + pwd);
 }
 public static Integer login(ArrayList<Integer> persons) {
  System.out.println("请输入账号和密码:");
  String name = KB.scan();
  String pwd = KB.scan();
  for(int i = 0;i < persons.size();i++) {
   if(persons.get(i)!=null) {
    if(name.equals(persons.get(i).getId())&&pwd.equals(persons.get(i).getPwd())) {
     return persons.get(i);
    }
   }else break;
  }
  return null;
 }
 
}


package information_systemom2;

import java.util.ArrayList;

public class Manager extends Person{

 public Manager() {
  super();
 }
 public Manager(String id, String pwd, int role) {
  super(id, pwd, role);
 }
 public void searchAll(ArrayList<Integer> persons) {
  for(int i = 0; i < persons.size(); i++) {
   if(persons.get(i)!=null&&persons.get(i).getRole()!=Person.MANAGER) persons.get(i).search();
  }
 }
 public void luru(ArrayList<Integer> persons) {
  System.out.println("录入教师1,录入学生2");
  int i = Integer.parseInt(KB.scan());
  System.out.println("输入要录入的账号和密码");
  if(i==1) {
   persons[KB.arrayNum(persons)]=new Teacher(KB.scan(),KB.scan(),Person.TEACHER);
   
  }else if(i==2) {
   persons[KB.arrayNum(persons)]=new Student(KB.scan(),KB.scan(),Person.STUDENT);
  }
  System.out.println("录入成功!");
 }
 @Override
 public void menu(ArrayList<Integer> persons) {
  // TODO Auto-generated method stub
  boolean flag = true;
  while(flag) {
   System.out.println("1修改密码,2查看个人信息,3录入教师或学生信息, 4查看教师和学生信息,5退出以上操作");
   int i = KB.scanInt();
   switch(i) {
   case 1:
    this.changePwd();
    break;
   case 2:
    this.search();
    break;
   case 3:
    this.luru(persons);
    break;
   case 4:
    this.searchAll(persons);
    break;
    
    default:
     flag = false;
     break;
    
   }
  }
 }
 
}

package information_systemom2;

import java.util.ArrayList;

public class Teacher extends Person{
   
 public Teacher() {
  super();
 }
 public Teacher(String id, String pwd, int role) {
  super(id, pwd, role);
 }
 public void luru (ArrayList<Integer> persons) {
  System.out.println("输入要录入的学生的账号");
  String name = KB.scan();
  for(int i= 0;i<persons.size();i++) {
   if(persons.get(i)!=null&&persons.get(i).getId().equals(name)&&persons.get(i).getRole()==Person.STUDENT) {
    System.out.println("输入要录入的学生成绩:");
    (persons.get(i)).setScore(KB.scanInt());
    System.out.println("成绩录入成功!");//添加的
   }
  }
 }
 public void searchAll(ArrayList<Integer> persons) {
  for (int i = 0;i<KB.arrayNum(persons);i++) {
   if(persons.get(i)!=null&&persons.get(i).getRole()==Person.STUDENT) persons.get(i).search();
  }
 }
 @Override
 public void menu(ArrayList<Integer> persons) {
  // TODO Auto-generated method stub
  boolean flag = true;
  while(flag) {
   System.out.println("1修改密码,2查看个人信息,3录入学生成绩,4查看所有学生信息,5退出以上操作");
   int i = KB.scanInt();
   switch(i) {
   case 1:
    this.changePwd();
    break;
   case 2:
    this.search();
    break;
   case 3:
    this.luru(persons);
    break;
   case 4:
    this.searchAll(persons);
    break;
    
    default:
     flag = false;
     break;
   }
  }
 }

}


package information_systemom2;

import java.util.ArrayList;


public class Student extends Person {
 private int score;
  public int getScore() {
  return score;
 }
 public void setScore(int score) {
  this.score = score;
 }
 public Student() {
   super();
  }
  public Student(String id, String pwd, int role) {
   super(id, pwd, role);
  }
 
 @Override
 public void search() {
  super.search();
  System.out.println("成绩是:"+score);
 }
  @Override
 public void menu(ArrayList<Integer> person) {
  // TODO Auto-generated method stub
  boolean flag = true;
  while(flag) {
   System.out.println("1修改密码,2查看个人信息,3退出以上操作");
   int i = KB.scanInt();
   switch(i) {
   case 1:
    this.changePwd();
    break;
   case 2:
    this.search();
    break;
    
    default:
     flag = false;
     break;
   }
     
  }
 }
}

 

 

这里其中还有一些bug,希望能多多指正,谢谢。

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值