期末考试结束了,现在根据四个阶段分数对所有学生进行分班。
四个阶段所有的学生成绩都已经分别保存到:

第一阶段考试成绩.txt
期中考试成绩.txt
第三阶段考试成绩.txt
期末考试成绩.txt

所有学生的编号、姓名、性别、班级、生日已经保存到:
学生登记表.txt

1、定义一个方法run1,方法内要求把每个人所有信息(编号、姓名、性别、班级、生日、四个阶段的成绩)从文件中读取,并且保存起来。(保存为静态成员变量)
   要求五个txt文件的所有数据,最终保存进一个集合中。
   提示:定义学生Student类
        编号:sid
    姓名:sname
    性别:sex
    班级:cname
    生日:birthday
    四个阶段的成绩:slist
    最终成绩:score
   注意:如果某个阶段考试没有某同学成绩,说明该同学那次阶段考试缺考,无成绩(缺考必须用null表示)

2、定义一个方法run2,方法内要求:计算每个人的最终成绩,展示并保存起来,
   最终成绩 = (四次成绩总和)/4
   某次阶段考缺考一次: (三次成绩总和)/3
   某两次阶段考缺考:   (两次成绩总和)/2

真实缺考人数如下:(以下仅供做题参考,禁止硬编码到题目中)
    第一阶段考试成绩:s95缺考
    第一阶段考试成绩:s135缺考
    期中考试成绩:s84缺考
    期中考试成绩:s157缺考
    第三阶段考试成绩:s14缺考
    第三阶段考试成绩:s69缺考
    第三阶段考试成绩:s149缺考
    第三阶段考试成绩:s168缺考
    期末考试成绩:s83缺考
    期末考试成绩:s173缺考

3、定义一个方法run3,方法内进行分班和分别数据保存:
   已知现在有"一班","二班","三班","四班"四个班级,
    其中: 名次 1-60 进入 一班(60人)
          名次 61-120 进入 二班(60人)
          名次 121-170 进入 三班(50人)
          名次 171-200 进入 四班(30人)
   请将四个班的分班数据分别保存进对应的txt文件中:
    一班.txt
    二班.txt
    三班.txt
    四班.txt

保存的数据格式:学生编号,学生姓名,学生最终成绩,学生名次
   注意:一个人一行信息。

4、定义一个方法run4,方法内读取第三题生成的txt数据文件,并计算原一班、原二班、原三班、原四班,考入新一班、新二班的总入班率,并计算出原几班的 新一班、新二班总入班率 最高,展示控制台
    总入班率计算公式= 原班级考入新一、二班人数/120
    示例(该结果非真实结果):
        原一班,考入新一班、新二班的总入班率:10%
        原二班,考入新一班、新二班的总入班率:5%
        原三班,考入新一班、新二班的总入班率:35%
        原四班,考入新一班、新二班的总入班率:50%
        原四班,新一班、新二班总入班率最高

5、定义一个方法run5,方法内读取第三题生成的txt数据文件,计算新一、二、三、四班的平均分,并计算两班差值:
    新一班平均分:90分
    新二班平均分:80分
    新三班平均分:70分
    新四班平均分:50分

一、二班差值:10分
    二、三班差值:10分
    三、四班差值:20分

6、定义一个方法run6,方法内读取第三题生成的txt数据文件,对宿舍进行重新分派:
    宿舍分派要求:
        ①、
        新一班宿舍楼层2层
        新二班宿舍楼层3层
        新三班宿舍楼层4层
        新四班宿舍楼层5层
        ②、男生一个宿舍,女生一个宿舍(禁止混宿)
        ③、A栋、B栋随机分派楼号和宿舍号,已经分派过的宿舍不能重复分派
            例如:A221已经被分派,A221就不能被重复分派
            例如:A221已经被分派,B221因为不是同一个宿舍,不影响分派
        ④、每层宿舍号20~50(包含20和50)
        ⑤、一个班的学生尽可能一个宿舍,如果某宿舍人数不足,可以和其他班同性别学生混宿,但不能差班太多。
           例如:一个宿舍可以1、2班同宿 或2、3班同宿 或3、4班同宿
           例如:某宿舍分配了1个一班同学,一班同学不足,可以进驻3个二班同学(禁止差班进驻二班、三班、四班同学)

最终将分配宿舍情况保存到“宿舍分派表.txt”中
        例如:
        A221宿舍:
        s01,张三,男,一班
        s02,李四,男,一班
        s03,王五,男,一班
        s04,赵六,男,一班
        A249宿舍:
        s11,小小,男,一班
        s12,大大,男,一班
        s13,菲菲,男,一班
        s15,舅舅,男,二班

