小弟来自东北的一所大学,临近毕业《面向对象程序设计》没有及格,老师出了“变态”的题目,上次补考没有一个同学及格,这次应该是最后一次补考机会,不及格的话我就不能毕业。老师已明确说再考一遍同样的,只是自己找答案。想来父母供我念书不容易,不能因为这一科而不毕业,自己能力有限,只好找人帮忙.  
其实,平时老师都是胡批卷子的,写满就给过,可是这次要迎接全国优秀学校的评审,他不敢胡批了,就严格了,又不给题,哎~。请哥哥姐姐们,帮小弟一把,看看能否作出这两道题,我找遍了手头的c++习题集没有类似的,走投无路,因为我们学的课本是清华的(尽管清华出的书很多),这两道题是在<多态性与虚函数〉这一章的课后习题,因为有人说着工作量很大,不适合考试,估计可能设计出框架就行了,不知我想得对不对.估计星期一就要考试了,请大家帮忙看一下,这是其中的两道题目。
第一题:为CAD软件设计一个图形处理工具时,定义若干个基本图形,需要具有屏幕上显示移动、复制、旋转、隐藏等功能,使用纯虚函数和抽象类等方法来设计该程序模块。  
第二题:编制一个Web  Gis的本地站点的Windows界面,要求带有菜单条、标题栏、图形显示区等,定义出接口协议。  
    有人说不难,告诉我“定义一个抽象类sharp,然后用虚函数实现多态” ,可是基础薄弱,短时间不能领会,不知哪位哥哥姐姐看他的思路对不对,帮我做一下,不是偷懒,真的是时间不多了,c++不是两三天就能看会的。叩谢!!!!!!

解决方案 »

  1.   

    怎么说没有例子呢?哪本书上不以shape为例来说明这两个概念?现在的学生质量还说找不到工作,这怎么能找到呢?
      

  2.   

    BinaryTreeEx请注意言行啊。你如果认为不值得回答,不理就可以了。不要说这样冲动的话。对谁都没有好处的。
      

  3.   

    happyparrot快乐鹦鹉,你会的话帮我写一下吧,应该不是具体实现,应该是程序定义流程。多谢了啊!
      这两天上下嘴唇都已经起了大泡,后悔当初为啥不写满,偏偏赶上优秀学校评审。考之前所有人都告诉我就是写满,程序题瞎编就行,结果写满了,这次谁也没过。希望大虾们救救我,我愿意把所有分数给大家。
      

  4.   

    闲来无事用VC写了个小东西,跟楼主说得第一个较像
    可以画线, 画圆,画好的线和圆可以拉伸,移动,删除,框选,按住SHIFT键多选
    画线时按住SHIFT只能画水平\垂直\45度斜线,
    画圆时按住SHIFT只能画标准圆
    很简单的,但是概念都有了,要添加其它的功能也很简单
    但我本来是想用派生类做的,但还是.....
    直接每种对象(线,圆,方框)等每种定义一个类
      

  5.   

    zwlpower(天问) 我想是设计。题目中也说是设计。
      

  6.   

    Email或QQ,多少?因为这个设计的话要花点时间,我看可不可以写个简单的给你吧。
      

  7.   

    等一个小时左右,我把设计写好文档,只是第一个问题,第二个问题我不知道GIS的接口,所以没有办法帮你拉。
      

  8.   

    多谢了!
    第二题是本地站点的Windows界面,而且只要求定义出接口协议。我想不用考虑是否是Web Gis吧。
      

  9.   

    web gis是网络地理信息系统,你看一下这个网址,http://www.gischina.com/maindoc/simchin/gisforum/thesis/thesis020329.htm  可能会了解一下他的作用和接口,而且题目只要求定义出接口协议。
      

  10.   

    第一题:为CAD软件设计一个图形处理工具时,定义若干个基本图形,需要具有屏幕上显示移动、复制、旋转、隐藏等功能,使用纯虚函数和抽象类等方法来设计该程序模块。基本图形:点,直线,圆,椭圆,三角形。
    思考:基本图形由什么来决定呢?
    点: 点的位置(1个Point),点的大小(Size)。
    直线: 两个端点(2个point),直线的大小(Size)。
    圆: 外切四边形(4个Point),圆线大小(size).
    椭圆: 跟圆一样。
    三角形:三条相接线(3个Point),边的宽(size)从上面的基本图形抽取出共同属性,抽象为类Sharp。
    类名:CSharp
    属性:
    List<point>  points;
    int szWidth;
    //图形控制用
    CRect theRect;//图形的最小矩形。
    操作:
    Virtual Copy ();
    Virtual Revolving (angle);//根据不同的角度,重新计算Points的位置。
    Virtual Move( int );//根据偏移量,重新计算points的位置
    Virtual Show ( int );//可以定义多种显示状态 AnimalShow, NormalShow, AnimalHide, NormalHide等。
    Virtual  Draw (CDC* pDC);//根据point来画图形。

    //图形控制用。
    ptInRect(point);//点是否在theRect里面。从抽象类生成各种的图形(点,直线,圆,椭圆,三角形等)
    当然也可以生成圆角矩形,多边形,图象等。文档中保存图形队列:
    List<sharp> m_list;图形的View的控制:
    类:CMyView
    属性:
    Bool m_bMove;
    CSharp m_currentSharp;//当前操作的图形操作:
    New(CSharp);//m_list添加图形,用工厂模式产生。
    Delete(CSharp);//m_list删除图形。
    Draw()//显示m_list的图形。
    MouseDown(); //从m_list后到前,检查point是否在图形里面。
    MouseMove();//如果m_bMove为真的,移动图形;
    MouseUp(); //从新计算m_currentSharp的位置。
      

  11.   

    多谢,第二题谁会丫:编制一个Web  Gis的本地站点的Windows界面,要求带有菜单条、标题栏、图形显示区等,定义出接口协议。 
    要写成程序代码,定义流程
      

  12.   

    “定义一个抽象类sharp,然后用虚函数实现多态”
    连老师出的题目文字表达也有点画蛇添足,
      

  13.   

    web gis是网络地理信息系统,看一下这个网址,http://www.gischina.com/maindoc/simchin/gisforum/thesis/thesis020329.htm  可能会了解一下他的作用和接口.
    如果不用考虑web gis,就是一个界面也行。