houseView
package house.view;import house.model.House;
import house.sevice.house_Sevice;
import house.tool.Utility;import java.util.Scanner;/*** 1 显示界面* 2 接收用户的输入* 3 调用houseService完成对房屋信息的各种输人*/
public class houseView {private boolean loop=true;private char key=' ';//编写addhouse(),接收输入,创建addhouse对象,调用add方法public void addhouse(){System.out.println("---------添加房屋-------");System.out.print("姓名:");String name=Utility.readString(6);System.out.print("电话:");int phone=Utility.readInt(12);System.out.print("地址:");String address=Utility.readString(14);System.out.print("月租:");int rent=Utility.readInt();System.out.print("状态:");String state=Utility.readString(3);//注意id是系统分配的House newhouse=new House(0,name,phone,address,rent,state);if(house_sevice.add(newhouse)){System.out.println("添加房屋成功");}else {System.out.println("添加房屋失败");}}//查找房屋public void find(){System.out.println("---------查找房屋-------");System.out.print("请输入要查找的房屋编号:");int f=Utility.readInt();if(house_sevice.Find(f)==null){System.out.println("没有找到该房屋的信息");}else {System.out.println("编号  房主  \t电话  \t地址  \t月租  \t状态(出租/未出租)\n"+house_sevice.Find(f));}}//编写delhosue方法,接收输入的id,调用service的del方法public void delhouse(){System.out.println("---------删除房屋-------");System.out.print("请输入要删除的房屋编号(-1退出):");int delid=Utility.readInt();if(delid==-1){System.out.println("---------退出删除-------");return;}char c=Utility.readConfirmSelection();//调用该方法,一直循环直到用户输入y或nif(c=='Y'){if(house_sevice.del(delid)){System.out.println("---------删除成功-------");}else {System.out.println("---------删除失败-------");}}else {System.out.println("---------退出删除-------");return;}}//修改房屋信息public void update(){System.out.println("---------修改房屋信息-------");System.out.print("请输入要修改的房屋编号(-1退出):");int up=Utility.readInt();if(up==-1){System.out.println("---------退出修改-------");return;}house_sevice.updata(up);System.out.println("---------修改成功-------");}//显示房屋列表private house_Sevice house_sevice=new house_Sevice(10);//设置数组大小为10public  void listHouse(){System.out.println("---------房屋出租列表-------");System.out.println("编号  房主  \t电话  \t地址  \t月租  \t状态(出租/未出租)");House[] houses=house_sevice.list();//得到所有房屋的信息for (int i = 0; i < houses.length; i++) {if(houses[i]==null){break;}System.out.println(houses[i]);}}//主菜单public void main_menu(){do{System.out.println("---------房屋出租系统-------");System.out.println("\t\t1 新 增 房 源");System.out.println("\t\t2 查 找 房 屋");System.out.println("\t\t3 删 除 房 屋");System.out.println("\t\t4 修 改 房 屋 信 息");System.out.println("\t\t5 房 屋 列 表");System.out.println("\t\t6 退 出");System.out.print("请输入你的选择:");key= Utility.readChar();switch (key){case '1':addhouse();break;case '2':find();break;case '3':delhouse();break;case '4':update();break;case '5':listHouse();break;case '6':char n=Utility.readConfirmSelection();if(n=='Y'){loop=false;}break;default:System.out.println("输入错误!");}}while (loop);}
}
house_Sevice
package house.sevice;import house.model.House;
import house.tool.Utility;/*** house_Sevice.java<=> 类 [业务层]* //定义house[],保存house对象* 1 响应houseView的调用* 2 完成对房屋信息的各种操作(增删改查)*/
public class house_Sevice {private House[] houses;//保存house对象private int nums=3;//记录数组内的房屋个数private int count=3;//id//初始化房屋列表public house_Sevice(int size){//传入数组大小houses=new House[size];houses[0]=new House(1,"Morty",1020,"纽约",111,"未出租");houses[1]=new House(2,"莱月昴",1021,"东京",222,"未出租");houses[2]=new House(3,"李星云",1022,"洛阳",333,"未出租");}public House[] list(){return houses;//因为重写了tostring}//添加房屋信息public boolean add(House newhouse){if(nums==houses.length){return false;}else {houses[nums++]=newhouse;newhouse.setId(++count);//id自增长机制,更新newhouse的idreturn true;}}//删除房屋public boolean del(int Id){//找到要删除房屋信息元素对应的下标int index=-1;for (int i = 0; i < nums; i++) {if(Id==houses[i].getId()){index=i;}}if(index==-1){return false;}for (int i = index; i < houses.length-1; i++) {houses[i]=houses[i+1];//将该位置之后的元素前移覆盖}houses[--nums]=null;//将数组长度减一并将最后一个元素置空return true;}//查找房屋public House Find(int id){//找到要查找房屋信息元素对应的下标for (int i = 0; i < nums; i++) {if(id==houses[i].getId()){return houses[i];}}return null;}//修改房屋信息public void updata(int up){House house=Find(up);if(house==null){System.out.println("该房屋不存在");}else {System.out.print("姓名:("+house.getName()+"):");String name= Utility.readString(8,"");//用户如果直接回车代表不修改,默认值为""if(!name.equals("")){house.setName(name);//将用户输入的name覆盖原来的name}System.out.print("手机号:("+house.getPhone()+"):");int phone=Utility.readInt(0);//用户如果直接回车代表不修改,默认值为0if(!(phone==0)){house.setPhone(phone);//将用户输入的name覆盖原来的name}System.out.print("地址:("+house.getAddress()+"):");String address=Utility.readString(8,"");if(!address.equals("")){house.setAddress(address);}System.out.print("月租:("+house.getRent()+"):");int rent=Utility.readInt(0);if(!(rent==0)){house.setRent(rent);}System.out.print("状态:("+house.getState()+"):");String state=Utility.readString(8,"");if(!state.equals("")){house.setState(state);//}}}
}
house.tool.Utility
package house.tool;/**工具类的作用:处理各种情况的用户输入,并且能够按照程序员的需求,得到用户的控制台输入。
*/import java.util.*;
/***/
public class Utility {//静态属性。。。private static Scanner scanner = new Scanner(System.in);/*** 功能:读取键盘输入的一个菜单选项,值:1——5的范围* @return 1——5*/public static char readMenuSelection() {char c;for (; ; ) {String str = readKeyBoard(1, false);//包含一个字符的字符串c = str.charAt(0);//将字符串转换成字符char类型if (c != '1' && c != '2' && c != '3' && c != '4' && c != '5') {System.out.print("选择错误,请重新输入:");} else break;}return c;}/*** 功能:读取键盘输入的一个字符* @return 一个字符*/public static char readChar() {String str = readKeyBoard(1, false);//就是一个字符return str.charAt(0);}/*** 功能:读取键盘输入的一个字符,如果直接按回车,则返回指定的默认值;否则返回输入的那个字符* @param defaultValue 指定的默认值* @return 默认值或输入的字符*/public static char readChar(char defaultValue) {String str = readKeyBoard(1, true);//要么是空字符串,要么是一个字符return (str.length() == 0) ? defaultValue : str.charAt(0);}/*** 功能:读取键盘输入的整型,长度小于2位* @return 整数*/public static int readInt() {int n;for (; ; ) {String str = readKeyBoard(10, false);//一个整数,长度<=10位try {n = Integer.parseInt(str);//将字符串转换成整数break;} catch (NumberFormatException e) {System.out.print("数字输入错误,请重新输入:");}}return n;}/*** 功能:读取键盘输入的 整数或默认值,如果直接回车,则返回默认值,否则返回输入的整数* @param defaultValue 指定的默认值* @return 整数或默认值*/public static int readInt(int defaultValue) {int n;for (; ; ) {String str = readKeyBoard(10, true);if (str.equals("")) {return defaultValue;}//异常处理...try {n = Integer.parseInt(str);break;} catch (NumberFormatException e) {System.out.print("数字输入错误,请重新输入:");}}return n;}/*** 功能:读取键盘输入的指定长度的字符串* @param limit 限制的长度* @return 指定长度的字符串*/public static String readString(int limit) {return readKeyBoard(limit, false);}/*** 功能:读取键盘输入的指定长度的字符串或默认值,如果直接回车,返回默认值,否则返回字符串* @param limit 限制的长度* @param defaultValue 指定的默认值* @return 指定长度的字符串*/public static String readString(int limit, String defaultValue) {String str = readKeyBoard(limit, true);return str.equals("")? defaultValue : str;}/*** 功能:读取键盘输入的确认选项,Y或N* 将小的功能,封装到一个方法中.* @return Y或N*/public static char readConfirmSelection() {System.out.print("是否确定删除(Y/N)");char c;for (; ; ) {//无限循环//在这里,将接受到字符,转成了大写字母//y => Y n=>NString str = readKeyBoard(1, false).toUpperCase();c = str.charAt(0);if (c == 'Y' || c == 'N') {break;} else {System.out.print("选择错误,请重新输入:");}}return c;}/*** 功能: 读取一个字符串* @param limit 读取的长度* @param blankReturn 如果为true ,表示 可以读空字符串。 *                     如果为false表示 不能读空字符串。*          *   如果输入为空,或者输入大于limit的长度,就会提示重新输入。* @return*/private static String readKeyBoard(int limit, boolean blankReturn) {//定义了字符串String line = "";//scanner.hasNextLine() 判断有没有下一行while (scanner.hasNextLine()) {line = scanner.nextLine();//读取这一行//如果line.length=0, 即用户没有输入任何内容,直接回车if (line.length() == 0) {if (blankReturn) return line;//如果blankReturn=true,可以返回空串else continue; //如果blankReturn=false,不接受空串,必须输入内容}//如果用户输入的内容大于了 limit,就提示重写输入  //如果用户如的内容 >0 <= limit ,我就接受if (line.length() < 1 || line.length() > limit) {System.out.print("输入长度(不能大于" + limit + ")错误,请重新输入:");continue;}break;}return line;}
}
House
package house.model;/*** house类的对象表示一个房屋的信息*/
public class House {//编号  房主  电话  地址  月租  状态(出租/未出租)private int id;private String name;private int phone;private String address;private int rent;private String state;public House(int id, String name, int phone, String address, int rent, String state) {this.id = id;this.name = name;this.phone = phone;this.address = address;this.rent = rent;this.state = state;}public int getId() {return id;}public void setId(int id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}public int getPhone() {return phone;}public void setPhone(int phone) {this.phone = phone;}public String getAddress() {return address;}public void setAddress(String address) {this.address = address;}public int getRent() {return rent;}public void setRent(int rent) {this.rent = rent;}public String getState() {return state;}public void setState(String state) {this.state = state;}@Overridepublic String toString() {return  id+"\t" +name+"\t" +phone+"\t" +address+"\t\t"+rent+"\t\t"+state;}
}
App
package house.view;import house.model.House;public class App {public static void main(String[] args) {//创建View对象,并显示主菜单,是整个程序的入口new houseView().main_menu();//创建一个虚拟对象调用显示主菜单的方法System.out.println("程序已退出");}
}

房屋出租系统(java)相关推荐

  1. 基于javaweb的公寓房屋出租系统(java+ssm+jsp+easyui+echarts+mysql)

    基于javaweb的公寓房屋出租系统(java+ssm+jsp+easyui+echarts+mysql) 运行环境 Java≥8.MySQL≥5.7.Tomcat≥8 开发工具 eclipse/id ...

  2. Java项目:公寓房屋出租系统(java+SSM+JSP+EasyUI+Echarts+Mysql)

    源码获取:俺的博客首页 "资源" 里下载! 项目介绍 该项目分为前后台,分为普通用户与管理员两种角色. 前台主要功能包括: 普通用户的注册.登录,房屋列表展示,租房,我的订单.用户 ...

  3. 房屋出租系统(链表实现)

    因为做期末课设必须要用到数据结构 就把原来数组实现的房屋出租系统改成了用链表实现,删减了原先的一部分内容 原文章:房屋出租系统(java)_m0_55997161的博客-CSDN博客_java 房屋出 ...

  4. Java/java程序设计:房屋出租系统:要求实现:新增房源,查找房屋信息,修改房屋信息,删除房屋信息,显示所有房屋列表,退出房屋管理系统;

    Java/java程序设计:房屋出租系统: 一.前言: 一.1. 框架图 二.各类包下的代码实现: 1. 主文件(运行文件HouseApp.java) 2. 房屋类文件(House.java) 3. ...

  5. 【韩顺平JAVA】房屋出租系统

    程序整体分析 示例代码 package houserent;import java.util.Scanner;public class HouseRentSYS {public static void ...

  6. java学习笔记(9) 第9章 Java项目-房屋出租系统

    Java项目-房屋出租系统 代码打包--百度网盘链接: 9.1 房屋出租系统-需求 9.1.1 项目需求说明 9.2 房屋出租系统-界面 9.3 房屋出租系统-设计(!!) 9.4 房屋出租系统-实现 ...

  7. 【Java房屋出租系统】韩顺平java学习房屋出租系统

    房屋出租系统效果图示 房屋出租系统主类 package hspedu.houseRent;import java.util.Map;public class HouseRentSys {public ...

  8. Java 第一阶段建立编程思想 【房屋出租系统】

    Java 第一阶段建立编程思想 [房屋出租系统] 1. 项目需求说明 2. 项目界面 1. 主菜单 2. 新增房源 3. 查找房源 4. 删除房源 5. 修改房源 6. 房屋列表 7. 退出系统 3. ...

  9. Java笔记之房屋出租系统(十一)

    目录 一.项目需求说明 二.界面说明 1.主界面 2.新增房源界面 3.查找房源界面 4.删除房源界面 5.修改房源界面 6.房源列表界面 7.退出界面 三.程序框架图设计 四.工具类的说明 五.房屋 ...

  10. java的ArrayList实现房屋出租系统

    1.需求 实现基于文本界面的<房屋出租软件>. 能够实现对房屋信息的添加.修改和删除(用链表实现),并能够打印房屋明细表 2.框架(MVC) 3.实现 domain层 package co ...

最新文章

  1. mfc编辑框显示数据_Excel表格技巧—Excel表格中怎么给数据分等级
  2. LTE voice centric和data centric
  3. 给大家推荐个学英语的网站
  4. Python-输入输出
  5. ASP.NET Core 借助 Helm 部署应用至 K8S
  6. 生成图片_GitHub Star 3.2K Java 图片缩略图生成库
  7. MyCat分布式数据库集群架构工作笔记0013---高可用_Mycat双主双从复制配置上
  8. Raphael学习笔记(4)--绘图(路径【贝塞尔曲线】)
  9. c语言实现万年历程序
  10. Creational patterns
  11. 从零搭建KVM虚拟服务器
  12. AQS框架原文翻译 - The java.util.concurrent Synchronizer Framework
  13. 专家有料 | 李中文:美团软件成分安全分析(SCA)能力的建设与演进
  14. 2022 第二届中国移动“梧桐杯”大数据应用创新大赛-基于移动大数据的网约车司机识别 线上0.95+ 方案
  15. RedHat7.6 配置yum源
  16. 第七届河南省程序设计大赛——A 海岛争霸
  17. win10 mail删除邮件服务器,win10系统删除Mail应用程序的方法
  18. SSO中的Pattern
  19. 如果如果,如果没有如果
  20. linux snat mac 桥,关于SNAT在bridge中不生效的问题

热门文章

  1. 便利店收银系统多少钱一套
  2. 互动快报读报软件159份全国主流大报倾情奉献读者
  3. win 2016 ssh_【软件】Adobe 2020全家桶直装版2月最新升级!包含WIN+MAC全套! S22
  4. 织梦dede采集文章
  5. JavaScript网页特效
  6. SQL Server 2017安装错误:Polybase要求安装Oracle JRE 7更新51或更高版本的两种解决方法
  7. 直流电机、减速器、编码器与TB6612FNG知识整理
  8. Unity 动态修改鼠标指针
  9. 多个小球碰撞的java_原生JS实现多个小球碰撞反弹效果示例
  10. ctfmon是什么启动项_我MSCONFIG启动项里面没有ctfmon怎么处理?