7、定义一个方法run7,方法内求出新一、二、三、四班每个班级的平均年龄,并展示
    新一班,平均年龄:22岁
    新二班,平均年龄:23岁
    新三班,平均年龄:22岁
    新四班,平均年龄:22岁

8、定义一个方法run8,方法内求出所有班级的每个月的过生日的寿星(当月无人生日即为无),
最终保存为生日.txt文件
保存格式为:新班级名,姓名,生日

例如:
        一月寿星:
        一班,小张,1999/01/28
        三班,小米,1998/01/20
        二月寿星:
        三班,小w,1998/02/20
        .....
        十一月寿星:
        无
        十二月寿星:
        无

======================================================
生成题目数据的代码:
/*
    * 生成考试数据
    * */
    public static void run1(String fileName,String title) throws IOException {
        //1、定义StringBuilder对象
        StringBuilder builder = new StringBuilder();
        //2、填写题目
        builder.append(title+"\r\n");
        //3、生成随机分数
        Random r = new Random();
        for (int i = 1; i <=200 ; i++) {
            //随机缺考:
            if(i!=200 && r.nextInt(100)==0){
                System.out.println(title+":"+"s"+(i<10?"0"+i:i)+"缺考");
                continue;
            }
            builder.append("s"+(i<10?"0"+i:i)+",");
            builder.append(r.nextInt(101));
            if(i!=200){
                builder.append("\r\n");
            }
        }
        //4、输出文件
        FileUtils.writeStringToFile(new File("综合测试题3\\"+fileName),builder.toString(),"utf-8");
    }

//生成每个人的编号、姓名、性别、班级、生日
    public static void run2() throws IOException {
        //1、定义姓名字典
        String str = "致远雨泽烨磊文昊修洁黎昕远航旭尧鸿涛伟祺荣轩越泽浩宇瑾瑜皓轩擎苍擎宇志泽子轩睿渊弘文哲瀚雨泽楷瑞建辉晋鹏天磊绍辉鑫磊泽洋鹏" +
                "煊昊强伟宸博超君浩子骞鹏涛炎彬鹤轩越彬风华靖琪明辉伟诚明轩健柏修杰志泽弘扬峻熙嘉懿城懿轩烨伟苑博伟泽熠彤鸿煊博涛烨霖烨华煜祺智宸正豪昊然明杰立诚立辉鸿煊烨霖哲瀚鑫鹏鑫昊天思聪展鹏笑愚志强炫明雪松思源智渊晓啸天宇浩然文轩鹭洋振家乐驹晓博立果金鑫锦程嘉熙鹏飞子默思远浩轩语堂忆柳之桃慕青问兰尔岚元香初夏沛菡傲珊曼文乐菱痴珊恨玉惜";
        //2、定义班级字典
        String[] carr = {"一班","二班","三班","四班"};
        //3、定义随机数对象
        Random r = new Random();
        //定义StringBuilder进行拼接
        StringBuilder builder = new StringBuilder();
        builder.append("传智专修学院-软件工程系-XX方向学生信息登记表\r\n");
        //定义日期格式化类
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
        //4、遍历生成数据
        for (int i = 1; i <=200 ; i++) {
            //编号
            builder.append("s"+(i<10?"0"+i:i)+",");
            //姓名
            builder.append(""+str.charAt(r.nextInt(str.length()))+str.charAt(r.nextInt(str.length()))+",");
            //性别
            builder.append((r.nextInt(2)==0?"男":"女")+",");
            //班级
            builder.append(carr[r.nextInt(carr.length)]+",");
            //生日
            Calendar c = Calendar.getInstance();
            c.set(Calendar.YEAR,1997);
            c.add(Calendar.DAY_OF_MONTH,r.nextInt(1095));
            builder.append(sdf.format(c.getTime()));
            if(i!=200){
                builder.append("\r\n");
            }
        }
        FileUtils.writeStringToFile(new File("综合测试题3\\学生登记表.txt"),builder.toString(),"utf-8");
    }
    public static void main(String[] args) throws IOException {
        run1("第一阶段考试成绩.txt","第一阶段考试成绩");
        run1("期中考试成绩.txt","期中考试成绩");
        run1("第三阶段考试成绩.txt","第三阶段考试成绩");
        run1("期末考试成绩.txt","期末考试成绩");
        run2();
    }

