面向对象程序设计课程实验报告资料

上传人:E**** 文档编号:107556615 上传时间:2019-10-20 格式:DOC 页数:51 大小:419.23KB
返回 下载 相关 举报
面向对象程序设计课程实验报告资料_第1页
第1页 / 共51页
面向对象程序设计课程实验报告资料_第2页
第2页 / 共51页
面向对象程序设计课程实验报告资料_第3页
第3页 / 共51页
面向对象程序设计课程实验报告资料_第4页
第4页 / 共51页
面向对象程序设计课程实验报告资料_第5页
第5页 / 共51页
点击查看更多>>
资源描述

《面向对象程序设计课程实验报告资料》由会员分享,可在线阅读,更多相关《面向对象程序设计课程实验报告资料(51页珍藏版)》请在金锄头文库上搜索。

1、课 程 实 验 报 告课程名称:面向对象程序设计院 系 : 专业班级 : 学 号 : 姓 名 : 指导教师 : 目 录实验一.面向过程的整型栈编程11.需求分析11.1题目要求11.2需求分析12.系统设计22.1概要设计22.2详细设计34.软件测试45.特点与不足45.1技术特点45.2不足和改进的建议56.过程和体会56.1遇到的主要问题和解决方法56.2课程设计的体会57.源码和说明57.1文件清单及其功能说明57.2用户使用说明书57.3源代码5实验二.面向对象的整型栈编程121.需求分析121.1题目要求121.2需求分析122.系统设计132.1概要设计132.2详细设计133.

2、软件开发144.软件测试145.特点与不足145.1技术特点145.2不足和改进的建议156.过程和体会156.1遇到的主要问题和解决方法156.2课程设计的体会157.源码和说明157.1文件清单及其功能说明157.2用户使用说明书157.3源代码15实验三.基于算符重载的整型栈编程191.需求分析191.1题目要求191.2需求分析192.系统设计202.1概要设计202.2详细设计203.软件开发204.软件测试205.特点与不足215.1技术特点215.2不足和改进的建议216.过程和体会216.1遇到的主要问题和解决方法216.2课程设计的体会217.源码和说明217.1文件清单及其

3、功能说明217.2用户使用说明书217.3源代码21实验四. 面向对象的整型队列编程251.需求分析251.1题目要求251.2需求分析252.系统设计263.软件开发264.软件测试265.特点与不足265.1技术特点265.2不足和改进的建议266.过程和体会266.1遇到的主要问题和解决方法266.2课程设计的体会277.源码和说明277.1文件清单及其功能说明277.2用户使用说明书277.3源代码27实验五. 基于组合的整型队列编程311.需求分析311.1题目要求311.2需求分析312.系统设计313.软件开发324.软件测试325.特点与不足325.1技术特点325.2不足和改

4、进的建议326.过程和体会326.1遇到的主要问题和解决方法326.2课程设计的体会327.源码和说明337.1文件清单及其功能说明337.2用户使用说明书337.3源代码33实验六. 基于继承的整型队列编程371.需求分析371.1题目要求371.2需求分析382.系统设计383.软件开发384.软件测试385.特点与不足385.1技术特点385.2不足和改进的建议386.过程和体会396.1遇到的主要问题和解决方法396.2课程设计的体会397.源码和说明397.1文件清单及其功能说明397.2用户使用说明书397.3源代码39I实验一.面向过程的整型栈编程1.需求分析1.1题目要求整型栈

5、是一种先进后出的存储结构,对其进行的操作通常包括判断栈是否为空、向栈顶添加一个整型元素、出栈等。整型栈类型及其操作函数采用非面向对象的纯C语言定义,请将完成上述操作的所有函数采用面向过程的方法编程, 然后写一个main函数对栈的所有操作函数进行测试。struct STACK int *elems;/申请内存用于存放栈的元素 int max;/栈能存放的最大元素个数 int pos;/栈实际已有元素个数,栈空时pos=0;void initSTACK(STACK *const p, int m);/初始化p指空栈:可存m个元素void initSTACK(STACK *const p, cons

6、t STACK&s); /用s初始化p指空栈int size (const STACK *const p);/返回p指的栈的最大元素个数maxint howMany (const STACK *const p);/返回p指的栈的实际元素个数posint getelem (const STACK *const p, int x);/取下标x处的栈元素STACK *const push(STACK *const p, int e); /将e入栈,并返回pSTACK *const pop(STACK *const p, int &e);/出栈到e,并返回pSTACK *const assign(ST

7、ACK*const p, const STACK&s);/赋给p指栈,返回pvoid print(const STACK*const p);/打印p指向的栈元素void destroySTACK(STACK*const p);/销毁p指向的栈,释放1.2需求分析本实验需要实现栈的功能的操作,如元素的进栈,连续进栈,出栈和连续出栈,所以需要设计两个栈,在完成初始化后直接在程序里给定栈内元素。2.系统设计2.1概要设计函数结构图见图1.1图1.1总体流程图见图1.2图1.22.2详细设计void initSTACK(STACK *const p, int m)入口参数:int m出口参数:无功能:

