条件要求:
自己写的代码:
public class Student{
private String id;
private String name;
private int age;
private String address;
public Student() {
}
public Student(String id, String name, int age, String address) {
this.id = id;
this.name = name;
this.age = age;
this.address = address;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
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 getAddress() {
return this.address;
}
public void setAddress(String address) {
this.address = address;
}
}
import java.util.ArrayList;
import java.util.Scanner;
public class practice{
static ArrayList<Student> list= new ArrayList<>();
public static void main(String[] args) {
zhu();
}
public static void zhu(){
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("请输入你的选择:");
Scanner input = new Scanner(System.in);
int n = input.nextInt();
switch(n){
case 1 :
add();
break;
case 2 :
delete(list);
break;
case 3 :
gai(list);
break;
case 4 :
cha(list);
default:
break;
}
}
//添加
public static void add(){
Scanner input = new Scanner(System.in);
System.out.println("请输入你要添加学生个数:");
int i = input.nextInt();
for(int j=0;j<i;j++) {
Student s = new Student();
System.out.println("请输入学生的id:");
String id = input.next();
System.out.println("请输入学生的姓名:");
String name = input.next();
System.out.println("请输入学生的年龄:");
int age = input.nextInt();
System.out.println("请输入学生的家庭地址:");
String address = input.next();
s.setId(id);
s.setName(name);
s.setAge(age);
s.setAddress(address);
list.add(s);
}
zhu();
}
//删除
public static void delete(ArrayList<Student> list){
Scanner input = new Scanner(System.in);
System.out.println("请输入你要删除的学生的id:");
String id1 = input.next();
for(int i=0;i<list.size();i++){
String id = list.get(i).getId();
if(id.equals(id1)){
list.remove(i);
break;
}else{
System.out.println("该学生不存在");
zhu();
}
}
}
//修改
public static void gai(ArrayList<Student> list){
Scanner input = new Scanner(System.in);
System.out.println("请输入你要修改的学生的id:");
String id2 = input.next();
for(int i=0;i<list.size();i++) {
String id = list.get(i).getId();
if (id.equals(id2)) {
System.out.println("请输入你要修改的内容");
System.out.println("1、修改名字");
System.out.println("2、修改id");
System.out.println("3、修改年龄");
System.out.println("4、修改地址");
int n = input.nextInt();
switch (n) {
case 1:
System.out.println("输入要修改的名字:");
String name = input.next();
list.get(i).setName(name);
break;
case 2:
System.out.println("请输入要修改的id:");
String id3 = input.next();
list.get(i).setId(id3);
break;
case 3:
System.out.println("请输入要修改的年龄:");
String age = input.next();
list.get(i).setId(age);
break;
case 4:
System.out.println("请输入要修改的地址:");
String address = input.next();
list.get(i).setId(address);
break;
}
}
System.out.println("该学生不存在");
zhu();
}
}
//查询
public static void cha(ArrayList<Student> list){
if(list.size()!=0){
System.out.println("id"+"\t"+"名字"+"\t"+"年龄"+"\t"+"地址"+"\t");
for(int i=0;i<list.size();i++){
Student stu = list.get(i);
System.out.println(stu.getId()+"\t"+stu.getName()+"\t"+stu.getAge()+"\t"+stu.getAddress());
}
}else{
System.out.println("暂无学生信息,请添加后再查询");
zhu();
}
/*Scanner input = new Scanner(System.in);
System.out.println("请输入你要查询的学生的id:");
String id2 = input.next();
for(int i=0;i<list.size();i++) {
String id = list.get(i).getId();
if(id.equals(id2)){
System.out.println("id"+"\t"+"名字"+"\t"+"年龄"+"\t"+"地址"+"\t");
System.out.println(list.get(i).getId()+"\t"+list.get(i).getName()+"\t"+list.get(i).getAge()+"\t"+list.get(i).getAddress());
break;
}
System.out.println("该学生不存在");
zhu();
}*/
}
}
结果截图:
视频:
初始界面:
注意点1:
输入的String类型,可以提高容错性,输入abc也可以,下面Switch case循环的 1 为字符串类型,要加双引号;
注意点2:
1、退出的一种写法:
break写在了switch循环里面,会出现什么情况,到底退出了哪个循环?
验证一下:
运行结果:
所以可以改为:
2、退出的第二种写法:
java中的system.exit(0)表示程序正常退出的意思。在程序执行过程中,如果某个条件满足需要立即终止程序的执行,可以使用system.exit(0)来实现。其中参数0表示退出码,0表示正常退出,非0表示异常退出。调用system.exit(0)会终止当前正在执行的线程,并且关闭所有的非守护线程。
添加学生:
添加学生的第一种方式:
添加学生的第二种方式:
注意点:提示一下添加成功:最后的代码:
判断id唯一性:
删除学生:
判断id是否存在的两种方法:
1、调用添加用到的判断方法
2、通过id获取索引判断,如果索引>=0,说明存在,否则不存在:
循环遍历与判断id是否存在重复,所以,可以通过调用getIndex方法,进行简化
最终的删除方法代码:
修改学生:
查询学生:
修改后自己写的的代码:
1、删除部分有错,改为:
2、修改模块修改为:
//修改
public static void gai(ArrayList<Student> list){
Scanner input = new Scanner(System.in);
System.out.println("请输入你要修改的学生的id:");
String id2 = input.next();
for(int i=0;i<list.size();i++) {
String id = list.get(i).getId();
if (id.equals(id2)) {
System.out.println("输入要修改的名字:");
String name = input.next();
list.get(i).setName(name);
System.out.println("请输入要修改的年龄:");
String age = input.next();
list.get(i).setId(age);
System.out.println("请输入要修改的地址:");
String address = input.next();
list.get(i).setId(address);
zhu();
System.exit(0);
}
/*System.out.println("请输入你要修改的内容");
System.out.println("1、修改名字");
System.out.println("2、修改id");
System.out.println("3、修改年龄");
System.out.println("4、修改地址");
int n = input.nextInt();
switch (n) {
case 1:
System.out.println("输入要修改的名字:");
String name = input.next();
list.get(i).setName(name);
break;
case 2:
System.out.println("请输入要修改的id:");
String id3 = input.next();
list.get(i).setId(id3);
break;
case 3:
System.out.println("请输入要修改的年龄:");
String age = input.next();
list.get(i).setId(age);
break;
case 4:
System.out.println("请输入要修改的地址:");
String address = input.next();
list.get(i).setId(address);
break;
}
}*/
}
System.out.println("该学生不存在");
zhu();
}
整体代码修改:
import java.util.ArrayList;
import java.util.Scanner;
public class practice{
static ArrayList<Student> list= new ArrayList<>();
public static void main(String[] args) {
zhu();
}
public static void zhu(){
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("请输入你的选择:");
Scanner input = new Scanner(System.in);
int n = input.nextInt();
switch(n){
case 1 :
add();
break;
case 2 :
delete(list);
break;
case 3 :
gai(list);
break;
case 4 :
cha(list);
default:
break;
}
}
//添加
public static void add(){
Scanner input = new Scanner(System.in);
System.out.println("请输入你要添加学生个数:");
int i = input.nextInt();
for(int j=0;j<i;j++) {
Student s = new Student();
System.out.println("请输入学生的id:");
String id = input.next();
//判断
boolean b = judge(id,list);
if(b){
System.out.println("id重复,请输入正确的id");
break;
}
System.out.println("请输入学生的姓名:");
String name = input.next();
System.out.println("请输入学生的年龄:");
int age = input.nextInt();
System.out.println("请输入学生的家庭地址:");
String address = input.next();
s.setId(id);
s.setName(name);
s.setAge(age);
s.setAddress(address);
list.add(s);
System.out.println("添加成功");
}
zhu();
}
//删除
public static void delete(ArrayList<Student> list){
Scanner input = new Scanner(System.in);
System.out.println("请输入你要删除的学生的id:");
String id1 = input.next();
for(int i=0;i<list.size();i++){
String id = list.get(i).getId();
if(id.equals(id1)){
list.remove(i);
System.out.println("删除成功");
zhu();
System.exit(0);
}
}
System.out.println("该学生不存在");
zhu();
}
//修改
public static void gai(ArrayList<Student> list){
Scanner input = new Scanner(System.in);
System.out.println("请输入你要修改的学生的id:");
String id2 = input.next();
for(int i=0;i<list.size();i++) {
String id = list.get(i).getId();
if (id.equals(id2)) {
System.out.println("输入要修改的名字:");
String name = input.next();
list.get(i).setName(name);
System.out.println("请输入要修改的年龄:");
String age = input.next();
list.get(i).setId(age);
System.out.println("请输入要修改的地址:");
String address = input.next();
list.get(i).setId(address);
zhu();
System.exit(0);
}
/*System.out.println("请输入你要修改的内容");
System.out.println("1、修改名字");
System.out.println("2、修改id");
System.out.println("3、修改年龄");
System.out.println("4、修改地址");
int n = input.nextInt();
switch (n) {
case 1:
System.out.println("输入要修改的名字:");
String name = input.next();
list.get(i).setName(name);
break;
case 2:
System.out.println("请输入要修改的id:");
String id3 = input.next();
list.get(i).setId(id3);
break;
case 3:
System.out.println("请输入要修改的年龄:");
String age = input.next();
list.get(i).setId(age);
break;
case 4:
System.out.println("请输入要修改的地址:");
String address = input.next();
list.get(i).setId(address);
break;
}
}*/
}
System.out.println("该学生不存在");
zhu();
}
//查询
public static void cha(ArrayList<Student> list){
if(list.size()!=0){
System.out.println("id"+"\t"+"名字"+"\t"+"年龄"+"\t"+"地址"+"\t");
for(int i=0;i<list.size();i++){
Student stu = list.get(i);
System.out.println(stu.getId()+"\t"+stu.getName()+"\t"+stu.getAge()+"\t"+stu.getAddress());
}
}else{
System.out.println("暂无学生信息,请添加后再查询");
}
zhu();
/*Scanner input = new Scanner(System.in);
System.out.println("请输入你要查询的学生的id:");
String id2 = input.next();
for(int i=0;i<list.size();i++) {
String id = list.get(i).getId();
if(id.equals(id2)){
System.out.println("id"+"\t"+"名字"+"\t"+"年龄"+"\t"+"地址"+"\t");
System.out.println(list.get(i).getId()+"\t"+list.get(i).getName()+"\t"+list.get(i).getAge()+"\t"+list.get(i).getAddress());
break;
}
System.out.println("该学生不存在");
zhu();
}*/
}
//判断id是否唯一:
public static boolean judge(String id,ArrayList<Student> list){
for(int i=0;i<list.size();i++){
String id1 = list.get(i).getId();
if(id.equals(id1)){
return true;
}
}
return false;
}
}