山东科技大学电子商务10-1算术表达式报告.doc

山东科技大学电子商务10-1算术表达式报告.doc

  1. 1、本文档共36页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
山东科技大学电子商务10-1算术表达式报告

数 据 结 构 课程设计报告 设计题目: 院 系: 经济管理学院 专业班级: 电子商务20-1 学生姓名: 、、 指导教师: 2012年7月日 指导教师评语 指导教师: 年 月 日 成绩评定 学 号 姓 名 任务分工 成绩 目 录 1.设计内容 1 1.1问题描述 1 1.2设计要求 1 1.3开发环境 1 1.4研究思路 1 2.设计步骤 1 2.1需求分析 1 2.2概要设计 2 2.3详细设计 3 2.4调试分析 3 2.5测试结果 4 3.设计成果展示 7 3.1用户手册 7 3.2程序运行部分截图 7 4.总结与心得体会 8 附 录 9 1.设计内容 1.1问题1.2设计要求 要求:(1)从键盘输入一个表达式; (2)支持运算符的优先级; (3)支持括号的嵌套; (4)支持小数点及其负数; (5)有差错功能,如非法字符,小数点过多(3.44.3),括号不匹配等错误。 1.3开发环境 C-free 5.0 1.4研究思路 当用户输入一个算法表达式,程序在只将表达式扫描一遍的条件下,运用一个能提取出一个数据项和一个符号项的函数,通过循环调用这个函数,并利用栈操作函数,实现对表达式的计算.对括号匹配的处理是用一个计数器变量,出现左括号加1,出现右括号减1,值为0说明括号匹配. 2.设计步骤 2.1需求分析 该程序的主要任务是,当用户输入一个算术表达式的时,该程序能计算出输入表达式的结果;如果输入的表达式有误(字符错误和逻辑错误),程序能输出算术表达式的具体错误形式。 输入形式:由用户输入一个用户认为合法并且合乎逻辑的算术表达式(输入的算数表达式并不一定正确)。 输出形式:1、用户输入的算数表达式合法且合乎逻辑,则在用户界面上输出该算数表达式的结果;2、用户输入的算术表达式有语法错误或者不合乎逻辑,则在用户界面上输出算术表达式出错及其具体错误。 2.2概要设计 (1)根据设计思路,首先是对整个程序中变量的定义,其中大致包括: #define MAX_DATA_BIT 100 #define YES 1 #define NO 0 #define POINT_UNEXIST -15 #define MAXSIZE 100 (2) 对内容的设计,其中各主要过程的函数包括 函数 getexp这个函数的原型是:int getexp(double *data,char *); 它能够提取出表达式中的数据项和符号项,对这个函数的调用,至少能提取出一个符号项, 根据提取的项不同,其返回值从1到8有个;返回负数表示在提取的过程中有错误;对负数的处理是;除了第一项的负数外,其它的负数必须用括号括起来;????????函数 PopData , PushData , PopOprt ,PushOprt ?????? 这四个函数分别实现数据入栈\出栈,操作符入栈\出栈;函数 calculat原型是: int calculat(double data1,char oprt,double data2);能对两个数据根据oprt 进行计算,计算出现错误返回负数,否则返回正数;???函数 checkgram??原型是:int checkgram(int fsitua,int lsitua);配合getexp的返回值使用,对表达式进行语法检查;????函数 priority???原型是:int priority(char cal1,char cal2);比较操作符的优先级,为了保持一致性,把\0和括号也看作操作符;????函数 char_to_double???原型:double char_to_double(char DigitString[],int markpot,int markend);将字符串转变成双精度数;函数 main 主函数:(1)调用函数clear()清空栈; (2)调用函数getxp()提取字符; (3)调用函数checkgram()判断字符是否合法; (4)调用函数priority()判断运算符的优先级; (5)调用函数calculat()计算算术表达式; (6)如果以上均未出现错误,输出算术表达式的计算结果;如果任意一步出现错误,调用函数error()输出错误类型2.3详细设计 对子函数进行声明部分: int is_calchar(char c); //标识运算符,不包括括号 int is_space(char c); //标识空白字符,不

文档评论(0)

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

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

1亿VIP精品文档

相关文档