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日下午
阅读全文
0 0
- Java的编程方法
- Java的getRealPath()方法
- java 的clone方法
- Java的构造方法
- JAVA-方法的重写
- JAVA字符串的方法
- JAVA排序的方法
- java的native方法
- java的HashCode方法
- Java 的ping 方法
- java有用的方法
- java的hashCode方法
- java的hashCode方法
- java的split方法
- java方法的重载
- java的方法说明符
- Java的native方法
- java的HashCode方法
- springboot 1.5.3 源码分析(三):spring @Conditional注解
- Java中的初始化
- 常见排序算法以及复杂度
- 外汇CRM系统
- iOS音频篇:使用AVPlayer播放网络音乐
- JAVA的方法
- 嵌入式数据库
- MySQL INNER JOIN关联多张表的写法
- OSAL osal_msg_send解读
- 酷炫轮播广告
- Java 集合Collection与List的详解
- vue项目问题
- python基础
- vue-引入 ElementUI