程序设计基础课程设计—堆栈模拟

西电 程序设计基础课程设计 作业 当时做的程序设计课程的作业. 一共五题, 以报告的形式提交. 质量应该比较高(高傲). 完整内容在这里 高精度计算 问题描述 涉及知识点: 数组, 流程控制, 函数等 要求: 用整型数组表示10进制大整数(超过 2322^{32}232 的整数), 数组的每个元素存储大整数的一位数字, 实现大整数的加减法. 问题分析 结构设计 可将高精度整数写成一个类. 成员变量有: int a[MAXN], len; bool negative; 其中, 数组a用来存储大整数的一个数位, a[1]为个位上的数字, a 阅读详情

个人博客地址:https://travis1024.github.io/

简单数据结构-堆栈模拟

1. 问题描述

编写一个程序模拟堆栈,要求能够模拟、入栈、出栈、返回栈顶元素等基本操作。栈中元素可用整数代替。不能使用C++模板库预定义的类型。程序运行中可输入多组入栈、出栈操作,每次操作后展示栈中元素。

2. 问题分析

  1. 考虑可以模拟栈执行及功能实现的数据结构;
    2) 栈主要功能元素出栈及入栈的实现方法;

3. 处理方法设计(算法步骤)

  1. 使用结构体模拟堆栈中元素的存储,其中array模拟线性的堆栈,top指向array中现有元素的位置,当有元素入栈的时候,top的位置首先加入一个元素,然后top++,也就是说top始终指向栈顶元素的上一个位置,栈中的元素个数就是top+1,当有元素出栈的时候,top–;
  1. 首先对结构体中的top进行初始化为-1;随后进行功能的选择;

4.测试数据设计

  • 首先向堆栈中依次push 5个元素[1,2,3,4,5];
  • 然后依次执行:pop栈顶元素,查看栈顶元素,栈中元素的数量,判断栈是否为空,判断栈是否已满,打印栈中的元素;

5.测试结果分析

6.程序结构

7.源代码

#include <iostream>
#include <sstream>
#include <stdio.h>
#define SUM 100
using namespace std;
struct Stack{
    int array[SUM];
    int top;
}s;
void Initialize(Stack * s){
    s->top=-1;
}
bool Judge_Empty(Stack * s){
    if(s->top==-1) return true;
    else return false;
}
bool Judge_Full(Stack * s){
    if(s->top==SUM-1) return true;
    else return false;
}
void Push(Stack * s,int a){
    if(Judge_Full(s))
        cout<<"Failure to Push!"<<endl;
    else{
        s->top++;
        s->array[s->top]=a;
        cout<<"Push Successfully!"<<endl;
    }
}
void Pop(Stack * s,int *a){
    if(Judge_Empty(s))
        cout<<"Failure to Pop!"<<endl;
    else{
        *a=s->array[s->top];
        s->top--;
        cout<<"Pop Successfully!"<<endl;
    }
}
void Get_Pop(Stack * s,int *a){
    if(Judge_Empty(s))
        cout<<"Failure!"<<endl;
    else{
        *a=s->array[s->top];
        cout<<"The top of the stack is "<<*a<<endl;
    }
}
void Number_Elements(Stack * s){
    cout<<"The number of the elements in the stack is "<<s->top+1<<endl;
}
void Print(Stack * s){
    int now=s->top;
    if(Judge_Empty(s)) cout<<"The stack is empty!"<<endl;
    while(!Judge_Empty(s)){
        int i=s->array[s->top];
        s->top--;
        cout<<i<<" ";
    }
    cout<<endl;
    s->top=now;
}
int main(){
    int a,index,t;
    Initialize(&s);
    cout<<"******************************************"<<endl;
    cout<<"<1> Push Element"<<endl;
    cout<<"<2> Pop Element"<<endl;
    cout<<"<3> Get the Top of the Stack"<<endl;
    cout<<"<4> The Number of Elements in the Stack"<<endl;
    cout<<"<5> Judge if the Stack is Empty"<<endl;
    cout<<"<6> Judge if the Stack is Full"<<endl;
    cout<<"<7> Print Elements of the Stack"<<endl;
    cout<<"<8> Quit"<<endl;
    cout<<"******************************************"<<endl;
    while (index!=8){
        cout<<endl;
        cout<<"@->Please enter what you want to do: ";
        cin>>index;
        switch (index) {
            case 1:{
                cout<<"Please enter the element you want to push: ";
                while(cin>>t){
                    Push(&s,t);
                    char ch=getchar();
                    if(ch=='\n') break;
                }
                break;
            }
            case 2:Pop(&s,&a);break;
            case 3:Get_Pop(&s,&a);break;
            case 4:Number_Elements(&s);break;
            case 5:{
                bool PD=Judge_Empty(&s);
                if(PD) cout<<"The stack is empty!"<<endl;
                else cout<<"The stack is not empty!"<<endl;
                break;
            }
            case 6:{
                bool PD=Judge_Full(&s);
                if(PD) cout<<"The stack is full!"<<endl;
                else cout<<"The stack is not full!"<<endl;
                break;
            }
            case 7:Print(&s);break;
            case 8:return 0;
            default:cout<<"Input Error!"<<endl;
        }
    }
    return 0;
}
微机原理课程设计——步进电机工作原理模拟程序设计 步进电机工作原理模拟程序设计摘  要本次设计通过汇编程序,模拟混合两相步进电机工作原理。通过按键控制步进电机的启动、停止与电机工作方式的选择,并且在PC显示器上模拟显示电机按指定转速周而复始的转动。本程序是基于8086系统,采用汇编语言实现,通过键盘扫描读取键盘值,选择步进电机的工作方式,实现控制四相步进电机的停转、快慢及正反转并在显示器上模拟显示电机按某转速周而复始的转动。  关键字:可编程并行... 阅读详情

