当前位置: 首页 > news >正文

网站建设大作业论文举报网站建设情况

网站建设大作业论文,举报网站建设情况,wordpress首页默认中文,网站做的好的医院目录 Day 10#xff1a;综合任务 1 一、题目分析 1. 数据结构 2. 相关函数基本知识 二、模块介绍 1. 初始化与成绩矩阵的构建 2. 创建总成绩数组 3. 寻找成绩极值 三、代码与测试 小结 拓展#xff1a;关于求极值的相关算法 Day 10#xff1a;综合任务 1 Task综合任务 1 一、题目分析 1. 数据结构 2. 相关函数基本知识 二、模块介绍 1. 初始化与成绩矩阵的构建 2. 创建总成绩数组 3. 寻找成绩极值 三、代码与测试 小结 拓展关于求极值的相关算法 Day 10综合任务 1 Task         学生的成绩存放于一个矩阵其中行表示学生列表示科目。如第 0 行表示第 0 个学生的数学、语文、英语成绩。要求         进行学生成绩的随机生成, 区间为 [50, 100].         找出成绩最好、最差的同学。但有挂科的同学不参加评比. 实际代码中for 和 if 是最常见的, switch 和 while 使用少得多.使用了 continue, 它是指继续跳过本次循环后面的代码直接进入下一次循环. 而 break 是跳出整个循环体.为了随机数迫不得已提前使用了 new 语句生成对象.通过数据测试找出程序中的 bug. 一、题目分析 1. 数据结构 每个学生的科目都是三科不会多不会少因此多个学生之间的记录是定长记录因此可以考虑使用固定的一个m*3二维数组来记录所有学生的成绩。此外题目要求记录成绩最好和最差的同学因此可以考虑使用一个数组记录每个同学的成绩和然后通过成绩统计最高成绩与最低成绩。 注就实现统计最好最差同学来说这里的求和数组不是必要的可以在设计学生成绩时就完成相关统计。因此代码是可以简化的只是此处为了练习java代码内容故尽可能让数据结构完善。 2. 相关函数基本知识 1 Random.nextlnt()         为避免问题模拟时考虑设置数据的麻烦这里使用了数据数生成的基本方法。         java提供了Random库此库中包含了一些系列可用的随机数生成工具。今天我们将使用如下函数 java Random.nextInt()方法 public int nextInt(int n)         该方法的作用是生成一个随机的int值该值介于[0,n)的区间也就是0到n之间的随机int值包含0而不包含n 有几个注意点是使用这个方法要注意的。 此随机数的生成前闭后开的区间是因此是无法生成n的此数据生成最低值是0若要完成指定[a, b)的生成需要额外设计代码a temRandom.nextInt(b - a);数据是整型不包含浮点虽然成绩兼容浮点值我们这暂时就整型来说明 2关于循环语句         参考【Java 专题补充】流程控制语句-CSDN博客 3关于 continue 和 break         参考 【Java 专题补充】流程控制语句-CSDN博客 二、模块介绍 1. 初始化与成绩矩阵的构建 初始化定义的上限不是100而是101是因为随机函数的右界是个开区间因此要取满需要额外加一。         此外考虑到学生数量是不确定的且考虑到成绩表的可扩展性这里采用的是动态分配的方法创建矩阵。 // Step 1. Generate the date with n student and m course.// Set these value by yourself.int n 10;int m 3;int lowerBound 50;int upperBound 101;int threshold 60;// Here we have to use an object to generate random numbersRandom temRandom new Random();int[][] data new int[n][m];for (int i 0; i n; i) {for (int j 0; j m; j) {data[i][j] lowerBound temRandom.nextInt(upperBound - lowerBound);} // Of for j} // Of for i2. 创建总成绩数组 创建总成绩数组。再次强调这个数组不是必须的此处是为了区分过程为了理清楚原理特别使用的一个存储空间。本质上可以通过成绩矩阵直接获得这一步的结果。         当某个学生成绩低于及格线时其总分无效依据题意这里令其总成绩为0。         这里的0更多起了标记这个学生成绩无效的作用。 // Step 2.Compute the total score of each student.int[] totalScores new int[n];for (int i 0; i n; i) {for (int j 0; j m; j) {if (data[i][j] threshold) {totalScores[i] 0;break;} // Of iftotalScores[i] data[i][j];} // Of for j} // Of for i3. 寻找成绩极值 分析代码如下         这里统计时将总分数为0标记的不及格/通过的学生跳过统计符合题意要求         这里使用了编程中常见得不能再常见的求极值方案——通过给预求极值设定一个反方向的最极限值说人话就是给最大值设定一个能取的最小值为初始值给最小值设定一个能取的最大值为初始值。这是一个求极值很常见的方法         这里能取的最小值就是0最大值就是m * upperBound因此只要保证最大值初始值小于等于0即可最小值初始值大于等于m * upperBound即可。         但是要说明这个最值的含义只有在元素集的数目大于0才有意义。 // Step 3. Find the best and worst student.// Typical initialization for index: invalid value.int tempBestIndex -1;int tempWorstIndex -1;// Typical initialization for best and worst values.// They must be replaced by valid values.int tempBestScore 0;int tempWorstScore m * upperBound 1;for (int i 0; i n; i) {// Do not consider failed students.if (totalScores[i] 0) {continue;} // Of ifif (tempBestScore totalScores[i]) {tempBestScore totalScores[i];tempBestIndex i;} // Of if// Attention: This if statememt cannot be combined with the last one// using else if,because a student can be both the best and the// worst. I found this bug while setting upperBound 65.if (tempWorstScore totalScores[i]) {tempWorstScore totalScores[i];tempWorstIndex i;} // Of if} // Of for i三、代码与测试 package basic;import java.util.Arrays; import java.util.Random;/*** The usage of sth.** author: Changyang Hu joe03foxmail.com* date created: 2025-05-10*/ public class Task1 {/*** ********************** Title: main* Description: The entrance of the program.** param args Not used now.* return void **********************/public static void main(String args[]) {task1();}// Of main/*** ********************** Title: task1* Description: Method unit test.* * return void **********************/public static void task1() {// Step 1. Generate the data with n student and m courses.// Set these values by yourselfint n 10;int m 3;int lowerBound 50;int upperBound 101; // Should be 100. I use this value for testingint threshold 60;// Here we have to use an object to generate random numbers.Random tempRandom new Random();int[][] data new int[n][m];for (int i 0; i n; i) {for (int j 0; j m; j) {data[i][j] lowerBound tempRandom.nextInt(upperBound - lowerBound);} // Of for j} // Of for iSystem.out.println(The data is:\r\n Arrays.deepToString(data));// Step 2. Compute the total score of each student.int[] totalScores new int[n];for (int i 0; i n; i) {for (int j 0; j m; j) {if (data[i][j] threshold) {totalScores[i] 0;break;} // Of iftotalScores[i] data[i][j];} // Of for j} // Of for iSystem.out.println(The total scores are:\r\n Arrays.toString(totalScores));// Step 3. Find the best and worst student.// Typical initialization for index: invalid value.int tempBestIndex -1;int tempWorstIndex -1;// Typical initialization for best and worst value.// They must be replaced by valid values.int tempBestScore 0;int tempWorstScore m * upperBound 1;for (int i 0; i n; i) {// Do not consider failed students.if (totalScores[i] 0) {continue;} // Of ifif (tempBestScore totalScores[i]) {tempBestScore totalScores[i];tempBestIndex i;} // Of if// Attention: This if statement cannot be combined with the last one// using else if, because a student can be both the best and the// worst. I found this bug while setting upperBound 65.if (tempWorstScore totalScores[i]) {tempWorstScore totalScores[i];tempWorstIndex i;} // Of if} // Of for i// Step 4. Output the student number and score.if (tempBestIndex -1) {System.out.println(Cannot find best student. ALL students have failed.);} else {System.out.println(The best student is No. tempBestIndex with scores: Arrays.toString(data[tempBestIndex]));} // Of ifif (tempWorstIndex -1) {System.out.println(Cannot find worst student. All students have failed.);} else {System.out.println(The worst student is No. tempWorstIndex with scores: Arrays.toString(data[tempWorstIndex]));} // Of if}// Of task1}// Of class Task1第一次运行结果upperBound 101 在一次运行后数据如我们预期那样对于不及格的学生其总分是按照0处理的。 为了验证我们预先的特殊情况我们先将随机生成的分数上限下调到66让我们的分数随机数更容易落到不及格upperBound 66 可以发现因为每个人存在不及格学科由于是随机生成所以也存在第一张图片所示仍然有结果因此大家总分都不及格因此这里大家的分数在比较时都跳过了出现了“无最高分无最低分”的人为规定条件。  小结 本篇展示了数据处理中很多比较常见的方法包括总分求和、极值的计算与分析等。要注意的点就是灵活对于数据进行分析合理利用数据结构即可属于是基础的表格数据的应用。         但是引起我思考的是其中求极值的方法。本篇代码中我们使用的是一种给极值赋相反的极限值的一种无效赋值法我提到了“ 数据集合元素要大于0时极值才有意义 ”。 拓展关于求极值的相关算法 任何最大值最小值的含义都是在元素集大于0才有意义这个不言而喻。         也是因为这个原因还有另一种设置初值的方案是——将第一个元素的值设定给初始极值并由此衍生——只记录最大值的下标而不记录最大值本身然后下标初始值为0就是默认为第一个元素的值。如果这么做了我们设定的变量似乎就更少了呢而且对于随机存取的数组来说下标的信息熵比元素本身要多***知道极值下标的话在知道数据顺序之余还能以O(1)速度立马知道数据而只知道数据最大值本身的话那也就知道数据本身而已了***。         但是事物要辩证看待本代码使用的无效赋值方法其实可以让数据本身起到一种标签的作用若比大小时候有特殊处理时比如这里的0分不统计通过判断极值是否有效也可以用以断定“ 是不是所有大小判断都已经跳过 ”这种极特殊情景。 除此之外一般常见的求极值的算法还有三分、二元函数、退火求极值的方法。更详细的可以参考如下博文 优化算法一元与二元函数极值求解与退火方法-CSDN博客
http://www.pierceye.com/news/370056/

