资源简介
利用栈设计一个“小学生算术四则运算能力测试系统”,系统可模仿老师给学生布置和批改作业,并能记录学生的历史成绩,以检测学生的学习效果。
功能要求及说明:
系统要求实现以下的操作:
(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 QuestionDataba
文件 450 2013-11-12 13:02 QuestionDataba
文件 2725 2013-11-12 13:03 Text_of_Arithmetic.cpp
文件 354 2013-11-12 13:02 Text_of_Arithmetic.h
相关资源
- 国际象棋的qt源代码
- C++中头文件与源文件的作用详解
- C++多线程网络编程Socket
- VC++ 多线程文件读写操作
- 利用C++哈希表的方法实现电话号码查
- 移木块游戏,可以自编自玩,vc6.0编写
- C++纯文字DOS超小RPG游戏
- VC++MFC小游戏实例教程(实例)+MFC类库
- c语言小学生自然数四则运算测试程序
- 连铸温度场计算程序(C++)
- 6自由度机器人运动学正反解C++程序
- Em算法(使用C++编写)
- libstdc++-4.4.7-4.el6.i686.rpm
- VC++实现CMD命令执行与获得返回信息
- 白话C++(全)
- C++标准库第1、2
- 大数类c++大数类
- C++语言编写串口调试助手
- c++素数筛选法
- C++ mqtt 用法
- 商品库存管理系统 C++ MFC
- c++ 多功能计算器
- C++17 In Detail
- 嵌入式QtC++编程课件
- 颜色识别形状识别STM103嵌入式代码
- c++ 邮件多附件群发
- c++ 透明代理(hookproxy)
- mfc 调用redis
- FTP客户端源码(c++)
- c++ 画图(14Qt-XPS)
评论
共有 条评论