ldao层数据和逻辑判断里面尽量不要出现输出打印的字眼;
**需要传参的,都需要输入语句放在测试层;
**添加时需要建立对象;传参是对象;
**方法的返回结果一般用flag和result接收;package cn.kgc.tyl.test0917.xuanxiu.entity;//0一般代表false,1代表成功
/*** 球员类* @authror:tyl*/public class Player implements Comparable<Player> {private int age;// 球员的年龄;private String role, name, skill, team;// 角色,姓名,技能,所属球队@Overridepublic String toString() {return "球员信息——姓名:" + this.name + ",年龄:" + this.age + ",职业类型:" + this.role + ",技能:" + this.skill + ",所属球队:"+ this.team;}public Player() {super();}public Player(String name, int age, String role, String skill, String team) {super();setAge(age);setRole(role);this.name = name;this.skill = skill;setTeam(team);}public int getAge() {return age;}public void setAge(int age) {//对年龄进行封装,如果不适合范围,默认18岁;this.age=(age>=18&&age<=50)?age:18;}public String getRole() {return role;}public void setRole(String role) {if (role.equals("教练")) {this .role="教练";}else if (role.equals("前锋")) {this .role="前锋";}else  if (role.equals("中锋")) {this .role="中锋";}else   {this .role="后卫";//默认时后卫职业}}public String getName() {return name;}public void setName(String name) {this.name = name;}public String getSkill() {return skill;}public void setSkill(String skill) {this.skill = skill;}public String getTeam() {return team;}public void setTeam(String team) {if (team.equals("魔术队")) {this.team="魔术队";}else  if (team.equals("公牛队")) {this.team="公牛队";}else     if (team.equals("湖人队")) {this.team="湖人队";}else     if (team.equals("湖人队")) {this.team="火箭队";}//此时没有给默认值,如果不在这四个队中会显示为null}@Overridepublic int compareTo(Player p) {return this.getAge() -p.getAge();//<0升序,>0降序}}
************************************************************
package cn.kgc.tyl.test0917.xuanxiu.manager;
import java.util.Arrays;
import java.util.Scanner;/***完成“唐城NBA选秀大会”。
【必做】功能包括:
1.显示所有球员信息
2.根据年龄从小到大排列
3.随机观看球员技能展示
4.根据职业类型查找球员
5.删除球员
6.添加球员* */
import cn.kgc.tyl.test0917.xuanxiu.entity.Player;public class OperationPlayer {/***建立对象数组* */Player[] ps=new Player[20];Scanner input = new Scanner(System.in);/***初始化球员信息初始化信息除了initial方法,还可以放在无参构造方法里进行初始化。到时就不用对象调用方法了。* */public void initial() {ps[0]=new Player("李刚",18,"教练","长臂猿式扣篮","魔术队");ps[1]=new Player("李d",28,"前锋","大风车极限扣篮","魔术队");ps[2]=new Player("李dd",38,"中锋","梦幻脚步勾手上篮","公牛队");ps[3]=new Player("李ss",19,"后卫","Crossover突破上篮","湖人队");ps[4]=new Player("李s",19,"后卫","Crossover突破上篮","火箭队");}/***获得数组非空值的最大下标* */public int getMax() {int max=0;for (int i = 0; i < ps.length; i++) {if (ps[i]==null) {max=i;break;}}return max;}/***根据队员的属性获得下标;[名字,职务等]* */public int getIndex(String name) {int index=-1;for (int i = 0; i < ps.length; i++) {if (ps[i]!=null&&ps[i].getName().equals(name)) {index=i;}}return index;}/***1.显示所有球员信息* */public  void  queryAll() {System.out.println("当前球队信息为:");for (int i = 0; i <ps.length; i++) {if (ps[i]!=null) {System.out.print("序号"+(i+1)+"\t");System.out.println(ps[i].toString());}}}
/**根据年龄从小到大排列** Player[] temp=Arrays.copyOf(ps, ps.length);for (int i = 0; i < temp.length-1; i++) {for (int j = 0; j < temp.length-i-2; j++) {if (temp[j]!=null&&temp[j+1]!=null&&temp[j].getAge()>temp[j+1].getAge()) {Player p=temp[j];temp[j]=temp[j+1];temp[j+1]=p;}}}for (int i = 0; i < temp.length; i++) {if (temp[i]==null) {break;//此时数组没有元素}System.out.println(temp[i].toString());}* *//***根据年龄大写进行排序* */
public  void  sortByAge() {//int max=getMax();Player[] temp=Arrays.copyOf(ps, max);//复制的时原数组非空值的长度,不是数组长度否则报空指针异常;Arrays.sort(temp);if (temp.length>0) {for (Player p : temp) {System.out.println(p.toString());}
}}/***3.随机观看球员技能展示* */
public  void showSkill()  {int index=(int)(Math.random()*getMax());//此处不可以乘以数组的长度,否则报空指针异常;System.out.println(ps[index].getName()+"展示了他的特殊技能"+ps[index].getSkill());
}/***4.根据职业类型查找球员包含关系必须用布尔类型;* */
public  void   selectByRole(String role) {Boolean flag=false;int max=getMax();for (int i = 0; i < max; i++) {//在最大下标范围内查找球员;if (role.equals(ps[i].getRole())&&ps[i].getRole()!=null) {flag=true;System.out.println(ps[i].toString());}}if (!flag) {System.out.println("目前没有找到"+role+"职业的人");}}/***5删除球员1-n根据球员编号删除* */
public  void delete(int id) {//通过序号删除;if (id<=getMax()) {//在范围内可以删除for (int i = id; i < ps.length; i++) {//从删除的位置开始移动ps[i-1]=ps[i];//顺次移位;}ps=Arrays.copyOf(ps, max-1);//复制的数组长度减1不是数组原长度减1;否则,添加后的下标从20开始加;System.out.println("删除成功");queryAll();}}
//通过序号删除时,顺次移位最后再复制原数组实际长度-1
//通过输入名字删除复制临时数组,并把临时数组赋值给原数组;
public void delete(String name) {int index=getIndex(name);if (index==-1) {System.out.println("您要删除的队员已不存在,删除失败");return;}Player [] temp=new Player[ps.length-1];System.arraycopy(ps, 0, temp, 0, index);System.arraycopy(ps, index+1, temp, index, temp.length-index);ps=temp;System.out.println("删除成功");queryAll();
}/**6添加球员* */
public  void add (Player p) {//1.首先判断非空,才可插入,2判断是否重名;System.out.println("请输入要添加球员的名字");String name =input.next();int index=getIndex(name);if (index!=-1) {System.out.println("您添加的队员已存在,添加失败");return;}p.setName(name);//如果不存在,直接给名字赋值;System.out.println("请输入球员的年龄");p.setAge(input.nextInt());System.out.println("输入职业");p.setRole(input.next());System.out.println("输入特殊技能");p.setSkill(input.next());System.out.println("所属队伍");p.setTeam(input.next());ps=Arrays.copyOf(ps, ps.length+1);//数组长度扩容赋值给原数组ps[ps.length-1]=p;//新添加的成员在数组的最后一位;System.out.println("添加成功");queryAll();}  }
***********************************************************
package cn.kgc.tyl.test0917.xuanxiu.test;import java.util.Scanner;import cn.kgc.tyl.test0917.xuanxiu.entity.Player;
import cn.kgc.tyl.test0917.xuanxiu.manager.OperationPlayer;public class TestOperation {public static void main(String[] args) {OperationPlayer o=new OperationPlayer();Player p=new Player();//因为用到带参方法,所以必须new对象o.initial();/**调用菜单方法** */int choice=-1;
Scanner input = new Scanner(System.in);do{System.out.println("欢迎来到远哥NBA选秀大会”。");System.out.println("1.显示所有球员信息");System.out.println("2.根据年龄从小到大排列");System.out.println("3.随机观看球员技能展示");System.out.println("4.根据职业类型查找球员");System.out.println("5.根据序号删除球员");System.out.println("6.添加球员");System.out.println("7.根据名字删除球员");System.out.println("0.退出");System.out.print("请输入功能序号:>>>");choice = input.nextInt();switch (choice) {case 1:o.queryAll();break;case 2:o.sortByAge();break;case 3:o.showSkill();break;case 4:System.out.print("请输入职业类型:");String  role = input.next();o.selectByRole(role);break;case 5:System.out.print("请输入要删除球员的序号:");int id = input.nextInt();o.delete(id);break;case 6:o.add(p);break;case 7:System.out.println("请输入要删除的名字");String name =input.next();o.delete(name);break;case 0:System.out.print("exit?");String quit  = input.next();if("0".equals(quit)) {System.exit(0);}break;default:System.out.println("请输入正确功能编号");break;}}while(choice!=-1);}
}欢迎来到“唐城NBA选秀大会”。
1.显示所有球员信息
2.根据年龄从小到大排列
3.随机观看球员技能展示
4.根据职业类型查找球员
5.根据序号删除球员
6.添加球员
7.根据名字删除球员
0.退出
请输入功能序号:>>>1
当前球队信息为:
序号1 球员信息——姓名:李刚,年龄:18,职业类型:教练,技能:长臂猿式扣篮,所属球队:魔术队
序号2 球员信息——姓名:李d,年龄:28,职业类型:前锋,技能:大风车极限扣篮,所属球队:魔术队
序号3 球员信息——姓名:李dd,年龄:38,职业类型:中锋,技能:梦幻脚步勾手上篮,所属球队:公牛队
序号4 球员信息——姓名:李ss,年龄:19,职业类型:后卫,技能:Crossover突破上篮,所属球队:湖人队
序号5 球员信息——姓名:李s,年龄:19,职业类型:后卫,技能:Crossover突破上篮,所属球队:null
欢迎来到“唐城NBA选秀大会”。
1.显示所有球员信息
2.根据年龄从小到大排列
3.随机观看球员技能展示
4.根据职业类型查找球员
5.根据序号删除球员
6.添加球员
7.根据名字删除球员
0.退出
请输入功能序号:>>>2
球员信息——姓名:李刚,年龄:18,职业类型:教练,技能:长臂猿式扣篮,所属球队:魔术队
球员信息——姓名:李ss,年龄:19,职业类型:后卫,技能:Crossover突破上篮,所属球队:湖人队
球员信息——姓名:李s,年龄:19,职业类型:后卫,技能:Crossover突破上篮,所属球队:null
球员信息——姓名:李d,年龄:28,职业类型:前锋,技能:大风车极限扣篮,所属球队:魔术队
球员信息——姓名:李dd,年龄:38,职业类型:中锋,技能:梦幻脚步勾手上篮,所属球队:公牛队
欢迎来到“唐城NBA选秀大会”。
1.显示所有球员信息
2.根据年龄从小到大排列
3.随机观看球员技能展示
4.根据职业类型查找球员
5.根据序号删除球员
6.添加球员
7.根据名字删除球员
0.退出
请输入功能序号:>>>3
5
李刚展示了他的特殊技能长臂猿式扣篮
欢迎来到“唐城NBA选秀大会”。
1.显示所有球员信息
2.根据年龄从小到大排列
3.随机观看球员技能展示
4.根据职业类型查找球员
5.根据序号删除球员
6.添加球员
7.根据名字删除球员
0.退出
请输入功能序号:>>>3
5
李ss展示了他的特殊技能Crossover突破上篮
欢迎来到“唐城NBA选秀大会”。
1.显示所有球员信息
2.根据年龄从小到大排列
3.随机观看球员技能展示
4.根据职业类型查找球员
5.根据序号删除球员
6.添加球员
7.根据名字删除球员
0.退出
请输入功能序号:>>>4
请输入职业类型:前锋
球员信息——姓名:李d,年龄:28,职业类型:前锋,技能:大风车极限扣篮,所属球队:魔术队
欢迎来到“唐城NBA选秀大会”。
1.显示所有球员信息
2.根据年龄从小到大排列
3.随机观看球员技能展示
4.根据职业类型查找球员
5.根据序号删除球员
6.添加球员
7.根据名字删除球员
0.退出
请输入功能序号:>>>4
请输入职业类型:后卫
球员信息——姓名:李ss,年龄:19,职业类型:后卫,技能:Crossover突破上篮,所属球队:湖人队
球员信息——姓名:李s,年龄:19,职业类型:后卫,技能:Crossover突破上篮,所属球队:null
欢迎来到“唐城NBA选秀大会”。
1.显示所有球员信息
2.根据年龄从小到大排列
3.随机观看球员技能展示
4.根据职业类型查找球员
5.根据序号删除球员
6.添加球员
7.根据名字删除球员
0.退出
请输入功能序号:>>>4
请输入职业类型:大前锋
目前没有找到大前锋职业的人
欢迎来到“唐城NBA选秀大会”。
1.显示所有球员信息
2.根据年龄从小到大排列
3.随机观看球员技能展示
4.根据职业类型查找球员
5.根据序号删除球员
6.添加球员
7.根据名字删除球员
0.退出
请输入功能序号:>>>5
请输入要删除球员的序号:3
删除成功
当前球队信息为:
序号1 球员信息——姓名:李刚,年龄:18,职业类型:教练,技能:长臂猿式扣篮,所属球队:魔术队
序号2 球员信息——姓名:李d,年龄:28,职业类型:前锋,技能:大风车极限扣篮,所属球队:魔术队
序号3 球员信息——姓名:李ss,年龄:19,职业类型:后卫,技能:Crossover突破上篮,所属球队:湖人队
序号4 球员信息——姓名:李s,年龄:19,职业类型:后卫,技能:Crossover突破上篮,所属球队:null
欢迎来到“唐城NBA选秀大会”。
1.显示所有球员信息
2.根据年龄从小到大排列
3.随机观看球员技能展示
4.根据职业类型查找球员
5.根据序号删除球员
6.添加球员
7.根据名字删除球员
0.退出
请输入功能序号:>>>6
请输入要添加球员的名字
科比
请输入球员的年龄
9
输入职业
所属
输入特殊技能
大风车极限扣篮
所属队伍
湖人队
添加成功
当前球队信息为:
序号1 球员信息——姓名:李刚,年龄:18,职业类型:教练,技能:长臂猿式扣篮,所属球队:魔术队
序号2 球员信息——姓名:李d,年龄:28,职业类型:前锋,技能:大风车极限扣篮,所属球队:魔术队
序号3 球员信息——姓名:李ss,年龄:19,职业类型:后卫,技能:Crossover突破上篮,所属球队:湖人队
序号4 球员信息——姓名:李s,年龄:19,职业类型:后卫,技能:Crossover突破上篮,所属球队:null
序号5 球员信息——姓名:科比,年龄:18,职业类型:后卫,技能:大风车极限扣篮,所属球队:湖人队
欢迎来到“唐城NBA选秀大会”。
1.显示所有球员信息
2.根据年龄从小到大排列
3.随机观看球员技能展示
4.根据职业类型查找球员
5.根据序号删除球员
6.添加球员
7.根据名字删除球员
0.退出
请输入功能序号:>>>7
请输入要删除的名字
李刚
删除成功
当前球队信息为:
序号1 球员信息——姓名:李d,年龄:28,职业类型:前锋,技能:大风车极限扣篮,所属球队:魔术队
序号2 球员信息——姓名:李ss,年龄:19,职业类型:后卫,技能:Crossover突破上篮,所属球队:湖人队
序号3 球员信息——姓名:李s,年龄:19,职业类型:后卫,技能:Crossover突破上篮,所属球队:null
序号4 球员信息——姓名:科比,年龄:18,职业类型:后卫,技能:大风车极限扣篮,所属球队:湖人队
欢迎来到“唐城NBA选秀大会”。
1.显示所有球员信息
2.根据年龄从小到大排列
3.随机观看球员技能展示
4.根据职业类型查找球员
5.根据序号删除球员
6.添加球员
7.根据名字删除球员
0.退出
请输入功能序号:>>>0
exit?0ps:功能性bug,添加的id如果大于初始化的长度,添加长度后id会变为21+,无法通过序号id进行删除;**解决方案?/**6添加球员* */
public  void add (Player p) {//1.首先判断非空,才可插入,2判断是否重名;System.out.println("请输入要添加球员的名字");String name =input.next();int index=getIndex(name);if (index!=-1) {System.out.println("您添加的队员已存在,添加失败");return;}p.setName(name);//如果不存在,直接给名字赋值;System.out.println("请输入球员的年龄");p.setAge(input.nextInt());System.out.println("输入职业");p.setRole(input.next());System.out.println("输入特殊技能");p.setSkill(input.next());System.out.println("所属队伍");p.setTeam(input.next());**ps=Arrays.copyOf(ps, getMax()+1);//数组长度扩容赋值给原数组ps[getMax()]=p;//新添加的成员在数组的最后一位;**System.out.println("添加成功");queryAll();

面向对象之唐城NBA选秀大会相关推荐

  1. 2020NBA选秀大会结果出炉,开启.fans球星域名抢注!

    今早8点,让无数NBA球迷关注的"2020NBA选秀大会"拉开帷幕. 由于新冠疫情影响,今年选秀相关也受到限制,包括球员试训,选秀大会模式等,球员和球队也都克服了诸多困难.今年选秀 ...

  2. 2003白金一代NBA选秀

    第一轮 顺位 球队 姓名 顺位 球队 姓名 1 骑士 Lebron James勒布朗-詹姆斯 2 底特律 Darko Milicic达科-米利西奇 3 丹佛 Carmelo Anthony卡梅罗-安东 ...

  3. 1996黄金一代NBA选秀

    第一轮 顺位 球队 球员 顺位 球队 球员 1 费城 Allen Iverson阿伦-艾弗森 2 多伦多 Marcus Camby马库斯-坎比 3 温哥华 谢里夫-阿卜杜尔-拉希姆 4 明尼苏达 St ...

  4. 1984钻石一代NBA选秀

    第一轮 顺位 球队 球员 顺位 球队 球员 1 休斯敦 Akeem Olajuwon哈基姆-奥拉朱旺 2 波特兰 Sam Bowie 萨姆·鲍维 3 芝加哥 Michael Jordan 迈克尔乔丹 ...

  5. 算法 从 数中选出_算法可以选出胜出的nba幻想选秀吗

    算法 从 数中选出 Note from Towards Data Science's editors: While we allow independent authors to publish ar ...

  6. NBA球员的选秀顺序和实际表现有多大差距?评估球员表现的VORP值又是怎么计算的?

    每一个NBA球迷可能都知道球员的正负值(+/-,Plus/Minus),但你是否知道VORP这个评价球员表现得标准呢? Every NBA fan probably knows the player' ...

  7. 互联网晚报 | 8月27日 星期五 | 爱奇艺取消未来几年偶像选秀节目;百度App月活跃用户突破6亿;陌陌连续26个季度盈利...

    今日看点 ✦ 工信部:我国新能源汽车销量连续六年位居全球第一 ✦ 百度集团:百度App月活跃用户数7月突破6亿 ✦ 爱奇艺宣布:取消未来几年偶像选秀节目和任何场外投票环节 ✦ 陌陌二季度营收36.7亿 ...

  8. impala的substr从第几位截到最后一位_天赋不输乔丹,麦迪选秀为何只排第9?看前面几位,第1让老詹吃瘪...

    对于NBA球员来说,选秀几乎等同于"出身".选秀顺位越高也往往决定着你在未来球队中的定位,虽然有不少2轮秀打出来的,但毕竟是少数,NBA大部分球星都是高顺位选秀出来的,这也看出了选 ...

  9. 仅改变rowspan背景_重排96黄金一代选秀前4位!艾弗森仅第三,前两名竟然还是队友...

    重排96黄金一代选秀前4位!艾弗森仅第三,前两名竟然还是队友 1996年是NBA不平凡的一年,这一年选秀大会上诞生了众多可以改变联盟的超级巨星,96黄金一代是不输03白金一代的存在,因此1996年是N ...

最新文章

  1. 数据通信技术_华为数据通信创新峰会在长春圆满举行
  2. 大数据学习笔记1000条
  3. restful接口开发实例_Restful接口开发与测试—接口测试
  4. linux 所有邮件地址群发,linux sendmail群发邮件
  5. Java 基础 引用数据类型 和 流程控制
  6. docker在win7下的使用
  7. 设计模式(11)——组合模式
  8. PSPNet论文详解
  9. c# 代码混淆器ConfuserEX使用
  10. php楼梯有n级台阶,楼梯问题的一些解决方法
  11. 2021-02-26
  12. Proxmox VE 多机系统备份
  13. 妖怪,你可认得这32个关键字?
  14. 41.clip-path 滚动特效
  15. 推荐几个高质量图片网站,再也不怕没图装X了 1
  16. LeetCode 213. House Robber II(小偷游戏)
  17. !-- --与%-- --%
  18. python中的traceback
  19. 商城系统官方网站PHP源码
  20. 2022.10.21 单词背诵

热门文章

  1. 解决idea在运行时出现Picked up JAVA_TOOL_OPTIONS: -Dfile.encoding=UTF-8?
  2. 阿里云服务器以及CDN支持IPV6的方法
  3. typora图片插入问题
  4. layui标签页切换并自动刷新
  5. 读书的理由——好书推荐
  6. 优秀简历模板分享(前端,Java等通用模板)
  7. 夏磊2019MySQL高级学习笔记
  8. 苹果库乐队怎么玩_自制手机铃声(苹果)
  9. Linux Miscellaneous Device
  10. Jensen–Shannon divergence