相关文章:

  • 设计网站一般要多少钱方维服务公司服务范围
  • 济南外贸网站制作做网站推广每天加班
  • 网站开发虚拟主机系统做网站的新闻
  • 黄骅港信息吧windows优化大师好用吗
  • 网站编辑怎么做哪些知名网站用wordpress
  • 兰州网站seo收费标准小程序和wordpress
  • 北京市网站设计h5制作平台免费推荐
  • 青岛网站设计企业网络营销个人感悟小结
  • 酒店网站源码宁夏网站制作哪家好
  • 租个网站服务器多少钱电子商务网站的建设流程
  • 正规营销型网站定制上海缘震网络科技有限公司
  • 网站建设的目的个人养老金查询
  • 沧州英文模板建站长沙 网站建设公司
  • 广州网站备案公司南昌网站建设网站推广
  • 龙岗外贸网站建设公司博览局网站建设
  • 怎么做淘课网站百度网站优化方案
  • 余姚做网站深圳华强北怎么了
  • 网站建设单元格边距WordPress进
  • 备案后的域名改网站名沪深300指数怎么买
  • 行业网站维护买电脑wordpress
  • 廊坊兼职网站建设网站图片怎么做的高级
  • pc网站转换手机网站wap用jsp源码做网站
  • 重庆慕尚网站建设在线美工
  • 珠海网站设计培训源码网站
  • 中山好的做网站的公司网站seo外包
  • 付费的网站是指展览馆网站建设方案书
  • 免费整套ppt模板下载网站网络营销推广目的
  • 公司 做网站企业手机app开发公司
  • 玉树电子商务网站建设多少钱做类似淘宝一样的网站
  • 住房城乡与建设厅网站燕郊网站开发