20194670自动生成四则运算题第一版报告

一、需求分析

数学的学习伴随着每个学生的整个学生时代,小学数学的学习尤为关键,小学数学学习的好坏直接影响到后续对于数学的学习。
四则运算,是数学学习的基础,所以在孩子学习四则运算的阶段,家长们普遍都会给自己的孩子设计大量的习题进行练习。但由于大部分家长工作很忙,回到家还要做家务等琐事,设计四则运算的练习题以及判断孩子的运算结果则显得很费时间。所以,一款根据家长的需求,使用计算机来生成随机的四则运算习题,就帮助家长们解决了一个很大的难题。

二、功能设计

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

三、设计实现

本c语言程序一共包含四个函数。
main():主函数,作为程序的入口。在主函数中,根据用户选择,进行调用naomal()和set()两个函数。
normal():实现程序的基本功能,即出10道运算结果在100以内的,包含加减乘除的四则运算式。
set():设置函数,可以对一些参数进行设置。可设置出题的总数、结果的范围、是否包含乘除法。在该函数内设置完相关参数后,调用SecKind()进行出题。
SecKind():该函数的形参接收set()传过来的参数值,根据参数值进行出题。

四、测试运行


上图为程序的首页,通过输入数字选择模式


上图为输入1之后,进入普通模式



上图为输入2之后,进入自定义模式设置参数

五、代码片段

该片段为SecKind()的部分代码,主要实现的功能是,通过形参接收set()中设置的变量,此段代码为生成不含乘除法的代码。

int SecKind(int aa,int bb,int cc)
{
	Sleep(2000);//延时2秒 
	system("cls");//清屏 
	int a=0;
	int b=0;
	int mode=0;//0:加 1:减 2:乘 3:除
	int c=0;
	int result=0;
	int score=0;
	int n;
	srand((unsigned)time( NULL ) ); //初始化随机数发生器,使得每次运行生成的随机数不同
	if(cc==0)
	{
		for(int i=0;i<aa;) //做n题 
		{
			a = rand() % 10; //生成一个0~9之间的随机数
			b = rand() % 10; //生成一个0~9之间的随机数
			mode = rand() % 2; //生成一个0~1之间的随机数,代表运算符
			printf("%d", a); //打印算式
			switch(mode) //确定运算符
			{
				case 0:printf("+ ");
				result= a + b;break;
				case 1:printf("- ");
				result= a - b;break;
				default:printf("somethingis wrong!\n");break;
			}
			printf("%d = \n", b);
	
			if(result<=bb) 
		  		i++;	
		}	
	} 
}

六、总结

对于该程序,我根据需求描述,将程序功能分为两个大功能。即普通模式和自定义模式,对于不同的功能,写出对于的函数,以实现“模块化”的要求。

七、PSP

任务内容 计划时间 实际时间
计划 10 10
需求分析 5 10
设计文档 10 8
复审文档 5 10
代码规范 3 3
具体设计 10 10
具体编码 15 25
代码复审 5 5
编译运行 2 2
测试 5 5
计算共工作量 2 2
总结 5 5
posted @ 2019-09-15 15:07  胡烙懿  阅读(173)  评论(1编辑  收藏  举报