本帖最后由 java2000_net 于 2008-08-05 11:11:33 编辑

解决方案 »

  1.   

    我还有个问题哈
    import java.util.Scanner;
    public class Student{ // 定义一个学生类 该类包括学生姓名  性别 成绩三个属性

    private String name;
    private String sex;
    private float  score;
    public Student(){

    }

    public Student(String name,String sex,float score){
       this.name=name;
       this.sex=sex;
       this.score=score; 
    }

    public String getName(){
       return name;
    }
    public String getSex(){
       return sex;
    }
    public float getScore(){
       return score;
    }
    public void getMax(int length, Student [] std){//获取最高分的方法
    float max;
    max=std[0].getScore();

    for(int i=0;i<length;i++){

    if(std[i].getScore()>max){

       max=std[i].getScore();

    }
    System.out.println("最大值为:"+max);
    }
    }
    public void getMin(int length,Student [] std){ //获取最低分的方法
    float min;
    min=std[0].getScore();
    for(int i=0;i<std.length;i++){

    if(std[i].getScore()<min){

       min=std[i].getScore();

    }





    }
    System.out.println("最小值为:"+min);
    }

    public void Delete(int length,Student []std){  // 删除某个学生信息的方法
    int index=0,i=0;
    length--;
    System.out.println("请输入要删除的学生姓名:");
    Scanner S=new Scanner(System.in);
    String name=S.next();
      for(;i<length;i++){
    if(name==std[i].getName())
    index=i;break;
    }
        if(i<length){
        
        
         for( i=index;i<length;i++){
         std[i]=std[i+1];
         }
        
        }
        
         else
          System.out.println("你忽悠我啊!");
        
        }

       
    public void Add(int length,Student []std){ //增加某个学生信息的方法
    int index=0 ,i=0;
    length++;
    Scanner S=new Scanner(System.in);
         System.out.println("请输入要添加的学生的信息:");
         String name=S.next();
    String sex=S.next();
    float score=S.nextFloat();
    Student goodboy=new Student(name,sex,score);
    for(;i<length;i++){
    if(goodboy.getScore()>std[i].getScore())
    index=i;break;
    }
         if(i==length-1){
         std[length]=goodboy;
        
        
        
        }
        else{
         for( i=length-1;i>=index;i--){
         std[i+1]=std[i];
         }
         std[i]=goodboy;
        
         }
        
    }
    public void reSearch(int length,Student []std){ //查找某个学生信息的方法
    Scanner S=new Scanner(System.in);
    System.out.println("请输入要查找到学生姓名:");
    String name=S.next();
    for(int i=0;i<length;i++){
      if(std[i].getName()==name){
      System.out.println("改学生的具体信息如下:");
      std[i].disPlay();
     
      }
      else 
      System.out.println("查无此人!");
     
      }

    }

    public void Change(int length,Student []std){  //更改某个学生信息的方法
    Scanner S=new Scanner(System.in);
    System.out.println("请输入你要更改的学生姓名");
    String name1=S.next();
    for(int i=0;i<length;i++){
         if(std[i].getName()==name){
         String name=S.next();
    String sex=S.next();
    float score=S.nextFloat();
    std[i]=new Student(name,sex,score);
        
         }
         }


    }
    public void Sort(int length ,Student []std){ //按照成绩降序来排序
    int i,j;
    Student jack=new Student();
    for(i=0;i<length;i++){
    for(j=0;j<length-1-i;j++){
    if(std[j].getScore()<std[j+1].getScore())
    jack=std[j];
    std[j]=std[j+1];
    std[j+1]=jack;

    }
    }
    }
    public void disPlay(){ // 输出函数
    System.out.println("姓名:"+name+"性别:"+sex+"成绩:"+score);
    }
    }
      

  2.   

                 
        
     
      大家好啊 我还有个问题咯
    我定义了一个学生类Student 并且用测试类来进行有关的操作 代码如下
    运行结果在最下面 请给我解释下好不?? (io法和jdk两种输入偶都试过了!)
    //Student类
    public class Student{
     
     private String name;
     private String sex;
     private double score;
      
      
     public Student(String name,String sex,double score){
        this.name=name;
        this.sex=sex;
        this.score=score;  
      }
     public void setName(String name){
      this.name=name;
      } 
      
     public String getName(){
      return this.name;
      }
     public void setSex(String sex){
      this.sex=sex;
      } 
      
     public String getSex(){
      return this.sex;
      }
     public void setScore(double score){
      this.score=score;
      }
     public double getScore(){
         return score;
      }
     public void disPlay(){
      System.out.println("姓名:"+this.name+"性别:"+this.sex+"成绩:"+this.score);
      }
     
    }
    Demo类
    import java.io.*;
    public class Demo{
     public static void main(String [] args)throws IOException{
      String mystring;
      int number;
      BufferedReader bur=new BufferedReader(new InputStreamReader(System.in));
      System.out.println("请输入人数:");
      mystring=bur.readLine();
      number=Integer.parseInt(mystring);
      
      
      Student []std=new Student[number];
      System.out.println(std.length);
     
      
      for(int i=0;i<std.length;i++){
       System.out.println("请输入学生信息:");
       String name;
       String sex;
       double score;
       name=bur.readLine();
      
       sex=bur.readLine();
      
       mystring=bur.readLine();
       score=Integer.parseInt(mystring);
        std[i]=new Student(name,sex,score);
       
       
       
       }
      System.out.println("学生信息如下:");
      for(int i=0;i<std.length;i++){
      
       std[i].disPlay();
       
       
       
       }
      
      
      double min,max;
      min=max=std[0].getScore();
       
      for(int i=0;i<std.length;i++){
       
       if(std[i].getScore()>max){
       
          max=std[i].getScore();
       
       }
       
       
       
       
       
      }
      System.out.println("最大值为:"+max);
       
      for(int i=0;i<std.length;i++){
       
       if(std[i].getScore()<min){
       
          min=std[i].getScore();
       
       }
       
       
       
       
       
      }
      System.out.println("最大值为:"+min);
      
      
      }
      
    }
    //当错误的输入时
    请输入人数:
    2
    2
    请输入学生信息:
    0015
    male
    99
    请输入学生信息:
    0016
    female
    77
    学生信息如下:
    姓名:0015性别:0015成绩:15.0
    姓名:0016性别:0016成绩:16.0
    最大值为:16.0
    最大值为:15.0
    Process completed.
    //当正确输入时
    请输入学生信息:
    xiaomiao
    male
    78
    Exception in thread "main" java.lang.NumberFormatException: For input string: "xiaomiao"
        at java.lang.NumberFormatException.forInputString(NumberFormatException.java:48)
        at java.lang.Integer.parseInt(Integer.java:447)
        at java.lang.Integer.parseInt(Integer.java:497)
        at Demo.main(Demo.java:26)
    Process completed.   
      

  3.   

    数据转化错误,Integer.parseInt();
    xiaomiao是字符类型。
      

  4.   

    从Exception in thread "main" java.lang.NumberFormatException: For input string: "xiaomiao"这条异常信息来看可能是
    mystring=bur.readLine(); 
      number=Integer.parseInt(mystring); 
      
    转换时出了问题,你输入的“xiaomiao”为字符串,不能转换为整型
      

  5.   

    关键代码 
    public void Sort(int length ,Student []std){ //按照成绩降序来排序 
    int i,j; 
    Student jack=new Student(); 
    for(i=0;i <length;i++){ 
    for(j=0;j <length-1-i;j++){ 
    if(std[j].getScore() <std[j+1].getScore()) 
    jack=std[j]; 
    std[j]=std[j+1]; 
    std[j+1]=jack; }