【Java】FileUtils综合难题3相关推荐

  1. 传智播客java测试题_传智播客Java基础综合测试题

    传智播客Java基础综合测试题 传智播客Java基础综合测试题 第一关 1.动手完成 Java 开发包的安装,并设置环境变量 Path . 2.编写一个程序,要求程序运行后在屏幕上输出: ****** ...

  2. 学习Java的几大难题,你们都解决了吗?

    Java很难学,遇到很多问题,刚学的小伙伴多多少少还是有一些抱怨的,但是这都不是事,只要下定决心,我们就一定可以!下面小编来分享一下学习Java的一些难题. 一.面向对象的历史演变 搞清楚面向对象的历 ...

  3. 基于JAVA幼儿园综合管理系统计算机毕业设计源码+系统+数据库+lw文档+部署

    基于JAVA幼儿园综合管理系统计算机毕业设计源码+系统+数据库+lw文档+部署 基于JAVA幼儿园综合管理系统计算机毕业设计源码+系统+数据库+lw文档+部署 本源码技术栈: 项目架构:B/S架构 开 ...

  4. JAVA+MySQL综合笔记

    Java+MySQL综合运用笔记 一.Java连接使用mysql的5个思路过程 ​ 首先导入JDBC驱动jar包放到lib文件夹里面. 1.加载驱动方法 ①注册驱动:DriverManager.reg ...

  5. Java基础综合练习案例

    Java基础综合练习案例 案例:评委打分 以下是案例的需求: 在编程竞赛中,有6个评委为参赛的选手打分,分数为0-100的整数分. 选手的最后得分为:去掉一个最高分和一个最低分后 的4个评委平均值 ( ...

  6. JAVA EE综合项目(二手书籍出售消息)

    JAVA EE综合项目(二手书籍出售消息) 2.2 二手书交易系统(中) 会员:会员注册,基本信息修改:二手书籍出售信息的编辑.修改.发布(发布后不可再修改).关闭(关闭后他人不可再留言):查询并维护 ...

  7. 面对对象课程设计报告java,面向对象编程 JAVA编程综合实验报告.doc

    PAGE \* MERGEFORMAT 20 成绩: JAVA编程B综合实验报告 实验名称:面向对象编程 实验时间:2012年 5月 31日星期四 JAVA编程B综合实验报告 一.实验名称 面向对象编 ...

  8. java三张扑克牌,java第三季综合练习之扑克牌游戏

    初学Java,看完入门前三季,终于把最后的综合练习实现功能了!有待后续继续优化.代码顺序是先分类,最后部分是测试类. import java.util.ArrayList; import java.u ...

  9. JAVA 集合综合案例 【吃货联盟】

    JAVA集合学习完成 做了一个[吃货联盟]的综合案例, 希望对大家有所帮助 如有BUG也请大佬们多多指正

最新文章

  1. 极致进化-敏捷进化型企业的未来畅想
  2. ebuild 中的软件包依赖
  3. Centos6.3下apache+svn部署web版本同步
  4. win10 中的eclipse无法新建web项目
  5. Unity编辑器扩展Texture显示选择框
  6. 2019.7.16 网络层协议与应用
  7. Modbus网口设备接入多比物联网云平台教程
  8. python axes_python matplotlib中axes与axis的区别?
  9. underscore源码学习笔记(一)
  10. Android-Universal-Image-Loader学习笔记(一)
  11. 车路协同发展挑战与影响解析
  12. 计算机管理储存u盘无法使用,小编教你无法格式化u盘怎么解决
  13. 考试用计算机反思800字,期中考试总结反思作文800字
  14. wingdings字体符号在哪_Wingdings特殊字符及符號對照表 | 學步園
  15. Python技术pip的使用命令总结
  16. tc ebpf sample - tethering offload on linux pc
  17. IP地址和域名的关系
  18. 华为鸿蒙替换,替换安卓!华为鸿蒙OS旗舰来了
  19. 将代码上传到GitHub上
  20. [Invariance Matters: Exemplar Memory for Domain Adaptive Person Re-identification 魔改代码

热门文章

  1. 【204期】图文并茂,Spring Boot Starter 万字详解!还有谁不会?
  2. Matlab机器人工具箱(3-1):五自由度机械臂(正逆运动学)
  3. 带4g无线的高性能服务器,全网通还是4G?做一个智能4G的全网通简直完美!
  4. 《无人驾驶车辆模型预测控制》之基于动力学的MPC设计
  5. 如何在CodeIgniter中压缩和解压缩文件
  6. mysql启动不了的问题
  7. warning: #1300-D: XXX inherits implicit virtual 报警
  8. 小米Ruby15.6使用体验
  9. Docker学习——三大组件【镜像、容器、仓库】的应用(二)
  10. js 闭包和函数自调用方法