1、 1 课程设计报告 课程名称课程名称 系统软件课程设计 设计题目设计题目 Linux 环境下的 C 语言程序设计 专业、专业、班级班级 学学 号号 姓姓 名名 指导教师指导教师 设计时间设计时间 2 一、一、 引言(引言(简要说明设计题目的目的、意义、内容、主要任务等简要说明设计题目的目的、意义、内容、主要任务等) 1、 目的 1) 巩固和复习 C 语言的基础知识,进一步加深对 C 语言的理解和掌握; 2) 熟悉 Linux 的基本操作,并能够在 Linux 环境下编写 C 语言程序; 3) 将理论知识和实际操作结合,锻炼动手能力,提高编程能力。 4) 掌握书写程序设计说明文档的能力 2、 意
2、义 1) 掌握程序设计的一般方法,树立正确的设计思想,培养分析和解决问题的能力; 2) 学会了从实际出发,选择合理的算法,培养了程序设计能力; 3) 学会运用查阅有关技术资料的能力。 3、 内容 程序一: 输入一个表达式,输出其结果。表达式由数字+-*/()组成。 例如:输入 3*(8.0+(4/3) ) ,输出 28 提示:错误的表达式提示错误。例如 7-*3 输出:表达式输入错误。并用 make 工 程管理器编译。 (注意分割文件,可参考第一题的提示。 )编写 makefile 文件。 程序二: 利用命名管道实现两个进程间的通信。 4、 主要任务 1) 分析理解题目的要求; 2) 总结各个
3、程序涉及的相关知识点; 3) 掌握涉及的各种算法; 4) 程序代码的设计与实现。 二、二、 正文(课程设计的主要内容,正文(课程设计的主要内容,包括实验与观测方法和结果、仪器设备、计算方法、编程原理、数包括实验与观测方法和结果、仪器设备、计算方法、编程原理、数 据处理、设计说明与依据、加工整理和图表、形成的论点和导出的结论等。正文内容必须实事求是、据处理、设计说明与依据、加工整理和图表、形成的论点和导出的结论等。正文内容必须实事求是、 客观真切、准确完备、合乎逻辑、层次分明、语言流畅、结构严谨,符合各学科、专业的有关要求。客观真切、准确完备、合乎逻辑、层次分明、语言流畅、结构严谨,符合各学科、
4、专业的有关要求。) 程序一: 1、程序介绍 输入一个表达式,输出其结果。表达式由数字+-*/()组成。 用 make 工程管理器编译。编写 makefile 文件。 2、功能模块图 3 1、 函数功能 int level()的功能 : int level()是#include 中的函数。 它的功能是赋予 +,-,*,/, (, ) 给函数,取得一个运算符的优先级,并且在遇到左 括号时总是要停止,让它优先级最低。在这个函数中当遇到) ,0 ,=时,要把前面的运算完 成。当遇到无效的运算符时 return -1,返回主函数中运行。 double cal()的动能: double cal()是#in
5、clude 中的函数。 它的功能是为+,-,*,/ 赋值,并且赋值 a,b; 完成简单的计算 a+b; a-b; a*b; a/b; 最后返回到主函数中运行。 int calexp()的功能: 这个函数是主函数调用前定义的函数。 它的功能是计算一个字符串表达式,计算结果存在 pval 指向的变量中,返回错误位置下 标,-1 表示没有错误。 这个函数被赋值 char* exp 和 double* pval,开始如果 exp 输入的表达式无效的话,那 么就直接返回到主函数中运行,如果有效,继续运行。(其中用到了函数 isspace(*p),这个 函数是#include 中的函数,作用是跳过空格。) 。if(*p=0) return 0;/如 果表达式结束意味着没有数,返回值是 0,则表达式不正确,if(*p=(),则表示遇到左括 号入符号栈,提前运行。strtod(p, /取得一个运算符的优先级 int level(char op) if(op=*|op=/) return 3; if(op=+|op=-) return 2; if(op=)|op=|op=0) return 1;/遇到它们要把前面的 运算完成 if(op