循环、选择结构相互嵌套+键盘输入条件判断+HashMap集合混合案例开发

执键写春秋
• 阅读 997

案例:小王是一名房产中介,每天上班会查看房源与新增房源。这里小慕已经为你提炼了需求,来看一下小王希望的程序运行效果: 循环、选择结构相互嵌套+键盘输入条件判断+HashMap集合混合案例开发 循环、选择结构相互嵌套+键盘输入条件判断+HashMap集合混合案例开发 循环、选择结构相互嵌套+键盘输入条件判断+HashMap集合混合案例开发 循环、选择结构相互嵌套+键盘输入条件判断+HashMap集合混合案例开发

1. 房源类

package person.xsc.practice;

public class Home {
    private int homeId;
    private String homeName;
    private String homeAddress;
    private String homeKinds;
    public Home() {}
    public Home(int homeId,String homeName,String homeAddress,String homeKinds) {
        this.homeId=homeId;
        this.homeName=homeName;
        this.homeAddress=homeAddress;
        this.homeKinds=homeKinds;
    }
    public int getHomeId() {
        return homeId;
    }
    public void setHomeId(int homeId) {
        this.homeId = homeId;
    }
    public String getHomeName() {
        return homeName;
    }
    public void setHomeName(String homeName) {
        this.homeName = homeName;
    }
    public String getHomeAddress() {
        return homeAddress;
    }
    public void setHomeAddress(String homeAddress) {
        this.homeAddress = homeAddress;
    }
    public String getHomeKinds() {
        return homeKinds;
    }
    public void setHomeKinds(String homeKinds) {
        this.homeKinds = homeKinds;
    }
    @Override
    public String toString() {
        return "房源编号:" + getHomeId()+ "\n房源名称:"    + getHomeName()+ "\n房源地址:"    + getHomeAddress()+ "\n房屋类型:"    + getHomeKinds();
    }

}

2. 测试类

package person.xsc.practice;
import java.util.HashMap;
import java.util.InputMismatchException;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Scanner;
import java.util.Set;

public class HomeTest {
    public static  void Mainmenu() {
        System.out.println("*****************************");
        System.out.println("                             " + "房源中心" + "           ");
        System.out.println("       " + "1--添加房源");
        System.out.println("       " + "2--查看具体房源信息" + "           ");
        System.out.println("       " + "3--区间查看房源信息" + "           ");
        System.out.println("       " + "0--退出房源中心" + "           ");
        System.out.println("*****************************");
    }
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        Scanner scanner=new Scanner(System.in);
        Map<Integer,Home> homesMap=new HashMap<Integer,Home>();
        boolean flag = true;
        int input=0;//操作数
        while(flag) {
             Mainmenu();
             System.out.println("请输入对应数字进行操作:");
             try {
                 input = scanner.nextInt();
             } catch (InputMismatchException e) {
                 System.out.println("输入的数据有误,只能为数字!");
                 scanner.next();
                 continue;
              }if(input<0||input>3) {
                 System.out.println("输入的数字超出范围!");
              }else {
                 switch(input) {
                     case 0:{
                          System.out.println("**********程序结束!*********");
                         flag=false;
                         break;
                     }
                     case 1:{
                          int newHomeId=0;
                          while(true) {
                              try {
                                  System.out.println("**********添加房源*********");
                                  System.out.println("输入房源编号:"+ '\n'+"编号从0开始,并为连续数值,如1,2,3");
                                  newHomeId= scanner.nextInt();
                                  if (homesMap.containsKey(newHomeId)) {
                                      System.out.println("该房源编号已经存在!请重新输入!");
                                      continue;
                                  }
                              } catch (Exception e) {
                                System.out.println("输入的数据有误,只能为数字!");
                                scanner.next();
                                continue;
                             }
                         System.out.println("请输入房源名称:");
                         String newHomeName = scanner.next();
                         System.out.println("请输入房源地址:");
                         String newHomeAddress = scanner.next();
                         System.out.println("请输入房源户型:");
                         String newHomeKinds = scanner.next();
                         Home temp=new Home(newHomeId,newHomeName,newHomeAddress,newHomeKinds);
                         homesMap.put(newHomeId,temp);
                         break;
                          }
                          break;
                     }
                     case 2:{
                          System.out.println("**********全部房源信息*********");
                          Set <Entry<Integer,Home>> entrySet=homesMap.entrySet();
                          for(Entry<Integer,Home> entry:entrySet) {
                            System.out.println("房源编号                       房源名称");
                            System.out.println(entry.getKey()+"             "+entry.getValue().getHomeName());
                         }
                          boolean b=true;
                          int a=0;
                          while(b) {
                              if(a==1) {
                                  System.out.println("对不起,没有你输入的这个房源编号!:");
                              }
                             System.out.println("请输入要查看具体房源编号:");
                             int newHomeId=0;
                             try {
                                 newHomeId=scanner.nextInt();
                                 for(Map.Entry<Integer,Home> home : entrySet){
                                        if(newHomeId==home.getKey()){
                                            System.out.println(homesMap.get(newHomeId));
                                            b=false;
                                            a=0;
                                        }else {
                                            a=1;
                                        }
                                  }
                             }catch (Exception e) {
                                    System.out.println("输入的数据有误,只能为数字!");
                                    scanner.next();
                                    a=0;
                                    continue;
                             }

                          }
                         break;
                     }
                     case 3:{
                          System.out.println("**********全部房源信息*********");
                          Set <Entry<Integer,Home>> entrySet=homesMap.entrySet();
                          for(Entry<Integer,Home> entry:entrySet) {
                            System.out.println("房源编号                       房源名称");
                            System.out.println(entry.getKey()+"             "+entry.getValue().getHomeName());
                         }
                          int startInput = 0;//第一个区间编号
                         int overInput=0;//第二个区间编号
                         boolean a=true;
                         while(a) {
                             boolean b=true;
                              while(b) {
                                 System.out.println("请输入要查看房源信息的第一个编号:");
                                 try {
                                    startInput=scanner.nextInt();
                                    b=false;
                                 } catch (Exception e) {
                                    System.out.println("输入的数据有误,只能为数字!");
                                    scanner.next();
                                    continue;
                                 }
                              }
                              boolean c=true;
                              while(c) {
                                 System.out.println("请输入要查看房源信息的第二个编号:");
                                 try {
                                    overInput = scanner.nextInt();
                                    c=false;
                                 } catch (Exception e) {
                                    System.out.println("输入的数据有误,只能为数字!");
                                    scanner.next();
                                    continue;
                                 }
                              }
                             if(startInput>overInput||startInput<0||overInput>homesMap.size()) {
                                  System.out.println("输入的编号超出范围!");
                                  continue;
                             }else {
                                  for(int i=startInput;i<=overInput;++i) {
                                  System.out.println(homesMap.get(i));
                                  System.out.println("-------------------");
                                  }
                                  a=false;
                             }
                         }

                         break;
                     }

                 }
              }

        }

    }
}

