java基础学生登陆系统_Java学生管理系统-Java基础案例-嗨客网

描述

Java SE 综合案例:学生管理系统。

题目

该系统主要功能如下:

定义一个

添加学生:通过键盘录入学生信息,添加到集合中。

删除学生:通过键盘录入要删除学生的学号,将该学生对象从集合中删除。

修改学生:通过键盘录入要修改学生的学号,将该学生对象其他信息进行修改。

查看学生:将集合中的学生对象信息进行展示。

退出系统:结束程序。

题目解决思路

在主方法中,设计系统总界面,利用

定义两个公共

分别定义添加学生、删除学生、修改学生、查看学生。

代码具体实现

定义学生类

public class Student{

private String sid;

private String name;

private String age;

private String address;

public Student(){

}

public Student(String sid, String name, String age, String address){

this.sid = sid;

this.name = name;

this.age = age;

this.address = address;

}

public String getSid(){

return sid;

}

public void setSid(String sid){

this.sid = sid;

}

public String getName(){

return name;

}

public void setName(String name){

this.name = name;

}

public String getAge(){

return age;

}

public void setAge(String age){

this.age = age;

}

public String getAddress(){

return address;

}

public void setAddress(String address){

this.address = address;

}

}

学生信息管理系统具体实现

public class StudentManager{

public static void main(String[] args){

ArrayList students = new ArrayList<>();

Scanner sc = new Scanner(System.in);

while (true) {

System.out.println("嗨客网(www.haicoder.net)\n");

System.out.println("===========欢迎来到学生管理系统===========");

System.out.println("以下为操作命令:");

System.out.println("1. 添加学生信息:add");

System.out.println("2. 删除学生信息:delete");

System.out.println("3. 修改学生信息:update");

System.out.println("4. 查询学生信息:query");

System.out.println("5. 退出学生系统:exit");

System.out.print("请您输入您要操作的命令:");

String command = sc.nextLine();

switch (command) {

case "add":

addStudent(students);

System.out.println("添加信息成功!!");

break;

case "delete":

deleteStudent(students);

break;

case "update":

updateStudent(students);

break;

case "query":

queryStudent(students);

break;

case "exit":

System.out.println("退出系统!");

System.exit(0);

break;

default:

System.out.println("您输入的命令有误,请重新输入!");

}

System.out.println("");

}

}

/**

* 添加学生信息方法

*

* @param students

*/

public static void addStudent(ArrayList students){

System.out.println("=================添加学生信息============");

// 直接定义扫描器,录入学生信息

Scanner sc = new Scanner(System.in);

String sid;

// 接收学生信息

while (true) {

System.out.println("请您输入学号:");

sid = sc.nextLine();

// 判断学号是否重复

boolean bool = isSIdRepeat(sid, students);

if (bool) {

System.out.println("您输入的学号重复!");

} else {

break;

}

}

System.out.println("请您输入姓名:");

String name = sc.nextLine();

System.out.println("请您输入年龄:");

String age = sc.nextLine();

System.out.println("请您输入地址:");

String address = sc.nextLine();

// 封装学生信息

Student student = new Student(sid, name, age, address);

// 添加学生对象到集合容器

students.add(student);

}

/**

* 删除某个学生的信息

*

* @param students

*/

public static void deleteStudent(ArrayList students){

System.out.println("=================删除学生信息============");

if (students.size() > 0) {

while (true) {

System.out.println("请您删除要删除的学号:");

Scanner sc = new Scanner(System.in);

String sid = sc.nextLine();

// 判断学号是否存在

Boolean bool = isSIdRepeat(sid, students);

if (bool) {

int i = getIndex(sid, students);

students.remove(i);

break;

} else {

System.out.println("您删除的学生不存在");

System.out.println("请问您要继续吗? Y/N");

String rs = sc.nextLine();

if ("N".equals(rs)) {

break;

}

}

}

} else {

System.out.println("学生信息为空,请先添加学生信息!");

}

}

/**

* 修改某个学生的信息

*

* @param students

*/

public static void updateStudent(ArrayList students){

System.out.println("=================修改学生信息============");

Scanner sc = new Scanner(System.in);

if (students.size() > 0) {

while (true) {

System.out.println("请输入要修改的学生的学号:");

String sid = sc.nextLine();

// 判断学号是否存在

Boolean bool = isSIdRepeat(sid, students);

if (bool) {

// 获取到对象集合中的角标

int index = getIndex(sid, students);

// 用户输入新的学生信息

System.out.println("请您输入姓名:");

String name = sc.nextLine();

System.out.println("请您输入年龄:");

String age = sc.nextLine();

System.out.println("请您输入地址:");

String address = sc.nextLine();

Student newStu = new Student(sid, name, age, address);

students.set(index, newStu);

System.out.println("修改学生信息成功");

break;

} else {

System.out.println("您需要修改的学生不存在!");

System.out.println("请问您要继续吗? Y/N");

String rs = sc.nextLine();

if ("N".equals(rs)) {

break;

}

}

}

} else {

System.out.println("学生信息为空,请先添加学生信息!");

}

}

/**

* 查询全部学生信息

*

* @param students

*/

private static void queryStudent(ArrayList students){

System.out.println("学生信息为:");

if (students.size() > 0) {

System.out.println("学号\t\t姓名\t\t年龄\t\t住址");

for (int i = 0; i < students.size(); i++) {

Student s = students.get(i);

StringBuilder sb = new StringBuilder();

System.out.println(sb.append(s.getSid()).append("\t\t").append(s.getName()).append("\t\t").append(s.getAge()).append("\t\t").append(s.getAddress()));

}

} else {

System.out.println("学生信息为空,请先添加学生信息!");

}

}

/**

* 判断学生的学号是否重复

*

* @param sid

* @param students

* @return true 代表重复 false 代表没有重复

*/

public static boolean isSIdRepeat(String sid, ArrayList students){

// 遍历集合获取到所有学生对象,并判断学号是否重复

for (int i = 0; i < students.size(); i++) {

Student s = students.get(i);

if (sid.equals(s.getSid())) {

return true;

}

}

return false;

}

/**

* 获取对象在集合中的索引

*

* @param sid

* @param students

* @return

*/

public static int getIndex(String sid, ArrayList students){

for (int i = 0; i < students.size(); i++) {

Student s = students.get(i);

if (sid.equals(s.getSid())) {

return i;

}

}

return -1;

}

}

