啊啊啊 草蛋啊 之前努力一天搞出来的时间算法 被一句pk掉 给我砖头
package yun3; import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.Calendar;
import java.util.Scanner;
public class number3 { /**
* * 作者:范铭祥
* 功能:演示先来先到处理算法
* 日志2:事实证明日志1的方法可用,但在系统运行过程中因为一些逻辑性问题而出错,我将画一张新逻辑图
* 来解决这问题,现创建新程序解决,并缩略程序
*/
public static void main(String[] args) throws Exception
{
System.out.println("是否要自定作业个数?Y/N");
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
String choose=br.readLine();
JCB[] project=new JCB[25];
int aa=1;
if(choose.equals("Y"))
{
Scanner in=new Scanner(System.in);
System.out.println("请输入作业的个数");
aa=in.nextInt()+1;//这里aa预留大了1,后面只需用<符号
}
if(choose.equals("N"))
{
aa=6;
}
//录入各项目的JBC数据
System.out.println("以下是输入作业信息:\n");
Scanner in=new Scanner(System.in);
for(int i=1;i<aa;i++)
{ project[i]=new JCB();
project[i].vv=i;
System.out.println("请输入第"+i+"个作业的名字 ");
project[i].name=br.readLine();
project[i].inmessage("作业等待");
System.out.println("输入第"+i+"个作业所需的运行时间(秒)!");
int run=in.nextInt();
project[i].time_1(run);
System.out.println("输入第"+i+"个作业开始运行的时间(秒)");
int get=in.nextInt();
project[i].time_2(get);
}
//以下是用于排序
open1 s1=new open1();
s1.open1_2(aa, project);
// //Test0
// for(int v=1;v<aa;v++)
// {
// System.out.println("vv"+project[v].vv);
// }
//以下是用于将正确的作业顺序填入JCB
JCB PP[]=new JCB[25];
for(int b=1;b<aa;b++)
{
PP[b]=new JCB();
for(int c=1;c<aa;c++ )//这里用于搜索在pro[]vv中的1234
{
if(project[c].vv==b)
{
PP[b]=project[c];
}
}
}
//test
for(int u=1;u<aa;u++)
{
System.out.println("第"+u+"处理: 原第"+PP[u].vv+"个作业——名称:"+PP[u].name+"到达时间:"+PP[u].gettime+"运行时间"+PP[u].runtime);
}
//录完go时间模块
Calendar c = Calendar.getInstance();
int gominute = c.get(Calendar.MINUTE);
int gosecond = c.get(Calendar.SECOND);
int all=gominute*60+gosecond;
//装逼提示用户系统开始时间(秒)
System.out.println("录完作业入系统的时间0");
//以下是开始执行各作业的运行情况
boolean go=true;int ii=1;int kk2=0;
boolean go2=true;
/*最外层循环*/do
{ // System.out.println("ii"+ii);
Calendar b = Calendar.getInstance();
/*0延迟更新时间*/int m = b.get(Calendar.MINUTE)*60;
int s = b.get(Calendar.SECOND)+m;//现时间总和
//以下这部分专门用来显示时间
int kk=s-all;
if(kk==kk2)
{
System.out.println("系统时间:第"+kk+"秒");
}
kk2=kk+1;
int yy=PP[ii].runtime;//这里不知为何要用int来传入PP【ii】.runtime,测试后发现这个可行
if(s==PP[ii].gettime+all)//当时间到达任务开始的时间
{
System.out.println("第"+ii+"个作业的到达时间"+PP[ii].gettime);
System.out.println("作业"+ii+"正在运行");
/*在该作业中不断循环时间 直至时间跳到now=s(记录的是该作业开始运行的时间)+runtime*/
go2=true;//使下个作业能再进去
while(go2)
{
Calendar d = Calendar.getInstance();//可以对每个时间域单独修改
int m3 = d.get(Calendar.MINUTE)*60;
int s3 = d.get(Calendar.SECOND)+m3;//数出的最新的时间
/*判断*/ if(s+yy==s3)
{
System.out.println("任务作业"+ii+"名字"+PP[ii].name+"状态:完成");
PP[ii].zt="作业完成";
int nowt2=s3-all;
System.out.println("现在系统时间"+nowt2);
go2=false;
//然后再判断现时间是否超过下一作业的开始时间 是则 替代之
if(ii+1<=aa-1)//限制ii+1的范围 避免空
{
if(nowt2>=PP[ii+1].gettime)
{
PP[ii+1].gettime=nowt2;
}
}
ii++;
}
//跳出来了
if(ii==aa)
{
go=false;
} } }
}while(go);
System.out.println(" 你的要求全部完成 ");
} }
class JCB{
public String name,zt;//作业名 运行状态
public int vv;//用来排完顺序后存储原来的作业号
public int runtime;//运行所需要时间
public int gettime;//到达时间
//从这里录入
public void inmessage(String zt)
{
this.zt=zt;
}
public void time_1(int cd)
{
this.runtime=cd;
}
public void time_2(int gd)
{
this.gettime=gd;
}
}
class SYS_START
{
public int gomm; //记录全部作业开始时的时间
public int goss; //记录全部作业开始时的时间
public int allstart;//这个是将全部作业开始的时间化为秒数
public SYS_START()
{
this.allstart=gomm*60+goss;
}
public void gommtime(int mmtime)
{
this.gomm=mmtime;
}
public void gosstime(int sstime)
{
this.goss=sstime;
} }
class open1
{
public void open1_2(int aa,JCB project[])
{
//以下是开始排序来达到先来先到处理算法:采用的是冒泡排序法
int temp=0;
for(int i=1;i<aa;i++)
{
for(int y=aa-1;y>i;y--)
{
if(project[y].gettime<project[y-1].gettime)
{
temp=project[y].vv;
project[y].vv=project[y-1].vv;
project[y-1].vv=temp;
}
}
}
}
} 啊啊啊啊啊啊啊!!!
被一句pk掉
Thread.sleep(1000);
啊啊啊 草蛋啊 之前努力一天搞出来的时间算法 被一句pk掉 给我砖头的更多相关文章
- druid 源码分析与学习(含详细监控设计思路的彩蛋)(转)
原文路径:http://herman-liu76.iteye.com/blog/2308563 Druid是阿里巴巴公司的数据库连接池工具,昨天突然想学习一下阿里的druid源码,于是下载下来分析了 ...
- 学习思考:思考>努力
学.习.思.考 学习.思考,这2个词,4个字,其实代表了4个不同的动作:学.习.思.考. 学,就是从外部(他人)获得. 习,就是练习,行动. 思,就是从内部(自己)获得. 考,就是考量,检测. 因此, ...
- 【英语魔法俱乐部——读书笔记】 1 初级句型-简单句(Simple Sentences)
第一部分 1 初级句型-简单句(Simple Sentences):(1.1)基本句型&补语.(1.2)名词短语&冠词.(1.3)动词时态.(1.4)不定式短语.(1.5)动名词.(1 ...
- 人生规划和GTD——“知”、“得”与“合”
写在前面:非常不错的一篇GTD入门以及人生目标与规划的文章,值得收藏. 本文来自 零折 作为<小强升职记>的读书感悟,给我自己.作为分享,也送给或许需要的给你. 我不知道你是否真的需要.但 ...
- HDU_1016——素环问题DFS
Problem Description A ring is compose of n circles as shown in diagram. Put natural number 1, 2, ... ...
- Vue 无限滚动加载指令
也不存在什么加载咯, 就是一个判断滚动条是否到达浏览器底部了. 如果到了就触发事件,米到就不处理. 计算公式提简单的 底部等于(0) = 滚动条高度 - 滚动条顶部距离 - 可视高度. 反正结 ...
- 人生规划和GTD——"知"、"得"与"合"
作为<小强升职记>的读书感悟,给我自己.作为分享,也送给或许需要的给你. 我不知道你是否真的需要.但我受Amy师姐等一众人的影响,已经爱上了分享.呵呵,话也可以倒过来说,其实分享也就是爱. ...
- 基于Django+celery二次开发动态配置定时任务 ( 二)
一.需求 结合上一篇,使用djcelery模块开发定时任务时,定时任务的参数都保存在djcelery_periodictask表的args.kwargs字段里,并且是json格式.那么,当定时任务多了 ...
- 题解 【USACO 4.2.1】草地排水
[USACO 4.2.1]草地排水 Description 在农夫约翰的农场上,每逢下雨,贝茜最喜欢的三叶草地就积聚了一潭水.这意味着草地被水淹没了,并且小草要继续生长还要花相当长一段时间.因此,农夫 ...
随机推荐
- laravel5.5源码笔记(七、数据库初始化)
laravel中的数据库也是以服务提供者进行初始化的名为DatabaseServiceProvider,在config文件的providers数组中有写.路径为vendor\laravel\frame ...
- 重学Verilog(3)——参数化模块
1.parameter方法 首先有这样一个模块 module half_adder(co,sum,a,b); output co,sum; input a,b; ; ; and #and_delay ...
- Python学习之迭代器和生成器
那么首先什么是迭代器和生成器呢? 迭代器即迭代的工具,那么什么又是迭代呢?所谓迭代:迭代是一个重复的过程,每次重读即一次迭代,并且每次迭代的结果都是下一次迭代的初始值.例: l=[1,2,3] cou ...
- windows7 64位机上配置支持GPU版(CUDA7.5)的OpenCV2.4.13操作步骤
很久之前在windows7 32位上配置过GPU版的opencv,可参考http://blog.csdn.net/fengbingchun/article/details/9831837 Window ...
- 洛咕 P2155 [SDOI2008]沙拉公主的困惑
洛咕 P2155 [SDOI2008]沙拉公主的困惑 有个结论,就是如果\(gcd(a,b)=1\),那么\(gcd(a+kb,b)=1\).证明比较显然. 所以这个题目要问的\(n!\)就可以分成\ ...
- vs2012 与 win7 不兼容的问题
Visual Studio 2012 与此版本的 Windows 不兼容 突然出现的,如下图: 这个是网上找的图,我的没来得及截图就修复了,基本一致,只是我的是win7 64位系统,所以安装位置那里是 ...
- Makefile详解
原文链接:https://blog.csdn.net/qq_38646470/article/details/79917494 专栏链接:https://blog.csdn.net/column/de ...
- PSR编码规范
PSR-1 代码风格规范(1)常量命名:类中的常量所有字母都必须大写,单词间用下划线分隔(2)类命名:类的命名必须遵循 StudlyCaps 大写开头的驼峰命名规范(3)方法命名:方法名称必须符合 c ...
- selenium的基本定位方式总结
Selenium提供了8种定位方式. id name class name tag name link text partial link text xpath css selector 这8种定位方 ...
- docker私服搭建nexus3
docker私服搭建有官方的registry镜像,也有改版后的NexusOss3.x,因为maven的原因搭建了nexus,所以一并将docker私服也搭建到nexus上. nexus的安装过程就单独 ...