用Java基础知识设计一个学生信息管理系统
本人为初学者,在无任何参考的情况下,自己设计的题目和具体需求,如有错误,希望多多包涵,互相探讨学术。
设计需求:
1、学生进入系统只能输入学号查看个人信息。
2、教师以管理员的身份进入(私有的账号和密码)。
3、教师能查看所有的学生信息,并能对学生信息进行增删改查。
代码如下:
主类:
/**
* 测试类
*/
public class TestMain {
//定义一个全局共享的学生数组
static Students[] stuArr = new Students[100];
//定义共享键盘录入
static Scanner sc = new Scanner(System.in);
/**
* 主方法
*/
public static void main(String[] args) {
//向对象数组存入初始数据
stuArr[0] = new Students("陈运政", 10086, 100);
stuArr[1] = new Students("张三", 10011, 80);
stuArr[2] = new Students("李四", 12121, 60);
stuArr[3] = new Students("王五", 12356, 2);
stuArr[4] = new Students("赵六",13579,66);
/**
* 主界面:判断用户进入程序的目的性
*/
System.out.println("欢迎来到湖北城市建设职业技术学院学生信息管理系统");
System.out.println("请输入您的需求序号(1学生入口 2教师入口 3退出程序)");
switch (sc.nextInt()) {
case 1:
studentSet();
break;
case 2:
teacherSet();
break;
case 3:
exit();
break;
}
}
/**
* 学生端: 学生输入学号查看自己的信息
*/
public static void studentSet() {
int count = 0;
p: for (int i = 0; i < stuArr.length; i++) {
if (stuArr[i] != null) {
count++;
continue p;
}
System.out.println("请输入你的学号");
int id = sc.nextInt();
for (int n = 0; n < count; n++) {
if (stuArr[n].getId() == id) {
System.out.print("姓名:" + stuArr[n].getName());
System.out.print(" 学号:" + stuArr[n].getId());
System.out.print(" 成绩:" + stuArr[n].getScore() + "分");
return;
}
}
System.out.println("不好意思,查无此人");
System.out.println("继续查询请按1 退出程序请按2");
switch (sc.nextInt()){
case 1:
studentSet();
break ;
case 2:
exit();
break ;
}
break ;
}
}
/**
* 教师端:教师可以对学生的数据增删改查
*/
public static void teacherSet() {
Admin admin = new Admin();
System.out.println("请输入您的账号");
while (true) {
if (admin.logIn(sc.nextInt()))
break;
System.out.println("账号错误,请重新输入您的账号");
}
twoShare();
}
/**
* 教师端选择器
*/
public static void teacherShare(){
switch (sc.nextInt()) {
case 1:
studentLook();
break;
case 2:
studentAlter();
break;
case 3:
studentAdd();
break;
case 4:
studentDelete();
break;
case 5:
exit();
break;
}
}
/**
* 二次选择器
*/
public static void twoShare(){
System.out.println("接下来您要干什么?(1查看 2修改 3添加 4删除 5退出)");
teacherShare();
}
/**
* 信息管理:查看
*/
public static void studentLook() {
System.out.println("--------------------------------------------");
for (int i = 0; i < stuArr.length; i++) {
if (stuArr[i] != null) {
System.out.println(stuArr[i]);
}
}
System.out.println("--------------------------------------------");
twoShare();
}
/**
* 信息管理:添加
*/
public static void studentAdd() {
for (int i = 0; i < stuArr.length; i++) {
if (stuArr[i] == null) {
stuArr[i] = new Students();
System.out.println("请输入学生的姓名");
stuArr[i].setName(sc.next());
System.out.println("请输入学生的学号");
stuArr[i].setId(sc.nextInt());
System.out.println("请输入学生的成绩");
stuArr[i].setScore(sc.nextInt());
System.out.println("是否进一步操作?(1查看 2修改 3添加 4删除 5退出)");
teacherShare();
break;
}
}
twoShare();
}
/**
* 信息管理:修改
*/
public static void studentAlter() {
System.out.println("--------------------------------------------");
for (int i = 0; i < stuArr.length; i++) {
if (stuArr[i] != null) {
System.out.print("序号:" + i + " ");
System.out.println(stuArr[i]);
}
}
System.out.println("--------------------------------------------");
System.out.println("选择你要修改学生信息的序号");
int num = sc.nextInt();
System.out.println("选择你要修改该学生的哪一项信息(1姓名 2学号 3成绩)");
switch (sc.nextInt()) {
case 1:
System.out.println("输入新的姓名");
stuArr[num].setName(sc.next());
break;
case 2:
System.out.println("输入新的学号");
stuArr[num].setId(sc.nextInt());
break;
case 3:
System.out.println("输入新的成绩");
stuArr[num].setScore(sc.nextInt());
break;
}
twoShare();
}
/**
* 信息管理:删除
*/
public static void studentDelete() {
System.out.println("--------------------------------------------");
for (int i = 0; i < stuArr.length; i++) {
if (stuArr[i] != null) {
System.out.print("序号:" + i + " ");
System.out.println(stuArr[i]);
}
}
System.out.println("--------------------------------------------");
System.out.println("选择你要删除学生信息的序号");
int num = sc.nextInt();
Students[] stuNew = new Students[stuArr.length];
int count = 0;
for (int i = 0; i < stuNew.length; i++) {
if (stuArr[i] != null){
if (i == num){
count++;
}else {
stuNew[i-count] = stuArr[i];
}
}
}
stuArr = stuNew;
twoShare();
}
/**
* 退出程序结语
*/
public static void exit() {
System.out.println("您已退出程序,谢谢使用由陈运政开发的学生信息管理系统");
}
}
教师类:
import java.util.Objects;
import java.util.Scanner;
/**
* 用户登录系统类
* 需求:1、判断使用的用户是学生还是教师(学生只能查看自己的成绩,教师有更多操作)
* 2、判断用户的账号和密码是否正确
* 3、全部正确的跳转控制终端
* String account; //账号
* String password; //密码
*/
public class Admin {
private int account = 1;
private String password = "1";
public Admin() {
}
public Admin(int account, String password) {
this.account = account;
this.password = password;
}
public int getAccount() {
return account;
}
public void setAccount(int account) {
this.account = account;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
Admin admin = (Admin) o;
return Objects.equals(account, admin.account) &&
Objects.equals(password, admin.password);
}
/**
* 登录程序:判断账号
*/
public boolean logIn(int account) {
if (this.account == account) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入您的密码");
while (true) {
if (logIn(sc.next()))
break;
System.out.println("密码错误,请重新输入您的密码");
}
return true;
}
return false;
}
/**
* 登录程序:判断密码
*/
public boolean logIn(String password) {
if (this.password.equals(password)) {
System.out.println("登录成功");
System.out.println("--------------------------------------------");
return true;
}
return false;
}
}
----------------------------------------------------------------------------------------
学生类:
/**
* 学生信息管理类
* 需求:增删改查学生的信息
* String name; //学生姓名
* int id; //学号
* int score; //学生成绩
*/
public class Students {
private String name;
private int id;
private int score;
public Students() {
}
public Students(String name, int id, int score) {
this.name = name;
this.id = id;
this.score = score;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public int getScore() {
return score;
}
public void setScore(int score) {
this.score = score;
}
@Override
public String toString() {
return "姓名:" + name + " 学号:" + id + " 成绩" + score;
}
}