前言
作为java的学习者,我们不紧要掌握java的基本语法,我们需要利用我们所学的java 知识灵活运用,做项目就是一个不错的选择, 今天小魏分享一个简单的项------ 班级管理系统
提示:以下是本篇文章正文内容,下面案例可供参考
一班级管理系统
既然是班级管理系统 ,那就不可少的几大功能 1 ,增添学生信息 2 ,删除学生信息 3 , 修改学生信息 4 .查看学生列表
小魏的设计理念是 分层设计 建立不同的包 每个包里的类分别 处理不同的任务 ,分工明确 这样思路 和逻辑不会搞混 可以分为 1. 主程序包 2 菜单包 3 服务包 4 学生信息包 这样 四个包组成.
还有一点就是 java 是面向对象编程 功能封装在方法里用对象直接去调用 这个一定要理解.面向对象编程.
二、使用步骤
1先写出班级管理的主程序类(放在主程序包里)
这里是我们程序的入口
package com.studentarrageApp;
import visw.Visw;
public class StudentArrage {
public static void main(String[] args) {
//在主程序建立一个Visw类的一个对象用来调用 context()方法
new Visw().context();
}
}
在写出程序菜单类(放在菜单包里)
用来显示我们板件管理系统的菜单栏
package visw;
import calculate.Calculate;
import java.util.Scanner;
public class Visw {
// 定义一个boolean 类型 用来执行while的死循环变量
private boolean Arr = true;
private int input;
// 引用 java.util 包里面的 Scanner 建立对象 来接受用户的输入;
private Scanner scanner = new Scanner(System .in );
//建立 Calcuate的对象 目的是调用 Calcuate类的方法(因为我们把功能(增,删,改,查)都封装在方法里)
private Calculate calculate = new Calculate();
private String SS =“”;
// 我们用来显示菜单一般用 while 配合 switch 来显示菜单 这里要注意 while要设置为死循环 这样才可以不断显示 菜单
// 把整个菜单功能都封装在context 方法里
public void context(){
while (Arr){
System.out.println(“\t\t\t班级管理软件”);
System.out.println(“\t\t\t\t 1 添加学生信息”);
System.out.println(“\t\t\t\t 2 删除学生信息”);
System.out.println(“\t\t\t\t 3 修改学生信息”);
System.out.println(“\t\t\t\t 4 查看学生信息”);
System.out.println(“\t\t\t\t 5 退 出”);
System.out.println(“请你输入 (1~5)”);
//接受用户输入
input = scanner.nextInt();
switch (input){
case 1 :
calculate.Aa();
break;
case 2 :
calculate.remove1();
break;
case 3 :
calculate.alter();
break;
case 4 :
calculate.wen();
break;
// 这个是退出零时加的一个功能 (当用户要退出时 再次让用户做出选择是否要退出 )
case 5:
//实现这个功能又加了一个死循环
while (Arr) {
System.out.println("请确定要退出吗 ? (确定 \t 或 \t 返回) ");
SS = scanner.next();
if ("确定".equals(SS) || "返回".equals(SS)) {
Arr = false;
}
}
break;
default:
System.out.println("你的输入有误,请从新输入");
}
}
}
}
服务类(放在服务包里)
这个类也即是业务类 ,主要的是 进行我们的增 ,删,改, 查的功能的实现
// 这个才是我们程序真正干活的地方,,进行增,删 ,改,查 .
我们把每一个功能封装到一个方法里 在使用的时候再去调用
package calculate;
import student.StudentNew;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.Scanner;
public class Calculate {
private boolean Yes = true;
private StudentNew student = new StudentNew();
// 这里我们使用集合去储存用户输入所以建立集合
private ArrayList list = new ArrayList();
private Scanner scanner = new Scanner(System.in);
private boolean WW = true;
private int Wei = 0;
//添加用户信息
public void Aa() {
while (Yes) {
System.out.println("=======添加学生信息========");
System.out.println("请你输入你的学号 :");
student.setID(scanner.nextInt());
System.out.println("请你输入的名字 :");
student.setName(scanner.next());
System.out.println("请你输入你的性别:");
student.setSex(scanner.next().charAt(0));
System.out.println("请你输入你的籍贯: ");
student.setAddress(scanner.next());
System.out.println("请你输入你的爱好: ");
student.setHobby(scanner.next());
list.add(student);
break;
}
}
//删除学生信息
public void remove1() {
if (list.size() == 0) {
System.out.println("======修改学生信息=======");
System.out.println("您还没有录入学生信息");
} else {
System.out.println("请输入要删除学生的学号:");
for (int i = 0; i <list.size() ; i++) {
Object obj = list.size();
StudentNew student =(StudentNew)obj;
if(student.getID()==scanner.nextInt()) {
list.remove(student);
}
}
}
}
// 改学生信息功能
public void alter(){
System.out.println("=====修改信息======");
//先确定集合里是否有数据(是否存入学生信息)
if(list.size() == 0){
System.out.println("你还没有输入数据");
}else{
System.out.println("请你输入你的学号: ");
/建立递代器对象来遍历集合
Iterator in = list.iterator();
//判断集合里否有下个元素
if(in.hasNext()){
// 遍历后把集合的元素为Object 类型
Object obj = in.next();
//进行强转把集合的object类转换为 studentNew类
StudentNew student =(StudentNew)obj;
//判断用户输入的学号与你的集合中的学号是否一致
if(student.getID()==scanner.nextInt()){
// 存入集合
Set(student);
}
}
}
}
//把student 对象传入Set方法里用switch 语法让用户进行选择操作
public void Set(StudentNew student){
System.out.println("\t\t\t1修改名字");
System.out.println("\t\t\t2修改你的性别");
System.out.println("\t\t\t3修改你的地址");
System.out.println("\t\t\t4 修改你的爱好");
System.out.println("请你输入你要修改的信息: ");
Wei = scanner.nextInt();
switch(Wei){
case 1 :
System.out.println("请你输入改后的名字:");
student.setName(scanner.next());
break;
case 2 :
System.out.println("请你输入你改后的性别: ");
student.setSex(scanner.next().charAt(0));
break;
case 3 :
System.out.println("请你输入你改后的地址: ");
student.setAddress(scanner.next());
break;
case 4 :
System.out.println("请你输入你改后的爱好: ");
student.setHobby(scanner.next());
}
}
// 列出学生信息
//遍历 集合
public void wen(){
System.out.println("======学生信息列表======");
if(list.size()==0){
System.out.println("你还没有输入学生的信息");
}else{
Iterator it = list.iterator();
if(it.hasNext()){
Object obj = it.next();
System.out.println("学号\t\t姓名\t性别\t籍贯\t爱好\t");
System.out.println(obj);
}
}
}
}
学生信息类(学生信息包里)
这个类目的是封装学生的信息作用
package student;
public class StudentNew {
// 初始化一个学生的信息
private int ID;
private String name;
private char Sex;
private String address;
private String hobby;
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 char getSex() {
return Sex;
}
public void setSex(char sex) {
Sex = sex;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
public String getHobby() {
return hobby;
}
public void setHobby(String hobby) {
this.hobby = hobby;
}
// 重写 toString 方法
public String toString(){
return ID + “\t”+
name +“\t”+
Sex +“\t”+
address+“\t”+
hobby +“\t”;
}
}