综合性程序设计报告
设计题目: 高精度计算器
指导教师:
班 级:
学 号:
设 计 者:
成 绩: _______________
设计时间:2010年 5 月 27 日
高精度计算器
[题目描述]
编制一个软件用于实现高精度的计算
基本要求:
要有+,-,*,/四则运算
记录算式
输出算式
查看算式及结果
[功能模块分解]
本程序用到以下函数:
void iPush(float);
float iPop();
float StaOperand[MaxSize];
char Srcexp[MaxSize];
char Capaexp[MaxSize];
char RevPolishexp[MaxSize];
float NumCapaTab[26];
char validexp[]="*/+-()";
char NumSets[]="0123456789";
char StackSymb[MaxSize];
void NumsToCapas(char [], int , char [], float []);
int CheckExpress(char);
int PriorChar(char,char);
int GetOperator(char [], char);
void counterPolishexp(char INexp[], int slen, char Outexp[]);
float CalcRevPolishexp(char [], float [], char [], int);
[数据库设计及说明]
1、变量的说明和解释:
首先定义了两个结构体类型名SqStack和dstack,分别用来定义字符栈和数字栈。
然后在主函数中定义了字符型数组E[N],A[N],B[N],E[N]用来保存用户输入的计算式,A[N]用来保存后缀表达式,E[N]用来保存从输出文件中读取的字符串。还定义了一个字符型变量ck,用来记录用户是否要查看历史记录。
其余一些变量基本都是在各个函数中的局部变量,或者是函数的形参或实参。
2、有关的库函数说明:
程序里用到了stdio.h,和conio.h库函数,首先stdio.h我们经常用到,内部包含了我们常用的输入输出函数等等。
conio.h不是C标准库中的头文件。 conio是Console Input/Output(控制台输入输出)的简写,其中定义了通过控制台进行数据输入和数据输出的函数,主要是一些用户通过按键盘产生的对应操作
[主要算法说明]
#include //定义输入/输出函数#include //字符串处理#include//定义通过控制台进行数据输入和数据输出#include "ctype.h"//定义 bool 类型#include //定义数学函数#include "stdio.h"
#include "string.h"
#include
#include "ctype.h"
#include "math.h"
//expression evaluate
#define iMUL 0
#define iDIV 1
#define iADD 2
#define iSUB 3
#define iCap 4
//#define LtKH 5
//#define RtKH 6
#define MaxSize 100
void iPush(float);
float iPop();
float StaOperand[MaxSize];
int iTop=-1;
//
char Srcexp[MaxSize];
char Capaexp[MaxSize];
char RevPolishexp[MaxSize];
float NumCapaTab[26];
char validexp[]="*/+-()";
char NumSets[]="0123456789";
char StackSymb[MaxSize];
int operands;
//
void NumsToCapas(char [], int , char [], float []);
int CheckExpress(char);
int PriorChar(char,char);
int GetOperator(char [], char);
void counterPolishexp(char INexp[], int slen, char