房屋出租系统(java)
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)相关推荐
- 基于javaweb的公寓房屋出租系统(java+ssm+jsp+easyui+echarts+mysql)
基于javaweb的公寓房屋出租系统(java+ssm+jsp+easyui+echarts+mysql) 运行环境 Java≥8.MySQL≥5.7.Tomcat≥8 开发工具 eclipse/id ...
- Java项目:公寓房屋出租系统(java+SSM+JSP+EasyUI+Echarts+Mysql)
源码获取:俺的博客首页 "资源" 里下载! 项目介绍 该项目分为前后台,分为普通用户与管理员两种角色. 前台主要功能包括: 普通用户的注册.登录,房屋列表展示,租房,我的订单.用户 ...
- 房屋出租系统(链表实现)
因为做期末课设必须要用到数据结构 就把原来数组实现的房屋出租系统改成了用链表实现,删减了原先的一部分内容 原文章:房屋出租系统(java)_m0_55997161的博客-CSDN博客_java 房屋出 ...
- Java/java程序设计:房屋出租系统:要求实现:新增房源,查找房屋信息,修改房屋信息,删除房屋信息,显示所有房屋列表,退出房屋管理系统;
Java/java程序设计:房屋出租系统: 一.前言: 一.1. 框架图 二.各类包下的代码实现: 1. 主文件(运行文件HouseApp.java) 2. 房屋类文件(House.java) 3. ...
- 【韩顺平JAVA】房屋出租系统
程序整体分析 示例代码 package houserent;import java.util.Scanner;public class HouseRentSYS {public static void ...
- java学习笔记(9) 第9章 Java项目-房屋出租系统
Java项目-房屋出租系统 代码打包--百度网盘链接: 9.1 房屋出租系统-需求 9.1.1 项目需求说明 9.2 房屋出租系统-界面 9.3 房屋出租系统-设计(!!) 9.4 房屋出租系统-实现 ...
- 【Java房屋出租系统】韩顺平java学习房屋出租系统
房屋出租系统效果图示 房屋出租系统主类 package hspedu.houseRent;import java.util.Map;public class HouseRentSys {public ...
- Java 第一阶段建立编程思想 【房屋出租系统】
Java 第一阶段建立编程思想 [房屋出租系统] 1. 项目需求说明 2. 项目界面 1. 主菜单 2. 新增房源 3. 查找房源 4. 删除房源 5. 修改房源 6. 房屋列表 7. 退出系统 3. ...
- Java笔记之房屋出租系统(十一)
目录 一.项目需求说明 二.界面说明 1.主界面 2.新增房源界面 3.查找房源界面 4.删除房源界面 5.修改房源界面 6.房源列表界面 7.退出界面 三.程序框架图设计 四.工具类的说明 五.房屋 ...
- java的ArrayList实现房屋出租系统
1.需求 实现基于文本界面的<房屋出租软件>. 能够实现对房屋信息的添加.修改和删除(用链表实现),并能够打印房屋明细表 2.框架(MVC) 3.实现 domain层 package co ...
最新文章
- mfc编辑框显示数据_Excel表格技巧—Excel表格中怎么给数据分等级
- LTE voice centric和data centric
- 给大家推荐个学英语的网站
- Python-输入输出
- ASP.NET Core 借助 Helm 部署应用至 K8S
- 生成图片_GitHub Star 3.2K Java 图片缩略图生成库
- MyCat分布式数据库集群架构工作笔记0013---高可用_Mycat双主双从复制配置上
- Raphael学习笔记(4)--绘图(路径【贝塞尔曲线】)
- c语言实现万年历程序
- Creational patterns
- 从零搭建KVM虚拟服务器
- AQS框架原文翻译 - The java.util.concurrent Synchronizer Framework
- 专家有料 | 李中文:美团软件成分安全分析(SCA)能力的建设与演进
- 2022 第二届中国移动“梧桐杯”大数据应用创新大赛-基于移动大数据的网约车司机识别 线上0.95+ 方案
- RedHat7.6 配置yum源
- 第七届河南省程序设计大赛——A 海岛争霸
- win10 mail删除邮件服务器,win10系统删除Mail应用程序的方法
- SSO中的Pattern
- 如果如果,如果没有如果
- linux snat mac 桥,关于SNAT在bridge中不生效的问题
热门文章
- 便利店收银系统多少钱一套
- 互动快报读报软件159份全国主流大报倾情奉献读者
- win 2016 ssh_【软件】Adobe 2020全家桶直装版2月最新升级!包含WIN+MAC全套! S22
- 织梦dede采集文章
- JavaScript网页特效
- SQL Server 2017安装错误:Polybase要求安装Oracle JRE 7更新51或更高版本的两种解决方法
- 直流电机、减速器、编码器与TB6612FNG知识整理
- Unity 动态修改鼠标指针
- 多个小球碰撞的java_原生JS实现多个小球碰撞反弹效果示例
- ctfmon是什么启动项_我MSCONFIG启动项里面没有ctfmon怎么处理?