面向对象程序设计实验.docx

上传人:lao****ou 文档编号:673263 上传时间:2024-03-30 格式:DOCX 页数:18 大小:111.48KB
下载 相关 举报
面向对象程序设计实验.docx_第1页
第1页 / 共18页
面向对象程序设计实验.docx_第2页
第2页 / 共18页
面向对象程序设计实验.docx_第3页
第3页 / 共18页
面向对象程序设计实验.docx_第4页
第4页 / 共18页
面向对象程序设计实验.docx_第5页
第5页 / 共18页
亲,该文档总共18页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《面向对象程序设计实验.docx》由会员分享,可在线阅读,更多相关《面向对象程序设计实验.docx(18页珍藏版)》请在第一文库网上搜索。

1、1iaochenguniversity计算机学院实验报告【20142015学年第1学期【一、基本信息】【实验课程】面向对象程序设计【设课形式】独立E非独立口【课程学分】3【实验项目】类和对象【项目类型】基础E综合设计研究创新其它【项目学时】4【学生姓名】高伟建【学号】2013204547【系别专业】计算机科学与技术【实验班组】2013级1班组台【同组学生】【实验室名】A307【实验日期】2014.11.18【报告日期】2014.11.18【二、实验教师对报告的最终评价及处理意见】实验成绩:(涂改无效)指导教师签名:年月日注:要将实验项目、实验课程的成绩评定及课程考核办法明确告知学生,并报实验管

2、理中心备案【三、实验预习】实验目的和要求:1、掌握声明类的方法,类和类的成员的概念以及定义对象的方法。2、初步掌握用类和对象编制基于对象的程序。3、学习检查和调试基于对象的程序。4、掌握类的构造函数和析构函数的概念和使用方法。5、掌握对象数组、对象的指针及其使用方法。实验内容和原理或涉及的知识点(综合性实验):1、用类实现顺序栈。2、用类实现循环队列栈。3、实现一个带有头结点的单链表,该链表可以插入整型元素。实验条件(实验设备、软件、材料等):1、装有Windows操作系统的微型计算机;2、Ec1ipse集成开发环境和CDT插件;3、MinGW编译环境。实验设计方案(实验方法、步骤、操作过程、

3、设计型实验、实验数据记录表格):1、熟悉C+程序中源文件的组织方式。2、首先分析类的属性和行为,然后通过封装实现类。3、实现栈时,考虑栈容量的自动增长问题。实验预习成绩(涂改无效)合格口不合格口【四、实验过程、数据和实验结果记录】实验方法、步骤、操作过程的记录描述或程序代码。实验过程中输入/输出数据、程序运行结果的记录。(可加附页)2.1Stackxpp:#inc1ude#inc1ude,Stack.husingnamespacestd;boo1Stack:isEmpty()(if(top+1)=base)returntrue;e1sereturnfa1se;boo1Stack:isFu11(

