课程设计---Linux环境下的C语言程序设计.doc

课程设计---Linux环境下的C语言程序设计.doc

  1. 1、本文档共9页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 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;

文档评论(0)

li455504605 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档