资源简介
利用栈求表达式课程设计一:设计目的
利用栈求表达式的值,可供小学生使用,并能给出分数,并且可以给出评价。
二:设计要求
建立试题库文件,随机产生n个题目;题目涉及加减乘除,带括号的混合运算;随时可以退出;保留历史分数能回顾历史,给出与历史的分数的比较后的评价。
三:设计思想
首先建立三个文件,分别为shitiku.txt,markrec.txt,n_rec.txt。其中shitiku.txt中存放试题;markrec.txt存放历史分数;n_rec.txt存放总共测试次数。
代码片段和文件信息
#include
#include
#include
#include
#define STACK_INIT_SIZE 100
#define STACKINCREMENT 10
#define OK 0
#define ERROR 1
typedef struct shiti
{//定义表达式
char a[20]; /*存放表达式*/
long result; /*存放用户输入的答案*/
}xuanti;
typedef struct SqStack1
{ //建立数字栈
int *base;
int *top;
int stacksize;
}SqStack1;
typedef struct SqStack2
{//建立运算符栈
char *base;
char *top;
int stacksize;
}SqStack2;
void page_title()
{//建立菜单
printf(“\t>>> 数学习题库<<<\n\n“);
printf(“ \t --- 主菜单 ---\n\n“);
printf(“\t1 开始测试\n“);
printf(“\t2 查看历史分数记录\n“);
printf(“\t3 增加问题\n“);
printf(“\t0 退出\n“);
printf(“\t******************\n“);
}
void return_confirm()
{//按任意键返回菜单
printf(“\n按任意键返回 !……\n“);
getch();
}
void IntInitStack(SqStack1 *S1)
{//数字栈初始化
S1->base=(int *)malloc(STACK_INIT_SIZE*sizeof(int));
if(!S1->base)
exit(ERROR);
S1->top=S1->base;
S1->stacksize=STACK_INIT_SIZE;
}
void CharInitStack(SqStack2 *S2)
{//运算符栈初始化
S2->base=(char *)malloc(STACK_INIT_SIZE*sizeof(char));
if(!S2->base)
exit(0);
S2->top=S2->base;
S2->stacksize=STACK_INIT_SIZE;
}
long IntGetTop(SqStack1 *S1)
{ //取数字栈栈顶元素
long e1;
if((*S1).top==(*S1).base)
return 0;
e1=*(--(*S1).top);
return e1;
}
char CharGetTop(SqStack2 *S2)
{ //取运算符栈栈顶元素
char e2;
if((*S2).top==(*S2).base)
return 0;
e2=*(--(*S2).top);
return e2;
}
int IntPush(SqStack1 *S1int e1)/*入栈*/
{
*(*S1).top++=e1;
return OK;
}
int CharPush(SqStack2 *S2char e2)/*入栈*/
{
*(*S2).top++=e2;
return 1;
}
int IntPop(SqStack1 *S1)/*出栈*/
{
int e1;
if((*S1).top==(*S1).base)
return 0;
e1=*--(*S1).top;
return e1;
}
char CharPop(SqStack2 *S2)/*出栈*/
{
char e2;
if((*S2).top==(*S2).base)
return 0;
e2=*--(*S2).top;
return e2;
}
char Precede(char achar b)
{//运算符优先级比较
int ij;
char Table[8][8]={‘ ‘‘+‘‘-‘‘*‘‘/‘‘(‘‘)‘‘#‘
‘+‘‘>‘‘>‘‘<‘‘<‘‘<‘‘>‘‘>‘
‘-‘‘>‘‘>‘‘<‘‘<‘‘<‘‘>‘‘>‘
‘*‘‘>‘‘>‘‘>‘‘>‘‘<‘‘>‘‘>‘
‘/‘‘>‘‘>‘‘>‘‘>‘‘<‘‘>‘‘>‘
‘(‘‘<‘‘<‘‘<‘‘<‘‘<‘‘=‘‘ ‘
‘)‘‘>‘‘>‘‘>‘‘>‘‘ ‘‘>‘‘>‘
‘#‘‘<‘‘<‘‘<‘‘<‘‘<‘‘ ‘‘=‘
}; /*运算符优先级表格*/
for(i=0;i<8;i++) /*纵坐标寻找*/
if(Table[0][i]==a)
break;
for(j=0;j<8;j++) /*横坐标寻找*/
if(Table[j][0]==b)
break;
return Table[j][i]; /*返回比较结果*/
}
int Operate(int achar thetaint b)
{ //计算表达式值:主要是将大的表达式转化为小的表达式进行逐步求值
int c;
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 545 2009-07-20 08:50 利用栈求表达式课程设计\利用栈求表达式值\liyongzhan.dsw
文件 33792 2009-07-20 08:58 利用栈求表达式课程设计\利用栈求表达式值\liyongzhan.ncb
文件 12514 2009-07-20 08:50 利用栈求表达式课程设计\利用栈求表达式值\liyongzhan.cpp
文件 1339 2009-07-20 08:50 利用栈求表达式课程设计\利用栈求表达式值\liyongzhan.plg
文件 5 2009-07-20 08:37 利用栈求表达式课程设计\利用栈求表达式值\N_REC.txt
文件 552 2009-07-20 08:37 利用栈求表达式课程设计\利用栈求表达式值\SHITIKU.txt
文件 40 2009-07-20 08:37 利用栈求表达式课程设计\利用栈求表达式值\markrec.txt
文件 48640 2009-07-20 08:58 利用栈求表达式课程设计\利用栈求表达式值\liyongzhan.opt
文件 4332 2009-07-20 08:58 利用栈求表达式课程设计\利用栈求表达式值\liyongzhan.dsp
文件 33792 2009-07-20 08:50 利用栈求表达式课程设计\利用栈求表达式值\Debug\vc60.idb
文件 45056 2009-07-20 08:50 利用栈求表达式课程设计\利用栈求表达式值\Debug\vc60.pdb
文件 228000 2009-07-20 08:50 利用栈求表达式课程设计\利用栈求表达式值\Debug\liyongzhan.pch
文件 33531 2009-07-20 08:50 利用栈求表达式课程设计\利用栈求表达式值\Debug\liyongzhan.obj
文件 229832 2009-07-20 08:50 利用栈求表达式课程设计\利用栈求表达式值\Debug\liyongzhan.ilk
文件 192612 2009-07-20 08:50 利用栈求表达式课程设计\利用栈求表达式值\Debug\liyongzhan.exe
文件 443392 2009-07-20 08:50 利用栈求表达式课程设计\利用栈求表达式值\Debug\liyongzhan.pdb
文件 5 2009-07-20 08:37 利用栈求表达式课程设计\利用栈求表达式值\Debug\N_REC.txt
文件 552 2009-07-20 08:37 利用栈求表达式课程设计\利用栈求表达式值\Debug\SHITIKU.txt
文件 40 2009-07-20 08:37 利用栈求表达式课程设计\利用栈求表达式值\Debug\markrec.txt
文件 5 2009-07-20 08:37 利用栈求表达式课程设计\报告书\源程序\N_REC.txt
文件 40 2009-07-20 08:37 利用栈求表达式课程设计\报告书\源程序\markrec.txt
文件 192612 2009-07-20 08:50 利用栈求表达式课程设计\报告书\源程序\liyongzhan.exe
文件 552 2009-07-20 08:37 利用栈求表达式课程设计\报告书\源程序\SHITIKU.txt
文件 12513 2011-06-24 10:02 利用栈求表达式课程设计\报告书\源程序\liyongzhan.cpp
文件 125952 2011-12-22 19:32 利用栈求表达式课程设计\报告书\数据结构课程设计报告.doc
目录 0 2009-07-20 08:58 利用栈求表达式课程设计\利用栈求表达式值\Debug
目录 0 2009-07-20 09:02 利用栈求表达式课程设计\报告书\源程序
目录 0 2009-07-20 08:58 利用栈求表达式课程设计\利用栈求表达式值
目录 0 2009-07-20 08:59 利用栈求表达式课程设计\报告书
目录 0 2009-07-20 08:53 利用栈求表达式课程设计
............此处省略3个文件信息
评论
共有 条评论