中小学出题代码分析

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

题目:

用户:

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

功能:

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

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

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

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

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

代码分析:

优点:

一、实现了题目要求登录,切换,出题以及生成文件的基本功能

二、总体的结构比较清晰。

1.账号信息,运算符等分别用字符串数组存储

2.小学、初中和高中的出题分别用不同函数实现,各个模块条理比较清晰。在不同年级出题时分别调用各自的函数即可。

三、语句书写符合规范要求;

四、在功能的实现方面比较灵活,在登录状态下可以先进行切换然后再进行出题操作,流程比较清晰。

五、代码的交互性不错,在每一步都有提示,通俗易懂,易于操作。

缺点:

1、 不同阶段的出题函数存在比较多的重复部分,可以考虑将重复的部分也用函数来实现。

2、 在括号的生成方面考虑还不够全面,会存在一些不需要括号却生成了括号的情况。

3、 由于使用了循环,所以会一直在出题与切换之间转换,可以考虑新增一个退出的功能。

原文地址:https://www.cnblogs.com/wzq-567/p/11553131.html

时间: 2024-08-27 14:44:20

中小学出题代码分析的相关文章

中小学题目生成项目结对编程代码分析

此篇博客是对杨同学的个人项目“中小学数学卷子自动生成程序”的代码分析. 完成自己的个人项目之后再来看杨同学的项目,会比较容易看出他人程序与自己程序的不同之处. 优点: 由于感觉自己的程序最不足的地方在于括号的添加,所以首先关注杨同学题目中的括号是怎么生成的. 我的括号是在算式生成的过程中随机添加的,导致只能生成括号内括号,而不能生成两个相互独立的括. 类似下图 而对方的代码是在算式生成之后添加的括号, 如下图 并给算式中的每个数字左右两边分别建了两个数组来记录括号的个数,这样就解决了我没有实现的

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

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

结对队友个人项目代码分析

项目要求 项目名称:中小学数学卷子自动生成程序 用户: 小学.初中和高中数学老师. 功能: 1.命令行输入用户名和密码,两者之间用空格隔开(程序预设小学.初中和高中各三个账号,具体见附表),如果用户名和密码都正确,将根据账户类型显示"当前选择为XX出题",XX为小学.初中和高中三个选项中的一个.否则提示"请输入正确的用户名.密码",重新输入用户名.密码: 2.登录后,系统提示"准备生成XX数学题目,请输入生成题目数量:",XX为小学.初中和高中三

个人项目代码分析

需求分析: 该个人项目基本完成项目要求,可以随机出题,出卷查重功能都有; 代码分析: 优点: 1.逻辑清晰有条理,代码整体风格简洁明了,没有让人有太多的困惑; 2.合理的使用了goto语句,使得代码变得更简洁; 缺点: 1.代码不够结构化,没有使用面向对象的思维;没有将数据与方法归类进行封装,这样在移植代码或升级代码时往往会遇到难以预料的麻烦; 2.方法体内部内容过于庞大,一个函数方法里实现的功能太多,这样代码的维护和升级过于麻烦,可以分化各个功能为不同方法,这样整个结构会更清晰; 优化建议:

java代码分析及分析工具

java代码分析及分析工具 一个项目从搭建开始,开发的初期往往思路比较清晰,代码也比较清晰.随着时间的推移,业务越来越复杂.代码也就面临着耦合,冗余,甚至杂乱,到最后谁都不敢碰. 作为一个互联网电子商务网站的业务支撑系统,业务复杂不言而喻.从09年开始一直沿用到现在,中间代码经过了多少人的手,留下了多少的坑,已经记不清楚了,谁也说不清了. 代码的维护成本越来越高.代码已经急需做调整和改善.最近项目组专门设立了一个小组,利用业余时间做代码分析的工作,目标对核心代码进行分析并进行设计重构. 代码分析

Java静态代码分析工具Infer

Java静态代码分析工具Infer 作者:chszs,转载需注明.博客主页:http://blog.csdn.net/chszs 一.Infer介绍 Infer是Facebook最新开源的静态程序分析工具,用于在发布移动应用之前对代码进行分析,找出潜在的问题.目前Facebook使用此工具分析Facebook的App,包括Android.iOS.Facebook Messenger和Instagram等. Facebook称该工具帮助其每个月检查出应用潜在的数百个Bug,例如一些空指针访问.资源

$*和[email protected]之间区别代码分析

#!/bin/bash set 'apple pie' pears peaches for i in $*           /*单引号被去掉,循环单个字符输出*/ do echo $i done [[email protected] Ex_14.02-14.31]# sh 14-14-1 apple pie pears peaches -------------------------------------------------------------- #!/bin/bash set

《linux 内核完全剖析》 keyboard.S 部分代码分析(key_map)

keyboard.S 部分代码分析(key_map) keyboard中间有这么一段,我一开始没看明白,究竟啥意思 key_map: .byte 0,27 .ascii "1234567890-=" .byte 127,9 .ascii "qwertyuiop[]" .byte 13,0 .ascii "asdfghjkl;'" .byte '`,0 .ascii "\\zxcvbnm,./" .byte 0,'*,0,32

20145234黄斐《网络对抗技术》实验四,恶意代码分析

恶意代码 概述 恶意代码是指故意编制或设置的.对网络或系统会产生威胁或潜在威胁的计算机代码.最常见的恶意代码有计算机病毒(简称病毒).特洛伊木马(简称木马).计算机蠕虫(简称蠕虫).后门.逻辑炸弹等. 特征: 恶意的目的,获取靶机权限.用户隐私等 本身是计算机程序,可以执行,并作用于靶机 通过执行发生作用,一般来说不运行是没问题的 恶意代码分析 在大多数情况下,进行恶意代码分析时,我们将只有恶意代码的可执行文件本身,而这些文件并不是我们人类可读的.为了了解这些文件的意义,你需要使用各种工具和技巧