目录
一.创建一个学生类
二.创建一个对象(包含以下)
1.菜单
2.添加学生信息
2.1学生学号、学生姓名、学生年龄(只能纯数字)、学生家庭地址(其中学生的学号要符合唯一性)4位数的学号。
3.删除学生信息
3.1根据学生id.进行删除学生信息
4.修改学生信息
5.查询学生信息
5.1查询个人学生信息或查询全部学生信息
6.完整代码
7.效果展示图
---------------------------------------------------------------------------------------------------------------------------------
首先创建一个类
package Project1;
public class Student {
private String id;
private String name;
private String age;
private String address;
public Student() {
super();
// TODO Auto-generated constructor stub
}
public Student(String id, String name, String age, String address) {
super();
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 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;
}
}
1.菜单
package Project1;
import java.util.ArrayList;
import java.util.Scanner;
public class StudentSystem {
public static void main(String[] args) {
ArrayList<Student> list=new ArrayList<>();
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("请输入您的选择:");
Scanner sc = new Scanner(System.in);
String choose = sc.next(); //abc
switch (choose) {
case "1" -> addStudent(list);
case "2" -> {
while(true) {
boolean sign=deleteStudent(list);
if(sign) {
System.out.println("删除成功!");
}else {
System.out.print(",删除失败!\n");
}
System.out.println("是否继续删除:是输入‘1’,否输入‘0’:");
String an=sc.next();
String fla="0";
if(an.equals(fla)) {
break;
}
}
}
case "3" -> {
while(true) {
boolean flag=updateStudent(list);
if(flag) {
System.out.println("修改成功!");
}else {
System.out.print(",修改失败!\n");
}
System.out.println("是否继续修改:是输入‘1’,否输入‘0’:");
String an=sc.next();
String fla="0";
if(an.equals(fla)) {
break;
}
}
}
case "4" -> {
while(true) {
boolean flag=queryStudent(list);
if(flag) {
System.out.println("查询成功!");
}else {
System.out.print(",查询失败!");
}
System.out.println("是否继续查询:是输入‘1’,否输入‘0’:");
String an=sc.next();
String fla="0";
if(an.equals(fla)) {
break;
}
}
}
case "5" -> {
System.out.println("退出系统");
// break loop;
System.exit(0);
}
default -> System.out.println("没有这个选项");
}
}
}
其中每一个方法都有一个循环
2.添加学生信息
//添加学生
public static ArrayList<Student> addStudent(ArrayList<Student> list) {
//ArrayList<Student> resultList=new ArrayList<>();
do{
Scanner sc = new Scanner(System.in);
Student stu = new Student();
System.out.println("请输入学生的学号,其中学号只能有4位数字(要求纯数字):");
String id;
p: while (true) {
id=sc.next();
int count=0;
if(id.length() !=4) {
System.out.println("您输入的学生学号格式错误,请重新输入:");
count++;
}
Loop: for (int i = 0; i <list.size(); i++) {
Student su = list.get(i);
if (id.equals(su.getId())) {
System.out.println("您输入的学生学号已经存在,请重新输入:");
count++;
break Loop;
}
}
if(count==0) {
break p;
}
}
System.out.println("请输入学生的姓名:");
String name = sc.next();
System.out.println("请输入学生的年龄:");
String age;
while(true) {
age=sc.next();
int count=0;
for(int i=0;i<age.length();i++) {
char c=age.charAt(i);
int year=c-'0';
if(year<0 || year>9) {
System.out.println("输入年龄中包含非法符号或英文字母,请重新输入(只能纯数字):");
count++;
break;
}
}
if(count==0)
break;
}
System.out.println("请输入学生的家庭地址:");
String address = sc.next();
stu.setName(name);
stu.setAge(age);
stu.setAddress(address);
stu.setId(id);
list.add(stu);
System.out.println("是否继续添加学生信息。继续请按(1),退出请按(0)任意键:");
String ans=sc.next();
String ling="0";
if(ans.equals(ling)) {
break;
}
}while(true);
return list;
}
3.删除学生信息
//删除学生
public static boolean deleteStudent(ArrayList<Student> list){
System.out.println("请输入要删除的学生学号:");
Scanner sc=new Scanner(System.in);
String id;
while(true) {
id=sc.next();
if(id.length()!=4)
System.out.println("输入格式错误,其中学号只能4位数,请重新输入!");
else break;
}
for(int i=0;i<list.size();i++) {
Student stu=list.get(i);
if(stu.getId().equals(id)) {
Student str=list.remove(i);
return true;
}
}
System.out.print("学生系统中不存在此id="+id);
return false;
}
4.修改学生信息
//修改学生
//显示该学生的全部信息,提示用户想修该那一部分?
//输入 1.修改学号
//输入 2.修改名字
//输入 3.修改年龄
//输入 4.修改家庭地址
public static boolean updateStudent(ArrayList<Student> list) {
System.out.println("请输入想要修改的学生学号:");
Scanner sc=new Scanner(System.in);
String id;
while(true) {
id=sc.next();
if(id.length()!=4)
System.out.println("输入格式错误,其中学号只能4位数,请重新输入!");
else break;
}
for(int i=0;i<list.size();i++) {
Student stu=list.get(i);
if(stu.getId().equals(id)) {
System.out.printf("id\t姓名\t年龄\t家庭地址\n");
System.out.printf("%s\t%s\t%s\t%s\n",stu.getId(),stu.getName(),stu.getAge(),stu.getAddress());
while(true) {
System.out.println("请选择修改那部分:1.修改学号,2.修改名字,3.修改年龄,4.修改家庭地址:");
int choose=sc.nextInt();
switch(choose) {
case 1->{
System.out.println("请输入修改的学号:"); //如果修改的id已经存在,则提示重新输入
String str;
while(true) {
int count=0;
str= sc.next();
for (int j = 0; j < list.size(); j++) {
Student s=list.get(j);
if (str.equals(id))
continue;
else if (s.getId().equals(str)) {
System.out.println("修改的id,已经存在,请重新输入:");
count++;
break;
}
else if(str.length()!=4) {
System.out.println("输入格式错误!其中学号只能4位数,请重新输入:");
count++;
break;
}
}
if(count==0) {
break;
}
}
stu.setId(str);
}
case 2->{
System.out.println("请输入修改的姓名:");
String str=sc.next();
stu.setName(str);
}
case 3->{
System.out.println("请输入修改的年龄");
String age;
while(true) {
age=sc.next();
int count=0;
for(int j=0;j<age.length();j++) {
char c=age.charAt(j);
int year=c-'0';
if(year<0 || year>9) {
System.out.println("输入年龄中包含非法符号或英文字母,请重新输入(只能纯数字):");
count++;
break;
}
}
if(count==0)
break;
}
stu.setAge(age);
}
case 4->{
System.out.println("请输入修改的家庭地址:");
String str=sc.next();
stu.setAddress(str);
}
default -> System.out.println("没有这个选项");
}
System.out.println("是否继续修改该学生信息。继续请按(1),退出请按(0)任意键:");
String ans=sc.next();
String ling="0";
if(ans.equals(ling)) {
break;
}
}
list.set(i, stu);
return true;
}
}
System.out.print("不存在此id="+id);
return false;
}
5.查询学生信息
//查询学生
public static boolean queryStudent(ArrayList<Student> list) {
System.out.println("输入1.查找全部学生信息,输入2.查找个人学生信息:");
Scanner sc=new Scanner(System.in);
int choose=sc.nextInt();
if(choose==1){
System.out.printf("id\t姓名\t年龄\t家庭地址\n");
for(int j=0;j<list.size();j++)
{
Student stu=list.get(j);
System.out.printf("%s\t%s\t%s\t%s\n",stu.getId(),stu.getName(),stu.getAge(),stu.getAddress());
}
return true;
}
else if(choose==2) {
System.out.println("请输入学生id:");
String num;
while(true) {
num=sc.next();
if(num.length()!=4)
System.out.println("输入格式错误,其中学号只能4位数,请重新输入!");
else break;
}
for(int i=0;i<list.size();i++)
{
Student stu=list.get(i);
if(num.equals(stu.getId())) {
System.out.printf("id\t姓名\t年龄\t家庭地址\n");
System.out.printf("%s\t%s\t%s\t%s\n",stu.getId(),stu.getName(),stu.getAge(),stu.getAddress());
return true;
}
}
System.out.print("学生系统中不存在此id:"+num);
return false;
}
else {
System.out.println("输入格式错误,请输入1或2:");
return false;
}
}
6.完整代码
package Project1;
import java.util.ArrayList;
import java.util.Scanner;
public class StudentSystem {
public static void main(String[] args) {
ArrayList<Student> list=new ArrayList<>();
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("请输入您的选择:");
Scanner sc = new Scanner(System.in);
String choose = sc.next(); //abc
switch (choose) {
case "1" -> addStudent(list);
case "2" -> {
while(true) {
boolean sign=deleteStudent(list);
if(sign) {
System.out.println("删除成功!");
}else {
System.out.print(",删除失败!\n");
}
System.out.println("是否继续删除:是输入‘1’,否输入‘0’:");
String an=sc.next();
String fla="0";
if(an.equals(fla)) {
break;
}
}
}
case "3" -> {
while(true) {
boolean flag=updateStudent(list);
if(flag) {
System.out.println("修改成功!");
}else {
System.out.print(",修改失败!\n");
}
System.out.println("是否继续修改:是输入‘1’,否输入‘0’:");
String an=sc.next();
String fla="0";
if(an.equals(fla)) {
break;
}
}
}
case "4" -> {
while(true) {
boolean flag=queryStudent(list);
if(flag) {
System.out.println("查询成功!");
}else {
System.out.print(",查询失败!");
}
System.out.println("是否继续查询:是输入‘1’,否输入‘0’:");
String an=sc.next();
String fla="0";
if(an.equals(fla)) {
break;
}
}
}
case "5" -> {
System.out.println("退出系统");
// break loop;
System.exit(0);
}
default -> System.out.println("没有这个选项");
}
}
}
//添加学生
public static ArrayList<Student> addStudent(ArrayList<Student> list) {
//ArrayList<Student> resultList=new ArrayList<>();
do{
Scanner sc = new Scanner(System.in);
Student stu = new Student();
System.out.println("请输入学生的学号,其中学号只能有4位数字(要求纯数字):");
String id;
p: while (true) {
id=sc.next();
int count=0;
if(id.length() !=4) {
System.out.println("您输入的学生学号格式错误,请重新输入:");
count++;
}
Loop: for (int i = 0; i <list.size(); i++) {
Student su = list.get(i);
if (id.equals(su.getId())) {
System.out.println("您输入的学生学号已经存在,请重新输入:");
count++;
break Loop;
}
}
if(count==0) {
break p;
}
}
System.out.println("请输入学生的姓名:");
String name = sc.next();
System.out.println("请输入学生的年龄:");
String age;
while(true) {
age=sc.next();
int count=0;
for(int i=0;i<age.length();i++) {
char c=age.charAt(i);
int year=c-'0';
if(year<0 || year>9) {
System.out.println("输入年龄中包含非法符号或英文字母,请重新输入(只能纯数字):");
count++;
break;
}
}
if(count==0)
break;
}
System.out.println("请输入学生的家庭地址:");
String address = sc.next();
stu.setName(name);
stu.setAge(age);
stu.setAddress(address);
stu.setId(id);
list.add(stu);
System.out.println("是否继续添加学生信息。继续请按(1),退出请按(0)任意键:");
String ans=sc.next();
String ling="0";
if(ans.equals(ling)) {
break;
}
}while(true);
return list;
}
//删除学生
public static boolean deleteStudent(ArrayList<Student> list){
System.out.println("请输入要删除的学生学号:");
Scanner sc=new Scanner(System.in);
String id;
while(true) {
id=sc.next();
if(id.length()!=4)
System.out.println("输入格式错误,其中学号只能4位数,请重新输入!");
else break;
}
for(int i=0;i<list.size();i++) {
Student stu=list.get(i);
if(stu.getId().equals(id)) {
Student str=list.remove(i);
return true;
}
}
System.out.print("学生系统中不存在此id="+id);
return false;
}
//修改学生
//显示该学生的全部信息,提示用户想修该那一部分?
//输入 1.修改学号
//输入 2.修改名字
//输入 3.修改年龄
//输入 4.修改家庭地址
public static boolean updateStudent(ArrayList<Student> list) {
System.out.println("请输入想要修改的学生学号:");
Scanner sc=new Scanner(System.in);
String id;
while(true) {
id=sc.next();
if(id.length()!=4)
System.out.println("输入格式错误,其中学号只能4位数,请重新输入!");
else break;
}
for(int i=0;i<list.size();i++) {
Student stu=list.get(i);
if(stu.getId().equals(id)) {
System.out.printf("id\t姓名\t年龄\t家庭地址\n");
System.out.printf("%s\t%s\t%s\t%s\n",stu.getId(),stu.getName(),stu.getAge(),stu.getAddress());
while(true) {
System.out.println("请选择修改那部分:1.修改学号,2.修改名字,3.修改年龄,4.修改家庭地址:");
int choose=sc.nextInt();
switch(choose) {
case 1->{
System.out.println("请输入修改的学号:"); //如果修改的id已经存在,则提示重新输入
String str;
while(true) {
int count=0;
str= sc.next();
for (int j = 0; j < list.size(); j++) {
Student s=list.get(j);
if (str.equals(id))
continue;
else if (s.getId().equals(str)) {
System.out.println("修改的id,已经存在,请重新输入:");
count++;
break;
}
else if(str.length()!=4) {
System.out.println("输入格式错误!其中学号只能4位数,请重新输入:");
count++;
break;
}
}
if(count==0) {
break;
}
}
stu.setId(str);
}
case 2->{
System.out.println("请输入修改的姓名:");
String str=sc.next();
stu.setName(str);
}
case 3->{
System.out.println("请输入修改的年龄");
String age;
while(true) {
age=sc.next();
int count=0;
for(int j=0;j<age.length();j++) {
char c=age.charAt(j);
int year=c-'0';
if(year<0 || year>9) {
System.out.println("输入年龄中包含非法符号或英文字母,请重新输入(只能纯数字):");
count++;
break;
}
}
if(count==0)
break;
}
stu.setAge(age);
}
case 4->{
System.out.println("请输入修改的家庭地址:");
String str=sc.next();
stu.setAddress(str);
}
default -> System.out.println("没有这个选项");
}
System.out.println("是否继续修改该学生信息。继续请按(1),退出请按(0)任意键:");
String ans=sc.next();
String ling="0";
if(ans.equals(ling)) {
break;
}
}
list.set(i, stu);
return true;
}
}
System.out.print("不存在此id="+id);
return false;
}
//查询学生
public static boolean queryStudent(ArrayList<Student> list) {
System.out.println("输入1.查找全部学生信息,输入2.查找个人学生信息:");
Scanner sc=new Scanner(System.in);
int choose=sc.nextInt();
if(choose==1){
System.out.printf("id\t姓名\t年龄\t家庭地址\n");
for(int j=0;j<list.size();j++)
{
Student stu=list.get(j);
System.out.printf("%s\t%s\t%s\t%s\n",stu.getId(),stu.getName(),stu.getAge(),stu.getAddress());
}
return true;
}
else if(choose==2) {
System.out.println("请输入学生id:");
String num;
while(true) {
num=sc.next();
if(num.length()!=4)
System.out.println("输入格式错误,其中学号只能4位数,请重新输入!");
else break;
}
for(int i=0;i<list.size();i++)
{
Student stu=list.get(i);
if(num.equals(stu.getId())) {
System.out.printf("id\t姓名\t年龄\t家庭地址\n");
System.out.printf("%s\t%s\t%s\t%s\n",stu.getId(),stu.getName(),stu.getAge(),stu.getAddress());
return true;
}
}
System.out.print("学生系统中不存在此id:"+num);
return false;
}
else {
System.out.println("输入格式错误,请输入1或2:");
return false;
}
}
}
7.效果展示图