中小学数学卷子自动生成程序分析

结对编程对方个人项目分析

个人项目:中小学数学卷子自动生成程序

用户:小学、初中和高中数学老师。

功能:

1、命令行输入用户名和密码,两者之间用空格隔开(程序预设小学、初中和高中各三个账号,具体见附表),如果用户名和密码都正确,将根据账户类型显示“当前选择为XX出题”,XX为小学、初中和高中三个选项中的一个。否则提示“请输入正确的用户名、密码”,重新输入用户名、密码;

2、登录后,系统提示“准备生成XX数学题目,请输入生成题目数量(输入-1将退出当前用户,重新登录):”,XX为小学、初中和高中三个选项中的一个,用户输入所需出的卷子的题目数量,系统默认将根据账号类型进行出题。每道题目的操作数在1-5个之间,操作数取值范围为1-100;

3、题目数量的有效输入范围是“10-30”(含10,30,或-1退出登录),程序根据输入的题目数量生成符合小学、初中和高中难度的题目的卷子(具体要求见附表)。同一个老师的卷子中的题目不能与以前的已生成的卷子中的题目重复(以指定文件夹下存在的文件为准,见5);

4、在登录状态下,如果用户需要切换类型选项,命令行输入“切换为XX”,XX为小学、初中和高中三个选项中的一个,输入项不符合要求时,程序控制台提示“请输入小学、初中和高中三个选项中的一个”;输入正确后,显示“”系统提示“准备生成XX数学题目,请输入生成题目数量”,用户输入所需出的卷子的题目数量,系统新设置的类型进行出题;

5、生成的题目将以“年-月-日-时-分-秒.txt”的形式保存,每个账号一个文件夹。每道题目有题号,每题之间空一行;

6、个人项目9月17日早上8点以前提交至各自负责的助教处。提交方式:工程文件打包,压缩包名为“几班+姓名.rar”。

附表-1:账户、密码


账户类型


账户


密码


备注


小学


张三1


123


张三2


123


张三3


123


初中


李四1


123


李四2


123


李四3


123


高中


王五1


123


王五2


123


王五3


123

附表-2:小学、初中、高中题目难度要求


小学


初中


高中


难度要求


+,-,*./


平方,开根号


sin,cos,tan


备注


只能有+,-,*./和()


题目中至少有一个平方或开根号的运算符


题目中至少有一个sin,cos或tan的运算符

代码组成:四个.h文件,一个c文件

各部分功能:

Cin.h:用于调用其他三个.h文件,负责用户登录界面信息的打印

Xiao.h:用于出小学难度的题目

Chu.h:用于出初中难度的题目

Gao.h:用于出高中难度的题目

主.c:用于调用cin.h并执行整个代码

函数功能:

User():打印用户界面,调用三个不同难度的出题函数

Ti_1():打印小学难度的题目

Ti_2():打印初中难度的题目

Ti_3():打印高中难度的题目

主要代码分析:

1.打印导出:

此部分用以将输出的内容导入到以系统时间命名的txt文本中,并将该文本放置到当前位置相应的用户文件夹中,如果没有则会生成一个以该用户命名的文件夹

2.用户登录:

通过将输入的用户名一个一个核对以及对密码的核对,判断输入是否正确,通过continue在输入错误时进行重新输入;打印一个界面让用户可以选择下一步操作,重新登录或者切换难度或者生成题目

3.题目打印

采用循环打印,j为题目数量,x为随机在1-5之间的操作数的数目

符号打印:

通过随机函数rand生成随机数c去选择计算方式以及运算符

数字打印:

(rand()%100)+1,每个数都为1-100的随机数

括号打印:

打印括号采取对应打印,在第一个数字打印前选择是否打印左括号,并且限制打印总数,最多打印操作数-1个括号,当打印左括号时,ss数组储存一个需要打印的右括号的位置,在打印计算符号前判断当前位置是否打印一个右括号;

整体按顺序打印,每一个循环结束即打印一道题

优点:

代码结构清晰,操作简洁明了,没有过多多余操作,不会出现死循环等情况

缺点:

判断操作较为费时,还有和多整合空间,括号打印有一定缺陷,无法在最后一个数的右边生成括号,也可能生成一个括号括住一个数字,变量较多,注释较少,有待改进。

原文地址:https://www.cnblogs.com/wqy233/p/11553141.html

时间: 2024-08-30 14:29:33

中小学数学卷子自动生成程序分析的相关文章

中小学数学卷子自动生成程序分析 个人项目

每个人都弄了一个个人项目,然后结队,编程实现更多功能. 程序要求用户预设账号登录后可以选择自动生成不同数量(10-30道).不同难度(小学.初中.高中)的数学卷子到txt文本中. 通读项目需求,本次程序主要难点集中在题目严谨的数学逻辑与随机出题的结合以及出题不重复的实现. 下面简单分析一下李同学的工程编写优缺点: 优点: 文件路径使用相对路径.文件路径具有相对路径和绝对路径两种形式,而绝对路径可能会使得程序的可重用性差,使得在别的终端上不能运行,而在程序中使用相对路径则会变的有极强的适应性,包括

