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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© cjmjava 中级黑马   /  2015-4-27 15:10  /  1101 人查看  /  9 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文


class Student
{
        private int code;
        private String name;
        private double score;

        public Student(int code, String name, double score){
                setCode(code);
                setName(name);
                setScore(score);
        }

        public void setCode(int code){
                this.code = code;
        }

        public void setName(String name){
                this.name = name;
        }

        public void setScore(double score){
                this.score = score;
        }

        public int getCode(){
                return code;
        }

        public String getName(){
                return name;
        }

        public double getScore(){
                return score;
        }
}

class  StudentManager
{
        static Student [] stus = new Student[5];//存储学生对象的容器
        static int index = 0;//记录存储学生对象容器的角标

        public static void main(String[] args)
        {
                while(true){
                        systemMain();
                }
        }

    public static void systemMain(){
           System.out.println("************学生信息管理小系统**********");
       core();
       System.out.println("****************************************");
        }
    public static void core(){
           System.out.println("1,添加学生信息");
           System.out.println("2,修改学生信息");
           System.out.println("3,删除学生信息");
           System.out.println("4,查询学生信息");
           System.out.println("5,退出系统");
           System.out.println("请选择功能序号:");
             //接收用户输入的功能序号(键盘录入)
           int code = returnInt();
           choose(code);
        }
        public static void choose(int code){
           switch(code){
              case 1:
                            addStudent();//调用添加学生信息的方法
                  break;
                  case 2:
                            revise();//调用修改学生信息的方法
                  break;
                  case 3:
                            deleteStudent();//调用删除学生信息的方法
                  break;
                  case 4:
                            queryInfo();//调用查询学生信息的方法
                  break;
                  default:
                            System.exit(1);
                  break;          
           }         
        }

        //添加学生信息
        public static void addStudent(){
                System.out.println("********************录入学生信息********************");
                System.out.print("请输入学生学号:");
                int code = returnInt();//接受录入的学生学号
                System.out.print("请输入学生姓名:");
                String name = returnString();//接受录入的学生姓名
                System.out.print("请输入学生成绩:");
                double score = returnDouble();//接受录入的学生成绩

                Student stu = new Student(code,name,score);
               
                stus[index] = stu;        //把创建的学生对象存储在容器中
                index++; //修改记录容器中角标的值

                //判断学生信息是否添加成功
                if(stus[index-1]!=null)
                System.out.println("学生信息添加完成!");
        }

        //修改学生信息功能
        public static void revise(){
                System.out.print("\n请输入要修改的学生学号:");
                int code = returnInt();        //接受学生学号
                for (int i = 0; i < index; i++ )
                {
                        Student stu = stus[i];
                        if (stu.getCode() == code )
                        {
                                System.out.print("\n请输入新的学生成绩:");
                                double score = returnDouble();        //接受学生成绩
                                stu.setScore(score);
                        }
                }
        }
       
        //删除学生信息功能
        public static void deleteStudent(){
                System.out.print("\n请输入要删除的学生学号:");
                int code = returnInt();        //接受学生学号
                //将接受的学号和存在的学号进行匹配
                for (int i = 0; i < index; i++ )
                {
                        Student stu = stus[i];
                        //匹配成功就删除
                        if (stu.getCode() == code )
                        {
                                stus[i] = null;
                                index--;
                                System.out.println("删除学生信息成功");
                                break;
                        }
                }
               

        }

        //查询学生信息功能
        public static void queryInfo(){
                System.out.println("*******************学生信息查询*********************");
                System.out.println("1,查询全部学生信息");
                System.out.println("2,根据姓名查询学生信息");
                System.out.println("3,根据成绩显示学生信息(降序)");
                System.out.print("请选择查询的功能:");
                int code = returnInt();

                switch(code){
                        case 1:
                                seachAllStudent();//调用查询全部学生信息的方法
                                break;
                        case 2:
                                seachStudentByName();//调用根据姓名查询学生信息
                                break;
                        case 3:
                                seachStudentByScore();//调用根据成绩显示学生信息
                }      
   }
       
        //查询所有学生信息
        public static void seachAllStudent(){
                System.out.println("学号\t\t姓名\t\t成绩");
               
                for (int i = 0; i < index; i++ )
                {
                        Student stu = stus[i];//获取存储的每一个学生对象
                        System.out.print(stu.getCode()+"\t\t");
                        System.out.print(stu.getName()+"\t\t");
                        System.out.println(stu.getScore());
                }
   }
       
        //根据姓名查询学生信息
        public static void seachStudentByName(){
                System.out.print("\n请输入要查询的学生姓名:");
                String name = returnString();        //接受录入的学生姓名

                //定义一个临时的学生对象数组,用来存储相同学生姓名的学生对象
                Student [] tempStu = new Student[index];
                int tempIndex = 0;        //记录临时的学生对象数组的角标

                for (int i = 0; i < index; i++ )
                {
                        Student stu = stus[i];
                        if (stu.getName().equals(name))        //使用equals方法来比较String类型的姓名
                        {
                                tempStu[tempIndex] = stu;
                                tempIndex++;
                        }

                }
                //判断是否有查找到对应的学生
                if (tempIndex == 0)
                {
                        System.out.println("没有找到相应的学生信息");
                }else
                {
                        //以上的循环结束后,表示相同姓名的学生已查找到
                        System.out.println("学号\t\t姓名\t\t成绩");
                        for (int j = 0; j < tempIndex; j++)
                        {
                                Student stu = tempStu[j];//获取存储的每一个学生对象
                                System.out.print(stu.getCode()+"\t\t");
                                System.out.print(stu.getName()+"\t\t");
                                System.out.println(stu.getScore());
                        }
                }
        }

        //成绩降序查询学生信息
        public static void seachStudentByScore(){
                System.out.println("学号\t\t姓名\t\t成绩");
                for (int i = 0; i<index; i++ )
                {
                        for (int j = i+1; j < index; j++ )
                        {
                               
                                if (stus[i].getScore() < stus[j].getScore())
                                {
                                        Student temp = stus[i];
                                        stus[i] = stus[j];
                                        stus[j] = temp;
                                }
                        }
                }
                for (int i = 0; i < index; i++ )
                {
                        Student stu = stus[i];//获取存储的每一个学生对象
                        System.out.print(stu.getCode()+"\t\t");
                        System.out.print(stu.getName()+"\t\t");
                        System.out.println(stu.getScore());
                }
        }

    //接收字符串类型的数据
    public static String returnString(){
            java.util.Scanner input=new java.util.Scanner(System.in);
                return input.next();
        }
        //接收int类型的数据
        public static int returnInt(){
            java.util.Scanner input=new java.util.Scanner(System.in);
            return input.nextInt();
        }
        //接收double类型的数据
        public static double returnDouble(){
            java.util.Scanner input=new java.util.Scanner(System.in);
            return input.nextDouble();
        }

}


9 个回复

倒序浏览
不错。 如果能做成界面的话就更好了
回复 使用道具 举报
shield 发表于 2015-4-27 15:19
不错。 如果能做成界面的话就更好了

这个是根据java基础前面十几天的内容做的,只有最基本的实现
回复 使用道具 举报
值得学习!
回复 使用道具 举报
值得學習學習
回复 使用道具 举报
楼主,这代码敲了多久啊,赞一个!
回复 使用道具 举报
赞,学习一下
回复 使用道具 举报
学到集合 ,可以写得更好。
回复 使用道具 举报
都 是牛人
回复 使用道具 举报
值得学习,学以致用。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马