学生管理系统
学生管理系统作用就是对于学生信息的处理、存储。
处理就包括:添加、删除、修改、显示、查找等
存储一般调用数据库存储;在这里我们只是作为演示,所以就使用Java 中“HashMap”来模拟。
具体分析之后,我们规划出包及分类,在Eclipse里建立如下结构
- 首先就应该是学生(Student)主类的构建
建立Student.java
package net.jsjxy.entity;
public class Student {
private String xm;
private String banji;
private String xh;
public Student(String xm,String banji,String xh){
this.xm=xm;
this.banji=banji;
this.xh=xh;
}
public String getXm() {
return xm;
}
public void setXm(String xm) {
this.xm = xm;
}
public String getBanji() {
return banji;
}
public void setBanji(String banji) {
this.banji = banji;
}
public String getXh() {
return xh;
}
public void setXh(String xh) {
this.xh = xh;
}
@Override
public String toString() {
// TODO Auto-generated method stub
return this.xm+"\t"+this.xh+"\t"+this.banji;
}
}
- 由于只是简单的演示这里就不涉及数据库了,我们用HashMap来模拟数据库存储数据
建立Database.java
package net.jsjxy.db;
import java.util.HashMap;
import net.jsjxy.entity.Student;
public class Database {
public HashMap<String, Student> map;
public void initDB(){
map=new HashMap<String, Student>();
Student s1=new Student("张三", "一班", "12345");
Student s2=new Student("李四", "二班", "67890");
map.put(s1.getXh(), s1);
map.put(s2.getXh(), s2);
}
}
- 存储和学生主类写好了,那么下一步就该写操作了
我们建立学生数据库操作类文件:StudentBO.java
package net.jsjxy.service;
import java.util.HashMap;
import java.util.Iterator;
import net.jsjxy.db.Database;
import net.jsjxy.entity.Student;
public class StudentBO {
Database db;
public StudentBO(){
db=new Database();
db.initDB();
}
public void addStudent(Student stu) {
HashMap<String, Student> map=db.map;
if(map.containsKey(stu.getXh())){
System.out.println("学号已经存在");
}
else
{
db.map.put(stu.getXh(), stu);
System.out.println("添加成功");
}
}
public void modifyStudent(Student stu){
String xh=stu.getXh();
db.map.remove(xh);
db.map.put(xh, stu);
}
public Student searchStudent(String xh) {
Student stu=null;
if(db.map.containsKey(xh)){
stu=db.map.get(xh);
System.out.println("找到了"+xh);
}
else
{
System.out.println("学号不存在");
}
return stu;
}
public void delStudent(String xh) {
if(db.map.containsKey(xh)){
db.map.remove(xh);
System.out.println("删除成功");
}
else
{
System.out.println("学号不存在");
}
}
public void displayAll(){
System.out.println("姓名\t学号\t班级");
Iterator<String> it=db.map.keySet().iterator();
while(it.hasNext()){
String key=it.next();
Student stu=db.map.get(key);
// System.out.println(stu.getXm()+"\t"+stu.getXh()+"\t"+stu.getBanji());
System.out.println(stu.toString());
}
}
}
- 现在就应该写界面类了
我们建立usergui.java文件
package net.jsjxy.cui;
import java.util.Scanner;
import net.jsjxy.entity.Student;
import net.jsjxy.service.StudentBO;
public class usergui {
static StudentBO db;
static Scanner scanner = new Scanner(System.in);
public static void init() {
db=new StudentBO();
while (true) {
System.out.println("");
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("6.退出");
System.out.print("请输入你的选择:");
int input = scanner.nextInt();
switch (input) {
case 1:
addStu();
break;
case 2:
searchStu();
break;
case 3:
delStu();
break;
case 4:
dispStu();
break;
case 5:
modStu();
break;
case 6:
System.out.println("程序退出");
System.exit(0);
break;
default:
System.out.println("请输入正确的");
break;
}
}
}
public static void addStu() {
System.out.println("请输入学生的姓名:");
String xm=scanner.next();
System.out.println("请输入学生的学号:");
String xh=scanner.next();
System.out.println("请输入学生的班级:");
String bj=scanner.next();
Student stu=new Student(xm, bj, xh);
db.addStudent(stu);
}
public static void modStu() {
System.out.println("请输入修改学生的学号:");
String xh=scanner.next();
Student stu=db.searchStudent(xh);
if(stu==null){
System.out.println("没有找到");
}
else{
System.out.println(stu.toString());
System.out.println("请输入学生的新姓名:");
String xm=scanner.next();
System.out.println("请输入学生的新班级:");
String bj=scanner.next();
stu=new Student(xm, bj, xh);
System.out.print("你确认要修改吗?(y/n)");
String tmp=scanner.next().toUpperCase();
if(tmp.equals("Y")){
db.modifyStudent(stu);
}
}
}
public static void delStu() {
System.out.println("请输入删除学生的学号:");
String xh=scanner.next();
System.out.print("你确认要删除吗?(y/n)");
String tmp=scanner.next().toUpperCase();
if(tmp.equals("Y")){
db.delStudent(xh);
}
}
public static void searchStu() {
System.out.println("请输入查找学生的学号:");
String xh=scanner.next();
Student stu=db.searchStudent(xh);
if(stu!=null){
System.out.println(stu.toString());
}
}
public static void dispStu() {
System.out.println("显示所有学生信息");
db.displayAll();
}
}
- 最后我们来写主类
建立MainClass.java文件
package net.jsjxy.cui;
public class MainClass {
public static void main(String args[]){
usergui.init();
}
}
- 项目源码下载
戳我