3. 输出

*****************************
                             房源中心           
       1--添加房源
       2--查看具体房源信息           
       3--区间查看房源信息           
       0--退出房源中心           
*****************************
请输入对应数字进行操作:
1
**********添加房源*********
输入房源编号:
编号从0开始,并为连续数值,如1,2,3
0
请输入房源名称:
天通苑2号
请输入房源地址:
天通苑
请输入房源户型:
三室一厅
*****************************
                             房源中心           
       1--添加房源
       2--查看具体房源信息           
       3--区间查看房源信息           
       0--退出房源中心           
*****************************
请输入对应数字进行操作:
1
**********添加房源*********
输入房源编号:
编号从0开始,并为连续数值,如1,2,3
1
请输入房源名称:
天通苑2号
请输入房源地址:
天通苑
请输入房源户型:
三室一厅
*****************************
                             房源中心           
       1--添加房源
       2--查看具体房源信息           
       3--区间查看房源信息           
       0--退出房源中心           
*****************************
请输入对应数字进行操作:
1
**********添加房源*********
输入房源编号:
编号从0开始,并为连续数值,如1,2,3
2
请输入房源名称:
西直门1号
请输入房源地址:
西直门
请输入房源户型:
两室一厅
*****************************
                             房源中心           
       1--添加房源
       2--查看具体房源信息           
       3--区间查看房源信息           
       0--退出房源中心           
*****************************
请输入对应数字进行操作:
/
输入的数据有误,只能为数字!
*****************************
                             房源中心           
       1--添加房源
       2--查看具体房源信息           
       3--区间查看房源信息           
       0--退出房源中心           
*****************************
请输入对应数字进行操作:
6
输入的数字超出范围!
*****************************
                             房源中心           
       1--添加房源
       2--查看具体房源信息           
       3--区间查看房源信息           
       0--退出房源中心           
*****************************
请输入对应数字进行操作:
2
**********全部房源信息*********
房源编号                       房源名称
0             天通苑2号
房源编号                       房源名称
1             天通苑2号
房源编号                       房源名称
2             西直门1号
请输入要查看具体房源编号:
/
输入的数据有误,只能为数字!
请输入要查看具体房源编号:
6
对不起,没有你输入的这个房源编号!:
请输入要查看具体房源编号:
0
房源编号:0
房源名称:天通苑2号
房源地址:天通苑
房屋类型:三室一厅
*****************************
                             房源中心           
       1--添加房源
       2--查看具体房源信息           
       3--区间查看房源信息           
       0--退出房源中心           
