news 2026/5/1 10:53:37

IO练习——随机点名器

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
IO练习——随机点名器

将每一位学生分成一块区域的占比。当系统随机到这个范围的某一个数字就代表是这个学生。

package com.lkbhua.Test2.test2; public class Student { private String name; private String gender; private int age; private double weight; public Student() {} public Student(String name, String gender, int age, double weight) { this.name = name; this.gender = gender; this.age = age; this.weight = weight; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getGender() { return gender; } public void setGender(String gender) { this.gender = gender; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public double getWeight() { return weight; } public void setWeight(double weight) { this.weight = weight; } @Override public String toString() { return "Student [name=" + name + ", gender=" + gender + ", age=" + age + ", weight=" + weight + "]"; } }
package com.lkbhua.Test2.test2; import java.io.*; import java.util.ArrayList; import java.util.Arrays; public class test1 { public static void main(String[] args) throws IOException { // 1、把文件中所有的学生信息读取到内存中 ArrayList<Student> list = new ArrayList<>(); // 2、创建IO流 BufferedReader br = new BufferedReader(new FileReader("lkb04-File&IOCode\\a.txt")); String line; while((line = br.readLine()) != null) { // 3、把文件中的数据封装成对象 String[] arr = line.split("-"); Student s = new Student(arr[0], arr[1], Integer.parseInt(arr[2]), Double.parseDouble(arr[3])); list.add(s); } br.close(); //System.out.println("所有学生信息:"); //System.out.println(list); // 2、计算权重的总和 double weight = 0; for (Student stu : list) { weight = weight + stu.getWeight(); } //System.out.println("权重的总和:"); //System.out.println(weight); // 3、计算每一个人的实际占比 // 1/10 = 0.1 然后把结果存起来 double[] arr = new double[list.size()]; int index = 0; for (Student stu : list) { arr[index] = stu.getWeight() / weight; index++; } //System.out.println("每个人的实际占比:"); //System.out.println(Arrays.toString(arr)); // 4、把每一个学生的占比范围都计算出来 // [0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1] // [0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0] for (int i = 1; i < arr.length; i++) { arr[i] = arr[i] + arr[i - 1]; } //System.out.println("每个人的占比范围:"); //System.out.println(Arrays.toString(arr)); // 5、生成随机数,判断随机数属于哪个区间 // 获取一个0.0 - 1.0之间的随机数 double number = Math.random(); //System.out.println("随机数:"); //System.out.println(random); // 6、遍历数组,判断随机数属于哪个区间 // 二分查找法 // 方法返回值: -插入点 - 1 int index2 = Arrays.binarySearch(arr, number); // 获取number在数组中的插入点位置 // 插入点 = -结果 - 1 (运算知识) int result = -index2 - 1; //System.out.println("随机数属于哪个区间:"); //System.out.println(result); Student stu = list.get(result); System.out.println("中奖学生信息:"); System.out.println(stu); // 7、修改学生的权重 double w = stu.getWeight() / 2; stu.setWeight(w); // 8、把修改后的数据写入文件 BufferedWriter bw = new BufferedWriter(new FileWriter("lkb04-File&IOCode\\a.txt")); for (Student stu2 : list) { bw.write(stu2.getName() + "-" + stu2.getGender() + "-" + stu2.getAge() + "-" + stu2.getWeight()); bw.newLine(); } bw.close(); System.out.println("修改后的数据写入文件成功"); } }
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/1 8:49:04

python-flask-django基于Web的校园订餐点餐服务信息论坛平台_92vf46qm

文章目录系统截图项目技术简介可行性分析主要运用技术介绍核心代码参考示例结论源码lw获取/同行可拿货,招校园代理 &#xff1a;文章底部获取博主联系方式&#xff01;系统截图 python-flask-django基于Web的校园订餐点餐服务信息论坛平台_92vf46qm 项目技术简介 Pytho…

作者头像 李华
网站建设 2026/5/1 10:01:47

d3dx10d_43.dll文件免费下载修复 解决丢失找不到无法运行软件问题

在使用电脑系统时经常会出现丢失找不到某些文件的情况&#xff0c;由于很多常用软件都是采用 Microsoft Visual Studio 编写的&#xff0c;所以这类软件的运行需要依赖微软Visual C运行库&#xff0c;比如像 QQ、迅雷、Adobe 软件等等&#xff0c;如果没有安装VC运行库或者安装…

作者头像 李华
网站建设 2026/4/23 11:19:37

【WampServer】Windows本地部署WampServer环境并实现远程访问服务界面

文章目录 * 前言1.WampServer下载安装2.WampServer启动3.安装cpolar内网穿透 * 3.1 注册账号3.2 下载cpolar客户端3.3 登录cpolar web ui管理界面3.4 创建公网地址 4.固定公网地址访问 前言 Wamp 是一个 Windows系统下的 Apache PHP Mysql 集成安装环境&#xff0c;是一…

作者头像 李华
网站建设 2026/5/1 4:37:11

足球视频检测数据集介绍-1200张图片 智能体育转播 战术数据分析 裁判辅助系统 青训技能评估 体育媒体内容生产 虚拟现实体育体验

&#x1f4e6;点击查看-已发布目标检测数据集合集&#xff08;持续更新&#xff09; 数据集名称图像数量应用方向博客链接&#x1f50c; 电网巡检检测数据集1600 张电力设备目标检测点击查看&#x1f525; 火焰 / 烟雾 / 人检测数据集10000张安防监控&#xff0c;多目标检测点…

作者头像 李华
网站建设 2026/4/22 9:18:37

网球检测数据集介绍-2664张图片 智能体育分析系统 自动化体育直播 运动训练辅助设备 体育场馆安全监控 移动端体育应用 体育器材质量检测

&#x1f4e6;点击查看-已发布目标检测数据集合集&#xff08;持续更新&#xff09; 数据集名称图像数量应用方向博客链接&#x1f50c; 电网巡检检测数据集1600 张电力设备目标检测点击查看&#x1f525; 火焰 / 烟雾 / 人检测数据集10000张安防监控&#xff0c;多目标检测点…

作者头像 李华
网站建设 2026/5/1 9:35:35

通达信资金流量对比指标公式

{}总额:AMOUNT; 买:IF(OC AND (C-REF(C,1))/REF(C,1)*100>9.8,AMOUNT,AMOUNT/((H-L)*2-Abs(O-C))*(C-L)); 买%:买/AMOUNT*100; 流进:AMOUNT*买%/10000000000; 流出:AMOUNT/100000000-流进; 净流:流进-流出; 总额3:SUM(AMOUNT,3); 流进3:SUM(流进,3); 流出3:SUM(流出,3); 净流…

作者头像 李华