1.需求分析:

(1)自动生成四则运算算式(+ - *  /),或两则运算(+  -)。

(2)剔除重复算式。

(3)题目数量可定制。

(4)相关参数可控制。 

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

  2.功能设计:

  • 基本功能:随机生成算式,可控制题目数量及相关参数。筛选重复的算式并剔除。
  • 拓展功能:当操作数生成负数是会产生小括号。

  3.设计实现:


  共设计了4个函数:Ctrl_2or4:用来控制四则运算还是2则运算。

          Rand_Get:生成随机数,是否包含负数可控。

          Data_Filtering:数据过滤,剔除重复算式。

          My_print:控制输出。

  4.测试运行:

1.生成四则运算,包含负数,操作数100以内,10道题:

2.生成两则运算,不包含负数,操作数50以内,15道题:

3.生成四则运算,包含负数,操作数范围1000以内,7道题:

  5.代码片段:

  • 生成随机数,控制操作数是否带负数:
 void Rand_Get(int c , int Maxl)
{
if( c == )
{
Num_a = rand()%(*Maxl+)-Maxl;
Num_b = rand()%(*Maxl+)-Maxl;
}
else if( c == )
{
Num_a = rand()%Maxl;
Num_b = rand()%Maxl;
}
else
{
printf("输入有误!");
}
}
  • 数据筛选,剔除重复算式:
 int Data_Filtering(int flag )
{
int j,f3_flag,equ[Maxsize][]; f3_flag = ;
equ[i][]=Num_a;
equ[i][]=flag;
equ[i][]=Num_b;
for(j=i-;j>=;j--)
{
if(equ[i][] == equ[j][])
{
if(equ[i][] == equ[j][])
{
if(equ[i][] == equ[j][])
{
i--;
f3_flag = ;
}
}
}
}
i++;
return f3_flag ;
}
  • 控制是两则运算(+  -)还是四则运算(+  -  *  /):
 int Ctrl_2or4(int b)
{ int f2_c;
if(b == )
{
f2_c = rand()%;
}
else if(b == )
{
f2_c = rand()%;
}
else
{
printf("输入有误!");
}
return f2_c;
}

  6.总结(如何实现程序“模块化”原则):

  利用函数,分层次分模块进行代码编写,将每个功能用函数描述出来,而不是全部都写在主函数里。

  7.PSP:

PSP2.1

任务内容

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

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

Planning

计划

15

20

·       Estimate

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

15

20

Development

开发

410

520

··       Analysis

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

10

20

·       Design Spec

·  生成设计文档

0

0

·       Design Review

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

0

0

·       Coding Standard

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

5

5

·       Design

具体设计

15

20

·       Coding

具体编码

360

450

·       Code Review

·  代码复审

10

10

·       Test

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

10

15

Reporting

报告

30

45

··       Test Report

·  测试报告

20

25

·       Size Measurement

计算工作量

0

0

·       Postmortem & Process Improvement Plan

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

10

20

 

