学生管理系统
需求分析
- 学生实体类 (学号,姓名,年龄,Java成绩,Html成绩,总分)
- 功能:
- 查询所有学生信息
- 根据学号查询学生信息
- 更新学生信息
- 添加学生信息
- 删除学生
项目结构
代码实现
Student.java
public class Student {
private Integer id ;
private String name;
private Integer age;
private Double javaScore;
private Double htmlScore;
private Double totolScore;
public Double getTotolScore() {
return totolScore;
}
public void setTotolScore(Double totolScore) {
this.totolScore = totolScore;
}
public Student() {
}
public Student(Integer id,String name, Integer age, Double javaScore, Double htmlScore, Double totolScore) {
this.id=id;
this.name = name;
this.age = age;
this.javaScore = javaScore;
this.htmlScore = htmlScore;
this.totolScore = totolScore;
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id=id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
public Double getJavaScore() {
return javaScore;
}
public void setJavaScore(Double javaScore) {
this.javaScore = javaScore;
}
public Double getHtmlScore() {
return htmlScore;
}
public void setHtmlScore(Double htmlScore) {
this.htmlScore = htmlScore;
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
Student student = (Student) o;
return Objects.equals(id, student.id) &&
Objects.equals(name, student.name) &&
Objects.equals(age, student.age) &&
Objects.equals(javaScore, student.javaScore) &&
Objects.equals(htmlScore, student.htmlScore);
}
@Override
public int hashCode() {
return Objects.hash(id, name, age, javaScore, htmlScore);
}
@Override
public String toString() {
return "{" +
"学号=" + id +
", 姓名='" + name + '\'' +
", 年龄=" + age +
", Java成绩=" + javaScore +
", Html成绩=" + htmlScore +
", 总分=" + totolScore +
'}';
}
}
StudentRepository
public interface StudentRepository {
public abstract Map<Integer,Student> findAll();
public abstract Student findById(Integer id);
public abstract String add(Student student);
public abstract String deleteById(Integer id);
public abstract String update(Student student);
}
StudentRepositoryImpl.java
- 实现StudentRepository接口,使用Map模拟数据库保存信息
public class StudentRepositoryImpl implements com.demodong.studentmanager.repository.StudentRepository {
private static Map<Integer, Student> map;
static {
map=new HashMap<>();
map.put(100001, new Student(100001,"demodong1",12,80.0,70.0,150.0));
map.put(100002, new Student(100002,"demodong2",13,81.0,70.0,151.0));
map.put(100003, new Student(100003,"demodong3",14,82.0,70.0,152.0));
map.put(100004, new Student(100004,"demodong4",15,83.0,70.0,153.0));
}
@Override
public Map<Integer, Student> findAll() {
return this.map;
}
@Override
public Student findById(Integer id) {
if(map.containsKey(id)){
return map.get(id);
}
return null;
}
@Override
public String add(Student student) {
if(map.containsKey(student.getId())){
return "The Student alreadly exists";
}else{
map.put(student.getId(), student);
return "Successful add";
}
}
@Override
public String deleteById(Integer id) {
if(map.containsKey(id)){
map.remove(id);
return "Successful delete the student.";
}else{
return "There isn't the student";
}
}
@Override
public String update(Student student) {
if(map.containsKey(student.getId())){
map.put(student.getId(), student);
return "Update successful";
}
return "There isn't the student.";
}
}
StudentHandler.java
public class StudentHandler {
private StudentRepository studentRepository;
private Scanner scanner = new Scanner(System.in);
public void findAll() {
studentRepository = new StudentRepositoryImpl();
Map<Integer, Student> result = studentRepository.findAll();
Set<Integer> idSets = result.keySet();
for (Integer id : idSets) {
System.out.println(result.get(id).toString());
}
}
public void findById() {
System.out.print("请输入你想要查询学生的id:");
Student student = studentRepository.findById(scanner.nextInt());
System.out.println(student.toString());
}
public void add() {
Student student = new Student();
System.out.println("请输入一下相关信息:");
System.out.print("请输入学生的学号");
student.setId(scanner.nextInt());
System.out.print("请输入学生姓名:");
student.setName(scanner.next());
System.out.print("请输入学生的年龄:");
student.setAge(scanner.nextInt());
System.out.print("请输入Java成绩");
student.setJavaScore(scanner.nextDouble());
System.out.print("请输入学生Html成绩:");
student.setHtmlScore(scanner.nextDouble());
String result = studentRepository.add(student);
System.out.println(result);
}
public void deleteById() {
System.out.print("请输入想要删除学生的Id:");
String resutl = studentRepository.deleteById(scanner.nextInt());
System.out.println(resutl);
}
public void update() {
System.out.println("请输入修改的相关信息");
System.out.print("请输入相关学生的学号:");
Integer id = scanner.nextInt();
Student oldStudent = studentRepository.findById(id);
if (oldStudent == null) {
System.out.println("该生不存在");
} else {
System.out.print("请输入学生的姓名:");
String name = scanner.next();
System.out.print("请输入学生的年龄:");
Integer age = scanner.nextInt();
System.out.print("请输入学生的Java成绩:");
Double javaScore = scanner.nextDouble();
System.out.print("请输入学生的Html成绩:");
Double htmlScore = scanner.nextDouble();
Double totalScore = htmlScore + javaScore;
Student student = new Student(id, name, age, javaScore, htmlScore, totalScore);
String result = studentRepository.update(student);
System.out.println(result);
}
}
public void showMenu() {
while (true) {
System.out.println("============================================");
System.out.println("1.查看所有学生信息");
System.out.println("2.根据学号查询学生信息");
System.out.println("3.修改学生信息");
System.out.println("4.删除学生");
System.out.println("5.添加学生");
System.out.println("0:退出");
System.out.println("============================================");
System.out.println("请输入您的选择");
int options = scanner.nextInt();
switch (options) {
case 1:
findAll();
break;
case 2:
findById();
break;
case 3:
update();
break;
case 4:
deleteById();
break;
case 5:
add();
break;
case 0:
return;
default:
break;
}
}
}
}
StudentAplication.java
public class StudentApplication {
public static void main(String[] args) {
StudentHandler studentHandler = new StudentHandler();
studentHandler.showMenu();
}
}