- 1、本文档共13页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
河北工业大学计算机软件技术基础(VC)2012年课程设计报告
学院 信息工程学院 班级 电技111班 姓名 张礼 学号 112019成绩____
题目:
四则表达式计算
该函数实现除法的运算。
代码参见chufa函数。
jisuan模块
该函数把整个表达式存为字符数组,按照四则运算规则寻找其中的运算符号,然后提取左右两侧操作数计算,用计算结果替换掉计算的表达式,这样整体表达式会被简化,继续重复这个过程,直到找不到运算符为止,从而解决了四则运算优先级的问题。
代码参见jisuan函数。
设计中的主要困难及解决方案
主要困难就是优先级的问题,设计之初想到了从第二个数字开始找,找前后的运算符,如果是加减就先不管,乘除就进行计算,然后用计算得到的数代替原数字和运算符,接着就像这样算,后来发现这有难度,参见了任务书之后发现新方法,原理和第一个相同,就把这个问题解决了。
4、你所设计的程序最终完成的功能
说明你编制的程序能完成的功能
能够由用户直接输入四则运算表达式,按回车后输出结果。
准备的测试数据及运行结果
三、程序清单
1)main函数
//主函数
void main()//主函数
{
double t;
char e[]=0;
char linshi[N];
char jisuanshi[N];//用来存放计算式
cout请输入一个数学四则表达式(分母不为0),按回车结束endl;//输入计算式
cinjisuanshi;
if(jisuanshi[0]==-||jisuanshi[0]==+)
{
strcat(e,jisuanshi);
strcpy(jisuanshi,e);
}
strcpy(linshi,jisuanshi);
t=jisuan(linshi);//计算
coutjisuanshi=tendl;
//输出
} 2)xiaoshudian函数
double xiaoshudian(char x[])//判断是否有小数点
{
for(int i=0;istrlen(x);i++)
if(x[i]==.)
{
double num = 0.1;
sscanf(x, %f, num);
return num;
}
else
return atof(x);
} 3)jiafa函数
double jiafa(char x[],char y[])//计算加法
{
double a,b;
a=xiaoshudian(x);
b=xiaoshudian(y);
double c=a+b;
return c;
} 4)jianfa函数
double jianfa(char x[],char y[])//计算减法
{
double a,b;
a=xiaoshudian(x);
b=xiaoshudian(y);
double c=a-b;
return c;
} 5)chengfa函数
double chengfa(char x[],char y[])//计算乘法
{
double a,b;
a=xiaoshudian(x);
b=xiaoshudian(y);
double c=a*b;
return c;
}
6)chufa函数
double chufa(char x[],char y[])//计算除法
{
double a,b;
a=xiaoshudian(x);
b=xiaoshudian(y);
double c=a/b;
return c;
} 7)jisuan函数
double jisuan(char pstr[])//主要计算
{
char stringleft[N],stringright[N],suanleft[N],suanright[N],suan[N],fuhao;//fuhao代表运算符
double suanjieguo,jieguo;
int n=0;
for(int i=0;istrlen(pstr);i++)//先算乘除
{
if(pstr[i]==*||pstr[i]==/)
{
fuhao=pstr[i];
for(int j=i-1;j=0;j--)// 获取左边要计算的数据和该数据前的字符串stringleft
{
if(pstr[j]==-||pstr[j]==+)
{
for(in
您可能关注的文档
- (HSE管理文件)FREP-04-HSE-2014.doc
- (HSE管理文件)FREP-04-HSE-2015.doc
- (HSE管理文件)FREP-04-HSE-2018.doc
- (HSE管理文件)FREP-04-HSE-2019.001.doc
- (HSE管理文件)FREP-04-HSE-2019.003.doc
- (HSE管理文件)FREP-04-HSE-2020.doc
- (HSE管理文件)FREP-04-HSE-2021.001.doc
- (HSE管理文件)FREP-04-HSE-2021.doc
- (HSE管理文件)FREP-04-HSE-2022.doc
- (HSE管理文件)FREP-04-HSE-2023.doc
- GB/T 32151.38-2024温室气体排放核算与报告要求 第38 部分:水泥制品生产企业.pdf
- 中国国家标准 GB/T 32151.38-2024温室气体排放核算与报告要求 第38 部分:水泥制品生产企业.pdf
- 《GB/T 22069-2024燃气发动机驱动空调(热泵)机组》.pdf
- GB/T 22069-2024燃气发动机驱动空调(热泵)机组.pdf
- 中国国家标准 GB/T 22069-2024燃气发动机驱动空调(热泵)机组.pdf
- 中国国家标准 GB/T 11064.1-2024碳酸锂、单水氢氧化锂、氯化锂化学分析方法 第1部分: 碳酸锂含量的测定 滴定法.pdf
- GB/T 11064.1-2024碳酸锂、单水氢氧化锂、氯化锂化学分析方法 第1部分: 碳酸锂含量的测定 滴定法.pdf
- 《GB/T 11064.1-2024碳酸锂、单水氢氧化锂、氯化锂化学分析方法 第1部分: 碳酸锂含量的测定 滴定法》.pdf
- GB/T 1148-2024内燃机 铝活塞.pdf
- 中国国家标准 GB/T 1148-2024内燃机 铝活塞.pdf
文档评论(0)