【结对编程-基于C++分析队友代码】中小学数学卷子自动生成程序

发布时间 2023-09-19 11:33:00作者: 残念です

【结对编程-基于C++分析队友代码】中小学数学卷子自动生成程序

目录

【结对编程-基于C++分析队友代码】中小学数学卷子自动生成程序 1

基本功能实现 1

一、主要内容 1

二、题目要求 1

三、运行效果 2

代码分析: 4

一、总体分析: 4

二、代码格式规范: 4

三、优缺点分析: 6

基本功能实现

一、主要内容

认真学习和阅读同伴的代码,分析优劣。

二、题目要求

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

用户:

小学、初中和高中数学老师。

功能:

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日晚上10点以前提交至创新课程管理系统。提交方式:工程文件打包,压缩包名为“几班+姓名.rar”。迟交2天及以内者扣分,每天扣20%。迟交2天及以上者0分。

三、运行效果

打开中小学生卷子自动生成程序,进入登录界面,界面如下图所示:

输入错误的账号或者密码后,程序显示:

按任意键后返回主页面。

直到输入正确的账号和密码后得以登录个人主页:

如果输入错误则显示:

输入正确后进入出题页面:

输入【10,30】以外的数据会显示错误:

输入正确后即可完成出题。

可以看到在输入10后文件“张三1”中出现了一个按时间格式保存的试卷以及用于查重的总文件;

点开文件可以看到已经完成出题:

优缺点分析:

优点:

  1. 界面简洁,作者善于使用windows的清屏功能,使得界面不会出现很多杂乱的信息,让使用者眼花缭乱。
  2. 其次生成的文件注明了序号,一目了然。

缺点:

  1. 生成的初中,高中题目使用根号,平方以及三角函数的时候没有括号会使其出现歧义。
  2. 在出题的时候,并没有给出明确的出题数量的范围,并且在输入错误后也没有进一步强调,使用者会感到很疑惑。
  3. 太过于频繁使用清屏功能,在输入错误后并不知道上次的输入,导致容易多次错误。

代码分析:

一、总体分析:

我的partner非常了解C++中的代码规范原则,所以除一个main函数以外,又创建了许多头文件去实现各种功能,一个教师类和三个出题类保证了各个类间各司其职,今后代码扩建也更加轻松。避免了一些函数无用的复用。

二、代码格式规范:

Main函数

Function.h

Loading.h

Question.h

teacher.h

UserInterface.h

代码格式规范,注释功能清晰,函数名称能够反应功能,函数封装处理完美,分离做的很好。

三、优缺点分析:

优点:

1、语句书写规范,命名规范,注释简洁,代码块之间逻辑关系清晰,增强可读性、易维护性,减少有经验和无经验开发人员编程所需的脑力工作。

2、文件的生成与使用十分熟练,用了一个“基础路径”,帮助使用者可以方便的使用程序

缺点:

  1. 某些函数中一些变量名后没有注释,导致难以读懂代码。
  2. 可以将一些公共的局部变量变成全局变量,减少变量数和代码量。
  3. 多考虑用户使用的便利性,从用户角度出发设计程序。