实现的功能
在一个ArrayList中存储Stu对象,
要求完成:
1.向集合中添加新学生
2.删除指定学号的学生
3.修改指定学生的指定信息
4.查看所有学生,查询指定学号的学生
5.查询年纪最大的学生
6.查询分数最高的学生
7.查询不集及格的人数
8.查询女生的平均分
*
测试类
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
Scanner sc =new Scanner(System.in);//创建Scanner类
StuUtils su = new StuUtils();//创建一个学生工具类
System.out.println("欢迎来到学生管理系统");
for (;;){
System.out.println("请输入:1添加学生 2.删除指定学生学号 3.修改学生信息 4.查询学生" +
"5查询年纪最大的学生 6查询分数最高的学生 7 查询不及格的认识 8查询女生的平均分");
switch (sc.nextInt()){
case 1:
su.saveStu();
break;
case 2:
su.deleteStu();
break;
case 3:
su.updateStu();
break;
case 4:
su.show();
break;
case 5:
su.f5();
break;
case 6:
su.f6();
break;
case 7:
su.f7();
break;
case 8:
su.f8();
break;
}
}
}
}
学生类
public class Stu{//学生类
private String id;//属性
private String name;
private String sex;
private Integer age;
private Double score;//属性
public Stu() {//无参构造函数
}
public Stu(String id, String name, String sex, Integer age, Double score) {//重载构造函数
this.id = id;
this.name = name;
this.sex = sex;
this.age = age;
this.score = score;
}
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 Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
public Double getScore() {
return score;
}
public void setScore(Double score) {
this.score = score;
}
@Override
public String toString() {
return "Stu{" +
"id='" + id + '\'' +
", name='" + name + '\'' +
", sex='" + sex + '\'' +
", age=" + age +
", score=" + score +
'}';
}
}
学生工具方法类
import java.util.ArrayList;
import java.util.Scanner;
public class StuUtils {//这是一个学生工具类
private Scanner sc;//创建一个私有化的对象输入数字
private ArrayList<Stu> stus;//创建一个私有化的学生数组
public StuUtils(){//构造函数调用成员方法可以初始化
sc =new Scanner(System.in);//实例化调用sc
stus = new ArrayList<>();//实例化学生对象调用stus
}
public Stu isExisst(String id){//定义一个方法是否有学生
for (int i=0; i<=stus.size()-1;i++){//遍历学生集合
Stu s =stus.get(i);//学生集合里的每个学生
if(s.getId().equals(id)){//看每个学生的id是否是和你传的id一样
return s;
}
}
return null;
}
public void saveStu(){//定义一个方法保存学生属性到集合里面
System.out.println("请输入新学生的学号");
String id = sc.next();
System.out.println("请输入新学生的姓名");
String name = sc.next();
System.out.println("请输入新学生的性别");
String sex = sc.next();
System.out.println("请输入新学生的年龄");
Integer age = sc.nextInt();
System.out.println("请输入新学生的成绩");
Double score = sc.nextDouble();
//创建学生和他的属性完成
Stu s = new Stu(id,name,sex,age,score);
stus.add(s);//添加学生对象stus为学生集合
}
public void showAllStus(){//定义一个方法查看所以学生
if (stus.size()==0){//判断是否有学生
System.out.println("没有学生");
return ;
}
for (int i=0; i<=stus.size()-1;i++){//遍历学生集合
Stu s =stus.get(i);//学生集合里的每个学生
System.out.println(s);
}
}
public void deleteStu(){//定义一个方法删除学生
System.out.println("请输入要删除的学生的学号");
String id =sc.next();
Stu s = isExisst(id);//创造学生对象调方法看是否有学生
if (s==null){
System.out.println("查无此人");
}else {
stus.remove(s);//删除学生
System.out.println("删除成功");
}
}
public void showOneStu(){
System.out.println("请输入要查看的学生的学号");
String id = sc.next();//接收id
Stu s = isExisst(id);//创造学生对象调方法看是否有学生
if (s==null){
System.out.println("查无此人");
}else {
System.out.println(s);//有就输出学生对象
}
}
public void updateStu(){//定义一个修改学生的方法
System.out.println("请输入要修改的学生的学号");
String id = sc.next();//接收id
Stu s = isExisst(id);//创造学生对象调方法看是否有学生
if (s==null){
System.out.println("查无此人");
}else {
System.out.println("请输入1:修改年龄2:修改成绩");
Integer num =sc.nextInt();// 接收输入的值
if (num == 1){
System.out.println("请输入新的年龄");
Integer age = sc.nextInt();//接收输入的年龄
s.setAge(age);//设置年龄
}else if (num == 2){
System.out.println("请输入新的成绩");
Double score = sc.nextDouble();//接收输入的成绩
s.setScore(score);//设置成绩
}
System.out.println("修改成功");
}
}
public void show(){//定义一个查看学生的方法答题用
System.out.println("请输入1:查看所以学生2:查看指定学生");
Integer num =sc.nextInt();// 接收输入的值
if (num == 1){
showAllStus();//调方法
}else if (num == 2){
showOneStu();//调方法
}
}
public void f5(){//定义一个查看年龄最大的学生
if (stus.size()==0){//判断集合是否为0;
System.out.println("没有学生");
return ;//直接结束
}
Stu stu = stus.get(0);//创建一个下标为0的学生为最大年龄
for (int i =1;i <= stus.size()-1;i++){
Stu s = stus.get(i);//创建一个学生为i
if(s.getAge()>stu.getAge()){//比年龄大小
stu = s;//把最大的赋值给下标为0的学生
}
}
for (Stu t : stus){//(类型 变量 容器)遍历学生集合
if(t.getAge() == stu.getAge()){//找到和最大年龄的学生
System.out.println(t);//输出这几个学生
}
}
}
public void f6(){//定义一个查看分数最高的学生的方法
if (stus.size()==0){//判断集合是否为0;
System.out.println("没有学生");
return ;//直接结束
}
Stu stu = stus.get(0);//创建一个下标为0的学生分数最高
for (int i =0;i <= stus.size()-1;i++){
Stu s = stus.get(i);//创建一个学生为i
if(s.getScore()>stu.getScore()){//比年龄大小
stu = s;//把最大的赋值给下标为0的学生
}
}
for (Stu t : stus){//(类型 变量 容器)遍历学生集合
if(t.getScore() == stu.getScore()){//找到和最大年龄的学生
System.out.println(t);//输出这几个学生
}
}
}
public void f7(){//定义一个查看成绩的学生的方法
Integer c = 0;//最小的成绩
if (stus.size()==0){//判断集合是否为0;
System.out.println("没有学生");
return ;//直接结束
}
for (int i =0;i <= stus.size()-1;i++){
Stu s = stus.get(i);//创建一个学生为i
if (s.getScore()<60){
c++;
}
}
System.out.println("不及格的学生"+c);
}
public void f8() {//定义一个方法求女生的平均分
double sum = 0;//女生总分数
int c = 0;//几个多少成绩不合格的
if (stus.size() == 0) {//判断集合是否为0;
System.out.println("没有学生");
return;//直接结束
}
for (int i = 0; i <= stus.size() - 1; i++) {
Stu s = stus.get(i);//创建一个学生为i
if (s.getSex().equals("女")){//查看女学生
sum += s.getScore();//添加女学生的成绩
c ++;//添加女学生
}
}
System.out.println(sum/c);//总分除以人数
}
}