- 1、本文档共9页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
北京化工大学北方学院
课程设计报告
课程名称 系统软件课程设计
设计题目班级学号姓名指导教师设计时间简要说明设计题目的目的、意义、内容、主要任务等make工程管理器编译。(注意分割文件,可参考第一题的提示。)编写makefile文件。
程序二:
利用命名管道实现两个进程间的通信。
主要任务
分析理解题目的要求;
总结各个程序涉及的相关知识点;
掌握涉及的各种算法;
程序代码的设计与实现。 正文(课程设计的主要内容,包括实验与观测方法和结果、仪器设备、计算方法、编程原理、数据处理、设计说明与依据、加工整理和图表、形成的论点和导出的结论等。正文内容必须实事求是、客观真切、准确完备、合乎逻辑、层次分明、语言流畅、结构严谨,符合各学科、专业的有关要求。
函数功能
int level()的功能 :
int level()是#include stdio.h中的函数。
它的功能是赋予 +,-,*,/,(,) 给函数,取得一个运算符的优先级,并且在遇到左括号时总是要停止,让它优先级最低。在这个函数中当遇到),\0 ,=时,要把前面的运算完成。当遇到无效的运算符时return -1,返回主函数中运行。
double cal()的动能:
double cal()是#include stdio.h中的函数。
它的功能是为+,-,*,/ 赋值,并且赋值a,b;
完成简单的计算
a+b;
a-b; a*b;
a/b;
最后返回到主函数中运行。
int calexp()的功能:
这个函数是主函数调用前定义的函数。
它的功能是计算一个字符串表达式,计算结果存在pval指向的变量中,返回错误位置下标,-1表示没有错误char* exp和double* pval,开始如果exp输入的表达式无效的话,那么就直接返回到主函数中运行,如果有效,继续运行。(其中用到了函数isspace(*p),这个函数是#include ctype.h中的函数,作用是跳过空格。) 。if(*p==\0) return 0;//如果表达式结束意味着没有数if(*p==()),则表示遇到左括号入符号栈strtod(p, q)是#include stdlib.h中的函数,它的功能是将字符串转化为浮点数,strtod(p, q)中p是字符串,赋值给d[dtop++],if(p==q
没有取到操作数,不正常calexp,继续运行。
int main()的功能:
这是主函数,完成最后的运行,当函数值无效时输出‘表达式不正确’,当函数值有效时,输出正确的结果。
函数调用关系
这个程序当中主函数只调用了一个函数,就是calexp(char* exp, double* pval),这个函数是定义的,它的作用是将一些可能的无效的赋值阻挡,使得赋值能顺利的返回,再次运行,并且使有效值入栈,确定了括号的优先顺序,并且将有效值赋予主函数当中,使得主函数能正常运行,从而得到最后的结果。
源程序
#include stdio.h#include stdlib.h#include ctype.h#include string.h//完成栈中优先级比*p高的运算符的运算#define CALCULATE while(otop0level(o[otop-1])=level(*p))\d2=d[--dtop],d1=d[--dtop],op=o[--otop],d[dtop++]=cal(d1,op,d2);//取得一个运算符的优先级int level(char op){ if(op==*||op==/) return 3; if(op==+||op==-) return 2; if(op==)||op===||op==\0) return 1;//遇到它们要把前面的运算完成 if(op==() return 0;//运算遇到左括号总是要停止的,让它优先级最低 return -1;//无效的运算符}//做一个简单计算,a、b是操作数,o是运算符double cal(double a, char o, double b){switch(o){ case +: return a+b; case -: return a-b;
您可能关注的文档
- 车站信号自动控制课程设计1.doc
- 词法分析和算符优先分析课程设计.doc
- 货运代理有限公司实习报告.doc
- 计算比赛成绩_汇编语言课程设计报告书.doc
- 计算机毕业论文--个人网站的设计与制作.doc
- 计算机毕业论文---工资管理系统.doc
- 计算机毕业论文---基于JSP+JavaBean的网上花店系统的设计与实现.doc
- 计算机毕业论文控制器实验报告.doc
- 计算机毕业论文设计---学生档案管理系统.doc
- 计算机毕业论文---网上聊天室设计与实现.doc
- 中国行业标准 GM/T 0126-2023HTML密码应用置标语法.pdf
- 《JJF 2121-2024恒转速源校准规范》.pdf
- 餐饮服务中20条处理要点.docx
- 《GM/T 0011-2023可信计算 可信密码支撑平台功能与接口规范》.pdf
- 《JJF 2134-2024旋转流变仪校准规范》.pdf
- JJF 2121-2024恒转速源校准规范.pdf
- 计量规程规范 JJF 2121-2024恒转速源校准规范.pdf
- 《JJF 2118-2024压力式六氟化硫气体密度控制器校验仪校准规范》.pdf
- JJF 2134-2024旋转流变仪校准规范.pdf
- 计量规程规范 JJF 2134-2024旋转流变仪校准规范.pdf
文档评论(0)