学生管理系统——java编写
今天给大家分享一个用java编写的小系统——学生管理系统,几乎所有的系统都肯定离不开数据库,但是今天 小编的系统只是模拟数据库,主要是说明一下该系统的逻辑结构和设计原理。
- 1 首先,我们要先设计一个工具类,以便于其他类的输入等,不用每次输入都new一个Scanner.
package Yak3;
/**
* 工具类
* @author lenovo
*
*/
import java.util.Scanner;
public class Util {
public static Scanner input = new Scanner(System.in);
}
- 2 然后是学生类,包括学生的基本上属性,getter和setter方法,构造方法。
package Yak3;
public class Student {
private String Id;//学号
private String name;//姓名
private int age;//年龄
private char sex;//性别
private String address;//地址
private String maior;//专业
public Student() {
super();
// TODO 自动生成的构造函数存根
}
public Student(String id, String name, int age, char sex, String address, String maior) {
super();
Id = id;
this.name = name;
this.age = age;
this.sex = sex;
this.address = address;
this.maior = maior;
}
public String getId() {
return Id;
}
public void setId(String id) {
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;
}
public char getSex() {
return sex;
}
public void setSex(char sex) {
this.sex = sex;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
public String getMaior() {
return maior;
}
public void setMaior(String maior) {
this.maior = maior;
}
@Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result + ((Id == null) ? 0 : Id.hashCode());
result = prime * result + ((address == null) ? 0 : address.hashCode());
result = prime * result + age;
result = prime * result + ((maior == null) ? 0 : maior.hashCode());
result = prime * result + ((name == null) ? 0 : name.hashCode());
result = prime * result + sex;
return result;
}
@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
Student other = (Student) obj;
if (Id == null) {
if (other.Id != null)
return false;
} else if (!Id.equals(other.Id))
return false;
return true;
}
@Override
public String toString() {
return "Student [Id=" + Id + ", name=" + name + ", age=" + age + ", sex=" + sex + ", address=" + address
+ ", maior=" + maior + "]";
}
}
- 3 定义一个接口,实现这个接口要求具有的功能。
package Yak3;
public interface IStudentDao {
public boolean register(Student student);//实现注册的方法
public void selextAll();//实现显示所有的方法
public Student selectId(String id);//实现 按Id查找的方法
public void move(String string);
}
- 4 模拟连接数据库,用链表存储数据;实现接口,并重新其中的方法
package Yak3;
import java.util.List;
public class IStudentDaolmpl implements IStudentDao {
public List<Student> list = Data.list;//模拟连接数据库
@Override
public boolean register(Student student) {
// TODO 自动生成的方法存根
return list.add(student);
}
@Override
public void selextAll() {
// TODO 自动生成的方法存根
for (Student student : list) {
System.out.println(student);
}
}
@Override
public Student selectId(String id) {
// TODO 自动生成的方法存根
for (Student student : list) {
if (student.getId().equals(id)) {
return student;
}
}
return null;
}
@Override
public void move(String string) {
int count = 0;
// TODO 自动生成的方法存根
for (Student student : list) {
if (student.getId().equals(string)) {
break;
}else {
count++;
}
}
list.remove(count);
}
}
- 5 模拟数据库
package Yak3;
import java.util.ArrayList;
import java.util.List;
public class Data {
/**
*学生数据库
*/
public static List<Student> list = new ArrayList<Student>();
}
- 6 菜单
package Yak3;
import java.awt.Stroke;
/**
* 视图
* @author lenovo
*
*/
public class View {
private int op; //选项
private IStudentDaolmpl iStudentDao;
public void menu1() {
System.out.println();
System.out.println(" |=====================================|");
System.out.println(" | 欢迎来到学生管理系统 |");
System.out.println(" |-------------------------------------|");
System.out.println(" | 1.注册 |");
System.out.println(" |-------------------------------------|");
System.out.println(" | 2.登录 |");
System.out.println(" |-------------------------------------|");
System.out.println(" | 0.退出 |");
System.out.println(" |=====================================|");
System.out.print("请选择你要操作的功能序号:");
op = Util.input.nextInt();
switch (op) {
case 1:
System.out.println("请输入您的学号:");
String id = Util.input.next();
System.out.println("请输入您的姓名:");
String name = Util.input.next();
System.out.println("请输入您的年龄:");
int age = Util.input.nextInt();
System.out.println("请输入您的性别:");
char sex = Util.input.next().charAt(0);
System.out.println("请输入您的地址:");
String address = Util.input.next();
System.out.println("请输入您的专业:");
String major = Util.input.next();
Student student = new Student(id, name, age, sex, address, major);
iStudentDao = new IStudentDaolmpl();
Student student2 = iStudentDao.selectId(id);
if (student2!=null) {
System.out.println("该学生已存在!");
break;
}
boolean isRight = iStudentDao.register(student);
if (isRight) {
System.out.println("注册成功");
}else {
System.err.println("注册失败!");
}
break;
case 2:
System.out.println("请输入您的学号:");
String id111 = Util.input.next();
Student student111 = iStudentDao.selectId(id111);
if (student111!=null) {
while (true) {
menu2();
}
}else {
System.out.println("次學生不存在");
}
break;
case 0:
System.exit(0);
default:
System.out.println("你输入有误!");
break;
}
}
public void menu2() {
System.out.println();
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.返回 |");
System.out.println(" |=====================================|");
System.out.print("请选择你要操作的功能序号:");
op = Util.input.nextInt();
switch (op) {
case 1:
iStudentDao = new IStudentDaolmpl();
iStudentDao.selextAll();
break;
case 2:
System.out.println("请输入您的学号:");
String id = Util.input.next();
Student student = iStudentDao.selectId(id);
if (student!=null) {
System.out.println(student);
}else {
System.out.println("次學生不存在");
}
break;
case 3:
System.out.println("请输入您的学号:");
String id1 = Util.input.next();
System.out.println("请输入您的姓名:");
String name = Util.input.next();
System.out.println("请输入您的年龄:");
int age = Util.input.nextInt();
System.out.println("请输入您的性别:");
char sex = Util.input.next().charAt(0);
System.out.println("请输入您的地址:");
String address = Util.input.next();
System.out.println("请输入您的专业:");
String major = Util.input.next();
Student student1 = new Student(id1, name, age, sex, address, major);
iStudentDao = new IStudentDaolmpl();
Student student2 = iStudentDao.selectId(id1);
if (student2!=null) {
System.out.println("该学生已存在!");
break;
}
boolean isRight = iStudentDao.register(student1);
if (isRight) {
System.out.println("注册成功");
}else {
System.err.println("注册失败!");
}
break;
case 4:
System.out.println("请输入您的学号:");
String id11 = Util.input.next();
Student student11 = iStudentDao.selectId(id11);
if (student11!=null) {
System.out.println(student11);
System.out.println("请输入修改后的年龄:");
int age1 = Util.input.nextInt();
System.out.println("请输入修改后的地址:");
String address1 = Util.input.next();
student11.setAge(age1);
student11.setAddress(address1);
System.out.println("ok");
}else {
System.out.println("次學生不存在");
}
break;
case 5:
System.out.println("请输入您的学号:");
String id111 = Util.input.next();
Student student111 = iStudentDao.selectId(id111);
if (student111!=null) {
iStudentDao.move(id111);
System.out.println("刪除ok");
}else {
System.out.println("次學生不存在");
}
break;
case 6:
break;
default:System.out.println("选项错误");
break;
}
}
}
- 7 主类
package Yak3;
public class Test {
public static void main(String[] args) {
// TODO 自动生成的方法存根
View view=new View();
while (true) {
view.menu1();
}
}
}