Java:(练习)二、基于Map和面向对象方法的世界杯冠军信息系统

  • 前言
  • 一、世界杯类WorldCup.java
  • 二、主类Main.java

前言

学习java过程中,练习了一个面向对象小程序
程序要求(来源:非凡教育):
利用Map,完成下面的功能:
从命令行读入一个字符串,表示一个年份,输出该年的世界杯冠军是哪支球队。如果该年没有举办世界杯,则输出:没有举办世界杯。
届数 举办年份 冠军
第一届 1930年 乌拉圭
第二届 1934年 意大利
第三届 1938年 意大利
第四届 1950年 乌拉圭
第五届 1954年 西德
第六届 1958年 巴西
第七届 1962年 巴西
第八届 1966年 英格兰
第九届 1970年 巴西
第十届 1974年 西德
第十一届 1978年 阿根廷
第十二届 1982年 意大利
第十三届 1986年 阿根廷
第十四届 1990年 西德
第十五届 1994年 巴西
第十六届 1998年 法国
第十七届 2002年 巴西
第十八届 2006年 意大利
第十九届 2010年 西班牙
第二十届 2014年 德国
第二十一届 2018年 法国

一、世界杯类WorldCup.java

package org.renola.homework.day13.WorldCup;public class WorldCup {private int year;private String countryName;public WorldCup() {}public WorldCup(int year, String countryName) {this.year = year;this.countryName = countryName;}public int getYear() {return year;}public void setYear(int year) {this.year = year;}public String getCountryName() {return countryName;}public void setCountryName(String countryName) {this.countryName = countryName;}@Overridepublic String toString() {return "在 "+ year + " 年举办,获胜国家为:"+ countryName;}
}

二、主类Main.java

