基本需求如下:
1.有四个人(甲乙丙丁)轮流做事情,按甲乙丙丁顺序,每人各有10件事情要做,但每人每次只允许做一件,并且从第一件开始做.
2.等到丁做完一件事后,休息1分钟,然后又从甲开始做剩下的事情,以此循环,直到四人都做完自己的所有事情.
以上为基本要求,附加扩展需求如下:
1.如果一件事做失败了,则记录它的做事者,以及失败原因,失败时间等,再输入到c:/note.txt,然后再跳过该件事,其它人继续进行.
2.当四人完成所有事情后,记录每人完成事情的所需的总时间以及成功率(或失败率),最好能用图表显示统计.
我想方法可能不少,但效率可能有别,此算法看似简单,但要运用的知识点却不少,线程,异常处理,循环应用,文件操作等等,
对一般人练练手应该还是有意义的啦.
大家有兴趣也来露两手如何?附加要求可以不考虑.本人的就不贴上去献丑了,呵
最后说下,本人认为该需求用于面试也不错,如果有人能在30分钟内完成,水平应该是相当不错的(使用时间越少,正确率越高,相对来说被面试者水平越高)
当然如果你认为是这是作业题或太简单了而不屑一顾的话,那你可以绕路了(此处已难以展现你才能了,人各有志吧,水平不同当然目标不同了,可以理解的,呵.)
------解决方案--------------------
有四个人(甲乙丙丁)轮流做事情,
这就不用线程了吧?
------解决方案--------------------
我完全不觉得这个跟线程有什么关系。。
------解决方案--------------------
4个人。。
同意楼上用线程!!
------解决方案--------------------
这样可不可以
- Java code
public class FTest{ public static void main(String[] args) { Logger log=new Logger(); People a=new People("甲", log); People b=new People("乙", log); People c=new People("丙", log); People d=new People("丁", log); for(int i=0;i<10;i++){ a.doMatter(); System.out.println("----pause-----1min----"); b.doMatter(); System.out.println("----pause-----1min----"); c.doMatter(); System.out.println("----pause-----1min----"); d.doMatter(); System.out.println("----pause-----1min----"); } log.addTime(-1); System.out.println(log); }}class People{ private String name; private int count; private Logger log; public People(String name,Logger log){ this.name=name; this.log=log; } public void doMatter(){ System.out.println(name+"doing No."+(count+1)); int cost=(int)(Math.random()*5+1); System.out.println("takes "+cost+" mins"); log.addTime(cost); if(Math.random()>0.7){ log.addError(); System.out.println("fail!!"); }else{ System.out.println("success!!!"); } log.addTime(1); count++; }}class Logger{ private int time; private int error; public void addTime(int time){ this.time+=time; } public void addError(){ error++; } public String toString() { return "times:"+time+","+"errors:"+error; } }
------解决方案--------------------
哇,靠,那么强
------解决方案--------------------
关注中,顶楼主!
------解决方案--------------------
帮顶,学习.
------解决方案--------------------
设四个变量分别表示四个人完成的情况,然后再用wait(),notify(),应该可以啊
------解决方案--------------------
汗~ 关注中 帮顶 接分、、
------解决方案--------------------
学习中!
------解决方案--------------------
进来瞧瞧
------解决方案--------------------
顶
------解决方案--------------------
这种些些小问题,楼主不是有些夸大吧?什么应聘之类的都扯上了,我虽然还没有毕业(不过都大四了),但是我看了下,找工作也不是那么容易的嘛!你这个问题其实没那么复杂,就是几个简单的语句在那里重用几下就行了,思路很简单的!我模拟了一个事件,假如是随机比较大小这样一件事!