现在出去旅游,需要对人员进行统计 学生: 张三 男 19 小1班 李四 女 18 小1班 王五 男 20 小2班 赵六 女 18 小1班 钱七 男 22 小2班
讲师: 老张 男 40 Java 老王 男 35 Python 老李 女 32 前端
辅导员: 小王 女 25 小1班 小李 男 22 小2班
①请根据题目,设计学生、讲师、辅导员类. 已知: 讲师和辅导员都是员工 员工只是一个抽象的概念,不能是一个具体的对象 学生和员工都是人 设计时:必须有接口、抽象类 英文:学生-student 讲师-Lecturer 辅导员-ClassTeacher 班级-classes 课程名-lesson 员工-employee 人-Person
②现在将所有人员保存到一个集合中 ③现在缴纳出行保险: 学生每人缴纳:10元,学校补助15元 员工每人缴纳:20元 下面请计算,保险公司总共收取的保费总额为多少 ④ 已知:程序员30岁之前秃顶概率 20% 程序员30~35岁秃顶概率 50% 程序员35岁之后秃顶概率 30%
请计算两位男讲师的平均年龄和他们的秃顶概率
定义员工类Emp,拥有姓名(String ename),薪水(Double sal),职位(String job),部门号(deptno)4个属性
要求: * 创建员工、部门类,在部门中添加属性,表示部门拥有多个员工 * 创建下列员工,并添加到集合ArrayList中 2.1. 姓名:刘备,薪水:20000,职位:经理,部门号:10 2.2. 姓名:诸葛,薪水:12000,职位:员工,部门号:10 2.3. 姓名:孙权,薪水:18000,职位:经理,部门号:20 2.4. 姓名:黄盖,薪水:12000,职位:员工,部门号:20 2.5. 姓名:曹操,薪水:50000,职位:经理,部门号:30 2.6. 姓名:张颌,薪水:30000,职位:员工,部门号:30 2.7. 姓名:许褚,薪水:20000,职位:员工,部门号:30 2.8. 姓名:张辽,薪水:30000,职位:员工,部门号:30 1.定义方法sumSal,统计指定部门的员工人数和薪资总和 示例: 统计10号部门:sum(empList,10) 输出:10号部门共2人,薪资和是:22000
2.定义方法selectDeptno,方法接收员工姓名和员工集合,方法中根据员工姓名查询员工的部门号,并返回部门号 示例: selectDeptno("黄盖",empList) 返回:20 3.定义方法selectAvgSql,方法接收部门号、员工集合,方法中查询并打印指定部门号的最高薪资、和平均薪资。 示例: selectAvgSql(20,empList) 输出:20号部门最高薪资是:18000,平均薪资是:15000
4.定义方法betterThanEmp,方法有2个参数,员工A、员工列表,方法中打印所有比员工A薪资高的员工姓名、员工薪资。
5.定义方法betterThanSal,方法有接收员工集合,方法中打印:比所有员工平均薪资高的员工姓名,员工薪资。
6.定义方法printMyselfManager,方法接收员工集合,方法中打印员工姓名、领导姓名。 示例: 10号部门 刘备 领导:无 10号部门 诸葛 领导:刘备 ... 30号部门 曹操 领导:无 30号部门 张颌 领导:曹操 30号部门 许褚 领导:曹操 ...
* 定义部门类Dept,拥有部门号(int deptno),部门名称(String deptName),部门地址(String deptAddr)4个属性 * 创建下列部门 3.1. 部门号:10,部门名称:蜀,部门地址:汉中 3.1. 部门号:20,部门名称:魏,部门地址:江南 3.1. 部门号:30,部门名称:吴,部门地址:江北
* 将上述部门对象添加到部门的集合中(注意:没有要求将员工对象放入部门对象集合中)
1.定义方法printSalary,接收部门集合、员工集合,方法中打印每个部门的部门号、部门名称、最高薪资、最高薪资的员工姓名
2.定义方法printDept,方法接收部门集合,员工集合,方法中根据部门号匹配,打印曹操的部门号,部门名称
3.定义方法printMaxManager,方法接收部门集合,员工集合,方法中打印管理人数最多的经理姓名、部门名称
继承 super练习(本题旨在练习继承super): 1.创造手机类Phone:拥有品牌brand、价格price、生产日期time属性,属性都私有,提供get/set方法, * 提供无参和满参构造方法, * 拥有打电话call方法,接收字符串电话号码。方法具体代码由子类实现 2.创建华为手机类HuaWeiPhone,继承手机类: * 该类有2个构造方法(考核super的用法): - 无参构造方法 - 有参构造方法,有参构造方法接收3个参数(String brand,Double price,Date productTime),可以给华为手机初始化属性。 * 补全HuaWeiPhone类中call方法,该方法可以从之前的通话记录中拨号和更新通话记录功能:String phoneNum - 拨号(打印): 根据接收的电话号码,在项目下的recode.txt中找到该号码的记录,打印该号码通话记录信息。 打印格式如下:13698652317是第1次通话,上次通话时间2018年12月08日,通话20秒。 1.有记录 1.1.遍历字符串 1.2.切割字符串 1.3.数据有格式要求 1.4.打印 2.无记录 2.1.自己拼接这个格式的字符串:13698652317是第1次通话,上次通话时间2018年12月08日,通话20分。 2.1.1.问题点1:当前时间 -> 2018年12月10日 2.1.2. 时长:通话20分 ——> 1-200随机数(秒) - 更新通话记录: * 如果有历史记录,将原来通话记录中的拨打次数+1,通话时间改为当前时间 * 如果没有历史记录,新增一条通话记录,时间为当前时间,通话时长尾1-200以内随机数,拨打次数为1. ** 发现如果只想修改某一部分数据,操作比较困难 ** 解决方法:在解析数据时候,提前将解析的数据放入ArrayList集合中。 ** 修改集合中的数据,最后将集合数据全部覆盖写回原文件,这样就能实现修改的效果 * recode.txt flag=false 15271312791@2018-12-10@56秒@4 15656238957@2018-12-10@32秒@2 17865662379@2018-12-8@157秒@6 13965879652@2018-12-10@3秒@2 13999999999@2018-12-10@3秒@1