LUCKY sweet 2018-12-10 08:58 采纳率: 0%
浏览 483
已采纳

菜鸟求帮助 大神能帮忙补完整么

package com.sosee;
/**

  • @author :请填写自己的姓名
  • @date :请填写编写代码的日期
  • @function:请描述要实现的功能
    */
    public class StudentManage {
    private String[] studentName;//存储学生姓名

    /**

    • 初始化学生姓名数组,长度为10
    • @param length */ public void initArray(int length){

    }

    /**

    • 利用键盘输入学生姓名,输入姓名必须用拼音或英文 */ public void inputStudentName(){

    }

    /**

    • 对学生姓名按字典顺序从A到Z进行排序,可以采用冒泡或其他排序方法 */ public void sortStudentName(){

    }

    /**

    • 利用键盘输入某个学生姓名,利用折半查找法从排序后的学生名单中找出此人在数组中的位置,并返回结果:
    • 如果找到结果格式:姓名:位置:;如果未找到就返回:查出此人
    • @return
      */
      public String getSingleStudentName(){
      String result="";

      return result;
      }

  • 写回答

1条回答 默认 最新

  • Speakslowly 2018-12-11 01:42
    关注

    看代码,你上边要求数组长度是十,所以我给他固定死,不过你要想让用户自己输入也行。改一两句就行了,你自己看看
    底下这个只是你这个类里边的,main函数中调用也很方便
    因为数组的初始化在这个函数中inputStudentName()所以开始你必须先调用它,才能对数组进行赋值

    package com.hello.java;
    
    import java.util.Arrays;
    import java.util.Scanner;
    
    public class StudentManage {
        private String[] studentName;//存储学生姓名
        Scanner scanner=new Scanner(System.in);
        /**
    
        初始化学生姓名数组,长度为10
        @param length */ 
        public void initArray(int length){
            studentName=new String[length];
        }
    
        /**
    
        利用键盘输入学生姓名,输入姓名必须用拼音或英文 */ 
        public void inputStudentName(){
            int length=10;
            initArray(length);
            int flag=0;
            String str=null;
            boolean result=false;
            for(int i=0;i<length;i++) {
                System.out.println("请输入第"+(i+1)+"个学生的姓名");
                //此循环是判断是否输入为非字母,如果出现非字母,则一直提示输入知道出现全是字母为止,即将退出
                do {
                    str=scanner.next();
                    //利用正则表达式进行判断是否都为字母
                    //如果都是字母则返回true 否则false
                    result = str.matches("[a-zA-Z]+");
                    //如果为false则提示
                    if(!result) {
                            System.out.println("请输入字母");
                    }
                }while((str==null)||(result==false));//终止循环条件
                studentName[i]=str;//对数组进行初始化
            }
        }
    
        /**
    
        对学生姓名按字典顺序从A到Z进行排序,可以采用冒泡或其他排序方法 */
        public void sortStudentName(){
            Arrays.sort(studentName);
        }
    
        /**
    
        利用键盘输入某个学生姓名,利用折半查找法从排序后的学生名单中找出此人在数组中的位置,并返回结果:
        如果找到结果格式:姓名:位置:;如果未找到就返回:查出此人
        @return
        */
        //注意:此处返回的是排序后的数组的位置
        public String getSingleStudentName(){
        //在调用二分法查找的方法时必须先对数组进行排序
            sortStudentName();
            System.out.println("请输入要查找学生的姓名");
            String name=scanner.next();
            int index=Arrays.binarySearch(studentName, name);
            System.out.println(index);
            String result="";
            if(index<=-1) {
                result="查无此人";
            }
            if((index>-1)&&(index<10)) {
                result="姓名:"+name+"  "+"位置:"+(index+1);
            }
            return result;
        }
    
    }
    
    

    main函数调用

    package com.hello.java;
    
    public class Main {
        public static void main(String[] args) {
                StudentManage sManage=new StudentManage();
                sManage.inputStudentName();
                String string=sManage.getSingleStudentName();
                System.out.println(string);
        }
    }
    
    

    如果回答了你的问题,请采纳,如果还需修改的地方可以提出来

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 运筹学中在线排序的时间在线排序的在线LPT算法
  • ¥30 求一段fortran代码用IVF编译运行的结果
  • ¥15 深度学习根据CNN网络模型,搭建BP模型并训练MNIST数据集
  • ¥15 lammps拉伸应力应变曲线分析
  • ¥15 C++ 头文件/宏冲突问题解决
  • ¥15 用comsol模拟大气湍流通过底部加热(温度不同)的腔体
  • ¥50 安卓adb backup备份子用户应用数据失败
  • ¥20 有人能用聚类分析帮我分析一下文本内容嘛
  • ¥15 请问Lammps做复合材料拉伸模拟,应力应变曲线问题
  • ¥30 python代码,帮调试,帮帮忙吧