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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 15127673623 中级黑马   /  2016-4-27 23:05  /  518 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

import java.util.Scanner;
public class Demo_StuAdmin1 {
        public static void main(String[]args){
                Scanner scan=new Scanner(System.in);
                Student[]arr=new Student[10];
                Admin admin=new Admin(arr);
                while(true){
                        System.out.println("************学生信息管理小系统**********");
                        System.out.println("1,添加学生信息");
                        System.out.println("2,修改学生信息");
                        System.out.println("3,删除学生信息");
                        System.out.println("4,查询学生信息");
                        System.out.println("5,退出系统");
                        System.out.println("请选择功能序号:");                               
                        int in=scan.nextInt();
                        switch(in){
                        case 1:
                                admin.add();
                                break;
                        case 2:
                                admin.change();
                                break;
                        case 3:
                                admin.delet();
                                break;
                        case 4:
                                admin.search();
                                break;
                        case 5:
                                return;
                        default:
                                System.out.println("输入有误");
                                break;
                        }
                }
        }
}
class Admin{
        Student[]arr;                         //创建一个学生数组
        Student[]arrTemp=new Student[10];     //创建一个临时学生数组
        Scanner scan=new Scanner(System.in);
        Admin(Student[]arr){                  
                this.arr=arr;
        }

        //在Student数组中添加学生对象
        public void add(){
                for(int i=0;i<arr.length;i++){
                        if(arr[i]==null){
                                System.out.println("请输入学号");
                                int stuCode=scan.nextInt();
                                if(stuCode<0||stuCode>10000){
                                        System.out.println("您输入的学号错误,请进行其他操作");
                                        return;
                                }else{
                                        arr[i]=new Student();
                                        arr[i].setStucode(stuCode);
                                }
                                System.out.println("请输入姓名");
                                String name=scan.next();
                                arr[i].setName(name);
                                System.out.println("请输入成绩");
                                int score=scan.nextInt();
                                if(score<0||score>100){
                                        System.out.println("您输入的错误错误,请进行其他操作");
                                        return;
                                }else{                                       
                                        arr[i].setScore(score);
                                        return;
                                }
                        }               
                }
                System.out.println("系统储存已满,请进行其他操作");
                return;
        }

        //修改Student数组中指定对象的成绩
        public void change(){
                System.out.println("请输入要修改成绩的学生学号");
                int stuCode=scan.nextInt();
                for(int i=0;i<arr.length;i++){
                        if(stuCode==arr[i].getStucode()){
                                System.out.println("请输入成绩");       
                                int score=scan.nextInt();
                                arr[i].setScore(score);
                                return;
                        }
                }
                System.out.println("您输入的学生学号有误");
        }

        //删除学生对象
        public void delet(){
                System.out.println("请输入要修改成绩的学生学号");
                int stuCode=scan.nextInt();
                for(int i=0;i<arr.length;i++){
                        if(stuCode==arr[i].getStucode()){
                                arr[i]=null;
                                return;
                        }
                }
                System.out.println("您输入的学生学号有误");
        }

        //查询学生信息
        public void search(){
                System.out.println("************学生信息查询***********");
                System.out.println("1.查询全部学生信息");
                System.out.println("2.根据姓名查询学生信息");
                System.out.println("3.根据成绩显示学生信息(降序)");
                int in=scan.nextInt();
                switch(in){
                case 1:
                        showAll();
                        break;
                case 2:
                        check();
                        break;
                case 3:
                        downSort();
                        break;
                default :
                        System.out.println("输入有误");
                        break;
                }

        }

        //1.查询全部学生信息
        public void showAll(){
                System.out.println("学号"+"\t\t"+"姓名"+"\t\t"+"成绩");
                for(int i=0;i<arr.length;i++){           //遍历学生数组,输出所有指向不为空的学生元素
                        if(arr[i]!=null){
                                System.out.println(arr[i]);
                        }
                }               
        }

        //2.根据学生姓名查询学生信息
        public void check(){
                System.out.println("请输入要查询的学生姓名");
                String name=scan.next();
                int count=0;                   //创建一个计数器,用于记录同名学生人数
                for(int i=0;i<arr.length;i++){ //遍历学生数组,当有与数组元素的成员变量name相同时,计数器count加1
                        if(arr[i]!=null){                               
                                if(arr[i].getName().equals(name)){
                                        count++;                               
                                }
                        }
                }
                if(count!=0){ //计数器不等于零,键盘输入的姓名在数组中存在,遍历学生数组,当元素的成员变量name与键盘录入的姓名一致时,输出学生元素
                        System.out.println("学号"+"\t\t"+"姓名"+"\t\t"+"成绩");
                        for(int i=0;i<arr.length;i++){
                                if(arr[i]!=null){
                                        if(arr[i].getName().equals(name)){
                                                System.out.println(arr[i]);
                                        }
                                }
                        }                       
                        return;
                }else{                                    //计数器为零,说明输入的姓名在数组元素的成员变量name中不存在.
                        System.out.println("你输入的学生姓名有误");
                }

        }

        //3.根据学生成绩显示学生信息(降序)
        public void downSort(){                              
                System.out.println("学号"+"\t\t"+"姓名"+"\t\t"+"成绩");
                for(int i=0;i<arr.length;i++){           //遍历学生数组,如果元素不为空,则直接复制到临时数组,如果元素为空,则创建学生元素存入临时数组.避免出现空指针异常
                        if(arr[i]!=null){
                                arrTemp[i]=arr[i];
                        }else{
                                arrTemp[i]=new Student();       
                        }
                }
                for(int i=0;i<arrTemp.length-1;i++){     //根据score大小对临时学生数组元素进行冒泡排序   
                        for(int j=0;j<arrTemp.length-1-i;j++){
                                if(arrTemp[j].getScore()>arrTemp[j+1].getScore()){
                                        Student temp=new Student();
                                        temp=arrTemp[j];
                                        arrTemp[j]=arrTemp[j+1];
                                        arrTemp[j+1]=temp;
                                }
                        }
                }
                for(int i=0;i<arrTemp.length;i++){       //遍历临时学生数组,输出每一个Student元素
                        if(arrTemp[i].getName()!=null){
                                System.out.println(arrTemp[i]);
                        }
                }
        }
}

//创建学生类
class Student{
        private String name;
        private int stuCode;
        private int score;
        public String getName() {
                return name;
        }
        public void setName(String name) {
                this.name = name;
        }
        public int getStucode() {
                return stuCode;
        }
        public void setStucode(int stucode) {
                this.stuCode = stucode;
        }
        public int getScore() {
                return score;
        }
        public void setScore(int score) {
                this.score = score;
        }
        public String toString() {
                return  stuCode + "\t\t" + name + "\t\t"+ score ;                               
        }               
}

2 个回复

倒序浏览
大神呐,好牛逼啊
回复 使用道具 举报
#在这里快速回复#挺长的,一看就知道绝对不是你写的
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马