20194651—自动生成四则运算题第一版报告chris的更多相关文章

  1. 自动生成四则运算题目(C语言)

    Github项目地址:https://github.com/huihuigo/expgenerator 合作者:马文辉(3118005015).卢力衔(3118005013) 项目简介 1题目:实现一 ...

  2. 结对项目 实现自动生成四则运算题目的程序 (C++)

    本次作业由 陈余 与 郭奕材 结对完成 零.github地址: https://github.com/King-Authur/-Automatically-generate-four-arithmet ...

  3. java实现自动生成四则运算

    Github项目链接:https://github.com/shoulder01/Fouroperation.git 一.项目相关要求 1. 使用 -n 参数控制生成题目的个数(实现) 2.使用 -r ...

  4. C语言#自动生成四则运算的编程

    #include <iostream> #include <stdio.h> #include <stdlib.h> #include <time.h> ...

  5. C语言编程—自动生成四则运算升级版

    #include<stdio.h> #include<time.h> struct fenshu { int fenzi; int fenmu; }Fenshu[]; int ...

  6. 用C语言编程自动生成四则运算

    #include<stdio.h>#include<stdlib.h>#include <time.h>#define N 30main(){ int a,b,k, ...

  7. 作业二:个人编程项目——编写一个能自动生成小学四则运算题目的程序

    1. 编写一个能自动生成小学四则运算题目的程序.(10分)   基本要求: 除了整数以外,还能支持真分数的四则运算. 对实现的功能进行描述,并且对实现结果要求截图.   本题发一篇随笔,内容包括: 题 ...

  8. 把时间还给洞察,且看PPT调研报告自动生成攻略

    文/JSong @2017.02.28 在数据分析里面有一句话是说,80%的时间要用于数据清洗和整理,而我觉得理想的状态应该是把更多的把时间花在数据背后的洞察当中.去年11月在简书占了个坑,说要自己写 ...

  9. (幼儿园毕业)Javascript小学级随机生成四则运算

    软件工程第二次结对作业四则运算自动生成器网页版 一.题目要求 本次作业要求两个人合作完成,驾驶员和导航员角色自定,鼓励大家在工作期间角色随时互换,这里会布置两个题目,请各组成员根据自己的爱好任选一题. ...

随机推荐

  1. Lyft Level 5 Challenge 2018 - Final Round (Open Div. 2) (前三题题解)

    这场比赛好毒瘤哇,看第四题好像是中国人出的,怕不是dllxl出的. 第四道什么鬼,互动题不说,花了四十五分钟看懂题目,都想砸电脑了.然后发现不会,互动题从来没做过. 不过这次新号上蓝名了(我才不告诉你 ...

  2. 1090 危险品装箱 (25分)C语言

    集装箱运输货物时,我们必须特别小心,不能把不相容的货物装在一只箱子里.比如氧化剂绝对不能跟易燃液体同箱,否则很容易造成爆炸. 本题给定一张不相容物品的清单,需要你检查每一张集装箱货品清单,判断它们是否 ...

  3. bootstrap:按钮下拉菜单

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <meta name ...

  4. 深入理解协程(二):yield from实现异步协程

    原创不易,转载请联系作者 深入理解协程分为三部分进行讲解: 协程的引入 yield from实现异步协程 async/await实现异步协程 本篇为深入理解协程系列文章的第二篇. yield from ...

  5. vue状态管理vuex从浅入深详细讲解

    1.vuex简介以及创建一个简单的仓库 vuex是专门为vue框架而设计出的一个公共数据管理框架,任何组件都可以通过状态管理仓库数据沟通,也可以统一从仓库获取数据,在比较大型的应用中,数据交互庞大的情 ...

  6. Unity 基于Cinemachine计算透视摄像机在地图中的移动范围

    Unity中Cinemachine的基础功能介绍可详见之前写的博客: https://www.cnblogs.com/koshio0219/p/11820654.html 本篇的重点是讨论,在给定规则 ...

  7. 什么是aPaas?aPaas与低代码又是如何促进应用程序开发现代化的?

    从软件即服务(SaaS)到基础设施即服务(IaaS),云计算的兴起使“一切皆服务”(XaaS)模型得以泛滥,而aPaaS可能是这些模型中最鲜为人知的模型.随着aPaaS市场预计将从2018年的近90亿 ...

  8. python 生成器,迭代器,闭包,装饰器

    1.生成器,迭代器,闭包,装饰器的优点 生成器就是一类特殊的迭代器 迭代器的优点也即生成器的优点: 1.节约内存.python在使用生成器时对延迟操作提供了支持. 2.迭代到下一次的调用时,所使用的参 ...

  9. 三分钟网络基础-IP地址分类

    IP 地址的编址方法共经过了三个历史阶段: 分类的 IP 地址 子网的划分 超网 这篇文章首先介绍,最初始的 IP 地址分类方法. 分类的 IP 将 IP 地址划分为若干个固定类,每一类地址都由两个固 ...

  10. python __init__()类构造方法

    构造方法用于创建对象时使用,每当创建一个类的实例对象时,python解释器都会自动调用它. class Person: def __init__(self): print("调用构造方法&q ...