当未添加学生信息时,进行其他操作,都会返回该学生为空的提示(此处只展示一种),运行如下:

a3c59a90ce575334e66c14573ff76227.png

添加学生信息(添加 3 个学生信息,此处只展示一个),运行如下:

f8637b55c2ba5412c85acc8b198f7b25.png

查询学生信息,运行如下:

ebc5f47ded3131809d2838d27f984343.png

当删除或者更新学生信息时,输入的学号不存在,则提示用户该学生不存在,询问用户是否继续(此处只展示一个),运行如下:

3bec20afc91a7cc3813956fa84d6880c.png

删除学生信息,运行如下:

df36f059292b83ba6f20ba40f7e64064.png

删除学生信息之后,查询学生信息,此时发现学号为 03 的学生信息已经删除,运行如下:

5ffaea0d3032bdae17533cf40234fc33.png

修改学生信息,运行如下:

4fe49b444db06593e673221b7fc4e7f6.png

修改学生信息之后,查询学生信息,此时发现学号为 01 的学生信息已经更改,运行如下:

b8b98d8fb727e11d2463f1f5f9a79b62.png

最后执行退出系统操作,运行如下:

cca6f8ec07eed7c0152857890d8c7127.png

以上案例运用了 Java SE 知识,实现了一个简易的学生信息管理系统。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值