面试题:用C#编写一个桌子类,类中有三个属性:长、宽、高,一个方法,方法的功能为获得桌子的体积。这是一道不好回答的题吗,有人告诉我吗?难到是我不应该出这样的题吗?到现在为止面试了差不多40人,为什么现在的计算机系的毕业生和知名IT培训企业出来的学生没有一个完全答对的呢,郁闷?有兴趣你也试试

解决方案 »

  1.   


    class TableClass
    {
        private float length;
        private float width;
        private float height;
        public float Length
        {
            get{return this.length;}
            set{this.length=value;}
        }
        public float Width
        {
            get{return this.width;}
            set{this.width=value;}
        }
        public float Height
        {
            get{return this.height;}
            set{this.height=value;}
        }    public TableClass(float length,float width,float height)
        {
            if(length>0 && width>0 && height>0)
            {
                this.length=length;
                this.width=width;
                this.height=height;
            }
        }    public float GetVoulumn()
        {
            return length*width*height;
        }
    }
      

  2.   


    class  Table
    {
        private float height;
        private float width;
        private float size;    public Table()
        {
            height = width = size = 0;
        }    public Table(float size, float width, float height)
        {
            this.height = height;
            this.width = width;
            this.size = size;
        }
        public float Height
        {
            get { return height; }
            set
            {
                if (height > 0)
                {
                    height = value;
                }
            }
        }
        public float Width
        {
            get { return width; }
            set
            {
                if (width > 0)
                {
                    width = value;
                }
            }
        }    public float GetArea(Table table)
        {
            return table.Height * table.width * table.size;
        }
        public float Size
        {
            get { return size; }
            set
            {
                if (size > 0)
                {
                    size = value;
                }
            }
        }
    }
      

  3.   


    class TableClass
    {
        private float length=0;
        private float width=0;
        private float height=0;
        public float Length
        {
            get{return this.length;}
            set{
       if(value>0)
    this.length=value;}
        }
        public float Width
        {
            get{return this.width;}
            set{if(value>0)this.width=value;}
        }
        public float Height
        {
            get{return this.height;}
            set{if(value>0)this.height=value;}
        }    public TableClass(float length,float width,float height)
        {
            if(length>0 && width>0 && height>0)
            {
                this.length=length;
                this.width=width;
                this.height=height;
            }
        }    public float GetVoulumn()
        {
            return length*width;
        }
    }
      

  4.   

    //以下为面试者比较典型的写法。(多数人不知道长宽高的英文, 有几个class写错, 有几个public写错,还有几个根本不会写)
    //one
    class Table
    {
        private float length;
        private float width;
        private float height;    public float GetTiJi(float l, float w, float h)
        {
            return l * w * h;
        }
    }//two
    class Table
    {
        public float GetTiJi(float l, float w, float h)
        {
            return l * w * h;
        }
    }//three
    class Table
    {
        public float length;
        public float width;
        public float height;    public float GetTiJi(float l, float w, float h)
        {
            return this.lenght * this.width * this.height;
        }
    }//four
    class Table
    {
        private float length;
        private float width;
        private float height;
        public float Length
        {
            get { return this.length; }
            set { this.length = value; }
        }
        public float Width
        {
            get { return this.width; }
            set { this.width = value; }
        }
        public float Height
        {
            get { return this.height; }
            set { this.height = value; }
        }    public float GetTiJi(float l, float w, float h)
        {
            return this.lenght * this.width * this.height;
        }}
      

  5.   

    /*
    面试题:用C#编写一个桌子类,类中有三个属性:长、宽、高,一个方法,方法的功能为获得桌子的体积。 
    */class 桌子
    {
      decimal l, w, h;
      public decimal 长 { get { return l; } set { l = value; } }
      public decimal 宽 { get { return w; } set { w = value; } }
      public decimal 高 { get { return h; } set { h = value; } }
      public decimal 体积() { return 长 * 宽 * 高; }
    }
      

  6.   

    由于多种浮点类型运算的时候可能会隐型转换,用浮点数的时候最好用double而不是float。
      

  7.   

    什么现在的计算机系的毕业生和知名IT培训企业出来的学生没有一个完全答对的呢//以下为面试者比较典型的写法。(多数人不知道长宽高的英文, 有几个class写错, 有几个public写错,还有几个根本不会写)用visual stuido用惯了
      

  8.   

    有够狠,都很有意思
    我看过大多数楼上写的代码
    //我可以大声的说。你们写的都很不好---------------
    虽然不好听 , 但是是实话
    说实在的 如果让我给你们写的代码打分 最多3分(5分满)
    ----------------
    你们代码不好的原因很简单 
    那就是扩展性不好,灵活性不好
    ----------------
    C# 是一门 OOP语言
    你没没有充分的体现OOP特性
    直接封装字段 只是面向对象的一部分
    其他的呢?
    ---------------------------------------------------------------
      

  9.   

    其实要是楼主明说要体面出OOP设计的特点,可能结果会好点.
      

  10.   

    easy
    1.做桌子抽象类 TABLE
    2.做接口 interface IComputedarea
        {
            double doCompute(TABLE t);
        }
    3.做个各种如(圆,方,三角。)计算的方法
    4.用不同的桌子的子类去继承TABLE后实现接口就行了也不拍在扩展
      

  11.   


    严重同意:
    我觉得开发人员都有这类毛病,面试和被面试是不同的心态按模式来设计——往往很多系统根本达不到需要模式设计的需求,硬要往这方面靠拢
    过度的追求耦合度的高低——鄙视,呵呵~~
    ││博客空间:http://blog.csdn.net/lovingkiss
    ││资源下载:http://download.csdn.net/user/lovingkiss
    ││Email:loving-kiss@163.com [MSN也是这个]
    ││联系方式:Q66840199 项目、聊天、咨询、探讨、统统收费,呵呵......
    ╚---------------------------------------------------------------------------------------------------------ō*︻$▅▆▇◤ 
      

  12.   


    你题目出的不好,你说的很清楚是"一个类",一般人都不会想到建接口或者基类吧。
    你把你测试用main函数给出,让他们自由发挥会比较好
    static void Main(string[] args)
    {
    ClsTabel tableA = new ClsTable(10,20,30);
    Console.WriteLine("Volume is "+tableA.GetVolume());ClsTabel tableB = new ClsTable(10.0,20.0,30.0);
    Console.WriteLine("Volume is "+tableB.GetVolume());
    }
      

  13.   

    40个毕业生都没一个答对,打死都不相信!除非他们在学校天天以魔兽、CS、XJ为伍
    不就三个变量,把三个变量弄成类的属性,用以输入数据,再来一个计算面积的方法么,计算面积要能输出,那就是要在MIAN方法里面实现咯。汗!
      

  14.   


    我想只不过是没有想到lz一样的想法吧?lz可能是要接口、继承、多态什么的。
    那你应该直接说明。人家面试的怎么可能想到和你一样?
      

  15.   

    哈哈,CSDN回帖不看帖的人越来越多了14楼楼主已经给出他想要的结果了啊……
      

  16.   

    下次出题不要出桌子,出盒子,立方体和盒子,BOX
      

  17.   

    记住你要考的是什么,如果你要靠模式,你就说清楚你想他们充分利用面向对象,不然的话,如果我是应聘的,我会想:这个面试官怎么这个sb啊,,出这么简单的题目当然你从他们的所谓编程风格(变量名啊,什么的诸如此类)来看出一点什么东西,那是编程风格的问题,你可以要求人家英语过四六级之类的,,,你要求低,还怪人家水平差,还说人家没有面向对象,,,那我就很无语了。网上有很多大公司的面试题,如果你连这个也不愿意参考,硬要用你的什么桌子之类的来考查别人的水平,还要别人猜你的心思。这样的话,我即使面试的时候猜出了你的心思,日后也不可能每次都猜中你的心思,可想而知在你手下干活是多么的累!不要怪现在的学生,他们绝大多数都是好的。找人本质上招的是人家的RP,你能找出肯学的、肯钻的!你要人家搞什么C#,写写简单的实现,不是很easy的事情么?都浮躁,都不愿意培养人,都想找个一进来就给自己公司创造无限利润的,还不愿意培养人家,不愿意开高工资,期望自己用个小锄头就能挖到一大块金子要有那么好的事情,尽管去买彩票好了!sigh,,说多了,,我也是学生,所以有此感慨我想所有的学生,也都会有此感慨的!
      

  18.   

    Bs lZ
    lz不会问问题啊!学学李开复,看人家是怎么提问的?按lz本身的问题来看,ls的都可以,不过lz后面的意思可能是说需要用个变化的思维来看。那么请把变化的场景给出来,实际是不同的场景有不同设计方式。你可以使用工厂,也可以用装饰模型--------,这种问题没有所谓的标准答案!
      

  19.   


    传说用Decimal 更精确
    尤其在有关金钱计算时用
      

  20.   

    看到最有水平的就是“GetTiJi()”方法!
    GetTiJi!哈哈,太搞笑了!
      

  21.   

    你用手写咧?要我写肯定写不出来电脑干嘛的?关键字错了,他会告诉你嘛~class public错了,它会让你知道嘛
      

  22.   

    LZ赶紧结了吧,弄这么个毫无意义的帖子在这恶心我的眼睛我就问你,你发这帖子是想说明什么,是想说明面试的人的水平不行,还是想说明你自己是SB
      

  23.   

    这题说实话 我也相信 一个学院至少也有百八十人做不出来  
    我是计算机专业的  同学什么水平我最清楚  平时一个能运行的程序都做不出来
    毕业设计 课程设计 实验就会找人帮忙 网上下载  根本别指望所有的计算机专业的学生都会程序当然高手是有的 少罢了 一个班的实验就那么2 3个版本  
    作为招聘的你们 怎么能考出学生的水平来应该有你们的方法  不行的直接刷掉就是了 何必来这发帖找骂?
    我相信经常来这论坛的逛  都是很鄙视你那个题目的 太EASY+白痴了一点点
      

  24.   

    啊,苍天,大地啊,我确实连体积的英文名都不会写。
    赶紧去查了查:
    volume: [ 'vɔlju:m; (US) -jəm ]  n. 体积,容量,音量
    n. 卷,册 
    例句与用法: 
    1. The television is too loud; turn the volume down.  
     电视声音太响了,把音量调低点儿。 
     
    2. The volume of this container is 20 cubic meters.  
     这个集装箱的体积是20立方米。 
     
    3. Is that volume still in print?  
     那册书还能买到吗? 
      
    英英解释: 
    名词volume:1. the amount of 3-dimensional space occupied by an object2. the property of something that is great in magnitude
    同义词:bulk, mass3. physical objects consisting of a number of pages bound together
    同义词:book4. a publication that is one of a set of several similar publications5. a relative amount6. the magnitude of sound (usually in a specified direction)
    同义词:loudness, intensity
     
      

  25.   

    看了大家的评论,信息不对等的情况下,尽量把要沟通的情况描述清楚些,会不会好一些呢?编程最终需要的是好的思路,还是“Tiji”重要呢?
      

  26.   


    Class Desk
    {
      private decimal m_desk_length;
      public decimal desk_length
      {
        get {return m_desk_length;}
        set {m_desk_length = value;}
      }
      
      private decimal m_desk_width;
      public decimal desk_width
      {
        get {return m_desk_width;}
        set {m_desk_width = value;}
      }  private decimal m_desk_height;
      public decimal desk_height
      {
        get {return m_desk_height;}
        set {m_desk_height = value;}
      }  public decimal GetDeskVolume(decimal l,decimal w,decimal h)
      {
        if(l>0&&w>0&&h>0)
          return l*w*h;
        else
          teturn -1;
      }
    }
      

  27.   


    for(int i=1;i<=2;)
    {
    Response.Write("UP");
    }
      

  28.   

    首先肯定ls勇于贴出代码来的几位。看了一下,的确没有一个完全答对。从微软的Framework Design Guidelines来分析,似乎几位都没有很好的完成构造器。在传入0或者负数的时候应该抛出ArgumentException,而不是随便什么参数都接受。这个是比较显示你是不是认真做过项目的地方了,做得好的话,考官应该会比较满意的。至于长宽高到底用什么数据类型,int,decimal,或者float,double感觉都是随意的,毕竟这个方面看不出什么素质问题,考官也不应该太在意。