结对编程代码分析

  首先声明一下题目要求:中小学数学卷子自动生成程序。

  提前已经设定好了一组用户数据,保存在了data.txt文档中,每个用户有自己的三个数据,账号,密码,对应的年级。输入账号和密码,若在data.txt中有此用户,则会在提醒用户输入生成题目数量。在题目数量输入完成后,会按照要求生成对应年级的数学公式,并为每一个账户创建一个文件夹,将生成的公式储存在以当前时间命名的txt文件中。例如18-9-25-10-30-59.txt,每次都会生成一个新的txt文件,文件生成后,可以将这个用户的年级切换到其他年级,并会再次要求生成题目数量,随后生成,和上述类似,这里不再重复。

  小学题目

    要求:只能有+,-,*./和(),每道题操作数个数1-5,操作数大小1-100,题目输入数量1-30。

    我的结对编程合作者根据最多5个操作数入手,提前随机生成了5个1-100范围内的整型数据,之后,他根据操作数的个数,列举出了所有在已知操作数个数的情况下的括号可能存在的所有情况。如下:

  switch(rand()%4){

  case 0:

  outfile<<num1<<" ";
  User();
  outfile<<num2<<" "<<"="<<endl;
  break;
  case 1:

  (后面的的代码过长,就不显示了)至于运算符随机后case就行了。

  初中题目

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

    其实和小学实现差不多,多了一个对操作数的操作,他的函数里switch(rand()%3),随机3种情况,第一种,返回^2,第二种,返回^0.5,第三种,返回本身。其余的仍按照小学的来做。

   高中题目

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

    好吧,其实初中和高中的差别并不大,同样的道理,同样的方法,同样的操作,更改一下里面的操作符和数学运算,高中的就搞定了。

   总的要求:检查生成的题目,避免题目与本账号文件夹下的其他txt文档的内容重复。

    没实现。

  总的来看一下,他用的方法很简单,列举出所有的情况,一条一条的写就行了,看起来不是很高大上,但是很实用。我被()的放置折磨了好久,可就是没想到这种方法。但是很显然,缺点也是有的,这个程序的拓展性并不好。在操作数为1-5个的情况下还可以列举出来所有的括号,但是如果操作数的数量增加到了10个了呢?难道还是一一列举吗?当然不行,不过在题目要求的前提下,他的方法确实是我所见到的做好的。

原文地址:https://www.cnblogs.com/ant-jia/p/9709184.html

时间: 2024-10-09 20:24:22

结对编程代码分析的相关文章

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

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

结对编程代码互评

不到一周的时间里我们完成了个人项目的编程,学习的同时发现了一些问题. 我用的是java,队友用的是c++,语言不同,存在的问题却都差不多,当然,优点也是有的嘛 代码优点: 1.结构清晰,将工程分为多个模块进行处理,单独将题目难度的处理,与随机分开,以三个函数的形式分割了需求的不同,同时将随机进行了统一处理.2.利用了结构体对账户进行处理,形成了类似数据库的处理,方便了后来用户的添加与删除.3.储存空间的节省,同时保证结构清晰,代码将文件创建与文件夹创建合成一个步骤,用户出题才会创建文件夹,节省了

结对编程 代码复审

我的partner是一个做事很认真的同学,从他的作业中可以看出他花了很大的心思.他的程序思路清晰,很好理解,复审他的代码是相对快乐的一件事.他的程序代码结构比较清晰,运行速度很快,能完成基本的命令请求,是个不错的程序.但是也存在几个需要改进的地方:1.不能处理中文目录.2.交互方式不符合规定的要求.3.不能将h,cpp,cs,txt文件全部统计,只能统计某一类文件.

j结队编程代码分析

首先看运行结果: 优点: (1) 思路清晰,在代码里用到了很多的函数,这些函数能够使人比较绒内衣清楚他的思路. (2) 代码简洁,没有过多的重复的代码片段,这也是使用多个函数的原因. (3) 程序实现了大部分题目要求. 缺点; (1) 在程序刚运行时如果给出提示输入用户名和密码会更好. (2) 在一些变量的定义中,如果能在后面注释是什么意思,干什么用的会让人更容易看懂代码. (3) 在输出题目时没有在行首输出题目的序号. 收获: 在以审查的目光去看别人的程序代码时,会有着很不同的感觉.会拿着别人

结队编程总结分析

结对编程总结分析 一.项目要求 1.在个人项目的基础上,实现带UI的小初高数学学习软件. 二.实现过程 1.和队友花了些时间谈论大体框架(草稿,有点丑)和大概功能. 2.我们封装了一些常用的Swing组件,需要调用时传入参数,调用即可,很方便. 例如按钮类: 3.把界面大概的搭起来,前前后后大概20个界面. 4.内部代码的实现,把一些界面的操作,其中生成问题用的是原个人项目的问题生成. 5.把代码和界面链接起来(其实做好一个内部代码,就搭一个). 6.测试,我们都测试了好多次,检验无错误后就算结

中小学生试卷自动生成程序--jialin大佬代码分析

结对编程代码评价 有幸和小jialin结对编程.拿到jialin的代码后. 我先是尝试用idea运行.结果报了如下错误. 无法加载主类,再尝试用eclipse运行. 好的,可以运行,那为什么用idea跑不了呢? 度娘了一下,发现是环境变量设置的问题. 接下来步入正题,开始看代码. 打开工程,发现在只有一个class文件,头大,这样的架构肯定不够好.一个一个函数看下来吧. 第一个函数是 CheckNameAndPassword(),用于检测账号密码是否正确 boolean CheckNameAnd

结对编程:队友代码分析

按照结对编程要求,对队友的代码进行分析.在代码中发现的问题可以提醒队友或者警示自己. 优点: 一.代码以外: 1.使用语言为Python,比起JAVA和C++方便许多,而且实现许多功能也方便许多,可以说是从开始就为拓展打好了基础.事实上也的确因为这点,我们选用了他的代码作为核心 2.文件按功能分为几个文件,命名为CreatSymbol.CreatFirst.CreatSecond.CreatThird.Test.各个函数位置明确,命名规范 3.注释详细且明确.文件/函数的开头都有注释,各关键部分

结对编程队友代码分析

这次结对编程的队友是可熊,感谢可熊不嫌弃我这个鶸,,和我组队 通过分析可熊的代码,深刻体会到了自己代码的不规范以及代码可延展性的缺失 比如using namespace std; ,这一行代码虽然自己写的时候很方便,但没有考虑到别人的编程习惯,某些工程代码里会出现以关键字做变量名的情况,这样写会不兼容 所以要用cin,cout作为标准输入输出应该如下面代码: int x; std::cin >> x ; std::cout << x << std::endl; 或者像这

结对编程学习-对梁同学的代码分析评价

本篇博文主要是对我的结对编程伙伴梁同学的代码进行分析,分析别人的代码对我来说是一种挑战,但在分析与总结中或许能找到逐渐变强的关键. 从main函数开始,着实震惊到了我,一个无限循环,一个初始化函数,最后输出一个字符串.三行便结束了main函数.由此观之,梁同学的代码模块化做得很好. 再看初始化函数,发现他将用户名与密码都用数组存储了起来,管理相对方便,有了些数据库的感觉,判断能否登陆的逻辑很清晰,字符提示也很到位. 然后是一个选择函数.这是我很看好的一个函数,通过这个函数将几种可能或者说分支都提