基于QT的四则运算生成软件


前置说明

  • This is a big assignment for NJUPT algorithm and data structure programming week.
  • The address of “Result.txt” file has been changed to Disk D.
  • This program is based on QC 4.11.0 and QT 5.14.

Github链接

源码地址

功能介绍

(1)UI模块

​ UI模块采用基于C++的QT软件进行设计,实现开始、答题和结束三大界面。其中答题界面使用QWidget模块进行页面切换,一个页面代表一种题型,对各题型中的每道题则对文本框的内容进行切换显示。

​ 利用QT信号与槽的功能,实现几个按钮的功能如下:

void on_Start_clicked();//开始按钮,负责用户提交题目生成请求和提交答案请求

void on_Next_clicked();//下一题按钮,负责用户切题

void on_Previous_clicked();//上一题按钮,负责用户切题

void on_Return_clicked();//返回按钮,负责结束后用户查看结果

UI美化:针对QSlider进行样式美化,对整体背景使用纯白渐变效果,对开始按钮使用加红渐变美化,对切题按钮使用渐变、停留变色美化,整体观感更加和谐美观。

(2)随机表达式生成模块

针对整体框架,设计五大Generate函数和numcreate、numcreate2两大随机数生成函数,各函数解释如下:

float numcreate();//利用C++11 random_device标准库生成超大真随机数

void numcreate2();//将超大随机数根据nummax控制大小,根据shuliang选择产生的运算数并将对应好大小的随机数存入float数组以待使用

std::string Generate1();//小数(可选)

std::string Generate2();//小数(可选)+负数

std::string Generate3();//小数(可选)+括号

std::string Generate4();//小数(可选)+负数+括号

std::string Generate5(std::string str);//去掉字符串里的小数

(3)存储答案模块

各存储功能介绍如下:

float num[1000];//存储随机给出的运算数(若为非小数则表示为.000000在Generate5函数中会进行去0处理)

int shuliang;//运算数

int nummax;//10\100\1000以内的运算

int choose_decimal;//是否选择小数

int judge_negative;//是否选择负数

int judge_brackets;//是否选择括号

std::string Caculate_str;//存储最终需要计算的字符串表达式

int choose_number;//选择题数量

int judge_number;//判断题数量

int fill_number;//填空题数量

double result_num;//计算结果

int Over;//判结束状态,一旦结束将会在前面给出正确答案

std::vector<std::string>All_calculation;//存放所有表达式

std::vector<double>All_right_ans;//所有正确答案

std::vector<double>All_user_ans;//所有用户答案

std::vector<int>All_choose_ans;//所有选择的位置,用于随机生成ABC答案

std::vector<int>All_judge_ans;//所有判断的位置(12),用于随机生成对错答案

int current_position;//设置为当前题目所在位置,这个参数可以控制QWidget计算界面里三种题型的切换

std::vector<int>state;//设置作答状态(01),用于判断是否要将已答过的题再次显示给用户看

​ 在最后计算得分时,直接看所有用户答案和所有正确答案的匹配情况。

(4)字符串表达式计算模块

利用堆栈的思想,将中缀表达式转成后缀表达式,核心代码如下:

double Cal_result(string str)

{

format(str);

string temp;

convert(str, temp);//求后缀表达式

return calculate(temp);

}

四大模块协同工作。

QT缩放方法

右键我的电脑-属性–高级系统设置–环境变量–(用户变量)新建
变量名:QT_SCALE_FACTOR
变量值:1 或 1.25 或 1.5(对应界面放大程度,可以都试试)
设置后一路点确定,出来。
重新打开Qt Creator,看看哪种界面大小是你想要的


文章作者: Alex Lee
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Alex Lee !
评论
  目录