搭建学生类
public class Student {
private String sid; //学号
private String name; //姓名
private int age; //年龄
private String birthday; //生日
public Student() {
}
public Student(String sid, String name, int age, String birthday) {
this.sid = sid;
this.name = name;
this.age = age;
this.birthday = birthday;
}
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 int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getBirthday() {
return birthday;
}
public void setBirthday(String birthday) {
this.birthday = birthday;
}
}
小技巧 ----快速生成构造方法和get和set方法。
右击-》选择generate
快速生成方法
搭建菜单
public class stuManager {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
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 choose = sc.next();
switch (choose) {
case "1":
System.out.println("添加学生");
break;
case "2":
System.out.println("删除学生");
break;
case "3":
System.out.println("修改学生");
break;
case "4":
System.out.println("查看学生");
break;
case "5":
System.out.println("退出");
break lo;
default:
System.out.println("您的输入有误");
break;
}
}
}
}
添加学生
public static void addStudent(ArrayList<Student> list) {
Scanner sc = new Scanner(System.in);
//1 给出录入的学生信息
System.out.println("请输入学号:");
String sid=sc.next();
System.out.println("请输入姓名:");
String name=sc.next();
System.out.println("请输入年龄:");
int age=sc.nextInt();
System.out.println("请输入生日:");
String birthday=sc.next();
//2 将录入的学生信息封装为学生对象
Student student=new Student(sid,name,age,birthday);
//3 将封装好的学生对象,添加到集合容器中
list.add(student);
//4 给出添加成功的提示信息
System.out.println("添加成功!");
}
查看学生
public static void qurryStudent(ArrayList<Student> list) {
//1 判断集合中是否存在数据,不存在直接给出提示信息
if (list.size()==0){
System.out.println("无信息,-------");
return;
}
//2 存在:显示表头信息
System.out.println("学号\t姓名\t年龄\t生日");
//3 遍历集合
for (int i = 0; i < list.size(); i++) {
Student student=list.get(i);
System.out.println(student.getSid()+"\t"+student.getName()+"\t"+student.getAge()+"\t"+student.getBirthday());
}
}
删除学生
public static void deleteStudent(ArrayList<Student> list) {
//给出提示信息
System.out.println("请输入您要删除的学生学号:");
//接收要删除的学号
Scanner scanner=new Scanner(System.in);
String id= scanner.next();
//调用getIndex方法,查询学号的索引
int index=getIndex(list,id);
//根据索引判断是否存在
if (index==-1){
//不存在:给出提示
System.out.println("不存在");
}else{
//存在:删除
list.remove(index);
System.out.println("删除成功!");
}
}
修改学生
public static void updateStudent(ArrayList<Student> list) {
//给出提示信息
System.out.println("请输入您要修改的学生学号:");
//接收要删除的学号
Scanner scanner=new Scanner(System.in);
String id= scanner.next();
//调用getIndex方法,查询学号的索引
int index=getIndex(list,id);
//根据索引判断是否存在
if (index==-1){
//不存在:给出提示
System.out.println("不存在");
}else{
//存在:更新
System.out.println("请输入新的学生姓名");
String name= scanner.next();
System.out.println("请输入新的学生年龄");
int age= scanner.nextInt();
System.out.println("请输入新的学生生日");
String birthday= scanner.next();
//封装为对象,用set方法完成更新。
Student student=new Student(id,name,age,birthday);
list.set(index,student);
System.out.println("更新成功!");
}
}
根据id在集合中找位置的方法:getIndex()
public static int getIndex(ArrayList<Student> list,String sid){
//index=-1:不存在匹配sid。首先假设不存在
int index=-1;
for (int i = 0; i < list.size(); i++) {
Student student=list.get(i);
String id = student.getSid();
if (id.equals(sid)){
index=i;
}
}
return index;
}
将学号设置成唯一
修改addstudent方法。如下
以上报错:做如下修改
完整代码
student类
package com.pq.domain;
public class Student {
private String sid; //id
private String name; //姓名
private int age; //年龄
private String birthday; //生日
public Student() {
}
public Student(String sid, String name, int age, String birthday) {
this.sid = sid;
this.name = name;
this.age = age;
this.birthday = birthday;
}
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 int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getBirthday() {
return birthday;
}
public void setBirthday(String birthday) {
this.birthday = birthday;
}
}
studnetManager
package com.pq.text;
import com.pq.domain.Student;
import java.util.ArrayList;
import java.util.Scanner;
public class stuManager {
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 choose = sc.next();
switch (choose) {
case "1":
//System.out.println("添加学生");
addStudent(list);
break;
case "2":
//System.out.println("删除学生");
deleteStudent(list);
break;
case "3":
//System.out.println("修改学生");
updateStudent(list);
break;
case "4":
//System.out.println("查看学生");
qurryStudent(list);
break;
case "5":
System.out.println("退出");
break lo;
default:
System.out.println("您的输入有误");
break;
}
}
}
/**
* 修改学生信息
* @param list
*/
public static void updateStudent(ArrayList<Student> list) {
//给出提示信息
System.out.println("请输入您要修改的学生学号:");
//接收要删除的学号
Scanner scanner=new Scanner(System.in);
String id= scanner.next();
//调用getIndex方法,查询学号的索引
int index=getIndex(list,id);
//根据索引判断是否存在
if (index==-1){
//不存在:给出提示
System.out.println("学生不存在");
}else{
//存在:更新
System.out.println("请输入新的学生姓名");
String name= scanner.next();
System.out.println("请输入新的学生年龄");
int age= scanner.nextInt();
System.out.println("请输入新的学生生日");
String birthday= scanner.next();
//封装为对象,用set方法完成更新。
Student student=new Student(id,name,age,birthday);
list.set(index,student);
System.out.println("更新成功!");
}
}
/**
* 删除学生
* @param list
*/
public static void deleteStudent(ArrayList<Student> list) {
//给出提示信息
System.out.println("请输入您要删除的学生学号:");
//接收要删除的学号
Scanner scanner=new Scanner(System.in);
String id= scanner.next();
//调用getIndex方法,查询学号的索引
int index=getIndex(list,id);
//根据索引判断是否存在
if (index==-1){
//不存在:给出提示
System.out.println("学生不存在");
}else{
//存在:删除
list.remove(index);
System.out.println("删除成功!");
}
}
/**
* 查看学生信息
* @param list
*/
public static void qurryStudent(ArrayList<Student> list) {
//1 判断集合中是否存在数据,不存在直接给出提示信息
if (list.size()==0){
System.out.println("无信息");
return;
}
//2 存在:显示表头信息
System.out.println("学号\t姓名\t年龄\t生日");
//3 遍历集合
for (int i = 0; i < list.size(); i++) {
Student student=list.get(i);
System.out.println(student.getSid()+"\t"+student.getName()+"\t"+student.getAge()+"\t"+student.getBirthday());
}
}
/**
* 添加学生的方法
* @param list
*/
public static void addStudent(ArrayList<Student> list) {
Scanner sc = new Scanner(System.in);
//1 给出录入的学生信息
String sid;
while (true){
System.out.println("请输入学号:");
sid=sc.next();
int index =getIndex(list,sid);
if(index==-1){
break;
}
}
System.out.println("请输入姓名:");
String name=sc.next();
System.out.println("请输入年龄:");
int age=sc.nextInt();
System.out.println("请输入生日:");
String birthday=sc.next();
//2 将录入的学生信息封装为学生对象
Student student=new Student(sid,name,age,birthday);
//3 将封装好的学生对象,添加到集合容器中
list.add(student);
//4 给出添加成功的提示信息
System.out.println("添加成功!");
}
/**
* 根据id 查找在集合中的位置
* @param list
* @param sid
* @return
*/
public static int getIndex(ArrayList<Student> list,String sid){
//index=-1:不存在匹配sid。首先假设不存在
int index=-1;
for (int i = 0; i < list.size(); i++) {
Student student=list.get(i);
String id = student.getSid();
if (id.equals(sid)){
index=i;
}
}
return index;
}
}