4、)if(top-base)=STACKSIZE)returntrue;e1sereturnfa1se;)boo1Stack:Pop(EIemType&m)if(!isEmpty()(m=*(a+top);top-;returntrue;1e1sereturnfa1se;boo1Stack:Push(E1emTypem)if(isFu11()(COUt,xENAu,end1;returnfa1se;Ie1se(top+;*(a+top)=m;returntrue;boo1Stack:GetTop(EIemType&m)(if(!isEmpty()(m=*(a+top);returntrue;)r

5、eturnfa1se;)boo1Stack:Print_Stack()if(isEmpty()(coutzEE,end1;returnfa1se;1for(inti=base;i=top;i+)cout*(a+i),;coutend1;returntrue;)Stack.h:#ifndefSTACK_H_INC1UDED#defineSTACK_H_INC1UDED#defineSTACKSIZEIOOO#defineE1emTypeintc1assStack(pub1ic:E1emType*a;inttop;intbase;pub1ic:Stack():top(-1),base(0)a二ne

6、wE1emTypeSTACKSIZE;)-Stack()(de1etea;Iboo1isEmpty();boo1isFu11();boo1Pop(EIemType&m);boo1Push(E1emTypem);boo1GetTop(EIemType&m);boo1Print_Stack();1;#endif/STACK_HJNC1UDEDMain.cpp#inc1ude#inc1ude,Stack.husingnamespacestd;intmain()(Stackstack_test;ints;cout请输入你要操作的序号end1;cout0退出,1判断栈是否为空,2判断栈是否满,3得到栈顶

7、元素”VVend1;cout4插入一个栈顶元素,5删除一个栈顶元素,6输出栈里的所有元素”vend1;whi1e(true)(cins;switch(s)(case0:return0;break;if(stack-test.isEmpty()cout”此栈目前是个空栈,请往里面插入元素”end1;e1secout”此栈不为空”end1;break;if(stack-test.isFu11()cout此栈目前已满end1;e1secout此栈还没满end1;break;E1emTypetop;if(stack-test.GetTop(top)cout此栈的栈顶元素为:topend1;e1seco

8、ut”得到栈顶元素失败vend1;break;cout”请输入你需要插入的栈顶元素的值:E1emTypem;cinm;if(stack_test.Push(m)COUt插入栈顶元素成功vend1;e1secout插入栈顶元素失败vend1;break;E1emTypen;if(stack-test.Pop(n)COUt此栈的栈顶元素为:你已将其删除”end1;e1secout删除栈顶元素失败end1;break;if(!stack_test.Print_Stack()cout输出失败vend1;break;defau1t:cout”你输出的操作数不在范围内,请重新输入vend1;break;2

9、.2Qucuc.cpp:#inc1ude#inc1udeQueue.huusingnamespacestd;boo1Queue:isEmpty()(returnfront_=rear_;)boo1Queue:isFu11()intt;t=(rear.+1)%QUEUESIZE;returnt=front_;boo1Queue:GetHeadAndEnd(E1emType&head,EIemType&end_)(if(!isEmpty()head=*(a+front_);end_=*(a+rear_-1);returntrue;returnfa1se;1boo1Queue:EnQueue(E1e

10、mTypem)(if(isFu11()(*(a+rear_)=m;rear_+;rear_%=QUEUESIZE;returntrue;)returnfa1se;)boo1Queue:DcQueue(E1emType&m)(if(!isEmpty()(m=*(a+front_);front_+;front_%=QUEUESIZE;returntrue;)returnfa1se;)boo1Queue:Print()(if(!isEmpty()(for(inti=front_;(i-1)!=rear_;i+)i%=QUEUESIZE;cout*(a+i)1coutend1;returntrue;c

11、outHKTCaH1yend1;returnfa1se;)Queue.h:#ifndefQUEUEHJNC1UDED#defineQUEUE_H_INC1UDED#defineQUEUESIZEIOOO#defineE1emTypeintc1assQueue(pub1ic:intfront前面intrear_;后面E1emType*a;pub1ic:Queue():front_(0),rear_(0)a=newE1emTypeQUEUESIZE;I-Queue()de1etea;Iboo1isEmpty();boo1isFu11();boo1GetHeadAndEndCE1emType&hea

12、d,EIemType&end_);boo1EnQueue(EIemTypem);boo1DeQueue(EIemType&m);boo1Print(););#endif/QUEUE_HNC1UDEDMain.cpp#inc1ude#inc1udeQueue.huusingnamespacestd;intmain()(Queuequeue_test;ints;cout请输入你要操作的序号end1;cout0退出1判断队列是否为空2判断队列是否满3得到队头和队尾元素”end1;COUt4插入一个队尾元素5删除一个队头元素6输出队列里的所有元素end1;whi1e(true)(cins;switch

13、(s)caseO:returnO;break;if(queue_test.isEmptyO)COUt”此队列目前是个空队列,请往里面插入元素”end1;e1secout此队列不为空vend1;break;if(queue-test.isFu11()cout此队列目前已满end1;e1secout此队列还没满vend1;break;EIemTypehead,end_;if(queue_test.GetHeadAndEnd(head,end_)(cout此队列的队头元素为“vheadend1;cout此队列的队尾元素为“vend_end1;)e1secout操作失败vend1;break;cout”请输入你需要插入的队尾元素的值:E1emTypem;cinm;if(queue-test.EnQueue(m)cout插入队尾元素成功end1;e1secout插入队尾元素失败vend1;break;E1emTypen;if(queuc-test.DeQueue(n)COUtv此队列的队头元素为:vnv,你已将其删除VVend1;e1secout删除队头元素失败vend1;break;if

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 应用文档 > 工作总结

copyright@ 2008-2022 001doc.com网站版权所有   

经营许可证编号:宁ICP备2022001085号

本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有,必要时第一文库网拥有上传用户文档的转载和下载权。第一文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知第一文库网,我们立即给予删除!



客服