- 1、本文档共9页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
北京化工大学北方学院
课程设计报告
课程名称 系统软件课程设计
设计题目班级学号姓名指导教师设计时间简要说明设计题目的目的、意义、内容、主要任务等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
- 1.1细胞是生命活动的基本单位课件-2024-2025学年高一上学期生物人教版必修1.pptx
- 1.2细胞的多样性和统一性第1课时课件-2024-2025学年高一上学期生物人教版必修1.pptx
- 第16课《白杨礼赞》课件-2025-2026学年统编版语文八年级上册.pptx
- 2026届高三生物一轮复习课件+减数分裂与生物的遗传、变异.pptx
- 3.1细胞膜的结构和功能第2课时课件-2025-2026学年高一上学期生物人教版必修1.pptx
- 2025届高三生物一轮复习课件2.1减数分裂和受精作用.ppt
- 中考语文二轮专题复习课件:新闻概括题.pptx
- 第6课《我看》课件+++2025-2026学年统编版语文九年级上册.pptx
- 第21课《人民英雄永存不朽》课件-2025-2026学年统编版语文八年级上册.pptx
- 2025年广西河池罗城特聘农机技术指导员的(1人)考前自测高频考点模拟试题含答案详解(b卷).docx
文档评论(0)