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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

看下题目先
回复 使用道具 举报
看看什么题目~~
回复 使用道具 举报
看题看看
回复 使用道具 举报
到底啥题?
回复 使用道具 举报
看下什么题目先
回复 使用道具 举报
回复下看看是啥题啊
回复 使用道具 举报
看题了。。哈哈
回复 使用道具 举报
秩宇 来自手机 中级黑马 2013-6-27 13:00:28
48#
手机看看
回复 使用道具 举报
public class Demo {
        private static int l = 1;
        private static String ll = "2";

        public static void main(String[] args) {
                Student[] stu = new Student[50];
                shili(stu);//实例化
                insert(stu);//插入信息
                sort(stu);//排序
                System.out.println("所有学生进出图书馆的信息");
                show(stu);//输出排序信息
                System.out.println("第三名信息:");
                showFirdth(stu);//第三名
                System.out.println("第四名和第六名:");
                showFourSix(stu);
               
                int count=getSumCount(stu);//成功进出次数
                System.out.println("成功进出次数是:"+count);
        }
/**
* 初始化
* @param stu
*/
        public static void shili(Student[] stu) {
                for (int i = 0; i < stu.length; i++) {
                        stu[i] = new Student();
                }
        }
/**
* 输入进出记录
* @param stu
*/
        public static void insert(Student[] stu) {
               
                int i = 0;
                System.out.println("请输入图书馆进出记录");
                System.out.println("姓名 学号");
                Scanner input = new Scanner(System.in);
                for (i = 0; i < stu.length; i++) {

                        String name = input.next();
                        String num = input.next();
            if(name.equals(".")){
                    break;
            }
                        if (isExit(num)) {
                                i = i - 1;
                                continue;
                        }

                        if (isHave(stu, i, num)) {
                                i = i - 1;
                        } else {
                                stu[i].setStuName(name);
                                stu[i].setStuNum(num);
                                int c = stu[i].getCount();
                                stu[i].setCount(c + 1);
                        }
                       

                }
        }
/**
* 输出学生数组的信息
* @param stu
*/
        public static void show(Student[] stu) {
                int i = 0;
                System.out.println("姓名\t学号\t次数");
                for (i = 0; i < stu.length && stu[i].getStuNum() != null; i++) {
                        System.out.println(stu[i].getStuName() + "\t" + stu[i].getStuNum()
                                        + "\t" + stu[i].getCount());
                }
        }
/**
  * 判断之前此学号是否有进出的记录
  * @param stu
  * @param f
  * @param num
  * @return
  */
        public static boolean isHave(Student[] stu, int f, String num) {

                for (int i = 0; i < f; i++) {
                        if (stu[i].getStuNum().equals(num)) {
                                int c = stu[i].getCount();
                                stu[i].setCount(c + 1);
                                return true;
                        }
                }
                return false;
        }
  /**
   * 判断是否能够进入 按学号是 2 3 6的循环判断
   * @param num
   * @return
   */
        public static boolean isExit(String num) {
                String n = num.substring(num.length() - 1, num.length());

                boolean f = false;
                if (n.equals(ll)) {
                        l++;
                        f = true;
                } else {
                        return false;
                }
                switch (l % 3) {
                case 1:
                        ll = "2";
                        break;
                case 2:
                        ll = "3";
                        break;
                case 3:
                        ll = "6";
                        break;
                }

                return f;
        }
/**
* 对信息进行排序
* @param stu
*/
        public static void sort(Student[] stu) {
                int i = 0, j = 0;
                /*按次数排序*/
                for (i = 0; i < stu.length - 1 && stu[i].getStuNum() != null; i++) {
                        for (j = 0; j < stu.length - 1 - i &&stu[j].getStuNum() != null; j++) {
                                if (stu[j].getCount() < stu[j + 1].getCount()) {
                                        Student t = new Student();
                                        t = stu[j];
                                        stu[j] = stu[j + 1];
                                        stu[j + 1] = t;
                                }
                        }
                }
     /*如果次数相同 按学号排序*/
                for (i = 0; i < stu.length - 1 && stu[i].getStuNum() != null; i++) {
                        for (j = 0; j < stu.length - 1 - i &&stu[j].getStuNum() != null; j++) {
                                if (stu[j].getCount() == stu[j + 1].getCount()) {
                                        if ((stu[j].getStuNum().compareTo(stu[j + 1].getStuNum())) == -1) {
                                                Student t = new Student();
                                                t = stu[j];
                                                stu[j] = stu[j + 1];
                                                stu[j + 1] = t;
                                        }

                                }
                        }
                }
        }
        /**
         * 输出第三名的信息
         * @param stu
         */
        public static void showFirdth(Student[] stu){
                if(stu.length>=3 && stu[2].getStuName()!=null){
                String name=stu[2].getStuName();
                String num=stu[2].getStuNum();
                int count=stu[2].getCount();
                System.out.println("\n次数排名为三的"+name+"的进出图书馆的\t次数:"+count+"\t学号:"+num);
                }else{
                        System.out.println("\n进出图书馆的次数没有达到第三名");
                }
        }
        /*
         * 输出第四名和第六名的信息
         */
        public static void showFourSix(Student[] stu){
                if(stu.length>=4 && stu[3].getStuName()!=null){
                        String name=stu[3].getStuName();
                        int count=stu[3].getCount();
                        System.out.println("\n排名为四的"+name+"的进出图书馆的\t次数:"+count);
                        }else{
                                System.out.println("\n进出图书馆的次数没有达到第四名");
                        }
                if(stu.length>=6 && stu[5].getStuName()!=null){
                        String name=stu[5].getStuName();
                        int count=stu[5].getCount();
                        System.out.println("\n排名为六的"+name+"的进出图书馆的\t次数:"+count);
                        }else{
                                System.out.println("\n进出图书馆的次数没有达到第六名");
                        }
        }
        /**
         * 获取图书馆的成功次数
         */
        public static int getSumCount(Student[] stu){
                int sumCount=0;
                int i = 0;
                for (i = 0; i < stu.length && stu[i].getStuNum() != null; i++) {
                        sumCount+= stu[i].getCount();
                }
                return sumCount;
        }
}
结果是:


1.png (21.12 KB, 下载次数: 0)

1.png

2.png (12.07 KB, 下载次数: 0)

2.png

3.png (25.08 KB, 下载次数: 0)

3.png

评分

参与人数 1技术分 +4 收起 理由
夜默 + 4

查看全部评分

回复 使用道具 举报
看看什么题目
回复 使用道具 举报
先看下是么子题目
回复 使用道具 举报
没人做?,,,顶起来- -,,
回复 使用道具 举报
15分.....我表示不淡定了
回复 使用道具 举报
看看  看看
回复 使用道具 举报
试一下, 说不定就15分呢
回复 使用道具 举报
回复看题
回复 使用道具 举报
KaiM 初级黑马 2013-6-27 15:37:41
57#
看下题目
回复 使用道具 举报
我是来支持楼楼的{:2_45:}
回复 使用道具 举报
了解题目
回复 使用道具 举报
顶一贴,瞧一瞧
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马