A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

用集合类添加学生,为什么集合类里只存在第一次添加的学生?
第一个添加学生的功能,只能集合里面只有第一次添加的学生信息,后面再添加的没有。
  1. package com.student;
  2. //学生类
  3. class Student {
  4.         private String name,sex;
  5.         private int age,on,ranking;
  6.         private double java,c_shar,html,sql,sum,avg;
  7.         public Student(int on,String name,String sex,int age){
  8.                 this.on=on;
  9.                 this.name=name;
  10.                 if(sex.equals("男")||sex.equals("女")){
  11.                 this.sex=sex;
  12.                 }else{
  13.                         System.out.println("---性别定义不合法,请重新定义---");
  14.                 }
  15.                 if(age>0&&age<120){
  16.                 this.age=age;
  17.                 }else{
  18.                         System.out.println("---年龄定义不合法,请重新定义---");
  19.                 }
  20.         }
  21.         public int getOn(){
  22.                 return on;
  23.         }
  24.         public void setOn(int on){
  25.                 this.on=on;
  26.         }
  27.         public String getName(){
  28.                 return name;
  29.         }
  30.         public void setName(String name){
  31.                 this.name=name;
  32.         }
  33.         public String getSex(){
  34.                 return sex;
  35.         }
  36.         public void setSex(String sex){
  37.                 if(sex.equals("男")||sex.equals("女")){
  38.                         this.sex=sex;
  39.                         }else{
  40.                                 System.out.println("---性别定义不合法,请重新定义---");
  41.                         }
  42.         }
  43.         public int getAge(){
  44.                 return age;
  45.         }
  46.         public void setAge(int age){
  47.                 if(age>0&&age<120){
  48.                         this.age=age;
  49.                         }else{
  50.                                 System.out.println("---年龄定义不合法,请重新定义---");
  51.                         }
  52.         }
  53.        
  54.         public double getJava(){
  55.                 return java;
  56.         }
  57.         public void setJava(double java){
  58.                 this.java=java;
  59.         }
  60.         public double getC_shar(){
  61.                 return c_shar;
  62.         }
  63.         public void setC_shar(double c_shar){
  64.                 this.c_shar=c_shar;
  65.         }
  66.         public double getHtml(){
  67.                 return html;
  68.         }
  69.         public void setHtml(double html){
  70.                 this.html=html;
  71.         }
  72.         public double getSql(){
  73.                 return sql;
  74.         }
  75.         public void setSql(double sql){
  76.                 this.sql=sql;
  77.         }
  78.         public double getSum(){
  79.                 return sum;
  80.         }
  81.         public void setSum(){
  82.                 this.sum=this.java+this.c_shar+this.html+this.sql;
  83.         }
  84.         public double getAvg(){
  85.                 return avg;
  86.         }
  87.         public void setAvg(){
  88.                 this.avg=this.sum/4;
  89.         }
  90.         public String toString(){
  91.                 return this.on+"\t"+this.name+"\t"+this.sex+"\t"+this.age
  92.                                 +"\t"+this.java+"\t"+this.c_shar+"\t"+this.html
  93.                                 +"\t"+this.sql+"\t"+this.sum+"\t"+this.avg+"\t"
  94.                                 +this.ranking;
  95.                                
  96.         }
  97. }
  98. //主程序类

  99. package com.student;
  100. import java.util.ArrayList;
  101. import java.util.Scanner;
  102. public class Test {
  103.         public static void main(String[] args) {
  104.                 Scanner in=new Scanner(System.in);
  105.                 ArrayList al=new ArrayList();
  106.                 Admin adm=new Admin();
  107.                 while(true){
  108.                         sop("---欢迎使用学生管理系统---");
  109.                         sop("【请选择要执行的功能】");
  110.                         sop("【A】添加学生信息");
  111.                         sop("【B】删除学生信息");
  112.                         sop("【C】修改学生信息");
  113.                         sop("【D】查询学生信息");
  114.                         sop("【E】输入成绩信息");
  115.                         sop("【F】成绩排名信息");
  116.                         sop("【X】退出管理系统");
  117.                         String num=in.next();
  118.                         if(num.equals("A")||num.equals("a")){
  119.                                 sop("---执行添加学生信息操作---");
  120.                                 sop("请输入学生的姓名:");
  121.                                 String name=in.next();
  122.                                 sop("请输入学生的性别:");
  123.                                 String sex=in.next();
  124.                                 sop("请输入学生的年龄:");
  125.                                 int age=in.nextInt();
  126.                                 adm.add(al, name, sex, age);
  127.                         }else if(num.equals("B")||num.equals("b")){
  128.                                 sop("---执行删除学生信息操作---");
  129.                                 sop("请输入学生的学号进行删除:");
  130.                                 int on=in.nextInt();
  131.                                 adm.delete(al, on);
  132.                         }else if(num.equals("C")||num.equals("c")){
  133.                                 sop("---执行修改学生信息操作---");
  134.                                 sop("请输入学生的学号进行修改:");
  135.                                 int on=in.nextInt();
  136.                         }else if(num.equals("D")||num.equals("d")){
  137.                                 sop("---执行查询学生信息操作---");
  138.                                 sop("【Q】查询全部学生信息      【Z】 查询指定学生信息");
  139.                                 String s=in.next();
  140.                                 if(s.equals("Q")||s.equals("q")){
  141.                                         adm.show(al);
  142.                                 }else if(s.equals("Z")||s.equals("z")){
  143.                                         sop("请输入学生的学号进行查询:");
  144.                                         int on=in.nextInt();
  145.                                         adm.indexShow(al, on);
  146.                                 }
  147.                                
  148.                         }
  149.                 }
  150.         }
  151.         public static void sop(Object obj){
  152.                 System.out.println(obj);
  153.         }
  154. }
  155. //功能类

  156. package com.student;

  157. import java.util.ArrayList;
  158. import java.util.Iterator;
  159. import java.util.Scanner;

  160. public class Admin {
  161.         Scanner in=new Scanner(System.in);
  162.         String mxs="学号\t姓名\t性别\t年龄\tJAVA\tC#\tHTML\tSQL\t总分\t平均分\t名次";
  163.         //添加学生
  164.         public void add(ArrayList al,String name,String sex,int age){
  165.                 int on=1;
  166.                 Student student=new Student(1,name,sex,age);
  167.                 al.add(student);
  168.                 on++;
  169.                 System.out.println("添加成功"+al);
  170.         }
  171.         //删除学生
  172.         public void delete(ArrayList al,int on){
  173.                 Student stu=judge(al,on);
  174.                 if(stu!=null){
  175.                         al.remove(stu);
  176.                         Test.sop("---删除成功---");
  177.                 }else{
  178.                         Test.sop("---数据库中没有此学生信息,删除失败---");
  179.                 }
  180.         }
  181.         //修改学生信息
  182.         public void alter(ArrayList al,int on){
  183.                 Student stu=judge(al,on);
  184.                 if(stu!=null){
  185.                         Test.sop("请输入新学生的姓名:");
  186.                         stu.setName(in.next());
  187.                         Test.sop("请输入新学生的性别:");
  188.                         stu.setSex(in.next());
  189.                         Test.sop("请输入新学生的年龄:");
  190.                         stu.setAge(in.nextInt());
  191.                         Test.sop("---更改学生信息成功---");
  192.                         Test.sop(mxs);
  193.                         Test.sop(stu);
  194.                 }else{
  195.                         Test.sop("---数据库中没有此学生,请选择添加功能操作---");
  196.                 }
  197.         }
  198.         //遍历全部学生信息
  199.         public void show(ArrayList al){
  200.                 Test.sop(mxs);
  201.                 for(Iterator it=al.iterator();it.hasNext();){
  202.                         it.next();
  203.                 }
  204.         }
  205.         //遍历指定学生信息
  206.         public void indexShow(ArrayList al,int on){
  207.                 Student stu=judge(al,on);
  208.                 if(stu!=null){
  209.                         Test.sop(mxs);
  210.                         Test.sop(stu);
  211.                 }else{
  212.                         Test.sop("---数据库中没有此学生---");
  213.                 }
  214.         }
  215.         //返回要查找的学生对象
  216.         public Student judge(ArrayList al,int on){
  217.                 for(Iterator it=al.iterator();it.hasNext();){
  218.                         Student stu=(Student) it.next();
  219.                         if(stu.getOn()==on){
  220.                                 return stu;
  221.                         }
  222.                 }
  223.                 return null;
  224.         }
  225. }
复制代码

评分

参与人数 1技术分 +1 收起 理由
天涯追梦 + 1

查看全部评分

6 个回复

正序浏览
龙健 中级黑马 2014-5-16 01:18:31
7#
这样长的代码,眼睛都给我看瞎了。。。。
回复 使用道具 举报
焚雨成灰 发表于 2014-5-13 23:27
it.next()都没有打印,你想看什么

看添加学生的方法里,里面有输入,
回复 使用道具 举报
还是新手。代码略长 保险起见 每部都打印输出下。 2#说的对。
回复 使用道具 举报
程序太长,没看
回复 使用道具 举报
  1. //遍历全部学生信息
  2.         public void show(ArrayList al){
  3.                 Test.sop(mxs);
  4.                 for(Iterator it=al.iterator();it.hasNext();){
  5.                         it.next();
  6.                 }
  7.         }
复制代码


it.next()都没有打印,你想看什么
回复 使用道具 举报
占楼拿币去黑马!!!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马