目录

9.1  房屋出租系统 - 需求

9.1.1  项目需求说明

9.2  房屋出租系统 - 界面

9.2.1  主菜单

9.2.2  新增房源

9.2.3  查找房源

9.2.4  删除房源

9.2.5  修改房源

9.2.6  房屋列表

9.2.7  退出系统

9.3  房屋出租系统 - 设计

9.4  房屋出租系统 - 实现

9.4.1  准备工具类Utility,提高开发效率

9.4.2  项目功能实现 - House类

9.4.3  项目功能实现 - 显示主菜单和完成退出软件功能

9.4.4  项目功能实现 - 显示房屋列表的功能

9.4.5  项目功能实现 - 添加房屋信息

9.4.6  项目功能实现 - 删除房屋信息

9.4.7  项目功能实现 - 查找房屋信息

9.4.8  项目功能实现 - 修改房屋信息


9.1  房屋出租系统 - 需求

9.1.1  项目需求说明

实现基于文本界面的《房屋出租软件》

能够实现对房屋信息的添加、修改和删除(数组),并能够打印房屋明细

9.2  房屋出租系统 - 界面

9.2.1  主菜单

9.2.2  新增房源

9.2.3  查找房源

9.2.4  删除房源

9.2.5  修改房源

9.2.6  房屋列表

9.2.7  退出系统

9.3  房屋出租系统 - 设计

项目设计 - 程序框架图(分层模式 --> 当软件比较复杂,需要模式管理)

9.4  房屋出租系统 - 实现

9.4.1  准备工具类Utility,提高开发效率

学会看代码,正确使用

9.4.2  项目功能实现 - House类

属性:编号、房主、电话、地址、月租、状态(未出租/已出租)

//package ... .domain;public class House {private int id;private String name;private String phone;private String address;private int rent;private String state;//这里省略 有参构造器 和 set、get方法//重写 toString方法,改为界面输出样式public String toString() {return  id +"\t\t" + name +"\t\t" + phone +"\t\t" + address +"\t\t" + rent +"\t\t" + state ;}
}

9.4.3  项目功能实现 - 显示主菜单和完成退出软件功能

// 显示主菜单 HouseView类中,mainMenu方法public class HouseView {private boolean loop = true;private char key = ' ';class mainMenu {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 退      出");key = Utility.readChar();//工具包switch(key) {case '1' ://此处为方法addHouse(); 后续完善break;case '2' ://此处为方法findHouse();break;case '3' ://此处为方法delHouse();删除后,在添加,id不是从1开始,改进???break;case '4' ://此处为方法updateHouse();break;case '5' ://此处为方法listHouses();break;case '6' ://此处为方法exit();break;}} while(loop);}
}
// 通过exit()方法完成退出功能,并完善到switch循环case‘6’中
public class HouseView {.......public void exit() {char c = Utility.readConfirmSelection();if (c == 'Y') {loop = false;}}.......
}

9.4.4  项目功能实现 - 显示房屋列表的功能

// HouseService类,编写显示方法list
public class HouseService {......private House[] houses;public HouseService(int size) {houses = new House[size];houses[0] = new House(1, "jack", "112", "海淀区", 2000, "未出租");}public House[] list() {return houses;}......}
// HouseView 类中的 listHouse方法,调用HouseService.list()
public class HouseView {......public void listHouse() {System.out.println("------------------房屋列表------------------");System.out.println("编号\t\t房主\t\t\t电话\t\t地址\t\t\t月租\t\t\t状态(未出租/已出租)");House[] houses = HouseService.list();for(int i = 0; i < houses.length; i++) {if(houses[i] = null) {break;}System.out.println(house[i]);}System.out.println("------------------房屋列表完成------------------");}......}

9.4.5  项目功能实现 - 添加房屋信息

