學(xué)生管理系統(tǒng)
學(xué)生管理系統(tǒng)作用就是對于學(xué)生信息的處理循诉、存儲。
處理就包括:添加撇他、刪除茄猫、修改、顯示困肩、查找等
存儲一般調(diào)用數(shù)據(jù)庫存儲划纽;在這里我們只是作為演示,所以就使用Java 中“HashMap”來模擬锌畸。
具體分析之后勇劣,我們規(guī)劃出包及分類,在Eclipse里建立如下結(jié)構(gòu)
思考潭枣、劃分比默、優(yōu)化、布局
- 首先就應(yīng)該是學(xué)生(Student)主類的構(gòu)建
建立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;
}
}
- 由于只是簡單的演示這里就不涉及數(shù)據(jù)庫了卸耘,我們用HashMap來模擬數(shù)據(jù)庫存儲數(shù)據(jù)
建立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);
}
}
- 存儲和學(xué)生主類寫好了退敦,那么下一步就該寫操作了
我們建立學(xué)生數(shù)據(jù)庫操作類文件: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("學(xué)號已經(jīng)存在");
}
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("學(xué)號不存在");
}
return stu;
}
public void delStudent(String xh) {
if(db.map.containsKey(xh)){
db.map.remove(xh);
System.out.println("刪除成功");
}
else
{
System.out.println("學(xué)號不存在");
}
}
public void displayAll(){
System.out.println("姓名\t學(xué)號\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());
}
}
}
- 現(xiàn)在就應(yīng)該寫界面類了
我們建立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("-----學(xué)生管理系統(tǒng)------");
System.out.println("1.添加學(xué)生");
System.out.println("2.查找學(xué)生");
System.out.println("3.刪除學(xué)生");
System.out.println("4.顯示學(xué)生");
System.out.println("5.修改學(xué)生");
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("請輸入學(xué)生的姓名:");
String xm=scanner.next();
System.out.println("請輸入學(xué)生的學(xué)號:");
String xh=scanner.next();
System.out.println("請輸入學(xué)生的班級:");
String bj=scanner.next();
Student stu=new Student(xm, bj, xh);
db.addStudent(stu);
}
public static void modStu() {
System.out.println("請輸入修改學(xué)生的學(xué)號:");
String xh=scanner.next();
Student stu=db.searchStudent(xh);
if(stu==null){
System.out.println("沒有找到");
}
else{
System.out.println(stu.toString());
System.out.println("請輸入學(xué)生的新姓名:");
String xm=scanner.next();
System.out.println("請輸入學(xué)生的新班級:");
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("請輸入刪除學(xué)生的學(xué)號:");
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("請輸入查找學(xué)生的學(xué)號:");
String xh=scanner.next();
Student stu=db.searchStudent(xh);
if(stu!=null){
System.out.println(stu.toString());
}
}
public static void dispStu() {
System.out.println("顯示所有學(xué)生信息");
db.displayAll();
}
}
- 最后我們來寫主類
建立MainClass.java文件
package net.jsjxy.cui;
public class MainClass {
public static void main(String args[]){
usergui.init();
}
}
- 項目源碼下載
戳我