*****************************
请输入对应数字进行操作:
3
**********全部房源信息*********
房源编号                       房源名称
0             天通苑2号
房源编号                       房源名称
1             天通苑2号
房源编号                       房源名称
2             西直门1号
请输入要查看房源信息的第一个编号:
/
输入的数据有误,只能为数字!
请输入要查看房源信息的第一个编号:
9
请输入要查看房源信息的第二个编号:
2
输入的编号超出范围!
请输入要查看房源信息的第一个编号:
0
请输入要查看房源信息的第二个编号:
9
输入的编号超出范围!
请输入要查看房源信息的第一个编号:
0
请输入要查看房源信息的第二个编号:
2
房源编号:0
房源名称:天通苑2号
房源地址:天通苑
房屋类型:三室一厅
-------------------
房源编号:1
房源名称:天通苑2号
房源地址:天通苑
房屋类型:三室一厅
-------------------
房源编号:2
房源名称:西直门1号
房源地址:西直门
房屋类型:两室一厅
-------------------
*****************************
                             房源中心           
       1--添加房源
       2--查看具体房源信息           
       3--区间查看房源信息           
       0--退出房源中心           
*****************************
请输入对应数字进行操作:
0
**********程序结束!*********
点赞
收藏
评论区
推荐文章
Souleigh ✨ Souleigh ✨
3年前
Javascript 常用代码优化和重构的方法
简介主要介绍以下几点:1.提炼函数2.合并重复的条件片段3.把条件分支语句提炼成函数4.合理使用循环5.提前让函数退出代替嵌套条件分支6.传递对象参数代替过长的参数列表7.少用三目运算符8.合理使用链式调用9.分解大型类10.活用位操作符11.纯函数本文会不断更新,不足之处欢迎
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
Wesley13 Wesley13
2年前
Java常见面试题总结
一、Java基础1、String类为什么是final的。2、HashMap的源码,实现原理,底层结构。3、说说你知道的几个Java集合类:list、set、queue、map实现类咯。。。4、描述一下ArrayList和LinkedList各自实现和区别5、Java中的队列都有哪些,有什么区别。6、反射中,Class.forName和
Easter79 Easter79
2年前
Taro小程序自定义顶部导航栏
微信自带的顶部导航栏是无法支持自定义icon和增加元素的,在开发小程序的时候自带的根本满足不了需求,分享一个封装好的组件,支持自定义icon、扩展dom,适配安卓、ios、h5,全面屏。我用的是京东的Taro多端编译框架写的小程序,原生的也可以适用,用到的微信/taro的api做调整就行,实现效果如下。!在这里插入图片描述(https://i
Easter79 Easter79
2年前
Vue + Element 实现动态添加input
 此篇博客背景:项目开发技术为vueelement,需求为form表单中动态添加input表单,本element中有现成form动态添加案例,但ui小姐姐效果图与ui库有些微差别,固重新整理。废话不多说啦,正式开始了:代码地址:https://codepen.io/newgingkgo/pen/gObMMow (备注:将代码复制至vue项目即可查看
Stella981 Stella981
2年前
Sass
嵌套规则(NestedRules)Sass允许将一套CSS样式嵌套进另一套样式中,内层的样式将它外层的选择器作为父选择器mainp{color:00ff00;width:97%;.redbox{
Stella981 Stella981
2年前
Python中循环及判断语句
循环判断条件是编程语言中一个很重要的部分,python也不例外,循环判断条件一般结合continue,return,break关键字来判断,这些关键字用法与java中基本一致一、if判断语句判断条件返回的结果为布尔值,在python中,布尔值为True/False,首字母必须大写,否则将出现如下异常!(https://oscimg.oschi
Stella981 Stella981
2年前
ReactNative
根据现实情况,先虚拟个场景客户:喂,小王,上周发布的新版本,用着用着闪退了呢,是不是有什么问题?小王:奥?主任,能说一下进行了那些操作吗?客户:具体的我也不是很清楚,下面具体使用的人反应上来的,情况比较紧急,能帮忙看一下哪里出的问题吗?小王:奥,这样啊。那我马上看一下吧,解决了,给您回复。解决方
Wesley13 Wesley13
2年前
Java入门(五):控制流程
在Java中,使用条件语句和循环结构确定控制流程,在本文中,主要包括块作用域、条件语句、循环结构、中断循环这四部分。一、块作用域块,也叫复合语句,是指由一对大括号括起来的若干条Java语句。块决定了变量的作用域。一个块可以嵌套多个块。二、条件语句如果判断超过三层,建议拆分开来写,这样更加清晰。packagejav
安居客房源信息获取
最近身边有几个做房产销售的朋友经常在诉苦,找不到客户,没有业绩,所以就比较好奇他们现在的行情,所以今天我们就使用python获取下安居客的一些房源数据。之前分享过很多关于爬虫的实践示例,今天这个也算是实践内容。我们就以户型结构、装修情况、水肥情况进行房源数据获取。爬取数据的通用流程:1、根据url请求页面,获取页面响应对象2、将页面响应对象转化为对象3、定