public class HouseService {......private int houseNums = 1;private int idCounter = 1;public boolean add(House newHouse) {if (houseNums == houses.length) {System.out.println("数组已满,无法添加"); //加入数组扩容return false;}//把newhouse 依次添加到数组(已有【0】 )houses[houseNums++] = newHouse;// 1,2,3,4,,,, 后增//需设计一个id自增长机制newHouse.setid(++idCounter);//先增2,3,4,,,,,return true;......
}
public class HouseView {......public void addHouse() {System.out.println("-----------------添加房屋------------------");System.out.println("姓名: ");String name = Utility.readString(8);System.out.println("电话: ");String phone = Utility.readString(12);System.out.println("地址: ");String address = Utility.readString(16);System.out.println("月租: ");int rent = Utility.readInt();System.out.println("状态: ");String state = Utility.readString(3);House newHouse = new House(0, name, phone, address, rent, state);if (houseService.add(newHouse)) {System.out.println("-----------------添加房屋成功-----------------");} else {System.out.println("-----------------添加房屋失败-----------------");}}......
}

9.4.6  项目功能实现 - 删除房屋信息

public class HouseService {......public boolean del(int delId) {int index = -1;//找到要删除信息对应的下标for (int i = 0; i < houseNums; i++) {if (delId == houses[i].getId()) {
//要删除的房屋(id),是数组下标为I的元素。(不能用delid - 1来判断对应下标,因为增删改查会导致混乱,不一定成立)index = i;}}if (index == -1) {return false;}//删除for (int i = index; i < houseNums - 1; i++) { //不用考虑最后一个,所以要 -1houses[i] = houses[i + 1];}//把存在的房屋信息最后一条设置null,注意不是数组的最后一个,然后实际房屋数量houseNums - 1houses[--houseNums] = null;return true;}......
}
public class HouseView {......public void delHouse() {System.out.println("================删除房屋=================");System.out.println("请输入待删除房屋的编号(-1退出):");int delId = Utility.readInt();if (delId == -1) {System.out.println("================放弃删除=================");return;}char choice = Utility.readConfirmSelection();//该方法有循环判断逻辑if (choice == 'Y') {if (houseService.del(delId)) {System.out.println("================删除成功=================");} else {System.out.println("================房屋编号不存在,删除失败=================");}} else {System.out.println("================放弃删除=================");}}......
}

9.4.7  项目功能实现 - 查找房屋信息

public class HouseService {......public House find(int findId) {for (int i = 0; i < houseNums; i++) {if (findId == houses[i].getId()) {return houses[i];}}return null;}......
}
public class HouseView {......public void findHouse() {System.out.println("================查找房屋信息=================");System.out.println("请输入查找房屋的编号(-1放弃):");int findId = Utility.readInt();if (findId == -1) {System.out.println("================放弃查找=================");return;}if (houseService.find(findId) != null) {System.out.println(houseService.find(findId));} else {System.out.println("================查找房屋信息不存在=================");}}......
}

9.4.8  项目功能实现 - 修改房屋信息

public class HouseView {......public void updateHouse() {System.out.println("================修改房屋信息=================");System.out.println("请选择待修改房屋的编号(-1放弃):");int updateId = Utility.readInt();if (updateId == -1) {System.out.println("================放弃修改=================");return;}//根据updateid查找对象House house = houseService.find(updateId);if (house == null) {System.out.println("================修改房屋信息不存在=================");return;}System.out.print("姓名(" + house.getName() + "): ");//原来名字String name = Utility.readString(8, "");//不修改 默认空串if (!"".equals(name)) {house.setName(name);}System.out.print("电话(" + house.getPhone() + "): ");//原来名字String phone = Utility.readString(12, "");//不修改 默认空串if (!"".equals(phone)) {house.setPhone(phone);}System.out.print("地址(" + house.getAddress() + "): ");//原来名字String address = Utility.readString(16, "");//不修改 默认空串if (!"".equals(address)) {house.setAddress(address);}System.out.print("月租(" + house.getRent() + "): ");//原来名字int rent = Utility.readInt(-1);//不修改 默认空串if (rent != -1) {house.setRent(rent);}System.out.print("状态(" + house.getState() + "): ");//原来名字String state = Utility.readString(3, "");//不修改 默认空串if (!"".equals(state)) {house.setState(state);}System.out.println("================修改完成=================");}
}

我的总结:

第9章 项目-房屋出租系统相关推荐

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

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

