幼儿饰品瑜伽美体用品微软
投稿投诉
微软创意
爱情通信
用品婚姻
爱好看病
美体软件
影音星座
瑜伽周边
星座办公
饰品塑形
搞笑减肥
幼儿两性
智家潮品

分享一个用Java开发的房屋出租系统

  房屋出租系统需求
  实现基于文本界面的《房屋出租软件》。能够实现对房屋信息的添加、修改和删除(用数组实现),并能够打印房屋明细表房屋出租系统界面项目界面主菜单
  项目界面新增房源
  项目界面查找房源
  项目界面删除房源
  项目界面修改房源
  项目界面房屋列表
  项目界面退出系统
  房屋出租系统设计(!!)
  项目设计程序框架图(分层模式当软件比较复杂,需要模式管理)
  房屋出租系统实现
  准备工具类Utility,提高开发效率
  在实际开发中,公司都会提供相应的工具类和开发库,可以提高开发效率,程序员也需要能够看懂别人写的代码,并能够正确的调用。了解Utility类的使用测试Utility类项目功能实现完成House类
  编号房主电话地址月租状态(未出租已出租packagecom。hspedu。houserent。domain;House的对象表示一个房屋信息publicclassHouse{编号房主电话地址月租状态(未出租已出租)privateintid;privateStringname;privateStringphone;privateStringaddress;privateintrent;privateStringstate;构造器和setter,getterpublicHouse(intid,Stringname,Stringphone,Stringaddress,intrent,Stringstate){this。idid;this。namename;this。phonephone;this。addressaddress;this。rentrent;this。statestate;}publicintgetId(){returnid;}publicvoidsetId(intid){this。idid;}publicStringgetName(){returnname;}publicvoidsetName(Stringname){this。namename;}publicStringgetPhone(){returnphone;}publicvoidsetPhone(Stringphone){this。phonephone;}publicStringgetAddress(){returnaddress;}publicvoidsetAddress(Stringaddress){this。addressaddress;}publicintgetRent(){returnrent;}publicvoidsetRent(intrent){this。rentrent;}publicStringgetState(){returnstate;}publicvoidsetState(Stringstate){this。statestate;}为了方便的输出对象信息,我们实现toString编号房主电话地址月租状态(未出租已出租)OverridepublicStringtoString(){returnidnamephoneaddressrentstate;}}复制代码项目功能实现显示主菜单和完成退出软件功能
  实现功能的三部曲〔明确完成功能思路分析代码实现〕
  功能说明:用户打开软件,可以看到主菜单,可以退出软件。
  思路分析:在HouseView。java中,编写一个方法mainMenu,显示菜单。packagecom。hspedu。houserent。view;importcom。hspedu。houserent。domain。House;importcom。hspedu。houserent。service。HouseService;importcom。hspedu。houserent。utils。Utility;1。显示界面2。接收用户的输入3。调用HouseService完成对房屋信息的各种操作publicclassHouseView{privatebooleanlooptrue;控制显示菜单privatecharkey;接收用户选择privateHouseServicehouseServicenewHouseService(2);设置数组的大小为2根据id修改房屋信息publicvoidupdate(){System。out。println(修改房屋信息);System。out。println(请选择待修改房屋编号(1表示退出));intupdateIdUtility。readInt();if(updateId1){System。out。println(你放弃修改房屋信息);return;}根据输入得到updateId,查找对象返回的是引用类型〔即:就是数组的元素〕因此老师在后面对house。setXxx(),就会修改HouseService中houses数组的元素!HousehousehouseService。findById(updateId);if(housenull){System。out。println(修改房屋信息编号不存在。。);return;}System。out。print(姓名(house。getName()):);StringnameUtility。readString(8,);这里如果用户直接回车表示不修改该信息,默认if(!。equals(name)){修改house。setName(name);}System。out。print(电话(house。getPhone()):);StringphoneUtility。readString(12,);if(!。equals(phone)){house。setPhone(phone);}System。out。print(地址(house。getAddress()):);StringaddressUtility。readString(18,);if(!。equals(address)){house。setAddress(address);}System。out。print(租金(house。getRent()):);intrentUtility。readInt(1);if(rent!1){house。setRent(rent);}System。out。print(状态(house。getState()):);StringstateUtility。readString(3,);if(!。equals(state)){house。setState(state);}System。out。println(修改房屋信息成功);}根据id查找房屋信息publicvoidfindHouse(){System。out。println(查找房屋信息);System。out。print(请输入要查找的id:);intfindIdUtility。readInt();调用方法HousehousehouseService。findById(findId);if(house!null){System。out。println(house);}else{System。out。println(查找房屋信息id不存在);}}完成退出确认publicvoidexit(){这里我们使用Utility提供方法,完成确认charcUtility。readConfirmSelection();if(cY){loopfalse;}}编写delHouse()接收输入的id,调用Service的del方法publicvoiddelHouse(){System。out。println(删除房屋信息);System。out。print(请输入待删除房屋的编号(1退出):);intdelIdUtility。readInt();if(delId1){System。out。println(放弃删除房屋信息);return;}注意该方法本身就有循环判断的逻辑,必须输出YNcharchoiceUtility。readConfirmSelection();if(choiceY){真的删除if(houseService。del(delId)){System。out。println(删除房屋信息成功);}else{System。out。println(房屋编号不存在,删除失败);}}else{System。out。println(放弃删除房屋信息);}}编写addHouse()接收输入,创建House对象,调用add方法publicvoidaddHouse(){System。out。println(添加房屋);System。out。print(姓名:);StringnameUtility。readString(8);System。out。print(电话:);StringphoneUtility。readString(12);System。out。print(地址:);StringaddressUtility。readString(16);System。out。print(月租:);intrentUtility。readInt();System。out。print(状态:);StringstateUtility。readString(3);创建一个新的House对象,注意id是系统分配的,HousenewHousenewHouse(0,name,phone,address,rent,state);if(houseService。add(newHouse)){System。out。println(添加房屋成功);}else{System。out。println(添加房屋失败);}}编写listHouses()显示房屋列表publicvoidlistHouses(){System。out。println(房屋列表);System。out。println(编号房主电话地址月租状态(未出租已出租));House〔〕houseshouseService。list();得到所有房屋信息for(inti0;ihouses。length;i){大家想想,这里老韩有什么?雷,坑if(houses〔i〕null){如果为null,就不用再显示了break;}System。out。println(houses〔i〕);}System。out。println(房屋列表显示完毕);}显示主菜单publicvoidmainMenu(){do{System。out。println(房屋出租系统菜单);System。out。println(1新增房源);System。out。println(2查找房屋);System。out。println(3删除房屋信息);System。out。println(4修改房屋信息);System。out。println(5房屋列表);System。out。println(6退出);System。out。print(请输入你的选择(16):);keyUtility。readChar();switch(key){case1:addHouse();break;case2:findHouse();break;case3:delHouse();break;case4:update();break;case5:listHouses();break;case6:exit();break;}}while(loop);}}复制代码项目功能实现完成显示房屋列表的功能
  项目功能实现添加房屋信息的功能
  项目功能实现完成删除房屋信息的功能
  项目功能实现完善退出确认功能
  项目功能实现完成根据id查找房屋信息的功能项目功能实现完成修改房屋信息的功能
  packagecom。hspedu。houserent。service;importcom。hspedu。houserent。domain。House;HouseService。java类〔业务层〕定义House〔〕,保存House对象1。响应HouseView的调用2。完成对房屋信息的各种操作(增删改查c〔create〕r〔read〕u〔update〕d〔delete〕)publicclassHouseService{privateHouse〔〕houses;House数组保存House对象privateinthouseNums1;记录当前有多少个房屋信息privateintidCounter1;记录当前的id增长到哪个值构造器publicHouseService(intsize){newhouseshousesnewHouse〔size〕;当创建HouseService对象,指定数组大小为了配合测试列表信息,这里初始化一个House对象houses〔0〕newHouse(1,jack,112,海淀区,2000,未出租);}findById方法,返回House对象或者nullpublicHousefindById(intfindId){遍历数组for(inti0;ihouseNums;i){if(findIdhouses〔i〕。getId()){returnhouses〔i〕;}}returnnull;}del方法,删除一个房屋信息publicbooleandel(intdelId){应当先找到要删除的房屋信息对应的下标一定要搞清楚下标和房屋的编号不是一回事intindex1;for(inti0;ihouseNums;i){if(delIdhouses〔i〕。getId()){要删除的房屋(id),是数组下标为i的元素indexi;就使用index记录i}}if(index1){说明delId在数组中不存在(有点绕。。)returnfalse;}如果找到for(intiindex;ihouseNums1;i){houses〔i〕houses〔i1〕;}把当有存在的房屋信息的最后一个设置nullhouses〔houseNums〕null;returntrue;}add方法,添加新对象,返回booleanpublicbooleanadd(HousenewHouse){判断是否还可以继续添加(我们暂时不考虑数组扩容的问题)能否自己加入数组扩容机制()if(houseNumshouses。length){不能再添加System。out。println(数组已满,不能再添加了。。。);returnfalse;}把newHouse对象加入到,新增加了一个房屋houses〔houseNums〕newHouse;我们程序员需要设计一个id自增长的机制,然后更新newHouse的id!newHouse。setId(idCounter);returntrue;}list方法,返回housespublicHouse〔〕list(){returnhouses;}}复制代码
  类。方法()因为当一个方法是static时,就是一个静态方法
  最后HouseRentApp。javapackagecom。hspedu。houserent;importcom。hspedu。houserent。view。HouseView;publicclassHouseRentApp{publicstaticvoidmain(String〔〕args){byteb1123;b1100000;如果b1b1100000;编译都不能过System。out。println(b1);byteb2123;b2(byte)(b2100000);System。out。println(b2);创建HouseView匿名对象,并且显示主菜单,是整个程序的入口这里实际上不用接收了,因为接收后用处也不大:newhvnewHouseView();hv。mainMenu();newHouseView()。mainMenu();System。out。println(你退出房屋出租系统);}}复制代码
  附:公用工具库Utility。javapackagecom。hspedu。houserent。utils;工具类的作用:处理各种情况的用户输入,并且能够按照程序员的需求,得到用户的控制台输入。importjava。util。;publicclassUtility{静态属性privatestaticScannerscannernewScanner(System。in);功能:读取键盘输入的一个菜单选项,值:15的范围return15publicstaticcharreadMenuSelection(){charc;for(;;){StringstrreadKeyBoard(1,false);包含一个字符的字符串cstr。charAt(0);将字符串转换成字符char类型if(c!1c!2c!3c!4c!5){System。out。print(选择错误,请重新输入:);}elsebreak;}returnc;}功能:读取键盘输入的一个字符return一个字符publicstaticcharreadChar(){StringstrreadKeyBoard(1,false);就是一个字符returnstr。charAt(0);}功能:读取键盘输入的一个字符,如果直接按回车,则返回指定的默认值;否则返回输入的那个字符paramdefaultValue指定的默认值return默认值或输入的字符publicstaticcharreadChar(chardefaultValue){StringstrreadKeyBoard(1,true);要么是空字符串,要么是一个字符return(str。length()0)?defaultValue:str。charAt(0);}功能:读取键盘输入的整型,长度小于2位return整数publicstaticintreadInt(){intn;for(;;){StringstrreadKeyBoard(10,false);一个整数,长度10位try{nInteger。parseInt(str);将字符串转换成整数break;}catch(NumberFormatExceptione){System。out。print(数字输入错误,请重新输入:);}}returnn;}功能:读取键盘输入的整数或默认值,如果直接回车,则返回默认值,否则返回输入的整数paramdefaultValue指定的默认值return整数或默认值publicstaticintreadInt(intdefaultValue){intn;for(;;){StringstrreadKeyBoard(10,true);if(str。equals()){returndefaultValue;}异常处理。。。try{nInteger。parseInt(str);break;}catch(NumberFormatExceptione){System。out。print(数字输入错误,请重新输入:);}}returnn;}功能:读取键盘输入的指定长度的字符串paramlimit限制的长度return指定长度的字符串publicstaticStringreadString(intlimit){returnreadKeyBoard(limit,false);}功能:读取键盘输入的指定长度的字符串或默认值,如果直接回车,返回默认值,否则返回字符串paramlimit限制的长度paramdefaultValue指定的默认值return指定长度的字符串publicstaticStringreadString(intlimit,StringdefaultValue){StringstrreadKeyBoard(limit,true);returnstr。equals()?defaultValue:str;}功能:读取键盘输入的确认选项,Y或N将小的功能,封装到一个方法中。returnY或NpublicstaticcharreadConfirmSelection(){System。out。println(请输入你的选择(YN):请小心选择);charc;for(;;){无限循环在这里,将接受到字符,转成了大写字母yYnNStringstrreadKeyBoard(1,false)。toUpperCase();cstr。charAt(0);if(cYcN){break;}else{System。out。print(选择错误,请重新输入:);}}returnc;}功能:读取一个字符串paramlimit读取的长度paramblankReturn如果为true,表示可以读空字符串。如果为false表示不能读空字符串。如果输入为空,或者输入大于limit的长度,就会提示重新输入。returnprivatestaticStringreadKeyBoard(intlimit,booleanblankReturn){定义了字符串Stringline;scanner。hasNextLine()判断有没有下一行while(scanner。hasNextLine()){linescanner。nextLine();读取这一行如果line。length0,即用户没有输入任何内容,直接回车if(line。length()0){if(blankReturn)returnline;如果blankReturntrue,可以返回空串elsecontinue;如果blankReturnfalse,不接受空串,必须输入内容}如果用户输入的内容大于了limit,就提示重写输入如果用户如的内容0limit,我就接受if(line。length()1line。length()limit){System。out。print(输入长度(不能大于limit)错误,请重新输入:);continue;}break;}returnline;}}
  链接:https:juejin。cnpost7222431754475749434

NASA分享NGC7764A照星系之间似乎正在相互作用下面这张图片的主题是三个星系NGC7764A1、NGC7764A2和NGC7764A3,不过它们被统称为NGC7764A,位于凤凰座,距离地球约4。25亿光年。它们是由NASA……大家都在吃的淘气妞麻辣花生,你吃了吗?麻辣花生是一款深受大众喜爱的休闲零食,不论是作为成年人的下酒菜还是小朋友的解馋物,都是一个很不错的选择。很开心,小淘气食品自主研制生产的淘气妞也深受消费者喜爱,在各大食品批发市……一季度全球手机出货量五强名单出炉,苹果第2,小米第1,谁第1一季度全球手机出货量五强名单出炉,苹果第2,小米第1,谁第1?近日,市场调研机构Canalys公布了今年一季度手机出货量数据,2022年第一季度全球手机出货量同比下降了1……激光如何祛疤?恢复期应该注意什么?哪些疤痕不适合激光治疗?激光作为一种无创的疤痕去除方法,受到了祛疤朋友们的广泛欢迎。很多疤痕朋友们刚知道激光祛疤的时候,往往只关注激光祛疤的效果,很少有人知道自己的疤痕是否可以用激光祛疤。今天我们来学……不愧是中兴,屏下摄像头骁龙870如今沦为千元机时间一晃2022年已经过去了一大半,属于国产手机行业的较量也历经了两轮,中兴也在6月发布了最新的年度旗舰屏下摄像头手机Axon40Ultra,回头再看中兴上一代屏下摄像头手机A……以色列自驾8。凯撒利亚穿越时空,惊叹奢靡的罗马皇帝之城走入这座古罗马时期的废都凯撒利亚,曾是希律王讨好罗马皇帝凯撒的得意极尽奢华之作,如今已随风远逝,徒留残垣断壁,让人唏嘘。首先映入眼帘的是大灯塔,直插云霄,标志性的古罗马建……国家网信办APP不得向未成年人提供诱导其沉迷的服务来源:人民网原创稿图片来源:国家互联网信息办公室官网截图人民网北京1月5日电(申佳平)据国家互联网信息办公室官网消息,为了进一步规范移动互联网应用程序信息服务管理,……4个中成药,活血化瘀补虚通络改善脑部血液循环神经功能脑梗塞属于局限性脑组织缺血性坏死疾病,通常是由于脑部血液供应出现缺血、缺氧等障碍导致的。在发病时,大脑处于缺血状态,会产生大量自由基损伤脑组织,诱发脑水肿、神经功能损伤;在后期……吃得少,活得久是否值得效仿?一份研究给出答案,颠覆认知有句话说得好民以食为天,饮食对于身体的影响比我们想象的还要重要,正确的饮食有利于身体健康,但若饮食不当,就会病从口入,给身体带来不利的影响,那么什么是正确的饮食呢?网上不……3000元价位没对手,6000元旗舰也不怵,这3款手机闭眼买旗舰手机的使用体验好,这是众所周知的,不过价格也是真的香,很多朋友正是由于价格原因,对旗舰手机望而却步,一直无法体验到旗舰手机的绝妙之处。现在很大一部分人的月收入也就只有300……韦伯望远镜新年行程过半,有望见证宇宙形成之源亚太日报牧之在飞行了6天后,被寄予厚望的新一代深空观测望远镜,詹姆斯韦伯望远镜在2021年的最后一天飞到了距地球80万公里的位置上。距离它最终150万公里的部署位置,仍有……津门虎队赢得两连胜本报讯(记者顾颖)昨天晚上,天津津门虎队在本赛季中超联赛第6轮比赛中,1:0战胜梅州客家队。在赛区东道主身上全取3分的津门虎队,也迎来了两连胜,目前联赛积分已经增加到了8分。……
走进俄罗斯,十块钱在俄罗斯能干哪些事?俄罗斯是个地广人稀的国家,冬天的时候,天寒地冻。现在不少人热衷于冬天到俄罗斯旅行,在俄罗斯看雪景,感受北国风光。除了感受当地的风景以外,青春靓丽的俄罗斯妹子,也是很多中国男人所……文章的演艺生涯何去何从?文章是个好演员不假,但同时他也是个明星。对此,他并没有拒绝,甚至还很享受他的好男人人设。所以后来发生的事情尽管对他很不公,却也是咎由自取。吃瓜群众能把他捧上天……超实用!这是我见过最全面的Python入门教程,新手小白不要大学毕业后相当迷茫,不知道做些什么,于是学长推荐去学Python,当年2w买的python教程,三个月的时间成功上岸,现在用不着了,送给有缘人,不要钱,只愿你和我一样上岸……人民日报金句合集时代的考题已经列出,我们的答案正在写就1、树木在森林中相依偎而生长,星辰在银河中因辉映而璀璨。《人民日报》2、行程万里,不忘初心;信念如磐,一脉相承。红色文化是连接过去、现在和未来的重要精神纽带。《人民日报》……Z世代旅游趋势报告在短视频平台云旅游订酒店买门票每经记者:舒冬妮每经编辑:陈俊杰生活不止眼前,还有诗和远方。随着Z世代群体的消费能力越来越强,旅游成为他们重要的休闲娱乐方式之一。而Z世代在寻找诗和远方的过程中,也表现出……孩子开学了,7种早餐换着吃,营养又健康,为春天长身体打下基础假期结束了,孩子也要开学了,早晨又要忙碌起来了,家有读书娃,早餐可不能马虎,吃好,吃暖,吃的营养,为孩子春天长身体,打下基础,储备能量。除了一日三餐,合理搭配以外,平时多……大冷门!伊藤美诚13输球3月15日,WTT新加坡站大满贯女单八分之一决赛,日本队伊藤美诚13不敌法国队袁嘉楠输球,爆出一个不小冷门。这也是伊藤美诚1188天之后再次在国际赛场输给国乒以外的选手。……势不可挡,76人喜提3连胜,全明星没人选?准备迎接登哥的怒火依稀记得全明星75大DJ介绍哈登出场的时候,登哥满脸的落寞与尴尬,熟悉的全明星赛场此时好像显得格格不入,什么原因呢?两位队长在选人的时候谁都没要,留到了最后,昔日的好大哥,从雷……荨麻疹急性和慢性有区别,荨麻疹患者要注意什么?荨麻疹是皮肤科常见的一种疾病,主要表现为隆起于皮肤、粘膜表面的水肿性团块,引起瘙痒甚至发热、恶心、呕吐、喉梗阻等症状。荨麻疹的治疗需要根据症状、病因、起病急缓来决定,包括……意外陷入窘境的拉提菲我本无意掺和世界冠军之争米克没有责任这不是我本意在F1阿布扎比大奖赛最后阶段,当维斯塔潘被逼到无路可走的时候,或许有人会猜想:有一辆红牛或者小红牛赛车可能会触发安全车。但最终完成这项工作的人却是使用梅赛德斯……下次谁说干皮不会长痘?拉出来让我好好看看你是不是都觉得脸上长痘这件事,是油性肌肤才会有的事?不不不!那你就大错特错了!干皮的脸上偶尔也是会爆出几颗痘痘来的,干皮为什么还会长痘?你一定很好奇对不对?大部分的干性肌肤……9Ni钢被誉为钢板皇冠上的明珠,山钢如何拿下这颗明珠9Ni钢可长期耐受零下163摄氏度超低温环境,广泛应用于低温运输船、液化天然气储罐等超低温压力容器的关键部位,生产技术工艺极具挑战性,唯有少数钢企具备批量生产能力。4月2……
友情链接:易事利快生活快传网聚热点七猫云快好知快百科中准网快好找文好找中准网快软网