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

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

一、需求分析:

需要为小学生生成一个可以自动生成四则运算题的小程序,并储存到外部txt文件中储存,并且需要根据不同的需求控制不同的变量。

二、 功能设计

基本功能
(1)自动生成10道100以内的2个操作数的四则运算算式(+ - * /),要求运算结果也在100以内

(2)剔除重复算式。 2 + 3 = 和 2 + 3 = 是重复算式 2 + 3 = 和3 + 2 = 不属于重复算式

(3)题目数量可定制

(4)相关参数可控制

     -  是否包含乘法和除法

     -  操作数数值范围可控(如操作数 在100以内   还是1000以内)

     -  操作数是否含负数    

(5)生成的运算题存储到外部文件result.txt中

扩展功能

能实现答案的展示

三、 设计实现

创建了以下函数

  • signal函数提供随机的运算符号
  • random函数提供随即运算操作数并控制是否有负数
  • fun函数剔除重复算式
  • result函数输出运算结果

以上函数均在主函数内被调用

并在主函数内实现了文件的创建,对运算题目及答案输出的循环,

四、测试运行

五、 粘贴自己觉得比较独特的或满意的代码片段,用博客园正确的代码控件来显示。(提示:要有必要的注释说明,提示:不要贴所有代码!不符合规定的要倒扣分)

//主题函数
	for(i=1;i<=n;i++)
	{
		a=random(x,sym);
		b=random(x,sym);
		s=signal(f);
		fun(a,s,b);
		if(result(a,s,b,r)<100)
		{
			fprintf(fp,"%d%c%d=\n",a,s,b);
			fprintf(fp1,"%.2f\n",result(a,s,b,r));
		}
		else
		continue;
}

char signal(int f)//提供随机的运算符号
{		char c[4]={'+','-','*','/'};
	if(f==2)
	{
		return c[rand()%2]; 
	}
	else if(f==4)
	{
		return c[rand()%4];
	}
	
}


//输出结果
	if(r==0)
 	printf("Thanks for your use!");
 	else 
	 {
	 switch(s)
	 {
	 	case '+':return a+b;break;
	 	case '-':return a-b;break;
	 	case '*':return a*b;break;
	 	case '/':return (double)a/b;break;
	 
	}
	if(s=='/'&&b==0)
		printf("ERROR!");
	}
//实现外部文件输出并控制输出结果范围
	FILE *fp,*fp1;
	fp=fopen("result.txt","w+");//创建文件 
	fp1=fopen("答案.txt","w+");

if(result(a,s,b,r)<100)
		{
			fprintf(fp,"%d%c%d=\n",a,s,b);
			fprintf(fp1,"%.2f\n",result(a,s,b,r));
		}
		else
		continue;

六、总结:

首先实现最基础的自动生成四则运算题算法
然后根据不同的需求增加单一函数
并通过在主函数中的调用实现函数功能
单一部分测试无误之后再进行下一模块的编辑

七、PSP

PSP2.1 任务内容 计划共完成需要的时间(min) 实际完成需要的时间(min)
Planning 计划 180 300
·       Estimate ·  估计这个任务需要多少时间,并规划大致工作步骤 180 300
Development 开发 130 255
··       Analysis 需求分析 (包括学习新技术) 15 30
·       Design Spec ·  生成设计文档 5 5
·       Design Review ·  设计复审 (和同事审核设计文档) 10 15
·       Coding Standard 代码规范 (为目前的开发制定合适的规范) 3 3
·       Design 具体设计 10 10
·       Coding 具体编码 60 120
·       Code Review ·  代码复审 7 12
·       Test ·  测试(自我测试,修改代码,提交修改) 20 60
Reporting 报告 15 20
··       Test Report ·  测试报告 10 15
·       Size Measurement 计算工作量 2 1
·       Postmortem & Process Improvement Plan ·  事后总结 ,并提出过程改进计划 3 5
posted @ 2019-09-15 11:14  20194616-张欣雅  阅读(172)  评论(1编辑  收藏  举报