  2. Java小项目——房屋出租系统

    程序入口 public class HouseRent {public static void main(String[] args) {new HouseView().Menu();} } 用户界面 ...

  3. B站韩顺平java学习笔记(八)-- 房屋出租系统(项目)章节

    目录 一 项目需求说明 1 项目界面 二  房屋租赁程序框架图 ​三  系统实现 1  完成House类 2  显示主菜单和完成退出软件的功能 3  完成显示房屋列表的功能 4  添加房屋信息的功能 ...

  4. 项目练习:房屋出租系统

    房屋出租系统 需求说明:实现基于文本界面的<房屋出租软件> 能够实现对房屋信息的添加,修改,删除(用数组实现),能够打印房屋明细表 分层设计 为了理解业务逻辑和方便编写代码,可以将程序分成 ...

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

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

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

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

  7. 房屋出租系统(初级)

    前言 本项目是根据[零基础 快速学Java]韩顺平 零基础30天学会Java_哔哩哔哩_bilibili 课程进行的.项目的主要目的是巩固一下以前学习的 Java基础 知识. 需求 ​ 实现基于文本界 ...

  8. 基于jsp+servlet的房屋出租系统

    项目名称 房屋出租系统 编程语言 Java语言 主要技术 jsp+servlet 开发工具 eclipse 服务器 tomcat 7.0及以上 数据库 MySQL5.5/5.7/8.0 +C3P0连接 ...

  9. 重学java----面向对象编程案例(房屋出租系统)

    要实现的功能如下 来源于 跟着韩老师学java,https://www.bilibili.com/video/BV1fh411y7R8 实现基于文本界面的<房屋出租软件>. 能够实现对房屋 ...

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

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

最新文章

  1. HR 问“你目前有几个 Offer”,聪明人会怎么说?你呢!
  2. 计算机网络 --- 传输层TCP协议
  3. 2018年9月杭州云栖大会Workshop - 基于日志的安全分析实战
  4. 大型企业的特色服务【我身边的戴尔企业级解决方案】
  5. Linux+屏蔽脚本,Linux之劫持rm命令实现安全删除和屏蔽删除/、/*脚本
  6. golang slice分割和append copy还是引用
  7. 学python心得体会800字-Python初学心得体会
  8. Linux入门自学笔记
  9. 数据挖掘技术基本任务
  10. java接口回调、同步回调、异步回调
  11. 从百亿美元到零估值,硅谷的Theranos或许不止一个
  12. 【51单片机】霹雳灯实验代码
  13. 计算机基础考试试题(扩招考试),大学计算机科学基础探析论文
  14. 数据架构:数据中心 主备、双活
  15. 一起写RPC框架(一)RPC之我所见
  16. 做马来西亚Lazada的选品技巧是什么
  17. Java 基础——HashMap 遍历方式
  18. socket中的read()
  19. SpringBoot进阶(一):再回首SpringBoot maven 项目的三种启动方式
  20. 基于springboot+vue个性化商城商品推荐系统 前后端分离 协同过滤 全套视频教程

热门文章

  1. 一、思科模拟器教程了解软件
  2. java 移位运算符
  3. web前端 html+css+javascript网页设计实例 家乡网站制作
  4. Gantt - attachEvent所有事件(归类、索引)
  5. 软件工程 网络工程,职业方向是怎样的?选择之前一定要了解!
  6. MySQL table 添加_「primarykey」MySQL中为table添加primary key的两种方法 - seo实验室
  7. 机械优化设计c语言鲍威尔法,机械优化设计鲍威尔法.docx
  8. 百度文库免财富值下载文件
  9. Qt简单实现UDP通信
  10. 速达软件各版本及产品ID