- 1、本文档共18页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
算术表达式的求解数据结构课程设计说明书
中北大学
数 据 结 构
课 程 设 计 说 明 书
?
?
?
学生姓名: ?张蓓 学 号: 1021011602? 学 院: 软件学院 专 业: 软件工程? 题 目: 算术表达式的求解 指导教师 何志英
?
?
?
?2011年12月20日
设计任务概述(包括系统总体框图及功能描述) 利用栈结构,求解用户正确输入的算术表达式,并实现保存、读取、清除功能,且对用户输入的错误信息进行提示,重新输入.
本设计所采用的数据结构(如:链表、栈、树、图等) 本设计采用了栈结构,创建了两个栈,一个压入数字,另一个压入符号。 功能模块详细设计 详细设计思想
求解表达式的主要思想是创建两个栈,一个是符号栈,另一个是数字栈。符号栈关键是运算优先顺序,数字栈关键是多位数与小数的计算。
本程序设计了四个模块,第一个模块double result(double num1,char op,double num2),主要目的是进行加减乘除运算的操作方法,num1与num2的关系;第二个模块int compute(char str[]),主要目的是对用户输入的算术表达式进行求解,其中对多位数与小数进行了定义与数值计算,以及带括号的表达式运算的优先顺序;第三个模块void face(),主要目的是设计用户主界面;第四个模块是主函数,主要目的是将上述模块集中运用,进行求解。至此完成利用栈结构求解表达式运算。
核心代码
调用的库函数:
#include stdio.h
#include conio.h
#include stdlib.h
#include process.h
#include string.h
自己定义的函数:
double result(double num1,char op,double num2) 进行加减乘除运算
int compute(char str[]) 对用户输入的算术表达式进行求解
void face() 用户主界面
main() 主函数
核心定义函数设计:
int compute(char str[])
{
double num=0;
int i=0,j=1,k=1;
int Flag=0;
numTop=opTop=0;
while(str[i]!=\0||opTop0)
{
if(str[i]=0str[i]=9)
if(Flag==0)
num=num*10+str[i]-0;
else
{
num+=(str[i]-0)/(j*10.0);
j*=10;
}
else
if(str[i]==.)
Flag=1;
else
if( k==1str[i]==-(i==0||op(str[i-1])) )
k=-1;
else
{
if(i0!op(str[i-1])str[i]!=(str[i-1]!=))
{
numStack[numTop++]=num*k;
num=0; j=1; Flag=0; k=1;
}
if(opTop==0||str[i]==()
opStack[opTop++]=str[i];
else
if(str[i]==))
{
while(opTop0opStack[--opTop]!=()
{
numStack[numTop-2]=result(numStack[numTop-2],opStack[opTop],numStack[numTop-1]);
numTop--;
}
if(opStack[opTop]!=() retu
您可能关注的文档
- 第六章_青少年社会工作方法 青少年社会工作课件.ppt
- 第六章 编组站.ppt
- 第六章 目的基因导入受体细胞.ppt
- 第六章大学生恋爱、性、婚姻与心理卫生.ppt
- 第六章_服装用毛皮与皮革.ppt
- 第六章战略联盟.ppt
- 第六章无形资产评估 资产评估PPT课件.ppt
- 第六章道路旅客运输之应急驾驶.ppt
- 第六讲 企业利益相关者分析.ppt
- 第六节 小儿体液平衡的特点和液体疗法.ppt
- 石油化工行业2024中报业绩总结:24Q2上游受益于油价上涨,炼化检修和需求淡季影响业绩释放,涤纶长丝价差环比修复-240908-申万宏源-14页.pdf
- 汽车与汽车零部件行业周报、月报:增长趋缓,盈利改善.pdf
- 日本央行独立紧缩的被忽视长尾效应.pdf
- 信达生物(01801)自主研发已入佳境,四大领域商业化势如破竹.pdf
- 阳光电源 -逆变 深耕光储沉淀深厚,品牌技术铸就龙头地位.pdf
- 基于V2X和自动驾驶HIL联调的仿真测试系统开发.pdf
- 深度学习图像分割算法在胃癌病理切片中的可行性分析.pdf
- 市场复盘:市场继续缩量,创业板指翘尾收红-240909-国元证券-11页.pdf
- 市场复盘:三大指数收跌,金融风格走强-240912-国元证券-11页.pdf
- 通信行业2024半年报业绩点评:行业2024H1经营稳健,数字经济和人工智能驱动行业增长.pdf
最近下载
- QB_T 4563-2013金砂糖.pdf
- 大坝安全监测系统运检导则(试行) QGDW 46 10022.24-2020.docx VIP
- 第五单元 一方水土养一方人 达标训练(含答案) 浙江省人教版七年级人文地理下册.docx
- 奋进新征程建功新时代PPT模板.ppt VIP
- 规范《GB712-88-船体用结构钢》.pdf
- 二年级上册语文教学设计21《狐假虎威》一等奖 刘芳 部编版.docx VIP
- Q_GDW 46 10022.25-2020 通风空调系统运检导则.docx
- 12如何帮助学生学会正确地与异性同学交往?.docx VIP
- 专题1.2 数轴与动点经典题型(四大题型)(原卷版).docx VIP
- 拉森钢板桩专项施工方案.doc
文档评论(0)