啊啊啊 草蛋啊 之前努力一天搞出来的时间算法 被一句pk掉 给我砖头
1 package yun3; 2 3 import java.io.BufferedReader; 4 import java.io.InputStreamReader; 5 import java.util.Calendar; 6 import java.util.Scanner; 7 public class number3 { 8 9 /** 10 * * 作者:范铭祥 11 * 功能:演示先来先到处理算法 12 * 日志2:事实证明日志1的方法可用,但在系统运行过程中因为一些逻辑性问题而出错,我将画一张新逻辑图 13 * 来解决这问题,现创建新程序解决,并缩略程序 14 */ 15 public static void main(String[] args) throws Exception 16 { 17 System.out.println("是否要自定作业个数?Y/N"); 18 BufferedReader br=new BufferedReader(new InputStreamReader(System.in)); 19 String choose=br.readLine(); 20 JCB[] project=new JCB[25]; 21 int aa=1; 22 if(choose.equals("Y")) 23 { 24 Scanner in=new Scanner(System.in); 25 System.out.println("请输入作业的个数"); 26 aa=in.nextInt()+1;//这里aa预留大了1,后面只需用<符号 27 } 28 if(choose.equals("N")) 29 { 30 aa=6; 31 } 32 //录入各项目的JBC数据 33 System.out.println("以下是输入作业信息:\n"); 34 Scanner in=new Scanner(System.in); 35 for(int i=1;i<aa;i++) 36 { 37 38 project[i]=new JCB(); 39 project[i].vv=i; 40 System.out.println("请输入第"+i+"个作业的名字 "); 41 project[i].name=br.readLine(); 42 project[i].inmessage("作业等待"); 43 System.out.println("输入第"+i+"个作业所需的运行时间(秒)!"); 44 int run=in.nextInt(); 45 project[i].time_1(run); 46 System.out.println("输入第"+i+"个作业开始运行的时间(秒)"); 47 int get=in.nextInt(); 48 project[i].time_2(get); 49 } 50 //以下是用于排序 51 open1 s1=new open1(); 52 s1.open1_2(aa, project); 53 // //Test0 54 // for(int v=1;v<aa;v++) 55 // { 56 // System.out.println("vv"+project[v].vv); 57 // } 58 //以下是用于将正确的作业顺序填入JCB 59 JCB PP[]=new JCB[25]; 60 for(int b=1;b<aa;b++) 61 { 62 PP[b]=new JCB(); 63 for(int c=1;c<aa;c++ )//这里用于搜索在pro[]vv中的1234 64 { 65 if(project[c].vv==b) 66 { 67 PP[b]=project[c]; 68 } 69 } 70 } 71 //test 72 for(int u=1;u<aa;u++) 73 { 74 System.out.println("第"+u+"处理: 原第"+PP[u].vv+"个作业——名称:"+PP[u].name+"到达时间:"+PP[u].gettime+"运行时间"+PP[u].runtime); 75 } 76 //录完go时间模块 77 Calendar c = Calendar.getInstance(); 78 int gominute = c.get(Calendar.MINUTE); 79 int gosecond = c.get(Calendar.SECOND); 80 int all=gominute*60+gosecond; 81 //装逼提示用户系统开始时间(秒) 82 System.out.println("录完作业入系统的时间0"); 83 //以下是开始执行各作业的运行情况 84 boolean go=true;int ii=1;int kk2=0; 85 boolean go2=true; 86 /*最外层循环*/do 87 { 88 89 // System.out.println("ii"+ii); 90 Calendar b = Calendar.getInstance(); 91 /*0延迟更新时间*/int m = b.get(Calendar.MINUTE)*60; 92 int s = b.get(Calendar.SECOND)+m;//现时间总和 93 //以下这部分专门用来显示时间 94 int kk=s-all; 95 if(kk==kk2) 96 { 97 System.out.println("系统时间:第"+kk+"秒"); 98 } 99 kk2=kk+1; 100 int yy=PP[ii].runtime;//这里不知为何要用int来传入PP【ii】.runtime,测试后发现这个可行 101 if(s==PP[ii].gettime+all)//当时间到达任务开始的时间 102 { 103 System.out.println("第"+ii+"个作业的到达时间"+PP[ii].gettime); 104 System.out.println("作业"+ii+"正在运行"); 105 /*在该作业中不断循环时间 直至时间跳到now=s(记录的是该作业开始运行的时间)+runtime*/ 106 go2=true;//使下个作业能再进去 107 while(go2) 108 { 109 Calendar d = Calendar.getInstance();//可以对每个时间域单独修改 110 int m3 = d.get(Calendar.MINUTE)*60; 111 int s3 = d.get(Calendar.SECOND)+m3;//数出的最新的时间 112 /*判断*/ if(s+yy==s3) 113 { 114 System.out.println("任务作业"+ii+"名字"+PP[ii].name+"状态:完成"); 115 PP[ii].zt="作业完成"; 116 int nowt2=s3-all; 117 System.out.println("现在系统时间"+nowt2); 118 go2=false; 119 //然后再判断现时间是否超过下一作业的开始时间 是则 替代之 120 if(ii+1<=aa-1)//限制ii+1的范围 避免空 121 { 122 if(nowt2>=PP[ii+1].gettime) 123 { 124 PP[ii+1].gettime=nowt2; 125 } 126 } 127 ii++; 128 } 129 //跳出来了 130 if(ii==aa) 131 { 132 go=false; 133 } 134 135 } 136 137 } 138 }while(go); 139 System.out.println(" 你的要求全部完成 "); 140 } 141 142 } 143 class JCB{ 144 public String name,zt;//作业名 运行状态 145 public int vv;//用来排完顺序后存储原来的作业号 146 public int runtime;//运行所需要时间 147 public int gettime;//到达时间 148 //从这里录入 149 public void inmessage(String zt) 150 { 151 this.zt=zt; 152 } 153 public void time_1(int cd) 154 { 155 this.runtime=cd; 156 } 157 public void time_2(int gd) 158 { 159 this.gettime=gd; 160 } 161 } 162 class SYS_START 163 { 164 public int gomm; //记录全部作业开始时的时间 165 public int goss; //记录全部作业开始时的时间 166 public int allstart;//这个是将全部作业开始的时间化为秒数 167 public SYS_START() 168 { 169 this.allstart=gomm*60+goss; 170 } 171 public void gommtime(int mmtime) 172 { 173 this.gomm=mmtime; 174 } 175 public void gosstime(int sstime) 176 { 177 this.goss=sstime; 178 } 179 180 } 181 class open1 182 { 183 public void open1_2(int aa,JCB project[]) 184 { 185 //以下是开始排序来达到先来先到处理算法:采用的是冒泡排序法 186 int temp=0; 187 for(int i=1;i<aa;i++) 188 { 189 for(int y=aa-1;y>i;y--) 190 { 191 if(project[y].gettime<project[y-1].gettime) 192 { 193 temp=project[y].vv; 194 project[y].vv=project[y-1].vv; 195 project[y-1].vv=temp; 196 } 197 } 198 } 199 } 200 } 啊啊啊啊啊啊啊!!!被一句pk掉Thread.sleep(1000);
转载于:https://www.cnblogs.com/vip-fan1234xiang/p/4426332.html
啊啊啊 草蛋啊 之前努力一天搞出来的时间算法 被一句pk掉 给我砖头相关推荐
- 测试员老张发觉越努力越费劲,越加班时间却越不够用,只能陷入低效率的加班中,循环往复
目录:导读 前言 一.测试方案 二.测试用例 三.性能测试 四.个人简历 五.各个面试题 六.总结 前言 都在面临些什么? 越努力越费劲,越加班时间却越不够用 张某某在一家老牌国企任职,在企业被并购前 ...
- 三大扯蛋、四大怪事、五大谎言、六大....超精辟!
三大扯蛋: 靠工资买房的是扯蛋: 靠努力升官的是扯蛋: 靠保健长寿的是扯蛋. 四大怪事: 做人不如狗受宠爱: 做事的不如告密的受信赖: 内行的不如外行的提的快: 忽悠的比敬业的更豪迈. 五大谎言: 服 ...
- android 彩蛋 miui,MIUI12最新更新,安卓11彩蛋终于出现,流畅度提升
原标题:MIUI12最新更新,安卓11彩蛋终于出现,流畅度提升 经过了几天连续推迟,基于安卓11 beta3的MIUI12终于更新,版本号为MIUI12 20.8.20,此次更新系统整体体验提升明显, ...
- 什么是天灾人祸,天灾是智商比较低,什么是人祸,人祸就是自己还不努力
有很多刚毕业的大学生好像经不起任何打击,别人只能好话哄着,恭维着.领导也不能批评,一批评这想法就多了,好点的就说是工作压力大了,差点的就说是阴谋,XXX要整我,等等奇谈怪论不一而足.比如最近我就遇到了 ...
- 你这么努力,为何还如此焦虑?
文/小岩井 一 有个学生,暑假报名来学日语.因为半年后要去日本留学,所以很认真地每天在学校上课和自修. 然而他学得并不好.应该说是很不好.他是某重点大学的理科毕业生,按理说智商肯定没问题.也很努力,可 ...
- 观李永乐老师《双蛋问题》解题后感
观李永乐老师<双蛋问题>解题后感 题目开始前,随便说几句. 随便说几句,就是随随便便说的,看不懂没关系.随便说,可能会表达得不好,当作阅读前的热身 . 李永乐老师双蛋问题,大概就是讲,给你 ...
- 老男孩教育 | 努力5个月,收获年薪20w,成功转行!
隔行如隔山,转行难,难于上青天!这几乎是99%职场人的共同感受! 经常听到有人问:将近30岁还能转行做IT吗?转行IT还能找到工作吗?我想说的是30岁转行学IT不是没有前途,关键在于你自己,你有没有决 ...
- 运气比选择重要,选择比努力重要
曾经幼稚地以为只要凭着自己的努力就一定能达到成功的顶峰,现在看来,最重要的因素也许还是运气.从创业失败(05年初)到现在,一直梦想能成为某一方面的技术专家,然而外包公司的现状没能给我这个机会,因为那里 ...
- 洗布草标签对于服装、工业洗涤的应用方案
洗布草标签的应用背景 专业洗衣公司每年处理数以上万计的工作服,布草制品.面临整个换洗的运送.洗涤.熨烫.整理和送还的过程,单靠传统人工清点统计已不能满足行业所需.如何缩减布布草清洗的整个时间周期,明确 ...
最新文章
- golang 多行字符串 字符串太长分行写
- NIO的Buffer
- mysql select time,MySql查询时间段的方法
- VideoLAN、VLC 和 FFmpeg联合开发AV1 解码器 Dav1d
- 如何使用R语言在SAP Analytics Cloud里绘制各种统计图表
- python opencv2_python opencv2 api
- C++学习之路 | PTA乙级—— 1034 有理数四则运算 (20 分)(精简)
- gin ip 和 本地访问的结果不一样_golang web开发——gin实战之整合swagger
- 西邮计算机学院院长,西安邮电大学计算机学院
- 59. DNS 服务器
- 深入了解mysql 5.5分区功能增强_深入了解MySQL 5.5分区功能增强
- roundcube mysql_Roundcube Webmail 安装配置
- 深度学习之目标检测--Pytorch实战
- 怎么修改背景图片大小的HTML代码,css如何改变背景图片大小?
- Linux 下 JbossEAP 6.2安装与实例部署
- 工控攻击,黑客组织GhostSec 称入侵以色列55 家Berghof PLC
- 【PS】Adobe Photoshop 2020中扣名字
- 包,内部类,常用类,集合
- 这,不是我想要的生活
- PyCharm快捷键(替换和查找)
热门文章
- English学习资料大全
- Maven 项目的 org.junit.Test 获取不到(转载)
- Linux下locale: Cannot set LC_CTYPE to default locale: No such file or directory警告
- intellij默认maven仓库配置路径+默认New Project 工程路径
- Spark的三种伪分布式方式
- 子线程和主线程的关系
- sublime使用正则匹配
- C++Primer模板
- 机器学习数据挖掘笔记_15(关于凸优化的一些简单概念)
- QT-Qt获取当前时间并格式化输出及将积秒转换成时间