今天完成了学校布置的一个小任务:实现一个简易的学生管理系统,要用到这学期学到的一些corejava的知识,不用数据库,用map存储数据,可以注册学生和管理员用户,对已注册的用户进行验证,可以登录,注册和登录分为学生和管理员,学生只能查看个人信息,管理员可以实现对学生数据的增删改查,代码如下:
Student类:
package cn.zzu.baizhi;
public class Student {
private String account;
private String password;
private int id;
private String name;
private int age;
private int grade;
private double score;
public Student() {
}
public Student(int id, String name, int age) {
super();
this.id = id;
this.name = name;
this.age = age;
}
public String getAccount() {
return account;
}
public void setAccount(String account) {
this.account = account;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public int getGrade() {
return grade;
}
public void setGrade(int grade) {
this.grade = grade;
}
public double getScore() {
return score;
}
public void setScore(double score) {
this.score = score;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
Manager类:
package cn.zzu.baizhi;
public class Manager {
private String account;
private String password;
private int id;
private String name;
public String getAccount() {
return account;
}
public void setAccount(String account) {
this.account = account;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
登录和注册接口类:
package cn.zzu.baizhi;
public interface Account {
public void regist();
public void login();
}
管理员工具类:
package cn.zzu.baizhi;
public class ManagerTool implements Account{
Manager ma;
static database data=new database();
@Override
public void regist() {
ma=new Manager();
System.out.println("请输入管理员编号");
int id = Util.in.nextInt();
if(data.mmap.get(id) != null) {
System.out.println("此编号已注册");
Test.begin();
}
ma.setId(id);
System.out.println("请输入账号");
ma.setAccount(Util.in.next());
System.out.println("请输入密码");
ma.setPassword(Util.in.next());
System.out.println("请输入姓名");
ma.setName(Util.in.next());
data.mmap.put(ma.getId(),ma);
System.out.println("注册成功");
Test.begin();
}
@Override
public void login() {
System.out.println("请输入管理员编号");
int id = Util.in.nextInt();
System.out.println("请输入账号");
String account = Util.in.next();
System.out.println("请输入密码");
String pass = Util.in.next();
if(data.mmap.get(id) != null && data.mmap.get(id).getAccount().equals(account) && data.mmap.get(id).getPassword().equals(pass)) {
System.out.println("登录成功");
} else {
System.out.println("登录信息错误,请重新登录");
Test.begin();
}
}
}
学生工具类:
package cn.zzu.baizhi;
public class StudentTool implements Account{
Student st;
@Override
public void regist() {
st=new Student();
System.out.println("请输入学号");
int id = Util.in.nextInt();
if(Util.data.map.get(id) != null) {
System.out.println("此学号已注册");
Test.begin();
}
st.setId(id);
System.out.println("请输入账号");
st.setAccount(Util.in.next());
System.out.println("请输入密码");
st.setPassword(Util.in.next());
System.out.println("请输入姓名");
st.setName(Util.in.next());
System.out.println("请输入年龄");
st.setAge(Util.in.nextInt());
Util.data.map.put(st.getId(),st);
System.out.println(Util.data.map.get(id).toString());
System.out.println("注册成功");
Test.begin();
}
@Override
public void login() {
System.out.println("请输入学生编号");
int id = Util.in.nextInt();
System.out.println("请输入学生账号");
String account = Util.in.next();
System.out.println("请输入密码");
String pass = Util.in.next();
if(Util.data.map.get(id) != null && Util.data.map.get(id).getAccount().equals(account) && Util.data.map.get(id).getPassword().equals(pass)) {
System.out.println("登录成功");
System.out.println("个人信息");
System.out.println("学号"+id+" 姓名"+Util.data.map.get(id).getName()+" 年龄"+Util.data.map.get(id).getAge()+" 年级"+Util.data.map.get(id).getGrade()+" 分数"+Util.data.map.get(id).getScore());
Test.begin();
} else {
System.out.println("登录信息错误,请重新登录");
Test.begin();
}
}
}
Map数据库类:
package cn.zzu.baizhi;
import java.util.HashMap;
import java.util.Map;
import java.util.Set;
public class database {
Student st;
static Map<Integer,Student> map;
static Map<Integer,Manager> mmap;
public database(){
map=new HashMap<Integer,Student>();
mmap=new HashMap<Integer,Manager>();
}
public void insert() {
st=new Student();
System.out.println("请输入学号");
st.setId(Util.in.nextInt());
System.out.println("请输入姓名");
st.setName(Util.in.next());
System.out.println("请输入年龄");
st.setAge(Util.in.nextInt());
map.put(st.getId(),st);
System.out.println("成功插入一条数据");
}
public void selectAll() {
System.out.println(" 学号 姓名 年龄");
System.out.println("===========================");
Set keys=map.keySet();
for(Object key:keys){
System.out.println("学号"+map.get(key).getId()+" 姓名"+map.get(key).getName()+" 年龄"+map.get(key).getAge()+" 年级"+map.get(key).getGrade()+" 分数"+map.get(key).getScore());
}
}
public void delete(){
System.out.println("输入要删除的学号");
int id=Util.in.nextInt();
if(map.get(id)==null){
System.out.println("没有此学生");
}else {
map.remove(id);
System.out.println("已删除");
}
}
public void updata(){
System.out.println("输入要修改的学号");
int id=Util.in.nextInt();
if(map.get(id)==null){
System.out.println("没有此学生");
}else {
System.out.println("输入要修改姓名");
st.setName(Util.in.next());
System.out.println("输入要修改的年龄");
st.setAge(Util.in.nextInt());
}
}
public void turnToBegin() {
Test.begin();
}
}
工具类:
package cn.zzu.baizhi;
import java.util.Scanner;
public class Util{
static Scanner in=new Scanner(System.in);
static database data=new database();
public static void show() {
while (1==1) {
System.out.println("---------------");
System.out.println("输入1插入学生信息");
System.out.println("---------------");
System.out.println("输入2查询所有学生信息");
System.out.println("---------------");
System.out.println("输入3删除学生信息");
System.out.println("---------------");
System.out.println("输入4修改学生信息");
System.out.println("---------------");
System.out.println("输入5返回登录页面");
System.out.println("---------------");
System.out.println("输入6退出");
int i=in.nextInt();
switch (i) {
case 1:
data.insert();
break;
case 2:
data.selectAll();
break;
case 3:
data.delete();
break;
case 4:
data.updata();
break;
case 5:
data.turnToBegin();
case 6:
System.exit(0);
default:
break;
}
}
}
}
测试类:
package cn.zzu.baizhi;
public class Test {
public static void begin() {
StudentTool stool = new StudentTool();
ManagerTool mtool = new ManagerTool();
System.out.println("1.注册 2.登录 3.退出");
switch (Util.in.nextInt()) {
case 1:
System.out.println("1、学生注册 2、管理员注册 3、退出");
int i = Util.in.nextInt();
if(i == 1) {
stool.regist();
}
if(i == 2) {
mtool.regist();
}
if(i == 3) {
System.exit(0);
}
case 2:
System.out.println("1、学生登录 2、管理员登录 3、退出");
int j = Util.in.nextInt();
if(j == 1) {
stool.login();
}
if(j == 2) {
mtool.login();
Util.show();
}
if(j == 3) {
System.exit(0);
}
case 3:
System.exit(0);
}
}
public static void main(String[] args) {
System.out.println("欢迎来到学生信息管理系统");
begin();
}
}