实验二结对编程—四则运算

一、问题描述

开发一个自动生成小学四则运算题目的命令行 “软件”。实现 输入你要出题的个数,随机产生四则运算,然后用户回答,并且进行打分。

规则:

1、用随机数实现100以内的加、减、乘、除运算,

2、其中和与积不能超过100,差不为负(即须大减小),

3、商不为小数或分数(即必须整除)。

4、要求总计输出10个运算式,每输出一个运算式,等待输入结果,然后进行对错判断并输出。最后输出统计答对的题数与分数

二、结对编程

本次实验为两人结对实验,所谓结对编程其实是一种敏捷软件开发的方法,两个程序员在一个计算机上共同工作。一个人输入代码,而另一个人审查他输入的每一行代码。输入代码的人称作驾驶员,审查代码的人称作观察员(或导航员)。要求两个程序员经常互换角色。在结对编程中,观察员同时考虑工作的战略性方向,提出改进的意见,或将来可能出现的问题以便处理。这样使得驾驶者可以集中全部注意力在完成当前任务的“战术”方面。观察员当作安全网和指南。结对编程对开发程序有很多好处。比如增加纪律性,写出更好的代码等。

简单来说就是要求两个人一组,共同完成编码,完成实验要求,在结对的过程中两人互换校色。

三、讨论与交流

1、编程环境的选择

在进行程序分析和设计之前,因为个人能力以及喜好偏向的不同,就编程语言的选择进行了讨论,我的基础不太好,目前所学的所有编程语言编程环境中使用最熟就是C语言VC环境,我的partner则是更喜欢java。在对此次实验Java更好些,因为*java不会像c,c会大概率产生相同的随机数,甚至会下次运行可能会和上次一样,因此用c写需要初始化一个时钟种子,才能尽可能地保证随机数的不同,*java的random函数10万次运行都很难出现一次相同的随机数,所以random不会产生重复函数。最终选择了使用java来完成实验。

2、程序分析

程序中需要有的功能:随机数的生成、随机运算符的产生、对表达式进行求值(包括加法运算、减法运算,分数的运算。乘方的运算)、判断结果对错。

2、扩展方向
我们选择的扩展方向是图形界面程序,增加倒计时功能、历史记录功能。
3、分工
我的结对伙伴负责题目及答案生成、避免重复,我负责图形界面、用户输入及判定对错、倒计时。

四、程序的设计

 由一个主函数和五个子函数构成,子函数间也会相互调用。主函数中,调用生成问题的函数,然后生成问题函数调用随机函数和生成答案函数,生成答案的函数也会调用生成问题函数和辗转相除的函数。

自动生成10道100以内的2个操作数的四则运算算式(+ - * /),要求运算结果也在100以内------>实现
剔除重复算式。 2 + 3 = 和 2 + 3 = 是重复算式 2 + 3 = 和 3 + 2 = 不属于重复算式------>实现
题目数量可定制------>实现
相关参数可控------>实现
是否包含乘法和除法
操作数数值范围可控(如操作数 在100以内 还是1000以内)
操作数是否含负数
生成的运算题存储到外部文件result.txt中------->实现

下周将对代码进行具体的编写

posted @ 2020-03-22 22:43  谢林林  阅读(219)  评论(0编辑  收藏  举报