• 大小: 7KB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2021-05-20
  • 语言: C/C++
  • 标签: c++  VS2010  

资源简介

利用栈设计一个“小学生算术四则运算能力测试系统”,系统可模仿老师给学生布置和批改作业,并能记录学生的历史成绩,以检测学生的学习效果。 功能要求及说明: 系统要求实现以下的操作: (1)为学生出题。题目可包含的运算符号有:+,-,*,%, (, ),参与运算的数值范围可由学生自动选择难易程度,初级:可计算个位数的算术运算;中级:可计算多位数的算术运算;高级:可计算小数和负数的算术运算。 (2)学生做题后为学生评阅。评阅结果为“正确,很好”或“错误,重做?换题?”; (3)为学生保留测试的历史成绩记录,并可根据需要显示历史成绩; (4)根据难易程度,分别建立试题库,以文件的形式保存;

资源截图

代码片段和文件信息

#include “Calculation.h“


using namespace std;



Calculation::Calculation(void)
{
}


Calculation::~Calculation(void)
{
}
void Calculation::Read_expression(string expressionCode)//输入表达式函数的实现
{
this->expressionCode = expressionCode;
expression .assign(expressionCode 2 100);
Calculationexpressions();
}

char Calculation::ComparePriority(char Operator_Achar Operator_B)//判断前运算符a和当前运算符B的优先级
{
if( ‘+‘ == Operator_A || ‘-‘ == Operator_A)
{
switch (Operator_B)
{
case ‘+‘:
return ‘>‘;
case ‘-‘:
return ‘>‘;
case ‘*‘:
return ‘<‘;
case ‘/‘:
return ‘<‘;
case ‘%‘:
return ‘<‘;
case ‘(‘:
return ‘<‘;
case ‘)‘:
return ‘>‘;
case ‘#‘:
return ‘>‘;
default :;
}
}
else if( ‘*‘ == Operator_A || ‘/‘ == Operator_A || ‘%‘ == Operator_A)
{
switch (Operator_B)
{
case ‘+‘:
return ‘>‘;
case ‘-‘:
return ‘>‘;
case ‘*‘:
return ‘>‘;
case ‘/‘:
return ‘>‘;
case ‘%‘:
return ‘>‘;
case ‘(‘:
return ‘<‘;
case ‘)‘:
return ‘>‘;
case ‘#‘:
return ‘>‘;
default :;
}
}
else if( ‘(‘ == Operator_A )
{
switch (Operator_B)
{
case ‘+‘:
return ‘<‘;
case ‘-‘:
return ‘<‘;
case ‘*‘:
return ‘<‘;
case ‘/‘:
return ‘<‘;
case ‘%‘:
return ‘<‘;
case ‘(‘:
return ‘<‘;
case ‘)‘:
return ‘=‘;
default :;
}
}
else if( ‘)‘ == Operator_A )
{
switch (Operator_B)
{
case ‘+‘:
return ‘>‘;
case ‘-‘:
return ‘>‘;
case ‘*‘:
return ‘>‘;
case ‘/‘:
return ‘>‘;
case ‘%‘:
return ‘>‘;
case ‘)‘:
return ‘>‘;
case ‘#‘:
return ‘>‘;
default :;
}
}
else if( ‘#‘ == Operator_A )
{
switch (Operator_B)
{
case ‘+‘:
return ‘<‘;
case ‘-‘:
return ‘<‘;
case ‘*‘:
return ‘<‘;
case ‘/‘:
return ‘<‘;
case ‘%‘:
return ‘<‘;
case ‘(‘:
return ‘<‘;
case ‘#‘:
return ‘=‘;
default :
;
}
}
}

void Calculation::Computng()
{
int Priority;
int a = 0;
int f = 0;

Priority = ComparePriority( Operators[Top_Operators] expression[Current_Character_Of_expression]);
switch (Priority)
{
case ‘>‘:
switch (Operators[Top_Operators])
{
case ‘+‘:
Pure_Digital[No_Of_Pure_Digital-1] =  Pure_Digital[No_Of_Pure_Digital-1] + Pure_Digital[No_Of_Pure_Digital];
Pure_Digital[No_Of_Pure_Digital] = 0;
No_Of_Pure_Digital--;
break;
case ‘-‘:
Pure_Digital[No_Of_Pure_Digital-1] =  Pure_Digital[No_Of_Pure_Digital-1] - Pure_Digital[No_Of_Pure_Digital];
Pure_Digital[No_Of_Pure_Digital] = 0;
No_Of_Pure_Digital--;
break;
case ‘*‘:
Pure_Digital[No_Of_Pure_Digital-1] =  Pure_Digital[No_Of_Pure_Digital-1] * Pure_Digital[No_Of_Pure_Digital];
Pure_Digital[No_Of_Pure_Digital] = 0;
No_Of_Pure_Digital--;
break;
case ‘/‘:
Pure_Digital[No_Of_Pure_Digital-1] =  Pure_Digital[No_Of_Pure_Digital-1] / Pure_Digital[No_Of_Pure_Digital];

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     文件        8637  2013-11-12 15:37  Calculation.cpp
     文件        1092  2013-11-12 13:02  Calculation.h
     文件        6444  2013-11-12 12:44  History.cpp
     文件         610  2013-11-12 13:02  History.h
     文件        1707  2013-11-06 21:49  QuestionDatabase.cpp
     文件         450  2013-11-12 13:02  QuestionDatabase.h
     文件        2725  2013-11-12 13:03  Text_of_Arithmetic.cpp
     文件         354  2013-11-12 13:02  Text_of_Arithmetic.h

评论

共有 条评论