相关推荐

西工大C语言大作业习题答案

西工大C语言大作业习题答案

西电2019级C语言课程设计源码及讲解

以下为西安电子科技大学2019届的C语言程序设计课程设计的题目原题及博主本人写的相应参考解答及讲解。由于前三题比较简单故不单独拿出来讲了。后三题的讲解及源码请见相关链接。因为博主本人已经演示通过了并且提交了报告,所以就附上了源码及博主本人的报告的下载链接,有需要的可以自己看一看,请勿直接抄袭 链接:https://pan.baidu.com/s/1rYdHwG3Rg6C0zeZw8qtjqw 提取码:m63p 题一 基本编程 原题: 涉及知识点:流程控制、数组、函数、结构体等 要求: 假设平面上有1~N

zimuzi2019的博客 8744

Allegro17.4原理图-PCB双向联动技巧:从网表生成到同步高亮

本文深入解析了Cadence Allegro 17.4中原理图与PCB的深度双向联动技巧。核心在于通过精准的网表生成与管理、实时的跨窗口交互高亮与信号追踪,以及元件与封装的智能匹配更新,构建高效协同设计工作流。掌握这些技巧能显著提升高速、高密度电路设计的效率与准确性,实现从逻辑设计到物理实现的无缝衔接。

weixin_29178069的博客 358

C语言实现堆栈模拟(西电C程序作业2)

2、简单数据结构-堆栈模拟 涉及知识点:内存管理、结构体定义、基本数据结构 要求: 编写一个程序模拟堆栈,要求能够模拟、入栈、出栈、返回栈顶元素等基本操作。栈中元素可用整数代替。不能使用C++模板库预定义的类型。程序运行中可输入多组入栈、出栈操作,每次操作后展示栈中元素。 主体思路如下: 为了实现一个基本的栈,可以使用双端链表的方式,这样就可以记录下前一个节点的数据,也就是可以确保能够会到栈顶的上一层。具体代码如下: #include <stdio.h> #include <stdlib.

weixin_45649181的博客 5433

保姆级教程:在Windows/Mac上搞定SAM 3的权重和BPE文件下载与配置

本文提供了一份详细的SAM 3权重和BPE文件下载与配置指南,特别针对国内开发者遇到的下载缓慢和配置错误问题。通过国内镜像源快速获取文件,并详细介绍了环境检查、文件下载、路径配置及常见问题解决方案,帮助开发者高效完成SAM 3的部署与使用。

weixin_42547431的博客 549

SAP UI5 主题设置全解析:从启动参数到运行时切换、跨域白名单与事件监听

SAP UI5主题体系深度解析:从配置到切换的完整指南 摘要:SAP UI5主题机制远不止CSS换肤,其工程化实践涵盖启动配置、运行时API切换、跨库路径映射及安全管控等关键环节。通过bootstrap标签或URL参数设置初始主题,运行时可用Theming.setTheme无刷新切换。自定义主题需配置theme-roots路径,跨域加载需声明sap-allowed-theme-origins白名单。主题切换完成后会触发applied事件,适合执行视觉同步操作。该体系支持多品牌适配、集中式主题管理,在Fior

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 326

Java集合(stack)

1.栈是数据结构中一种很重要的数据结构类型,因为栈的后进先出功能是实际的开发中有很多的应用场景。 2.Stack类继承了Vector类,而Vector类继承了AbstractList抽象类,实现了List接口,Cloneable接口,RandomAcces接口以及Serializable接口,需要指出的Vector内部还有两个内部类ListItr和Itr,Itr在继承Vector的同时实现了Ite

宿命的博客 503

PX4从放弃到精通(三):使用qt编译PX4

