定义学生类
学生类
Student
成员变量
- 学号:sid
- 姓名:name
- 年龄:age
- 居住地:address
构造方法
- 无参构造方法
- 带四个变量的构造方法
成员方法
每个成员变量对应的get/set方法
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;
}
}
主界面
用switch语句循环。这里的System.exit(0);
表示JVM虚拟机的退出。
public static void main(String[] args) {
//创建集合对象
ArrayList<Student> array = new ArrayList<Student>();
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("----------");
System.out.println("请输入你的选择:");
Scanner sc = new Scanner(System.in);
int search = sc.nextInt();
switch(search) {
case 1:
System.out.println("添加学生");
addStudent(array);
break;
case 2:
System.out.println("删除学生");
deleteStudent(array);
break;
case 3:
System.out.println("修改学生");
updateStudent(array);
break;
case 4:
System.out.println("查看所有学生");
findStudent(array);
break;
case 5:
System.out.println("谢谢使用!");
System.exit(0);
default :
System.out.println("您的输入有误,请重新选择!");
break;
}
}
}
添加学生
注意这里要加入一个判断学号重复的条件,我们重新定义一个方法来实现。
该方法如下
//判断学号是否重复
public static boolean isUsed(ArrayList<Student> array,String sid) {
boolean flag = false;
for(int i = 0;i<array.size();i++) {
Student s = array.get(i);
if(s.getSid().equals(sid)) {
flag = true;
break;
}
}
return flag;
}
主代码如下
//添加学生信息
public static void addStudent(ArrayList<Student> array){
Scanner sc = new Scanner(System.in);
String sid;
while(true) {
System.out.println("请输入学生学号:");
sid = sc.nextLine();
boolean flag = isUsed(array,sid);
if(flag) {
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 s = new Student();
s.setSid(sid);
s.setName(name);
s.setAge(age);
s.setAddress(address);
array.add(s);
System.out.println("添加成功!");
}
删除学生
中间用到字符串比较的方法s1.equals(s2)
,还有删除集合中的对象方法array.remove(i)
,并且需要判断学号是否存在的问题,这里我们设置一个标记变量index
,然后遍历集合,若不存在则重新输入。
//删除学生信息
public static void deleteStudent(ArrayList<Student> array){
Scanner sc = new Scanner(System.in);
System.out.println("请输入你要删除的学号:");
String sid = sc.nextLine();
int index = -1;
for(int i = 0;i<array.size();i++) {
Student pd = array.get(i);
if(pd.getSid().equals(sid)) {
index = i;
break;
}
}
if(index == -1) {
System.out.println("该信息不存在,请重新输入!");
}
else {
for(int i = 0;i<array.size();i++){
Student s = array.get(i);
if(s.getSid().equals(sid) ){
array.remove(i);
}
}
System.out.println("删除成功");
}
}
修改学生
与删除一样,这里同样需要一个判断学号不存在的问题,与删除方法相同。
//修改学生信息
public static void updateStudent(ArrayList<Student> array){
Scanner sc = new Scanner(System.in);
System.out.println("请输入要修改的学生学号:");
String sid = sc.nextLine();
int index = -1;
for(int i = 0;i<array.size();i++) {
Student pd = array.get(i);
if(pd.getSid().equals(sid)) {
index = i;
break;
}
}
if(index == -1) {
System.out.println("该信息不存在,请重新输入!");
}
else {
System.out.println("请输入学生新姓名:");
String name = sc.nextLine();
System.out.println("请输入学生新年龄:");
String age = sc.nextLine();
System.out.println("请输入学生新居住地:");
String address = sc.nextLine();
Student s = new Student();
s.setSid(sid);
s.setName(name);
s.setAge(age);
s.setAddress(address);
for(int i = 0;i<array.size();i++) {
Student s1 = array.get(i);
if(s1.getSid().equals(sid)) {
array.set(i, s);
break;
}
}
System.out.println("修改成功");
}
}
查看所有学生
首先若集合中无信息,需要返回无信息。
//查看学生信息
public static void findStudent(ArrayList<Student> array){
//判断集合中是否有信息
if(array.size() == 0) {
System.out.println("无信息!");
return;
}
//显示表头信息
System.out.println("学号\t\t姓名\t年龄\t居住地");
//将集合中的数据取出按照对应格式显示学生信息,年龄显示补充“岁”
for(int i = 0;i<array.size();i++) {
Student s = array.get(i);
System.out.println(s.getSid()+"\t"+s.getName()+"\t"+s.getAge()+"\t"+s.getAddress());
}
}
完整代码
- 系统主代码
package 学生管理系统;
import java.util.Scanner;
import java.util.ArrayList;
public class StudentManager {
public static void main(String[] args) {
//创建集合对象
ArrayList<Student> array = new ArrayList<Student>();
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("----------");
System.out.println("请输入你的选择:");
Scanner sc = new Scanner(System.in);
int search = sc.nextInt();
switch(search) {
case 1:
System.out.println("添加学生");
addStudent(array);
break;
case 2:
System.out.println("删除学生");
deleteStudent(array);
break;
case 3:
System.out.println("修改学生");
updateStudent(array);
break;
case 4:
System.out.println("查看所有学生");
findStudent(array);
break;
case 5:
System.out.println("谢谢使用!");
System.exit(0);
default :
System.out.println("您的输入有误,请重新选择!");
break;
}
}
}
//添加学生信息
public static void addStudent(ArrayList<Student> array){
Scanner sc = new Scanner(System.in);
String sid;
while(true) {
System.out.println("请输入学生学号:");
sid = sc.nextLine();
boolean flag = isUsed(array,sid);
if(flag) {
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 s = new Student();
s.setSid(sid);
s.setName(name);
s.setAge(age);
s.setAddress(address);
array.add(s);
System.out.println("添加成功!");
}
//查看学生信息
public static void findStudent(ArrayList<Student> array){
//判断集合中是否有信息
if(array.size() == 0) {
System.out.println("无信息!");
return;
}
//显示表头信息
System.out.println("学号\t\t姓名\t年龄\t居住地");
//将集合中的数据取出按照对应格式显示学生信息,年龄显示补充“岁”
for(int i = 0;i<array.size();i++) {
Student s = array.get(i);
System.out.println(s.getSid()+"\t"+s.getName()+"\t"+s.getAge()+"\t"+s.getAddress());
}
}
//删除学生信息
public static void deleteStudent(ArrayList<Student> array){
Scanner sc = new Scanner(System.in);
System.out.println("请输入你要删除的学号:");
String sid = sc.nextLine();
int index = -1;
for(int i = 0;i<array.size();i++) {
Student pd = array.get(i);
if(pd.getSid().equals(sid)) {
index = i;
break;
}
}
if(index == -1) {
System.out.println("该信息不存在,请重新输入!");
}
else {
for(int i = 0;i<array.size();i++){
Student s = array.get(i);
if(s.getSid().equals(sid) ){
array.remove(i);
}
}
System.out.println("删除成功");
}
}
//修改学生信息
public static void updateStudent(ArrayList<Student> array){
Scanner sc = new Scanner(System.in);
System.out.println("请输入要修改的学生学号:");
String sid = sc.nextLine();
int index = -1;
for(int i = 0;i<array.size();i++) {
Student pd = array.get(i);
if(pd.getSid().equals(sid)) {
index = i;
break;
}
}
if(index == -1) {
System.out.println("该信息不存在,请重新输入!");
}
else {
System.out.println("请输入学生新姓名:");
String name = sc.nextLine();
System.out.println("请输入学生新年龄:");
String age = sc.nextLine();
System.out.println("请输入学生新居住地:");
String address = sc.nextLine();
Student s = new Student();
s.setSid(sid);
s.setName(name);
s.setAge(age);
s.setAddress(address);
for(int i = 0;i<array.size();i++) {
Student s1 = array.get(i);
if(s1.getSid().equals(sid)) {
array.set(i, s);
break;
}
}
System.out.println("修改成功");
}
}
//判断学号是否重复
public static boolean isUsed(ArrayList<Student> array,String sid) {
boolean flag = false;
for(int i = 0;i<array.size();i++) {
Student s = array.get(i);
if(s.getSid().equals(sid)) {
flag = true;
break;
}
}
return flag;
}
}
- 学生类代码
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;
}
}