欢迎来到天天文库
浏览记录
ID:11033761
大小:163.00 KB
页数:9页
时间:2018-07-09
《课程设计---linux环境下的c语言程序设计》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、北京化工大学北方学院课程设计报告课程名称系统软件课程设计设计题目Linux环境下的C语言程序设计专业、班级学号姓名指导教师设计时间9一、引言(简要说明设计题目的目的、意义、内容、主要任务等)1、目的1)巩固和复习C语言的基础知识,进一步加深对C语言的理解和掌握;2)熟悉Linux的基本操作,并能够在Linux环境下编写C语言程序;3)将理论知识和实际操作结合,锻炼动手能力,提高编程能力。4)掌握书写程序设计说明文档的能力2、意义1)掌握程序设计的一般方法,树立正确的设计思想,培养分析和解决问题的能力;2)学会了从实际出发,选择合理的算法,培养了程序设计能力;3)学会运用查阅有关技术资料的
2、能力。3、内容程序一:输入一个表达式,输出其结果。表达式由数字+-*/()组成。例如:输入3*(8.0+(4/3)),输出28提示:错误的表达式提示错误。例如7-*3输出:表达式输入错误。并用make工程管理器编译。(注意分割文件,可参考第一题的提示。)编写makefile文件。程序二:利用命名管道实现两个进程间的通信。4、主要任务1)分析理解题目的要求;2)总结各个程序涉及的相关知识点;3)掌握涉及的各种算法;4)程序代码的设计与实现。二、正文(课程设计的主要内容,包括实验与观测方法和结果、仪器设备、计算方法、编程原理、数据处理、设计说明与依据、加工整理和图表、形成的论点和导出的结论等
3、。正文内容必须实事求是、客观真切、准确完备、合乎逻辑、层次分明、语言流畅、结构严谨,符合各学科、专业的有关要求。)程序一:1、程序介绍输入一个表达式,输出其结果。表达式由数字+-*/()组成。用make工程管理器编译。编写makefile文件。2、功能模块图9CALCULATE取得运算符的优先级Charop,确定运算顺序赋值符号,运行基本运算无效值与有效值回归主函数主函数运行输出函数值1、函数功能intlevel()的功能:intlevel()是#include中的函数。它的功能是赋予+,-,*,/,(,)给函数,取得一个运算符的优先级,并且在遇到左括号时总是要停止,让
4、它优先级最低。在这个函数中当遇到), ,=时,要把前面的运算完成。当遇到无效的运算符时return-1,返回主函数中运行。doublecal()的动能:doublecal()是#include中的函数。它的功能是为+,-,*,/赋值,并且赋值a,b;完成简单的计算a+b;a-b;a*b;a/b;最后返回到主函数中运行。intcalexp()的功能:这个函数是主函数调用前定义的函数。它的功能是计算一个字符串表达式,计算结果存在pval指向的变量中,返回错误位置下标,-1表示没有错误。这个函数被赋值char*exp和double*pval,开始如果exp输入的表达式无效的
5、话,那么就直接返回到主函数中运行,如果有效,继续运行。(其中用到了函数isspace(*p),这个函数是#include中的函数,作用是跳过空格。)。if(*p==' ')return0;//如果表达式结束意味着没有数,返回值是0,则表达式不正确,if(*p=='(')),则表示遇到左括号入符号栈,提前运行。strtod(p,&q)是#include中的函数,它的功能是将字符串转化为浮点数,strtod(p,&q)中p是字符串,赋值给d[dtop++],if(p==q没有取到操作数,不正常,则将值返回给calexp,继续运行。intmain()的功
6、能:这是主函数,完成最后的运行,当函数值无效时输出‘表达式不正确’,当函数值有效时,输出正确的结果。91、函数调用关系这个程序当中主函数只调用了一个函数,就是calexp(char*exp,double*pval),这个函数是定义的,它的作用是将一些可能的无效的赋值阻挡,使得赋值能顺利的返回,再次运行,并且使有效值入栈,确定了括号的优先顺序,并且将有效值赋予主函数当中,使得主函数能正常运行,从而得到最后的结果。2、源程序#include#include#include#include//完成栈中优先级比*p高的运
7、算符的运算#defineCALCULATEwhile(otop>0&&level(o[otop-1])>=level(*p))d2=d[--dtop],d1=d[--dtop],op=o[--otop],d[dtop++]=cal(d1,op,d2);//取得一个运算符的优先级intlevel(charop){if(op=='*'
8、
9、op=='/')return3;if(op=='+'
10、
11、op=='-')return2;if(op
此文档下载收益归作者所有