用集合类添加学生,为什么集合类里只存在第一次添加的学生?
第一个添加学生的功能,只能集合里面只有第一次添加的学生信息,后面再添加的没有。
- package com.student;
- //学生类
- class Student {
- private String name,sex;
- private int age,on,ranking;
- private double java,c_shar,html,sql,sum,avg;
- public Student(int on,String name,String sex,int age){
- this.on=on;
- this.name=name;
- if(sex.equals("男")||sex.equals("女")){
- this.sex=sex;
- }else{
- System.out.println("---性别定义不合法,请重新定义---");
- }
- if(age>0&&age<120){
- this.age=age;
- }else{
- System.out.println("---年龄定义不合法,请重新定义---");
- }
- }
- public int getOn(){
- return on;
- }
- public void setOn(int on){
- this.on=on;
- }
- public String getName(){
- return name;
- }
- public void setName(String name){
- this.name=name;
- }
- public String getSex(){
- return sex;
- }
- public void setSex(String sex){
- if(sex.equals("男")||sex.equals("女")){
- this.sex=sex;
- }else{
- System.out.println("---性别定义不合法,请重新定义---");
- }
- }
- public int getAge(){
- return age;
- }
- public void setAge(int age){
- if(age>0&&age<120){
- this.age=age;
- }else{
- System.out.println("---年龄定义不合法,请重新定义---");
- }
- }
-
- public double getJava(){
- return java;
- }
- public void setJava(double java){
- this.java=java;
- }
- public double getC_shar(){
- return c_shar;
- }
- public void setC_shar(double c_shar){
- this.c_shar=c_shar;
- }
- public double getHtml(){
- return html;
- }
- public void setHtml(double html){
- this.html=html;
- }
- public double getSql(){
- return sql;
- }
- public void setSql(double sql){
- this.sql=sql;
- }
- public double getSum(){
- return sum;
- }
- public void setSum(){
- this.sum=this.java+this.c_shar+this.html+this.sql;
- }
- public double getAvg(){
- return avg;
- }
- public void setAvg(){
- this.avg=this.sum/4;
- }
- public String toString(){
- return this.on+"\t"+this.name+"\t"+this.sex+"\t"+this.age
- +"\t"+this.java+"\t"+this.c_shar+"\t"+this.html
- +"\t"+this.sql+"\t"+this.sum+"\t"+this.avg+"\t"
- +this.ranking;
-
- }
- }
- //主程序类
- package com.student;
- import java.util.ArrayList;
- import java.util.Scanner;
- public class Test {
- public static void main(String[] args) {
- Scanner in=new Scanner(System.in);
- ArrayList al=new ArrayList();
- Admin adm=new Admin();
- while(true){
- sop("---欢迎使用学生管理系统---");
- sop("【请选择要执行的功能】");
- sop("【A】添加学生信息");
- sop("【B】删除学生信息");
- sop("【C】修改学生信息");
- sop("【D】查询学生信息");
- sop("【E】输入成绩信息");
- sop("【F】成绩排名信息");
- sop("【X】退出管理系统");
- String num=in.next();
- if(num.equals("A")||num.equals("a")){
- sop("---执行添加学生信息操作---");
- sop("请输入学生的姓名:");
- String name=in.next();
- sop("请输入学生的性别:");
- String sex=in.next();
- sop("请输入学生的年龄:");
- int age=in.nextInt();
- adm.add(al, name, sex, age);
- }else if(num.equals("B")||num.equals("b")){
- sop("---执行删除学生信息操作---");
- sop("请输入学生的学号进行删除:");
- int on=in.nextInt();
- adm.delete(al, on);
- }else if(num.equals("C")||num.equals("c")){
- sop("---执行修改学生信息操作---");
- sop("请输入学生的学号进行修改:");
- int on=in.nextInt();
- }else if(num.equals("D")||num.equals("d")){
- sop("---执行查询学生信息操作---");
- sop("【Q】查询全部学生信息 【Z】 查询指定学生信息");
- String s=in.next();
- if(s.equals("Q")||s.equals("q")){
- adm.show(al);
- }else if(s.equals("Z")||s.equals("z")){
- sop("请输入学生的学号进行查询:");
- int on=in.nextInt();
- adm.indexShow(al, on);
- }
-
- }
- }
- }
- public static void sop(Object obj){
- System.out.println(obj);
- }
- }
- //功能类
- package com.student;
- import java.util.ArrayList;
- import java.util.Iterator;
- import java.util.Scanner;
- public class Admin {
- Scanner in=new Scanner(System.in);
- String mxs="学号\t姓名\t性别\t年龄\tJAVA\tC#\tHTML\tSQL\t总分\t平均分\t名次";
- //添加学生
- public void add(ArrayList al,String name,String sex,int age){
- int on=1;
- Student student=new Student(1,name,sex,age);
- al.add(student);
- on++;
- System.out.println("添加成功"+al);
- }
- //删除学生
- public void delete(ArrayList al,int on){
- Student stu=judge(al,on);
- if(stu!=null){
- al.remove(stu);
- Test.sop("---删除成功---");
- }else{
- Test.sop("---数据库中没有此学生信息,删除失败---");
- }
- }
- //修改学生信息
- public void alter(ArrayList al,int on){
- Student stu=judge(al,on);
- if(stu!=null){
- Test.sop("请输入新学生的姓名:");
- stu.setName(in.next());
- Test.sop("请输入新学生的性别:");
- stu.setSex(in.next());
- Test.sop("请输入新学生的年龄:");
- stu.setAge(in.nextInt());
- Test.sop("---更改学生信息成功---");
- Test.sop(mxs);
- Test.sop(stu);
- }else{
- Test.sop("---数据库中没有此学生,请选择添加功能操作---");
- }
- }
- //遍历全部学生信息
- public void show(ArrayList al){
- Test.sop(mxs);
- for(Iterator it=al.iterator();it.hasNext();){
- it.next();
- }
- }
- //遍历指定学生信息
- public void indexShow(ArrayList al,int on){
- Student stu=judge(al,on);
- if(stu!=null){
- Test.sop(mxs);
- Test.sop(stu);
- }else{
- Test.sop("---数据库中没有此学生---");
- }
- }
- //返回要查找的学生对象
- public Student judge(ArrayList al,int on){
- for(Iterator it=al.iterator();it.hasNext();){
- Student stu=(Student) it.next();
- if(stu.getOn()==on){
- return stu;
- }
- }
- return null;
- }
- }
复制代码 |