(该项目通过视频讲解过程中完成,其中将一些操作进行了修改和完善,其目的是为了巩固前面学习java的一些用法,熟悉写项目的过程)
一.项目要求
学生类:
- 属性:id、姓名、年龄、家庭住址
添加功能:
- 键盘录入每一个学生信息并添加,需要满足以下要求: ID唯一
删除功能:
- 键盘录入要删除的学生id,需要满足以下要求
- id存在删除
- id不存在,需要提示不存在,并回到初始菜单
修改功能:
- 键盘录入要修改的学生id,需要满足以下要求
- id存在,继续录入其他信息
- id不存在,需要提示不存在,并回到初始菜单
查询功能:
- 打印所有的学生信息,需要满足以下要求。
- 如果没有学生信息,提示:当前无学生信息,请添加后再查询
- 如果有学生信息,需要按照以下格式输出。
二.项目过程
1.提取项目要求,按要求分成不同的模块.
2.根据各个的操作分析,采取相应的方法
添加操作:按学生属性添加成员信息
删除操作:将通过ID在学生中查找,通过返回值,判断是否存在学生,如果不为-1,即是学生的编号.
修改操作:将通过ID在学生中查找,得到学生编号,在通过Change方法,对具体的学生信息进行修改
查询操作:遍历输出成员信息.
二.代码实现
学生类 Student
package studentguangli;
import java.util.ArrayList;
public class Student {
//成员变量
private String id;
private String name;
private String sex;
private int age;
private String address;
//空参的构造方法
public Student() {
}
//带参的构造方法
public Student(String id, String name, String sex, int age, String address) {
this.id = id;
this.name = name;
this.sex = sex;
this.age = age;
this.address = address;
}
//get方法和set方法
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 getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
}
StudentSystem
package studentguangli;
import studyone.ArrUtill;
import java.util.ArrayList;
import java.util.List;
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 choice=sc.next();
switch (choice){
case "1":
Addstudent(list);
break;
case "2":
Deletestudent(list);
break;
case "3":
Changestudent(list);
break;
case "4":
Findstudent(list);
break;
case "5":
System.out.println("退出系统!");
System.exit(0);
default: break;
}
}
}
public static void Addstudent(ArrayList<Student> list){
Scanner sc=new Scanner(System.in);
String id= null;
//判断id是否唯一
while (true) {
System.out.println("请输入添加学生的id:");
id = sc.next();
boolean flag=checkid(list,id);
if(flag){
System.out.println("id重复,请重新输入:");
}else{
break;
}
}
System.out.println("请输入添加学生的姓名:");
String name=sc.next();
System.out.println("请输入添加学生的性别:");
String sex=sc.next();
System.out.println("请输入添加学生的年龄:");
int age=sc.nextInt();
System.out.println("请输入添加学生的家庭住址:");
String address=sc.next();
Student s=new Student(id,name,sex,age,address);
list.add(s);
System.out.println("学生信息添加成功!");
}
public static void Deletestudent(ArrayList<Student> list){
Scanner sc=new Scanner(System.in);
while (true) {
System.out.println("请输入要删除的学生id:");
String id=sc.next();
int k=getid(list,id);
if(k==-1){
System.out.println("没有找到此id的学生,请重新输入id:");
}else{
list.remove(k);
System.out.println("删除成功!");
break;
}
}
}
public static void Changestudent(ArrayList<Student> list){
Scanner sc=new Scanner(System.in);
while (true) {
System.out.println("请输入要修改的学生id:");
String id=sc.next();
int k=getid(list,id);
if(k==-1){
System.out.println("没有找到此id的学生,请重新输入id:");
}else{
change(list,id,k);
System.out.println("修改成功!");
break;
}
}
}
public static void Findstudent(ArrayList<Student> list){
if(list.isEmpty()){
System.out.println("暂时没有学生信息,请添加后再查询!");
return;
}
System.out.println("id\t\t姓名\t\t性别\t\t年龄\t\t家庭住址");
for(int i=0;i< list.size();i++){
Student s=list.get(i);
System.out.println(s.getId()+"\t"+s.getName()+"\t "+s.getSex()+"\t "+s.getAge()+"\t "+s.getAddress());
}
}
public static boolean checkid(ArrayList<Student> list,String id){
// //从学生中查找是否有相同的id
// for(int i=0;i<list.size();i++){
// Student s= list.get(i);
// String sid=s.getId();
// if(sid.equals(id)){
// //如果有返回true
// return true;
// }
// }
// //如果没有返回false
// return false;
return getid(list,id)>=0;
}
public static int getid(ArrayList<Student> list,String id){
//从学生中查找是否有相同的id
for(int i=0;i<list.size();i++){
Student s= list.get(i);
String sid=s.getId();
if(sid.equals(id)){
//如果有返回该学生的序号
return i;
}
}
//如果没有返回-1
return -1;
}
public static void change(ArrayList<Student> list,String id,int num){
Scanner sc=new Scanner(System.in);
Student s=list.get(num);
System.out.println("你要修改的学生信息编号(1.姓名,2.性别,3.年龄,4.家庭住址)");
int choice=sc.nextInt();
switch (choice){
case 1:
System.out.println("请输入你要修改的学生姓名:");
String newname=sc.next();
s.setName(newname);
break;
case 2:
System.out.println("请输入你要修改的学生性别:");
String newsex=sc.next();
s.setSex(newsex);
break;
case 3:
System.out.println("请输入你要修改的学生年龄:");
int newage=sc.nextInt();
s.setAge(newage);
break;
case 4:
System.out.println("请输入你要修改的学生家庭住址:");
String newaddress=sc.next();
s.setAddress(newaddress);
break;
default:break;
}
}
}