首页 > 其他 > 详细

20194717+四则运算题第一版报告

时间:2019-09-15 18:53:00      阅读:98      评论:0      收藏:0      [点我收藏+]

一 需求分析

使用C或Java语言完成一个自动生成四则运算试题的程序

二 功能设计

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

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

(3)题目数量可定制

(4)相关参数可控制

          是否包含乘法和除法

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

          操作数是否含负数    

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

三 功能设计

使用c-free软件

利用for switch语句

创建result.txt文件

输入输出函数

四 测试运行

技术分享图片

五 代码展示


    char szBuff[15];
//写入文件使用
    char _cun[10][15];
    //产生种子
    srand((unsigned)time(NULL));
    //声明类型名为file   ,用写的格式打开
    FILE *fp=fopen("result.txt","w");
    //创建四则运算字符
    char opera[] = { ‘*‘, ‘/‘, ‘+‘, ‘-‘ };
    //取出上面单个的字符
    char opchar;
  //循环十次
    for (i = 0; i < 10; i++) {
        //产生随机数0 1 2 3
        int ope =  rand() % 4;
        //从字符数组中取出相应运算的字符
        opchar = opera[ope];
        //为x,y 0-100的随机数  用于计算机
        x = (int) ( rand() % 100);
        y = (int) ( rand() % 100);
        //控制只能进行+ - ,遇到乘除就回for 循环 继续执行
        if (‘*‘ == opchar || ‘/‘ == opchar) {
            i--;
            continue;
        }
        //进入选择相应的运算
        switch (opchar) {
            case ‘+‘:
                z = x + y;
                break;
            case ‘-‘:
                z = x - y;
                break;
            case ‘*‘:
                z = x * y;
                break;
            case ‘/‘:
                //排除分母为零的可能
                if (y == 0) {
                    i--;
                    continue;
                }
                z = x / y;
                break;
        }
        //控制结果集只能是不大于100的  if 大于回for循环
        if (z >= 100 || z < 0) {
            i--;
            continue;
        }
        //字符串的拼接     第一个参数是输出的字符串,第二个是格式化字符串
        sprintf(szBuff,"%d%c%d=",x,opchar,y);
        //字符串的拷贝
        strcpy(_cun[i],szBuff);
        //去重复
        for (j = 0; j <i; ++j) {
         if(strcmp(_cun[i],_cun[j])==0){
             i--;
            continue;
         }
        }
        }
    for (j = 0; j < 10; ++j) {
        fprintf(fp," %d 题:%s\n",(j+1),_cun[j]);
    }
    if(fp==NULL)
    {
        return 0;
    }
    fclose(fp);
    printf("试题已经生成,请进入文件查看result.txt");
    return 0;
    }
 

六 总结

利用所学知识实现简单配置,在此基础上增加代码难度。

七 PSP

PSP2.1

任务内容

计划共完成需要的时间(min)

实际完成需要的时间(min)

Planning

计划

8

7

·       Estimate

·  估计这个任务需要多少时间,并规划大致工作步骤

8

8

Development

开发

82

95

··       Analysis

  需求分析 (包括学习新技术)

6

15

·       Design Spec

·  生成设计文档

5

8

·       Design Review

·  设计复审 (和同事审核设计文档)

4

7

·       Coding Standard

  代码规范 (为目前的开发制定合适的规范)

3

2

·       Design

  具体设计

10

15

·       Coding

  具体编码

36

30

·       Code Review

·  代码复审

7

8

·       Test

·  测试(自我测试,修改代码,提交修改)

13

20

Reporting

报告

9

8

··       Test Report

·  测试报告

3

3

·       Size Measurement

  计算工作量

2

1

·       Postmortem & Process Improvement Plan

·  事后总结 ,并提出过程改进计划

3

2

 
 

 

20194717+四则运算题第一版报告

原文:https://www.cnblogs.com/liyunpeng123/p/11523561.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!