8、初始化栈,可存m个元素void initSTACK(STACK *const p, const STACK&s)入口参数:const STACK&s出口参数:无功能:用s初始化p指空栈int size (const STACK *const p) 入口参数:无出口参数:int max功能:返回p指的栈的最大元素个数maxint howMany (const STACK *const p) 入口参数:无出口参数:int pos功能:返回p指的栈的实际元素个数posint getelem (const STACK *const p, int x) 入口参数:int x出口参数:elemm功能:取下

9、标x处的栈元素STACK *const push(STACK *const p, int e) 入口参数:int e出口参数:(*this)功能:将e入栈,并返回pSTACK *const pop(STACK *const p, int &e) 入口参数:int &e出口参数:(*this)功能:出栈到e,并返回pSTACK *const assign(STACK*const p, const STACK&s) 入口参数:STACK&s出口参数:(*this)功能:赋s给p指栈,返回pvoid print(const STACK*const p) 入口参数:无出口参数:无功能:打印p指向的栈元

10、素void destroySTACK(STACK*const p) 入口参数:出口参数:功能:销毁p指向的栈,释放3.软件开发在Codeblocks编译环境下,使用C+语言编写。4.软件测试测试结果见图1.3图1.35.特点与不足5.1技术特点完成了实验的所有要求,没有错误的地方。5.2不足和改进的建议没有做人机交互界面,无法自由选择入栈的数据;同时注释较少,对于程序不了解的人可能需要花费更多时间去了解。6.过程和体会6.1遇到的主要问题和解决方法输出结果数字与预计不同,检查后发现原因是变量初始值未设置。6.2课程设计的体会本次实验主要还是通过回顾C语言中栈的知识完成在C+上的编程,所以总体过

11、程没有出现太大的问题;同时也对const变量有了进一步的认识。7.源码和说明7.1文件清单及其功能说明experiment1.cpp源码experiment1.exe可执行文件。7.2用户使用说明书experiment1.cpp是程序的源码,可通过修改其中main函数中的变量来测试各个函数。7.3源代码#include#include#includestruct STACK int *elems;/申请内存用于存放栈的元素 int max; /栈能存放的最大元素个数 int pos; /栈实际已有元素个数,栈空时pos=0;void initSTACK(STACK *const p, int

12、m);/初始化p指向的栈:最多m个元素void initSTACK(STACK *const p, const STACK&s); /用栈s初始化p指向的栈int size (const STACK *const p);/返回p指向的栈的最大元素个数maxint howMany (const STACK *const p);/返回p指向的栈的实际元素个数posint getelem (const STACK *const p, int x);/取下标x处的栈元素STACK *const push(STACK *const p, int e); /将e入栈,并返回pSTACK *const po

13、p(STACK *const p, int &e); /出栈到e,并返回pSTACK *const assign(STACK*const p, const STACK&s); /赋s给p指的栈,并返回pvoid print(const STACK*const p);/打印p指向的栈void destroySTACK(STACK*const p);/销毁p指向的栈int main(int argc, char* argv) STACK *s1 = (STACK *)malloc(sizeof(STACK); STACK *s2 = (STACK *)malloc(sizeof(STACK); initSTACK(s1,10); push(s1,1); push(s1,2); push(push(s1,3),4); initSTACK(s2,*s1); print(s2); printf(栈s1:n); print(s1); /assign(s2,*s1); printf(栈s2:n); print(s2); int a,b,c; a = size(s1);

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 其它办公文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号