上 机 试 题
1 基础题
1.1 Porject: FileList
给定一个文件路径,打印以下内容:
 如果路径指向一个文件夹则打印该文件夹下所有的子文件夹和文件(包括子文件夹下的文件夹和文件)
 如果路径指向一个文件则打印该文件名
 如果路径指向不存在的文件则打印:”(NO FILE)”
1.2 Project: SortObj
有一个类:
class MyClass
{
int iv;
String str;
}列表:List<MyClass> myList存放该类的若干个实例,对myList进行以下排序:
 按照MyClass的iv属性从小到大排序
 按照MyClass的iv和str属性从大到小排序(先检查iv,再检查str)
1.3 Project: Invoker
MyClass中有4个方法:func1()/func2()/func3()/func4,有多个线程要同时访问这4个方法,要求如下:
 func1()和func2()不能同时执行
 func3()和func4()不能同时执行
 func1()/func2()其中的一个与func3()/func4()其中的一个能同时执行
1.4 Project: Pool
水池容积为1000立方米,开始时水池里没有水要进行注水,当注到900立方米时停止注水,通知其他人来取水;当水取到剩下100立方米时停止取水,通知注水的人来注水:
 不断重复上述注水和取水动作
 注水和取水动作在不同的线程中
2 设计题
2.1 Project: Check
每家厂商都提供一种茶壶和一种茶杯送去检测,要求:
 检测的操作可以用System.out.println(...)模拟
 厂商有好多家,并且数量不固定
 无论增加多少个厂商,程序的主体代码都不用修改
 目前可以只实现对两家厂商的茶壶和水杯进行检测
2.2 Project: Draw
在屏幕上画图形,如:圆、正方形、三角型等。要求:
 画图形的操作可以用System.out.println(...)模拟
 图形有圆、正方形、三角型、五边形,六边形等无穷多种
 无论要画甚么图形,程序的主体代码都不用修改
 目前可以只实现画圆、正方形、三角型
2.3 Project: DrawPlus
在上一题基础上,画图形的操作有先后顺序。要求:
 可以按照不同的顺序画图
 无论画图的顺序如何变化,程序的主体代码都不用修改
 目前可以只实现先画圆再画正方形,最后画三角形
3 Web开发
3.1 Project: Sum
一个网站没有登录功能(没有登录页面),请实现对该网站在线人数统计:
 把当前在线人数信息动态打印到标准输出即可

