来一个企业级思维骨架

▼
import
复制代码
/** * day29:定义Worker类(姓名/工种/工龄/评分),创建2个师傅对象并打印信息。 * day30:给Worker加3种构造:无参/姓名+工种/全字段,分别创建对象验证;用this区分同名参数 * day31:给Worker加static计数器count,每创建一个对象+1,打印当前平台注册师傅总数 * day32:Worker字段全改private;setWorkYears里校验工龄不能<0(负数就置0或抛提示),setScore校验0-5分 * day33:师傅管理小程序:Worker数组容量10,支持添加、按名字查找、打印全部(遍历调用toString前先自己拼信息) * day34:在day33基础上加:按工种筛选、按评分排序、统计平均工龄,全部封装成方法 * day35:默写Worker类(封装+构造器+计数器版) * * * 菜单:1-增加师傅 |2-按名字模糊查找 |3-打印全部 |4-按工种筛选 |5-按评分排序 |6-统计平均工龄 |exit-退出 * 方法: * 1. addWorker() * 2. searchWorker() * 3. printAllWorkers() * 4. filterByJobType() * 5. sortByScore() * 6. calcAvgWorkYears() * 7. inputtedName() * 8. inputtedJobType() * 9. inputtedWorkYears() * 10. inputtedScore() * 11. getMenuItemNumber() * 12. judgeInput() */ public class Day34WorkerTest{ // 定义程序、菜单、工种字典 // 定义输入的提示词 // 定义其他提示词 // 定义正则(主菜单、工龄、评分、工种筛选菜单) // 定义哨兵值:-1(exit) -2(isBlank) -3(invalid) // 定义用户数组大小、增加用户的计数器(count 是"名册"的状态,不是"师傅"的属性,群体计数是看管数组的那一方的事)、 // 模糊查找用户的计数器降级(降级为searchWorker局部变量,每次搜索清零、不跨方法存活,没资格当全局) public static void main(String[] args){ // 菜单流程:1-增加师傅 |2-按名字模糊查找 |3-打印全部 |4-按工种筛选 |5-按评分排序 |6-统计平均工龄 |exit-退出 // 键盘输入 Scanner in = new Scanner(System.in); while(true){ // 程序相关信息展示 // judgeInput() switch(selectedItemNumber) { case 1 -> {addWorker(in);} case 2 -> {searchWorker(in);} case 3 -> {printAllWorders();} case 4 -> {filterByJobType(in);} case 5 -> {sortByScore(in);} case 6 -> {calcAvgWorkYears();} default -> {} }; } } /* 方法 */ // addWorker() // 1. 判断是否满员,是就返回 // 2. 调用方法 // inputtedName() // inputtedJobType() // inputtedWorkYears() // inputtedScore() // searchWorker() // 1. 判断是否有记录,无就提示并返回 // 2. judgeInput() // 3. 获取输入,String.contains()或String.indexOf() // 4. 有符合的记录就保存下标,并继续查找 // 4.1 查找到符合记录的计数器 // 4.2 根据保存的下标,打印记录 // printAllWorkers() // 1. 获取可打印数据的数量 // 1.1 无就提示 0 条记录,并返回 // 1.2 遍历打印 // filterByJobType() // 1. 判断是否有记录,无就提示并返回 // 2. judgeInput() // 3. 获取源记录中工种的种类,并生成菜单,以便用户选择 // 4. 根据用户的选择跳转 // sortByScore() // 1. 用户选择升序还是降序 // 2. 按用户选择排序 // calcAvgWorkYears() // 1. 判断是否有记录,无就提示并返回 // 2. 获取师傅的数量 // 3. 遍历计算平均值并返回 // inputtedName() // 1. judgeInput() // 2. 获取输入并保存 // inputtedJobType() // 1. judgeInput() // 2. 获取输入,判断是否在字典里,不在就提示并重新输入 // 3. 保存 // inputtedWorkYears() // 1. judgeInput() // 2. 获取输入,正则(INT_WORK_YEARS_REGEX)判断,不符合就提示并重新输入 // 3. 判断,小于0拦,大于70拦(0<= workYears <= 70放行) // 4. 保存 // inputtedScore() // 1. judgeInput() // 2. 获取输入,正则(DOUBLE_SCORE_REGEX)判断,不符合就提示并重新输入 // 3. 判断是否大于0与小于等于5(0放行),否就提示并重新输入 // 4. 保存 // getMenuItemNumber() // 1. judgeInput() // 2. 获取输入,正则(MAIN_MENU_ITEM_NUMBER_REGEX/FILTER_JOBTYPE_MENU_ITEM_NUMBER_REGEX)判断,不符合就提示并重新输入 // 3. 返回菜单编号 // judgeInput() // 1. 判断有无输入,无就提示重新输入 // 2. 判断输入是否为空,是就提示重新输入 // 3. 判断是否输入"exit",是就返回null // 4. 获取输入的数据 }
0个评论
点击登录,快来和大家讨论吧~
表情
图片
暂无评论
下载 APP