1 下载px4源码 2在Firmware所在目录下执行 mkdir Firmware-build cd Firmware-build cmake …/Firmware -G “CodeBlocks - Unix Makefiles” -DCONFIG=nuttx_px4_fmu-v5_default 第三步最后的px4_fmu-v5_default根据自己的情况修改 执行完后如图 打开QT 点击打开工程 选择源码的CmakeLists.txt文件 选择imported Kit 打开项目那一栏,构建目

超维空间科技的博客 1万+

简单数据结构——堆栈模拟

简单数据结构-堆栈模拟一级目录二级目录三级目录 一级目录 二级目录 三级目录 #include <stdio.h> #include <stdlib.h> #define STACK_INIT_SIZE 20//栈的初始容量 #define STACKINCREMENT 10//栈的补充容量 typedef int ElementType;//使用ElementType类型名代替已知类型名 typedef struct { ElementType *base; ElementType

Hlleo Wrold 1521

基于ArduPilot的旋翼式无人机飞行器开发系列(二,学习路线)

一,热爱 作为一名耿直的技术男,在这里我只想说一句,热爱是可持续学习的第一要素,也只有热爱才能让你坚持到最后。 至于最后能得到什么,只有你自己知道。常说书中自有颜如玉,书中自有黄金屋。如果你是为了颜如玉,我相信大多数颜如玉做不了你的红颜知己。如果是为了黄金屋,当你持续投入时间和金钱却看不到回报的时候,相信退堂鼓早已隆隆作响。 我给自己的信条就是为当下努力工作,为将来持续学习。当前飞控行业并没有爆发,如果想赚块钱,去互联网汽车,去VR/AR吧,去元宇宙吧。 那么我热爱...

从0到1,突破自己 1670

[特殊字符] RK3588 平台上基于 Panfrost 的 Mesa 驱动编译全过程

摘要: 本文详细记录了在RK3588平台(Ubuntu 20.04 aarch64)上编译基于Panfrost的Mesa驱动的全过程。内容包括:1)系统依赖安装;2)libdrm编译;3)Mesa配置参数优化;4)LLVM 15与SPIRV工具链的安装方法;5)SPIRV-Tools版本问题的解决方案;6)最终编译命令及常见错误处理。关键点在于正确设置工具链路径(PKG_CONFIG_PATH)和版本匹配(LLVM 15对应SPIRV-LLVM-Translator v15.0.0),推荐将组件安装在/op

梁俊星的博客 941

用C 语言编写程序模拟堆栈

//本人所作博客为学习复习所用,如有不对之处还望指出 程序设计题目要求: 编写一个程序模拟堆栈,要求能够模拟、入栈、出栈等基本操作。栈中元素可用整数代替。不能使用C++模板库预定义的类型。程序运行中可输入多组入栈、出栈操作,每次操作后展示栈中元素。 思路:该题涉及部分简单数据结构的知识——堆栈。我的思路是:用数组来表示栈,然后用一个指向栈顶的指针,通过自增自减来实现堆栈中元素的操作。并且与用户进行交互来决定接下来的操作是入栈、出栈还是退出程序。 代码如下: /* * 堆栈:一端固定,一端浮动 * 所有数

AntonioZC666的博客 3330

【量化入门】Tushare库获取公募基金的历史净值

在本文中,我们将介绍如何使用Python的Tushare库获取公募基金的历史净值。

木头大左的博客 1143

《程序设计基础课程设计》实验报告

C语言程序设计实验报告

不羡仙的博客 8660

【PyGIS】ERA5降雨蒸散发数据预处理

ERA5-LAND降雨蒸散发数据预处理

```On Earth, Be Water, By Coding``` 3145

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

程序设计基础

RLE压缩与解压缩算法,BMP位图的缩放等(西电程序设计基础课程)

qq_73466997的博客 944

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

C语言数据结构课程设计-停车场管理

文章目录前言1.课程设计目的2. 课程设计内容和要求2.1问题描述:2.2设计要求:3.课程设计总体方案及分析3.1问题分析3.2 概要设计3.3 测试结果4. 课程设计总结5. 附录(源代码) 前言 提示:这里可以添加本文要记录的大概内容: 例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。 提示:以下是本篇文章正文内容,下面案例可供参考 1.课程设计目的 (1)、 通过课程设计,加深对《数据结构》这一课程所学内容的进一步理解与巩固。

czh2637750821的博客 1万+

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

高级语言程序设计C的结课报告,《高级语言程序设计》课程设计报告

《高级语言程序设计》课程设计报告 学号 2013-2014学年 第二学期 1208210122 《高级语言程序设计》 课程设计报告 题目: 进程调度模拟 专业: 计算机科学与技术 班级: 12级对口(3)班 姓名: 刘以鹏 指导教师: 代美丽 成绩: 计算机与信息工程系 2014年 5月 23日 目 录 11 设计目的及要求3 1.1 设计目的3 1.2 课程设计的实验环境3 1.3 课程设计的预...

