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

一.需求分析

自动生成100以内的2个操作数的四则运算算式,为老师和家长节省出题时间,也减少错误的出现

二. 功能设计

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

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

(3)题目数量可定制

(4)相关参数可控制

          是否包含乘法和除法

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

          操作数是否含负数    

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

三. 设计实现

使用C语言设计程序

在程序中使用了rand函数

运用了while,switch,if等语句

四. 测试运行

五.代码片段

定义输入输出函数

#include <stdio.h>
#include <time.h>
#include <stdlib.h>
void main()
{    
    int a,b,c,i;
    int d,store=0;
    int number,n,num2;
    srand((unsigned)time(NULL));//生成随机数 
    printf("输入生成题目的数量\n");
    scanf("%d",&number);//输入生成题目数量 
    printf("0 代表加减乘除随机生成\n");
    scanf("%d",&n);//输入生成代码 
    num2=number;

算法设计

    while(number>=1)
    {    
    
            switch(n)//各种算法 
        {
            case 0: number--;break;//退出循环 
                
            case 1: a= rand()%100;    //随机生成100以内的随机数 
                    b= rand()%100;
                    c=a+b;//加法运算 
                    if(c<1000)
                        number--;//次数
                        else
                        break; 
                    printf("%d+%d=%d\n",a,b,c);//输出结果 
                    num2=0;
                    break;//退出循环 
            case 2: a= rand()%100;    
                    b= rand()%100;
                    c=a-b;//减法运算 
                    if(c<1000)
                        number--;
                        else
                        break;
                    printf("%d-%d=%d\n",a,b,c);
                     num2=0;
                    break; 
            
            case 3:a= rand()%100;    
                    b= rand()%100;
                    c=a*b;//乘法运算 
                    if(c<1000)
                        number--;
                        else
                        break;
                    printf("%d*%d=%d\n",a,b,c);
                     num2=0;
                    break;
                    
            case 4: a= rand()%100;    
                    b= rand()%100;
                    c=a/b;//除法运算 
                    if(c<1000)
                        number--;
                        else
                        break;
                    printf("%d/%d=%d\n",a,b,c);
                     num2=0;
                    break;
}
}
if(num2>=1)//检查上面的算法满足则进行 
{
        while(1)//死循环 
{        
            d=rand()%100;
            d=d/10;//生成随机数 
            if(d>=0&&d<=3)//产生随机选择四个运算 
{                
            switch(d)

六. 总结:

对编写程序还是不够熟悉,编写中出现很多问题,希望在今后的学习中能够做到更好。

七.PSP撰写

PSP2.1 任务内容 计划共完成需要的时间(min) 实际完成需要的时间(min)
Planning 计划 40 60
Estimate

估计这个任务需要多少时间,

并规划大致工作步骤

40 60
Development 开发 30 40
Analysis 需求分析 (包括学习新技术) 3 3
  Design Spec 生成设计文档 8 10
Design Review 设计复审 (和同事审核设计文档) 6 8
Coding Standard 代码规范 (为目前的开发制定合适的规范) 5 6
  Design 具体设计 10 13
Coding 具体编码 20 30
Code Review 代码复审 8 8
Test 测试(自我测试,修改代码,提交修改 4 5
Reporting 报告 10 11
Test Report 测试报告 2 3
Size Measurement 计算工作量 6 7
 Postmortem & Process Improvement Plan 事后总结 ,并提出过程改进计划 5 5

猜你喜欢

转载自www.cnblogs.com/hxs258/p/11529641.html
今日推荐