前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【Java】面向对象案例

【Java】面向对象案例

作者头像
陶然同学
发布2023-02-24 15:05:07
4280
发布2023-02-24 15:05:07
举报
文章被收录于专栏:陶然同学博客

现在出去旅游,需要对人员进行统计     学生:         张三  男  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

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-10-24,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档