资源简介
利用栈设计一个“小学生算术四则运算能力测试系统”,系统可模仿老师给学生布置和批改作业,并能记录学生的历史成绩,以检测学生的学习效果。
功能要求及说明:
系统要求实现以下的操作:
(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
相关资源
- vs2010下c语言编写c/s socket 文件内容传
- 图书信息管理系统 c++
- windows 64位redis2.6 API C++库和头文件
- 基于Qt的直升机运行
- VC/MFC 布局类
- MFC 动态数据显示控件
- Joseph C++代码
- 电梯仿真系统C++
- C++经典实例代码89434
- PSO算法C++实现
- C++编写图书管理类
- 模拟银行业务系统C++实现
- 一个好用的C++编写的websocket服务端d
- C++ STL库函数总结纯手打,主要偏向
- 自考 C++程序设计历年真题 附答案
- C++动态规划求解TSP问题备忘录方法
- 记账软件源代码——自己编的C++实现
- 循环码的C++实现
- 斗地主MFC源代码
- 使用动态优先权的进程调度算法的模
- 华为和google的C++编码规范
- 读取串口数据并画实时曲线的VC++程序
- sqlite3 C++访问
- WebBench(c++版本)
- C++ 3D 五子棋 opengl
- 特洛伊木马(C/C++)
- C++二级考试试题含答案和解析
- C++获取电脑MAC/CPU/BIOS/硬盘等硬件信息
- Wolfe Powell 最优化方法 C++ 程序
- 序列比对打分矩阵C++(实验报告+源程
评论
共有 条评论