解决方案 »

  1.   

    1: Check my blog:
    http://blog.csdn.net/justinavril/archive/2008/09/20/2955991.aspx
    2: Check my blog:
    http://blog.csdn.net/justinavril/archive/2008/09/13/2924557.aspx
      

  2.   

    这些题需要认真想想才行,能在有限上机时间内做出来应该很不错的,谁会最后一个题?web那道?
      

  3.   

    第1题:import java.io.File;
    public class Sample05 {
    private static int fCount = 0;
    private static int dCount = 0;
    private static void dirs(File f) {
    if (f.exists()) {
    if (f.isDirectory()) {
    File[] fs = f.listFiles();
    for (int i = 0; i < fs.length; i++) {
    dirs(fs[i]);
    }
    dCount++;
    } else if (f.isFile()){
    fCount++;
    }
    System.out.println(f.getPath());
    }
    }
    public static void dirs(String str) {
    File f = new File(str);
    if(fCount==0){
    System.out.println("NO FILE");
    }
    if (f.exists()) {
    if (f.isDirectory()) {
    File[] fs = f.listFiles();
    for (int i = 0; i < fs.length; i++) {
    dirs(fs[i]);
    }
    System.out.println("包含:" + fCount + "个文件," + dCount + "个文件夹");
    fCount = 0;
    dCount = 0;
    } else {
    System.out.println("这是一个文件");
    }
    }
    }
    public static void main(String[] args) {
    Sample05.dirs("d:/temp");
    }}
      

  4.   

    第3题 类似 :public class Sample08 extends Thread {
    private Object o1 = null;
    private Object o2 = null;
    public Sample08(Object o1, Object o2) {
    this.o1 = o1;
    this.o2 = o2;
    }
    public void run() {
    synchronized (o1) {
    System.out.println(Thread.currentThread().getName() + "锁住对象" + o1);
    try {
    Thread.sleep(100);
    } catch (InterruptedException e) {
    e.printStackTrace();
    }
    synchronized (o2) {
    System.out.println(Thread.currentThread().getName() + "锁住对象" + o2);
    }
    System.out.println(Thread.currentThread().getName() + "释放对象" + o2);
    }
    System.out.println(Thread.currentThread().getName() + "释放对象" + o1);
    }
    public static void main(String[] args) {
    String str1 = "str1";
    String str2 = "str2";
    String str3 = "str3";

    Sample08 t1 = new Sample08(str1, str2);
    Sample08 t2 = new Sample08(str2, str3);
    Sample08 t3 = new Sample08(str3, str1);

    t1.start();
    t2.start();
    t3.start();
    }
    }
      

  5.   

    import java.util.ArrayList;
    import java.util.List;
    import java.util.Comparator;
    import java.util.Collections;
    public class ListSort {
    public static void main(String[] args) {
    List myList=new ArrayList<MyClass>();
    MyClass a=new MyClass(22,"23525");
    MyClass b=new MyClass(6,"fsaffa");
    MyClass c=new MyClass(2,"sfsagsghh");
    MyClass d=new MyClass(2,"aaaaagsghh");
    myList.add(a);
    myList.add(b);
    myList.add(c);
    myList.add(d);
    CompareIdName compId=new CompareIdName();
    Collections.sort(myList, compId);
        for(int i=0;i<4;i++)
        {
         MyClass t=(MyClass)myList.get(i);
         System.out.println(t.name);
        } }}
    class MyClass{

    public  int id;
    public String name;
    public MyClass(int id, String name) {
    this.id = id;
    this.name = name;
    }
    }
    class CompareId implements Comparator {
    public int compare(Object aa, Object bb) {
    MyClass a=(MyClass)aa;
    MyClass b=(MyClass)bb;
    if(a.id>b.id){
    return 1;
    }else if(a.id==b.id){
    return 0;
    }else{
    return -1;
    }
    }
    }
    class CompareIdName implements Comparator {
    public int compare(Object aa, Object bb) {
    MyClass a=(MyClass)aa;
    MyClass b=(MyClass)bb;
    if(a.id>b.id){
    return 1;
    }else if(a.id==b.id){
    if(a.name.compareToIgnoreCase(b.name)>0){
        return 1;
    }else if(a.name.compareToIgnoreCase(b.name)<0){
    return -1;
    }
    return 0;
    }else{
    return -1;
    }
    }
    }
      

  6.   

    第二题 第二个..............implements Comparable {
          public int CompareTo(object o) {
               MyClass mc = (MyClass)o;
               int ivCmp = iv.compareTo(mc.iv);           return (ivCmp != 0 ? ivCmp : str.compareTo(mc.str));
          }
    }
    ----------------------------------------------------------------
      

  7.   

    第一题:
    import java.io.File;
    public class FileList {

    private String pathName;
    private boolean flag=true;
    FileList(){

    }

    public void findFile(File file){
    File[] file3=file.listFiles();
    for(int i=0;i<file3.length;i++){
    if(file3[i].isFile()){
    System.out.println(file3[i].getName());
    }else {
    while(true){

    System.out.println(file3[i].getName());

    if((file3[i].listFiles()).length==0){
    break;
    }

    if((file3[i].listFiles()).length==1){
    File[] innerFile=file3[i].listFiles();
    file3[i]=innerFile[0];
    if(file3[i].isFile()){
    System.out.println(file3[i].getName());
    break;
    }
    }
    if((file3[i].listFiles()).length>1){
    findFile(file3[i]);
    break;
    }


    }
    }

    }
    }
    public static void main(String[] args){
    new FileList().findFile(new File("c:\\java"));
    }}