JAVA的方法

来源:互联网 发布:lcd1602数据口反了 编辑:程序博客网 时间:2024/06/11 02:20

方法代码实例

import java.util.Scanner;/** * 新英雄添加管理系统 * 英雄的添加、删除、修改和排序(姓名排序和id排序) * 版本:  v0.1 * @author 莫名 * */public class AddHero {    /* 把录入的对象定义成静态,方便每个静态方法调用 */    public static Scanner input = new Scanner(System.in);    /* 定义英雄类型的数组 */    public static Information[] hero = new Information[999];    /* 当前录入英雄的总数量 */    public static int heroCount = 0;    public static void main(String[] args) {        Menu();     //调用菜单方法实现    }    /**     * 新英雄的录入功能     */    public static void addHeroInfo(){        String answer = null;        do{//录入新英雄的信息            //定义的英雄数组时,每个元素都要先赋空间            hero[heroCount] = new Information();            System.out.print("编号:");            hero[heroCount].id = input.nextInt();            System.out.print("姓名:");            hero[heroCount].name = input.next();            System.out.print("血量:");            hero[heroCount].hp = input.nextDouble();            System.out.print("魔法值:");            hero[heroCount].mp = input.nextDouble();            System.out.print("攻击力:");            hero[heroCount].attack = input.nextDouble();            System.out.print("技能1:");            hero[heroCount].skill1 = input.next();            System.out.print("技能2:");            hero[heroCount].skill2 = input.next();            System.out.print("特殊技能:");            hero[heroCount].specialSkill = input.next();            heroCount++;                //录入一个信息之后要把英雄的总数+1            //录入完毕后询问是否继续录入            System.out.print("是否继续录入新英雄(y/n):");                answer = input.next();        }while("y".equalsIgnoreCase(answer));    }    /**     * 打印英雄信息     *     */    public static void Show(){        System.out.println("英雄编号\t英雄姓名\t血量\t魔法值\t攻击力\t技能1\t技能2\t特殊技能");        for (int i = 0; i < heroCount; i++) {            System.out.println(hero[i]);        }    }    /**     * 删除英雄信息     */    public static void delHeroInformtion(){        String delName = null;  //声明一个要删除英雄的姓名        int delIndex = -1;      //声明一个要删除英雄的下标,给一个不可能的值        System.out.print("请输入要删除英雄的姓名:");        delName = input.next();             //录入要删除的英雄        for (int i = 0; i < heroCount; i++) {   //遍历到当前英雄数量            //如果要删除英雄的姓名和录入信息中的某个英雄相等            if(delName.equals(hero[i].name)){                   delIndex = i;   //记录下标                break;          //如果找到了就退出循环            }        }        if(delIndex == -1){ //如果没有找到要删除的英雄,就返回            System.err.println("没有找到要删除英雄的信息");            return;        }        //从记录要删除英雄的下标开始,循环到英雄总长度-1,        for (int i = delIndex; i < heroCount - 1; i++) {            hero[i] = hero[i + 1];  //把录入英雄后面的属性覆盖到前面的属性        }        heroCount--;    //英雄的总长度-1    }    /**     * 修改英雄     */    public static void ModifyHero(){        int ModifyHero;         //定义要修改英雄的id        int ModifyIndex = -1;   //定义要修改英雄的下标        System.out.print("请输入要修改英雄的id:");        ModifyHero = input.nextInt();        //循环到英雄的总长度        for (int i = 0; i < heroCount; i++) {            //如果要修改的英雄id和录入里某个英雄的id相等            if(ModifyHero == hero[i].id){                ModifyIndex = i;    //记录相等英雄的下标                break;            }        }        System.out.println();        if(ModifyIndex == -1){  //如果没有找到,就返回            System.err.print("没有找到要修改的英雄");            return;        }        System.out.print("编号:");        hero[ModifyIndex].id = input.nextInt();        System.out.print("姓名:");        hero[ModifyIndex].name = input.next();        System.out.print("血量:");        hero[ModifyIndex].hp = input.nextDouble();        System.out.print("魔法值:");        hero[ModifyIndex].mp = input.nextDouble();        System.out.print("攻击力:");        hero[ModifyIndex].attack = input.nextDouble();        System.out.print("技能1:");        hero[ModifyIndex].skill1 = input.next();        System.out.print("技能2:");        hero[ModifyIndex].skill2 = input.next();        System.out.print("特殊技能:");        hero[ModifyIndex].specialSkill = input.next();    }    /**     * 根据姓名降序排序     */    public static void NameDownSortHero(){        Information temp;       //定义Information类型的一个临时变量        //根据姓名排序这些数据        for (int i = 0; i < heroCount - 1; i++) {            for (int j = 0; j < heroCount - i - 1; j++) {                String name1 = hero[j].name;                String name2 = hero[j + 1].name;                if(name1.compareTo(name2) < 0){                    temp = hero[j];                    hero[j] = hero[j + 1];                    hero[j + 1] = temp;                }            }        }        Show();     //刷新英雄信息    }    /**     * 根据姓名升序排序     */    public static void NameUpSortHero(){        Information temp;   //定义Information类型的一个临时变量        //根据姓名排序这些数据        for (int i = 0; i < heroCount - 1; i++) {            for (int j = 0; j < heroCount - i - 1; j++) {                String name1 = hero[j].name;                String name2 = hero[j + 1].name;                if(name1.compareTo(name2) > 0){                    temp = hero[j];                    hero[j] = hero[j + 1];                    hero[j + 1] = temp;                }            }        }        Show();     //刷新英雄信息    }    /**     * 根据英雄的编号升序序排序     */    public static void IdUpsortHero(){        Information temp;//定义Information类型的一个临时变量        //根据id排序这些数据        for (int i = 0; i < heroCount - 1; i++) {            for (int j = 0; j < heroCount - i - 1; j++) {                if(hero[j].id > hero[j + 1].id){                    temp = hero[j];                    hero[j] = hero[j + 1];                    hero[j + 1] = temp;                }            }        }        Show();         //刷新英雄信息    }    /**     * 根据英雄的编号降序排序     */    public static void IdDownsortHero(){        Information temp;//定义Information类型的一个临时变量        //根据id排序这些数据        for (int i = 0; i < heroCount - 1; i++) {            for (int j = 0; j < heroCount - i - 1; j++) {                if(hero[j].id < hero[j + 1].id){                    temp = hero[j];                    hero[j] = hero[j + 1];                    hero[j + 1] = temp;                }            }        }        Show();         //刷新英雄信息    }    /**     * 定义菜单类型,封装其他方法     */    public static void Menu(){        int choice;             //定义一个菜单的选择        String goOn = null;     //定义是否继续的选择        do{            System.out.println("\t    英雄管理系统");            System.out.println("---------------------------------------------------");            System.out.println("1.英雄欣赏");            System.out.println();            System.out.println("2.添加英雄信息");            System.out.println();            System.out.println("3.删除英雄信息");            System.out.println();            System.out.println("4.修改英雄信息");            System.out.println();            System.out.println("5.退出系统");            System.out.println("--------------------------------------------------");            System.out.print("请选择:");            choice = input.nextInt();       //选择管理系统的条件            //根据录入的选择判断用户的需求            switch (choice) {            /**             * 给录入的英雄排序             */            case 1:                int choiceSort;                System.out.println("1.根据英雄的姓名降序排名");                System.out.println("2.根据英雄的姓名升序排名");                System.out.println("3.根据英雄的id降序排名");                System.out.println("4.根据英雄的id升序排名");                System.out.println("请选择:");                choiceSort = input.nextInt();                if(heroCount == 0){                    System.out.println("没有录入英雄!");                }else{                    switch (choiceSort) {                    case 1:                     //根据英雄的姓名降序排名                        NameDownSortHero();     //调用姓名降序方法                        break;                    case 2:                     //根据英雄的姓名升序排名                        NameUpSortHero();       //调用姓名升序方法                        break;                    case 3:                     //根据英雄的id降序排名                        IdDownsortHero();       //调用id降序方法                        break;                    case 4:                     //根据英雄的id升序排名                        IdDownsortHero();       //调用id升序方法                        break;                    default:                //录入错误就退出                        System.err.println("输入错误");                        break;                    }                }                break;            case 2:                     //添加英雄信息                addHeroInfo();          //调用录入新英雄的方法                break;            case 3:                     //删除英雄信息                delHeroInformtion();    //调用删除英雄的方法                break;            case 4:                     //修改英雄信息                ModifyHero();           //调用修改英雄的方法                break;            case 5:                     //退出系统                System.out.print("系统退出,真的要退出吗?按y确定!");                String whether = input.next();                      //再次确认退出                if("y".equalsIgnoreCase(whether)){                    System.exit(0);                }else{                    System.out.println("欢迎回来!");                    break;                }                //只能选择1-5之间的系统选项            default:                System.err.println("输入错误,只能选择1-5之间的选择");                break;            }            //询问是否继续进行操作            System.out.print("是否继续操作(y/n):");            goOn = input.next();        }while("y".equalsIgnoreCase(goOn));    }}
                            ——By 莫名 2017年12月13日下午