个人项目:中小学数学卷子自动生成程序-队友代码测评

结对编程-队友代码分析 上一周,我们完成了个人项目编程.在经过对队友代码的分析,我感触颇深,觉得非常有必要来写一篇文章分析一下队友的代码,我是用的java,而队友用的c++,以下开始正文! ------------------------------------------------------------------------------- 项目需求简述: 个人项目:中小学数学卷子自动生成程序 用户: 小学.初中和高中数学老师. 功能: 1.命令行输入用户名和密码,两者之间用空格隔开(程序

中小学数学卷子自动生成程序: 结对编程对方代码分析

需求分析: 1.命令行输入用户名和密码,两者之间用空格隔开(程序预设小学.初中和高中各三个账号,具体见附表),如果用户名和密码都正确,将根据账户类型显示“当前选择为XX出题”,XX为小学.初中和高中三个选项中的一个.否则提示“请输入正确的用户名.密码”,重新输入用户名.密码: 2.登录后,系统提示“准备生成XX数学题目,请输入生成题目数量(输入-1将退出当前用户,重新登录):”,XX为小学.初中和高中三个选项中的一个,用户输入所需出的卷子的题目数量,系统默认将根据账号类型进行出题.每道题目的操作

中小学数学卷子自动生成程序-结对编程之队友代码分析

一.编程语言:C++ 二.代码解读与分析: 1. 项目逻辑 通过输入信息与数组中存储账户信息比对完成用户登录.根据不同的类型要求生成相应类型的试卷并查重.将生成题目以指定的形式存放在指定文件夹下.过程中可切换试卷类型. 2.函数功能说明 int main():主函数负责调用各个功能函数,将各个功能模块按照项目实际的使用情况与应用逻辑结合适当的提示性信息进行组织和套用. void SetPrimary(int n):生成小学类型的试卷. void SetMiddle(int n):生成初中类型的试

中小学数学卷子自动生成程序——结对分析

在上一周的个人项目中队友用的是C++,代码运行正常,且基本实现了需求文档的要求,然后关于她的代码,我觉得有很多可以借鉴的地方,也有一些需要改进的地方. 优点: 1.总体结构很清楚,思路清晰.从登录到功能切换,从试卷生成到题目生成,以及重复性检测,每一步都有对应的函数代码,思路清晰,逻辑清楚. 2.代码的编写基本符合规范要求,且注释基本到位,可读性强.例如在前面的主要函数声明中注释很清楚地标明清楚了函数的作用,函数基本命名符合规范,可以根据名字而知其意,变量命名也基本符合规范,这一点我得向她学习.

中小学数学卷子自动生成 - 结对项目wjy的代码分析

[实现思路] 命令行输入用户名和密码,匹配试卷难度,每个类的账号只能生成当前难度下的试卷: 根据试卷难度生成题目,主要是随机生成操作数的个数,每个操作数的形式,两个操作符之间的操作符,最后是随机生成括号,因为设计题目的合理性,所以在写随机生成的时候需要考虑到各种可能的情况: 最后生成的试卷以“年-月-日-时-分-秒.txt”命名方式生成到以用户名命名的文件夹中. [函数结构] public static void main(String[] args) static void init() st

中小学数学试卷自动生成程序-对张凯翔同学代码的评价

张凯翔的优点: 面向对象编程,结构清晰,修改难度小 生成了UI界面,清晰美观 相比张惟盛的代码生成的题目更加科学,比如会在平方和开方的部分增加括号,以确保意义明确 相较于C语言,采用了更加方便的Java,调用函数以及捕获异常,确保了程度的稳定性 张凯旋的缺点: 代码习惯有点问题,杂乱且缺少注释 虽然采用了全随机生成运算符的方式,但在某些算式中也会出现无意义的括号,比如在正常的加减乘除中,第一个为乘法,已经是优先的但是还是会添加无意义的括号,有瑕疵 缺少了对同一老师的不同试卷进行题目查重的步骤,虽

结对编程——基于JAVA开发的中小学生数学试卷自动生成程序

这两个星期,我和马同学一起参与了基于个人项目的中小学生数学试卷的自动生成程序结对编程项目.结对编程的实现是基于个人编程的,不过由于我是用c++而同伴是用的PYTHON商量之后我们决定用JAVA从头开始写.原本打算使用mvc框架来完成这个项目,但是由于对其使用不够熟悉,最后还是没怎么能用上. 这次项目我负责的是前端部分,前端部分做起来还是挺麻烦的,我们使用的是java来完成这个项目,对于UI界面我们使用了jframe来编写,在项目过程中遇到几个很莫名奇妙的bug,原本是用阿里云短信服务返回的验证码

个人项目评测——中小学数学卷子生成

结对编程中双方互相审查代码是一个相互学习的过程,从对方的代码中可以学到一些想不到的新的想法.正所谓孔子说的“三人行,必有我师焉”. 优点: 1.建立一个用户类,将对用户的登录.切换.生成试卷.输出文件等操作封装到类中,具有良好的封装性和可扩展性. class User { private: string Passward; int Number; string Name; string Type; string folderPath; string Path; ofstream Paper; s