房屋出租系统-需求
项目需求说明
实现基于文本界面的《房屋出租软件》
能够实现对房屋信息的添加、修改和删除(用数组实现),并能够打印房屋明细表
房屋出租系统-界面
项目界面-主菜单
项目界面-新增房源
项目界面-查找房源
项目界面-删除房屋
项目界面-修改房屋信息
项目界面-房屋列表
项目界面-退出系统
房屋出租系统-设计!
- 项目设计-程序框架图(分层模式=>当软件比较复杂,需要模式管理)
- 我们在分析项目时,一般是从上往下分析
- 在实现项目时,通常从下往上实现
房屋出租系统-实现
准备工具类Utility,提高开发效率
在实现开发中,公司都会提供相应的工具类和开发库,可以提高开发效率,程序员也需要能够看懂别人的代码,并能够正常调用
- 了解Utility类的使用
- 测试Utility类
项目功能实现-完成House类
- 一个House对象表示一个房屋信息
- House类有哪些属性,可以通过给出的界面分析得到
- 根据界面分析,House类需要的属性有:编号 房主 电话 地址 月租 状态(未出租/已出租)
- 同时重写toString方法,方便之后输出对象信息(直接调用对象)
如图:
项目功能实现-显示主菜单和完成退出软件功能
实现功能的三部曲【明确完成功能->思路分析->代码实现】
- 功能说明:用户打开软件,可以看到主菜单,可以退出软件
- 思路分析:在HouseView.java中,编写一个方法mainMenu,显示主菜单
- 代码实现:如下
项目功能实现-完成显示房屋列表的功能
- 功能说明
- 思路分析:
1.在HouseService.java中,a:编写一个方法list,b:创建house类的数组,返回(调用)所有的房屋信息
2.在HouseView.java中,编写一个方法listHouse显示房屋列表,调用HouseService类中的list方法 - 代码实现:
项目功能实现-添加房屋信息的功能
- 功能说明
- 思路分析:
1.在HouseService.java中,a:编写一个方法add(House newHouse)返回布尔值。b:判断是否数组对象是否已满,是否还可以继续添加,若已满,return结束一个方法,否则把newHouse对象加入到添加到数组houses[houseNums]中。c:设置houseNums++;
2.在HouseView.java中,编写一个方法addHouse接收输入,创建House对象,调HouseView的add方法 - 代码实现
项目功能实现-完成删除房屋信息的功能
- 功能说明
- 思路分析
1.在HouseService.java中,a:编写一个方法del(int delld)返回布尔值。b:遍历house数组,找到对应的下标。删除思路:把后面的元素
2.在HouseView.java中,编写一个方法delHouse()接收用户输入id,进而判断是否真的删除 - 代码实现
项目功能实现-完善退出确认功能
- 功能说明:要求在退出时提示“确认是否退出(Y/N):”,必须输入y/n,否则循环提示
- 思路分析:在HouseView类中,编写一个方法exit,然后进行确认步骤
- 代码实现
项目功能实现-完成根据id查找房屋信息的功能
- 功能说明:要求可以根据id查找到房屋的信息
- 思路分析:
1.在HouseService类中编写方法findById(int findId),返回House对象-House类数组
2.在HouseView类中编写方法findHouse,输入我们要查找的id,然后给HouseService类的findById方法传入我们输入的id 进行判断 - 代码实现
项目功能实现-完成修改房屋信息的功能
- 功能说明:
- 思路分析:
1.在HouseService类中编写方法findById(int findId),返回House对象-House类数组(直接使用上个功能中创建的方法)
2.在HouseView类中编写方法update,通过工具类中的方法输入我们想要修改的编号,将我们输入的编号传入HouseService的findById方法中,然后执行相关操作 - 代码实现
在主菜单中调用所有的方法
面向对象的好处
- 功能的c(create)r(read)u(update)d(delete)增查改删更加方便
- 各个类职责分工明确,逻辑结构更清楚
- 分析思路:过关斩将校验方式—找出不正确的条件,然后给出提示,就直接break,这样就可以迅速找到找到符合条件的了
- 程序框架图:分层模式