面向对象上机考试题——关于堆栈.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
面向对象上机考试题——关于堆栈

面向对象上机考试题—关于堆栈 2006-6-8 北京自考热线 【大中小】   1.请实现一个栈,既可以存放整数,又可以存放字符串。简单的说,栈是一种数据结构,按照后进先出的顺序管理进、出栈的元素。本题要求完成:   (1) 实现描述栈的类Stack,其中定义了栈的大小Size(即栈中可以存放的元素个数),并包括进栈函数Push,出栈函数Pop和显示栈顶元素的函数Top.   (2) 定义基类Element,至少包含纯虚函数ShowMe.   (3) 从基类Element中派生整数类MyInteger和字符串类MyString, 具体实现上述纯虚函数ShowMe,显示该元素的类型和相应的值。   (4) 重载输入“”*作符,使得可以通过cin直接读入上述整数类和字符串类的对象值。   (5) 编写main函数,测试上述所要求的各种功能,即可以根据菜单命令增加栈元素、删除栈元素、显示栈顶元素,其中的元素可以是整数和/或字符串。   提示:虚拟基类Element的定义至少包括以下纯虚函数ShowMe. //建立一个栈类,能够存放图形元素(矩形或圆形),有入栈,出栈。   //取栈顶的功能。建立元素类,里面至少一个纯虚函数,矩形和圆形类。   //来实现里面的函数SHOWME,实现他的显示图形信息的功能。重载.   //能够输入图形信息。测试以上类的功能。 #include stdafx.h #include iostream.h #include string.h const n=50; class shape { protected: ?double width, length; public: ?shape() {} ?virtual void ShowMe()=0; }; class rectangle:public shape { public: ?rectangle():shape(){} ?friend istream operator(istream is, rectangle rec) ?{ ??cout请输入长方形的长:; ??isrec.length; ??cout请输入长方形的宽:; ??isrec.width; ??return is; ?} ?void ShowMe() ?{ ??cout长方形的长宽分别为:(length ???,width)endl;?? ?} }; class circle:public shape { private: ?//double x, y; ?double r; public: ?circle():shape(){r=0;} ?friend istream operator(istream is, circle cir) ?{ ??cout请输入圆的圆心坐标(x,y):; ??iscir.width; ??iscir.length; ??cout请输入圆的半径:; ??iscir.r; ??return is; ?} ?void ShowMe() ?{ ??cout圆的圆心坐标为:(width,length) ??? 半径为:rendl; ?} }; class stack { ?shape *sp[n]; ?rectangle rec[n]; ?circle cir[n]; ?int size; public: ?stack() ?{ ??for (int i=0; in; i++) ???sp[i]=NULL; ??size=-1; ?} ?bool empty(){return size==-1;} ?bool full(){return size==n-1;} ?void push(rectangle rect) ?{ ??rec[++size]=rect; ??sp[size]=new rectangle; ??sp[size]=rec[size]; ?} ?void push(circle circ) ?{ ??cir[++size]=circ; ??sp[size]=new circle; ??sp[size]=cir[size]; ?} ?void top() ?{ ??if (empty()) cout栈为空endl; ??else { ???cout栈顶元素为:endl; ???sp[size]-ShowMe();??? ??} ?? ?} ?void pop() ?{ ??if (empty()) cout栈为空endl; ??else { ???cout出栈元素为:en

文档评论(0)

xcs88858 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档