weixin_39717443的博客 399

《计算机组成原理》课程设计报告——TEC-2实验系统——微程序设计

一、目的和要求 深入了解计算机各种指令的执行过程,以及控制器的组成,指令系统微程序设计的具体知识,进一步理解和掌握动态微程序设计的概念;完成微程序控制的特定功能计算机的指令系统设计和调试。 二、实验环境 1. TEC-2机一台 2. 电脑一台 3. TEC-2模拟软件一套 三、具体内容 1、分析TEC-2机的功能部件组成,分析TEC-2机支持的指令格式等。 1.TEC-2机的控制器部件的组成 TEC2机控制器部件的关键内容包括: (1)由7片S6116随机读写存储器芯片...

无限迭代中...... 9602

c语言课程设计报告-计算器的实现,C语言课程设计--一个简易计算器的设计与实现.doc...

C语言课程设计--一个简易计算器的设计与实现扬 州 大 学………………………………………………1程序设计内容:………………………………………………1课程设计所补充的内容:补充的函数或算法…………3,4系统总体设计………………………………………………….4系统详细设计………………………………………5,6,7,8运行结果………………………………………………8,9,10系统调试…………………………………...

weixin_35740442的博客 1375

c语言课程设计报告停车系统,C语言课程设计报告停车场管理系统(一).doc

C语言课程设计报告停车场管理系统(一)C语言课程设计报告——停车场管理1班 级: 192102学 号: 20101003907姓 名: 聂 彪指导教师: 张冬梅时 间: 2011年6月7日目录题目及要求题目及要求题目及要求题目分析数据结构说明各函数算法分析程序测试课程设计感悟与收获源代码题目及要求[要求]设有一个可以停放n辆汽车的狭长停车场,它只有一个...

weixin_29026443的博客 727

关于c语言汇编程序课程设计,C语言课程设计模拟器和汇编程序的设计.doc

C语言课程设计模拟器和汇编程序的设计第 PAGE \* MERGEFORMAT I页 共 SECTIONPAGES \* MERGEFORMAT 1页华中科技大学计算机科学与技术学院C语言课程设计报告题目:模拟器和汇编程序的设计专 业:计算机科学与技术班 级:学 号:姓 名:成 绩:指导教师:李开完成日期: 2012年 10 月 15 日华中科技大学计算机科学与...

weixin_39905037的博客 190

关于c语言汇编程序课程设计,C语言课程设计模拟器和汇编程序设计.doc

C语言课程设计模拟器和汇编程序设计华中科技大学计算机科学与技术学院C语言课程设计报告题目:模拟器和汇编程序的设计专 业:计算机科学与技术班 级:学 号:姓 名:成 绩:指导教师:李开完成日期: 2012年 10 月 15 日目 录一、系统需求分析1二、总体设计6三、数据结构设计7四、详细设计9五、系统实现13六、运行测试与结果分析42七、总结44八、参考文献45...

weixin_33745224的博客 169

java计算器课程报告_java计算器课程设计报告

java计算器课程设计报告 Java 计算器 - 0 - 《Java 计算器》 Java 课程设计报告 姓 名: ******** 学 号: ******** 专 业: ************ Java 计算器 - 1 - 一.程序要实现的功能: 基础功能:类似 windows 计算器-普通计算器所具有的,数的输入、加、 减、乘、除、开根号、求倒数、退格、清空,以及数字储存器中的 MR(显示)、...

weixin_29972227的博客 1143

计算机高级程序语言大一,大二上课程设计最终版.doc

《数据结构》课程设计报告学 号: 20131000678班级序号: 113131姓 名: 孙国欢指导老师: 张唯成 绩:中国地质大学(武汉)信息工程学院遥感系2015年1月总体介绍这是大二上学习了数据结构后的课程设计。数据结构这门课相对于大一所学习的计算机高级程序语言设计更为复杂,此次课程设计主要考察的三个知识点分别为:堆栈、搜索树、图。这三个是数据结构中最重...

weixin_35715440的博客 377

汇编计算机钢琴流程图,汇编模拟电子琴程序

《汇编模拟电子琴程序》由会员分享,可在线阅读,更多相关《汇编模拟电子琴程序(13页珍藏版)》请在人人文库网上搜索。1、汇编语言程序设计课程设计报告题目: 模拟电子琴(音乐播放项目子程序) 指导老师: 学生姓名: 学 号: 专 业: 班 级: 2011年6月20日目录:(一)程序设计任务1.1题目31.2要求3(二)课题背景2.1汇编语言的优点32.2课题意义32.3程序设计目的3(三)运行环境4(...

weixin_35698867的博客 1153
上一篇: 程序设计基础课程设计—高精度计算
下一篇: 程序设计基础课程设计—位图图像文件缩放
travis_cloud
博客等级 码龄5年 31粉丝 11原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值