# paper **Repository Path**: feng7777/paper ## Basic Information - **Project Name**: paper - **Description**: 中小学数学卷子自动生成程序 - **Primary Language**: C++ - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2021-09-25 - **Last Updated**: 2021-10-07 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # paper #### 作者 软件1902冯若轩 #### 介绍 中小学数学卷子自动生成程序 #### 使用方法 1、在登录界面,输入用户名和密码,两者之间用空格隔开。若账号密码正确则登录成功,否则提示“请输入正确的用户名、密码”,重新输入用户名、密码,直到登录成功或退出程序。 2、登录成功后,系统提示“准备生成XX数学题目,请输入生成题目数量(输入-1将退出当前用户,重新登录):”,XX为小学、初中和高中三个选项中的一个。题目数量的有效输入范围是“10-30”(含10,30,或-1退出登录)。输入所需出的卷子的题目数量,系统默认将根据账号类型进行出题。每道题目的操作数在1-5个之间,操作数取值范围为1-100。 3、同一个老师账户的卷子中的题目保证不会与以前的已生成的卷子中的题目重复。 4、每次生成完试卷后会提示“是否需要切换试卷类型,若需要,请输入“切换为XX”,XX为小学、初中和高中三个选项中的一个;否则,请输入“否”:”。输入项不符合要求时,程序控制台提示“请输入小学、初中和高中三个选项中的一个”,并将再次输入,直到输入项符合要求为止。输入正确后,试卷类型将切换至修改后的类型,系统提示“准备生成XX数学题目,请输入生成题目数量”,用户输入所需出的卷子的题目数量,系统新设置的类型进行出题。 5、生成的题目将以“年-月-日-时-分-秒.txt”的形式保存,每个账号一个文件夹。每道题目有题号,题号和题目之间用“、”隔开,每两题之间空一行。 #### 试卷样式 1、小学试卷中只出现’+‘、‘-’、’*‘、’/’和括号,操作数数量为2-5个,操作数大于2的每题有50%的几率出现括号。若括号起始于第一个操作数前,则该括号一定会在最后一个数之前的数后结尾,即一定不存在括住整个式子的括号。 2、中学试卷中除出现 ’+‘、‘-’、’*‘、’/’和括号外,还会出现'√'(开根号)和'^2'(平方),操作数数量为1-5个。开根号和平方符号的数量至少为1,至多为操作数数量,出现的概率相同。每一个数最多进行一次开根号或平方计算,且不会同时进行。括号的规定同1。 3、高中试卷中除出现 ’+‘、‘-’、’*‘、’/’、'√'、'^2'和括号外,还会出现sin、cos和tan,操作数数量为1-5个。sin、cos和tan的数量至少为1,至多为操作数数量,出现的概率相同。每一个数最多进行一次sin、cos或tan计算,且不会同时进行。其余没有进行sin、cos或tan计算的操作数,各有50%的几率进行一次开根号或平方计算,且这二者概率相同。括号的规定同1。 #### 代码结构 本软件源代码中: teacher.h和teacher.cc是教师用户类及试卷生成相关函数的声明与定义 file_and_io.h和file_and_io.cc是文件读写及命令行I/O相关处理函数的声明与定义 database.h和database.cc是保存账号信息的数据库的声明和定义 main.cc为主程序代码 #### 使用说明(重要) 1、请运行paper.exe打开该程序。 2、若使用vscode查看、编译源码,请根据您的调试器和编译器所在地址修改.vscode文件夹中launch.json中的"miDebuggerPath"项和tasks.json中的"command"和"cwd"项。按下ctrl+f5即可进行编译与运行。 3、本程序代码为UTF-8编码,而windows命令行默认的编码方式为GBK,为防止中文乱码,请使用g++编译时添加-fexec-charset=GBK附加项。推荐直接使用vscode编译,编译前请确认tasks.json中"args"项中含有"-fexec-charset=GBK"(已添加,只要没有进行过修改就不需要手动添加)。 4、本程序代码使用vscode的Google格式。