• 大小: 44KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-05-25
  • 语言: 其他
  • 标签:

资源简介

文件内容(利用栈求表达式的值任务书,说明书,源代码)。 软件环境:TC。 实现功能:建立试题库文件,随机产生n个题目;题目涉及加减乘除,带括弧的混合运算;利用栈求解表达式的值;随时可以退出。 在C环境中都能实现。

资源截图

代码片段和文件信息

#include 
#include 
#include  
#include
#include 
#define STACK_INIT_SIZE 100
#define STACKINCREMENT 10
#define OK 0
#define ERROR 1

char Table[8][8]={  ‘ ‘‘+‘‘-‘‘*‘ ‘/‘ ‘(‘‘)‘‘#‘      /*运算符优先级表格*/
                            ‘+‘‘>‘‘>‘‘<‘‘<‘‘<‘‘>‘‘>‘
                            ‘-‘‘>‘‘>‘‘<‘‘<‘‘<‘‘>‘‘>‘
                            ‘*‘‘>‘‘>‘‘>‘‘>‘‘<‘‘>‘‘>‘
                            ‘/‘‘>‘‘>‘‘>‘‘>‘‘<‘‘>‘‘>‘
                             ‘(‘‘<‘‘<‘‘<‘‘<‘‘<‘‘=‘‘ ‘
                             ‘)‘‘>‘‘>‘‘>‘‘>‘‘ ‘‘>‘‘>‘
                            ‘#‘‘<‘‘<‘‘<‘‘<‘‘<‘‘ ‘‘=‘
                         };        
char ptr[10]={‘+‘‘-‘‘*‘‘/‘‘(‘‘)‘‘=‘} ;                        /*运算符*/

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 WriteToFile(xuanti *pstuint num);            
void ReadFromFile(xuanti *pstuint num);

void page_title()           /*建立菜单*/
{
    printf(“>>> Math excercises liberary <<<\n\n“);
    printf(“   --Operation Menu--\n“);
    printf(“1 Start the test\n“);
    printf(“2 History of the scores\n“);
    printf(“0 exit\n“);
    printf(“******************\n“);
}

void return_confirm()                           /*按任意键返回菜单*/
{
     printf(“Press any key to return !\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(ERROR);
    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-1);
    return e1;
}

char CharGetTop(SqStack2 *S2)            /*取运算符栈栈顶元素*/

    char e2;
    if((*S2).top==(*S2).base) 
        return 0;
    e2=*((*S2).top-1);
    return e2;
}

int IntPush(SqStack1 *S1int e1)              /*入栈*/
{
    *(*S1).top++=e1;
    return OK;
}

int CharPush(SqStack2 *S2char e2)         /*入栈*/
{
    *(*S2).top++=e2;
    return OK;
}

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=*--(*

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件      80384  2009-06-26 07:47  罗文凤(利用栈求表达式的值)\利用栈求表达式的值源代码.doc

     文件     112128  2009-06-26 00:53  罗文凤(利用栈求表达式的值)\利用栈求表达式的值说明书.doc

     文件      76800  2009-06-15 13:38  罗文凤(利用栈求表达式的值)\利用栈求解表达式的值任务书.doc

     文件          7  2009-06-23 21:39  罗文凤(利用栈求表达式的值)\源代码\MARKREC.txt

     文件          2  2009-06-23 21:39  罗文凤(利用栈求表达式的值)\源代码\N_REC.txt

     文件        480  2009-06-22 09:51  罗文凤(利用栈求表达式的值)\源代码\SHITIKU.txt

     文件      12926  2009-06-25 20:55  罗文凤(利用栈求表达式的值)\源代码\Stack.c

     目录          0  2009-07-15 17:11  罗文凤(利用栈求表达式的值)\源代码

     目录          0  2009-07-15 17:11  罗文凤(利用栈求表达式的值)

----------- ---------  ---------- -----  ----

               282727                    9


评论

共有 条评论

相关资源