1、 课程设计报告 课程名称:课程名称: 设计题目设计题目: 系系 别:别: 专专 业:业: 组组 别:别: 学生姓名学生姓名: : 起止日期起止日期: 年 月 日 年 月 日 指导教师指导教师: 数据结构课程设计报告数据结构课程设计报告 题目:题目:实现对算术四则混合运算表达式的求值以及实现对算术四则混合运算表达式的求值以及大整数大整数计算计算 一设计目的 数据结构是计算机专业的核心课程, 是一门实践性很强的课程。 课程设计是加强学生实践 能力的一个强有力手段,要求学生掌握数据结构的应用、算法的编写、类 C 语言的算法转换 成 C 程序并上机调试的基本方法, 还要求学生在完成程序设计的同时能够写
2、出比较规范的设 计报告。 严格实施课程设计这一环节, 对于学生基本程序设计素养的培养和软件工作者工作 作风的训练,将起到显著的促进作用。 二问题描述 (一) 当用户输入一个合法的算术表达式后, 能够返回正确的结果。 能够计算的运算 符包括:加、减、乘、除、括号;能够计算的操作数要求在实数范围内;对于 异常表达式能给出错误提示。 (二) 求两个不超过 200 位的非负整数的和,积和商。 三调试与操作说明调试与操作说明 (一)需求分析 本程序所做的工作为:能直接求出四则表达式的值,并输出;可以解决因数值位数 太大 unsigned 类型都无法表示的大数之间的运算。本程序可用于小学教师对学生作业 的
3、快速批改以及对数值位数要求较大的科学运算。 此程序规定: 1.程序的主要功能包括两部分:表达式求解和大整数的运算。 2.表达式求解中输入的必需为一个正确的四则表达式, 可以是整型也可以为浮点型, 比如: 3*(7-2)+5 和 3.154*(12+18)-23。 大整数的运算中根据提示要输入两行数 据位数不能大于 200 位。 3.程序的输出: 表达式求解中为一浮点型数据, 大整数运算中输出的即为运算之后 的结果,结果里不能有多余的前导 0。 (二) 概要设计 1.ADT LinkStack1.ADT LinkStack 数据元素:此链栈中的所有元素类型为字符型的数字字符 数据关系:栈中数据元
4、素之间是线性关系。 基本操作: (1) InitStack(LinkStack 定义字符指针 *p,*q,*temp;temp指向运算符后面的一个字符 double i=0,a=0,b=0; 将传入的实参赋给p,q; 定义一个运算符栈 OPTR; 定义一个操作数栈 OPND; 调用函数InitStack()初始化栈OPND; 调用函数InitCharStack()初始化栈OPNR ; 调用函数CPush(OPTR,#)将#压入运算符栈; c=*p;temp=p;p+; if(第一个字符就为-) c=*p;temp=p;p+; while(栈不为空或表达式没有结束) /进入最外层循环 if(不是运算符)/则解析数字字符串然后进操作数栈 整数部分m=0; 小数部分n=0; while(