java面向对象基础练习———学生管理系统
- 定义学生类,包含以下成员变量
学生类: Student成员变量:
学号:sid
姓名:name
年龄:age
生日:birthday
构造方法:无参构造
带四个参数的构造成员方法:
每个成员变量对应给出get/set方法
package domian;
public class Student {
private String name; // 学生姓名
private int age; // 学生年龄
private String sid; // 学号
private String barth; // 生日
//生成空参构造函数
public Student() {
}
// 生成有参构造函数
public Student(String name, int age, String sid, String barth) {
this.name = name;
this.age = age;
this.sid = sid;
this.barth = barth;
}
// 设置set方法
public void setName(String name) {
this.name = name;
}
public void setAge(int age) {
this.age = age;
}
public void setSid(String sid) {
this.sid = sid;
}
public void setBarth(String barth) {
this.barth = barth;
}
// 设置get方法
public String getName() {
return name;
}
public int getAge() {
return age;
}
public String getSid() {
return sid;
}
public String getBarth() {
return barth;
}
}
2.学生管理系统主界面的搭建步骤
2.1 用输出语句完成主界面的编写
2.2 用Scanner实现键盘录入数据
2.3 用switch语句完成操作的选择
2.4 用循环完成再次回到主界面
package studentM;
import domian.Student;
import java.util.ArrayList;
import java.util.Scanner;
public class StudentManager {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
// 创建集合
ArrayList<Student> list = new ArrayList<>();
lo:
while (true) {
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("请输入您的选择:");
String input = sc.next();
switch (input) {
case "1":
// 1 添加学生
addstudent.addstu(list);
break;
case "2":
// 2 删除学生
removeStudent.removestu(list);
break;
case "3":
// 3 修改学生
ReviseStudent.revise(list);
break;
case "4":
// 4 查看学生
ViewStudent.viewstu(list);
break;
case "5":
// 5 退出
System.out.println("感谢您的使用!!!");
break lo;
default:
System.out.println("您输入的内容有误,请重新输入");
}
}
}
}
3.学生管理系统的添加学生功能实现步骤:再创建一个addstudent类,定义一个方法addstu,实现下面操作:
3.1 用键盘录入选择添加学生,
3.2 定义一个方法,用于添加学生
显示提示信息,提示要输入何种信息
键盘录入学生对象所需要的数据
创建学生对象,把键盘录入的数据赋值给学生对象的成员变量
将学生对象添加到集合中(保存)
给出添加成功提示
3.3 调用方法
package studentM;
import domian.Student;
import java.util.ArrayList;
import java.util.Scanner;
public class addstudent {
public static void addstu(ArrayList<Student> list) {
System.out.println("+++欢迎来到添加学生页面+++");
Scanner input = new Scanner(System.in);
System.out.println("请输入添加学生的姓名");
String name = input.next();
System.out.println("请输入添加学生的年龄");
int age = input.nextInt();
String sid = null;
while (true) {
System.out.println("请输入添加学生的学号");
sid = input.next();
int index = Getindex.getIntdex(list, sid);
if (index == -1){
// 没有人使用该学号
break;
}else{
System.out.println("该学号已经有人使用了");
}
}
System.out.println("请输入添加学生的生日");
String barth = input.next();
Student stu = new Student(name, age, sid, barth);
list.add(stu);
}
}
- 学生管理系统的查看学生功能实现步骤
创建一个viewstudent类,定义一个方法viewstu,实现下面操作
4.1 用键盘录入选择查看所有学生信息
4.2 定义一个方法,用于查看学生信息
显示表头信息
将集合中数据取出按照对应格式显示学生信息,年龄显示补充“岁”
4.3 调用方法
package studentM;
import domian.Student;
import java.util.ArrayList;
public class ViewStudent {
public static void viewstu(ArrayList<Student> list) {
System.out.println("+++欢迎来到查询学生界面+++");
if (list.size()==0){
System.out.println("没有相关信息,请重新查询");
return;
}
// 存在: 展示表头数据
System.out.println(" 学号 姓名 年龄 生日");
// 遍历集合, 获取每一个学生对象的信息, 打印在控制台
// 使用的是foreach遍历循环!!!
for (Student stu : list) {
System.out.println(stu.getSid() + " " + stu.getName() + " " + stu.getAge() + " " + stu.getBarth());
}
}
}
5.学生管理系统的删除学生功能实现步骤
5.1 用键盘录入选择删除学生信息
5.2 定义一个方法,用于删除学生信息
显示提示信息
键盘录入要删除的学生学号
调用getIndex方法,查找该学号在集合的索引
如果索引为-1,提示信息不存在
如果索引不是-1,调用remove方法删除并提示删除成功
5.3 调用方法
`
package studentM;`
`import domian.Student;`
`import java.util.ArrayList;`
`import java.util.Scanner;`
public class removeStudent {
public static void removestu(ArrayList<Student> list) {
System.out.println("===欢迎来到删除学生界面===");
// 1. 给出提示信息 (请输入您要删除的学号)
Scanner sr = new Scanner(System.in);
if (list.size()==0){
System.out.println("系统没有信息!!!");
return;
}
System.out.println("请输入您要删除的学生学号:");
String dsid = sr.next();
int index = Getindex.getIntdex(list, dsid);
if (index == -1){
System.out.println("没有找到该学号!!请重新输入");
}else {
list.remove(index);
}
}
}
- 学生管理系统的修改学生功能实现步骤
6.1 用键盘录入选择修改学生信息
6.2 定义一个方法,用于修改学生信息
显示提示信息
键盘录入要修改的学生学号
调用getIndex方法,查找该学号在集合的索引
如果索引为-1,提示信息不存在
如果索引不是-1,键盘录入要修改的学生信息
集合修改对应的学生信息
给出修改成功提示
6.3 调用方法
import java.util.ArrayList;
import java.util.Scanner;
//修改学生类
public class ReviseStudent {
public static void revise(ArrayList<Student> list) {
System.out.println("+++欢迎来到修改学生界面+++");
Scanner sc = new Scanner(System.in);
System.out.println("请输入您要修改的学生学号:");
String sid = sc.next(); // 新学号
int index = Getindex.getIntdex(list, sid);
if (index == -1) {
System.out.println("要修改的学号不存在!!!");
} else {
// 存在: 接收新的学生信息
System.out.println("请输入新的学生姓名:");
String name = sc.next();
System.out.println("请输入新的学生年龄:");
int age = sc.nextInt();
System.out.println("请输入新的学生生日:");
String barth = sc.next();
Student new_stu = new Student(name, age, sid, barth);
list.set(index, new_stu);
System.out.println("修改成功!!");
}
}
}
最后还定义了一个定位学号的Gitindex的类来获取目标学号的下标,从而进行修改学生模块和删除学生模块中定位学号提供便利
package studentM;
import domian.Student;
import java.util.ArrayList;
public class Getindex {
// 设置一个获取学号索引的getindex方法
public static int getIntdex(ArrayList<Student> list, String sid) {
// 先假设index索引不存在
int index = -1;
// 遍历集合, 获取每一个学生对象, 准备进行查找
for (int i = 0; i < list.size(); i++) {
Student stu = list.get(i);
// 获取每一个学生对象的学号
String id = stu.getSid();
// 使用获取出的学生学号, 和传入的学号(查找的学号)进行比对
if (id.equals(sid)) {
// 存在: 让index变量记录正确的索引位置
index = i;
}
}
return index;
}
}