package org.renola.homework.day13.WorldCup;import java.util.HashMap;
import java.util.Scanner;public class Main{public static final int[] YEAR = {1930,1934,1938,1950,1954,1958,1962,1966,1970,1974,1978,1982,1986,1990,1994,1998,2002,2006,2010,2014,2018};public static final String[] COUNTRY = {"乌拉圭","意大利","意大利","乌拉圭","西德","巴西","巴西","英格兰","巴西","西德","阿根廷","意大利","阿根廷","西德","巴西","法国","巴西","意大利","西班牙","德国","法国"};public static void main(String[] args) {HashMap<Integer,WorldCup> worldCupTable = new HashMap<>();Scanner sc = new Scanner(System.in);for (int i = 0; i < 21; i++) {worldCupTable.put(i+1, new WorldCup(YEAR[i],COUNTRY[i]));}while (true) {System.out.println("操作如下:0、退出   1、查询年份   2、查询届数   3、查询国家   4、查看全部信息");int command = sc.nextInt();switch (command){case 0:     //退出System.out.println("系统已退出!");return;case 1:     //查询年份getByYear(worldCupTable, sc);break;case 2:     //查询届数getByOrder(worldCupTable, sc);break;case 3:     //查询国家getByCountry(worldCupTable, sc);break;case 4:getAll(worldCupTable);break;default:System.out.println("没有该操作!");}}}/*** 根据年份查询* @param worldCupTable* @param sc*/private static void getByYear(HashMap<Integer, WorldCup> worldCupTable, Scanner sc) {System.out.println("请输入希望查询的年份:");int year = sc.nextInt();for (HashMap.Entry<Integer,WorldCup> entry : worldCupTable.entrySet()) {if(year == entry.getValue().getYear()) {System.out.println("第 "+ entry.getKey() + " 届世界杯:" + entry.getValue().toString());return;}}System.out.println(year + " 年没有世界杯!");return;}/*** 根据届数查询* @param worldCupTable* @param sc*/private static void getByOrder(HashMap<Integer, WorldCup> worldCupTable, Scanner sc) {System.out.println("请输入希望查询的届数(现举办了21届):");int order = sc.nextInt();for (HashMap.Entry<Integer,WorldCup> entry : worldCupTable.entrySet()) {if(order == entry.getKey()) {System.out.println("第 "+ entry.getKey() + " 届世界杯:" + entry.getValue().toString());return;}}System.out.println("没有第 " + order + " 届世界杯!");return;}/*** 根据国家查询* @param worldCupTable* @param sc*/private static void getByCountry(HashMap<Integer, WorldCup> worldCupTable, Scanner sc) {String[] country = {"乌拉圭","意大利","西德","巴西","英格兰","阿根廷","法国","西班牙","德国"};System.out.print("取得世界杯的国家有:");for (String countryName : country) {System.out.print("   " + countryName);}System.out.println();System.out.println("请输入希望查询的国家:");String countryName = sc.next();if(inArray(countryName,country)) {System.out.println(countryName + " 取得世界杯的有:");for (HashMap.Entry<Integer,WorldCup> entry : worldCupTable.entrySet()) {if(countryName.equals(entry.getValue().getCountryName())) {System.out.println("第 "+ entry.getKey() + " 届世界杯:" + entry.getValue().getYear() + " 年!");}}System.out.println();return;} else {System.out.println(countryName + " 没有赢得世界杯!");return;}}/*** 查看全部信息* @param worldCupTable*/private static void getAll(HashMap<Integer, WorldCup> worldCupTable) {for (HashMap.Entry<Integer,WorldCup> entry : worldCupTable.entrySet()) {System.out.println("第 "+ entry.getKey() + " 届世界杯:" + entry.getValue().toString());}}/*** 判断字符串是否在数组中* @param str* @param Array* @return*/private static boolean inArray(String str, String[] Array) {for(int i=0; i<Array.length ;i++) {if(str.equals(Array[i]))return true;}return false;}}

Java:(练习)二、基于Map和面向对象方法的世界杯冠军信息系统相关推荐

  1. java计算机毕业设计基于ssm的医院门诊电子病历管理信息系统

    项目介绍 医院门诊互联电子病历的需求和管理上的不断提升,医院门诊互联电子病历管理的潜力将无限扩大,医院门诊互联电子病历管理信息系统在业界被广泛关注,本系统对此进行总体分析,将医院门诊互联电子病历信息管 ...

  2. java flatmapfunction_Java Stream中map和flatMap方法

    最近看到一篇讲stream语法的文章,学习Java中map()和flatMap()方法之间的区别. 虽然看起来这两种方法都做同样的事情,都是做的映射操作,但实际上差之毫厘谬以千里. 通过演示Demo中 ...

  3. Java 8 Steam API map和flatMap方法使用详解

    java 8 stream api 中有两个方法map和flatMap非常实用,应用场景也非常广泛,能极大提升编程效率.下面我们详细介绍一下这两个方法的用法. map方法 我们来看个示例:把一个整数列 ...

  4. java token_Java实现基于token认证的方法示例

    随着互联网的不断发展,技术的迭代也非常之快.我们的用户认证也从刚开始的用户名密码转变到基于cookie的session认证,然而到了今天,这种认证已经不能满足与我们的业务需求了(分布式,微服务).我们 ...

  5. java基础----集合之Map集合基本方法的使用以及遍历

    package com.henu;import java.util.Collection; import java.util.HashMap; import java.util.Map; import ...

  6. java生成二维码最简单方法

    昨天接到了一个需求是通过jave服务端动态生成二维码,提供给前端调用,这里就介绍一下生成的过程. 我这里是一个springboot服务,springboot服务的jar包就不贴了 这里只粘贴二维码用到 ...

  7. java语言二维数组转置_java实现二维数组转置的方法示例

    本文实例讲述了java实现二维数组转置的方法.分享给大家供大家参考,具体如下: 这里在文件中创建Test2.Exchange.Out三个类 在Exchange类中编写exchange()方法,在方法中 ...

  8. Java:(练习)一、基于面向对象方法的简单银行系统

    Java:(练习)一.基于面向对象方法的简单银行系统 前言 一.银行类Bank.java 二.主类Main.java 总结 前言 学习java过程中,练习了一个面向对象小程序 程序要求(来源:非凡教育 ...

  9. 专科 java转go 翱翔之路(二)基础语法:匿名组合,方法,接口,map,json,异常处理,channel管道,select用法

    2.4 面向对象编程 2.4.1匿名组合 type Person struct {id intname stringage int }type Student struct {Person //只有类 ...

  10. Java(二)分支循环、数组、字符串、方法

    文章目录 一.分支循环 1.1 分支结构 1.2 循环结构 1.3 跳转语句 1.4 分支循环相关问题 1.4.1 switch是否能作用在byte上,是否能作用在long上,是否能作用在String ...

最新文章

  1. Blender写实产品创作学习教程
  2. Linux之make 、makefile的使用方法
  3. Python 之 Numpy (二)array
  4. SQL Server 2008, 2008 R2, 2012 and 2014 完全支持TLS1.2加密传输
  5. php-cgi导致的502 Bad Gateway错误
  6. 数据库分区分表以及读写分离
  7. 安装 SAP Spartacus 3.0 并使用B2B功能
  8. 用python写聊天机器人_用Python 写一个机器人陪你聊天(文尾有彩蛋)
  9. 家谱处理 (30 分)(map映射)
  10. android 手机如何备份通讯录,手机通讯录怎么备份
  11. 推荐十款很好用的HTML工具编写软件
  12. 【渝粤教育】电大中专跨境电子商务理论与实务_1作业 题库
  13. android手机开机密码,安卓手机锁屏密码忘了怎么办 锁屏密码解决方法
  14. vs调试nuget包_NuGet包调试源码的方法
  15. oracle无法进入nomount状态,数据库进入nomount状态
  16. 机器学习Class 6:分类及描述
  17. rrpp协议如何修改_《技术进阶:理解RRPP协议.ppt
  18. 常见神经系统疾病的临床诊断及处理原则题库【1】
  19. python能打包成apk吗_超详细APK打包教程
  20. 360 冰刃实验室研究员获得微软史上最高漏洞赏金

热门文章

  1. 基于移动终端的增强现实技术方案(已实现)
  2. 断网重启路由器就好_为什么总是断网重启路由器就好了
  3. 路由器间歇性断网,而且不重启路由器不会自动恢复的问题
  4. python 海龟图
  5. 【Review】数据结构线性表,数组算法(串模式匹配克鲁德、螺旋矩阵四墙)
  6. 铁通dns服务器地址是多少,电信/网通/铁通dns服务器地址大全
  7. python空格转义字符_python空格转义
  8. 令人惊艳的NanoPC-T4(RK3399)作为工作站的初始配置和相关应用
  9. 同一方法被多个Aspect拦截, 修改切面@Around @Before的执行顺序
  10. 使用spark-md5获取文件md5值