c语言随机生成算式的对错判断,蔡奇宏软件工程第二次作业--四则运算

本文档详细介绍了如何使用C语言设计一个自动生成四则运算试题的程序,包括基本功能如生成不重复的加减乘除算式,以及控制操作数范围、是否含负数等扩展功能。程序将生成的题目存储到外部文件result.txt中,适用于小学生数学练习。此外,还讨论了代码实现、测试运行和未来改进的方向。
摘要由CSDN通过智能技术生成

任务要求:使用C或Java语言完成一个自动生成四则运算试题的程序。软件基本功能如下。

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

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

(3)题目数量可定制

(4)相关参数可控制

是否包含乘法和除法

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

操作数是否含负数

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

一. 需求分析

为应对小学生对于四则运算熟悉练习的掌握度,减轻出题员的负担,故设计一款程序能自动编写四则运算里的题目。

二. 功能设计

基本功能

能自动生成算数式

算数式符号随机生成

扩展功能

对生成的算数式能够自动计算并且给出算数答案

算数式可以控制是否存在负数

算数式可以控制是否存在乘除表达式

生成的最后结果会保存在result.txt文件中方便查看

算数式可以控制其操作范围

三. 设计实现

C语言

引用库

引用库

引用库

计算负数时乘以2然后减去自身得出值

fopen函数来储存输出值

四. 测试运行

测试运行结果在控制台里面与在文本输出里面的表现

d89afff534bd7759e7a2cc046b9410be.png

575ddc37312ec9734f985368baf2e1a1.png

五. 代码片段

rand()用来生成随机值,使用它来获取n的值,就可以对下面的op赋值并计算相对应的算式。

for(a=0;a)

{

i=rand()%z+1;

j=rand()%z+1;

n=rand()%4;if(n==0){op='+'; q=i+j;}if(n==1){op='-'; q=i-j;}if(n==2){op='*'; q=i*j;}if(n==3){op='/'; q=i/j;}

printf("%d%c%d=%d\n",i,op,j,q);

fprintf(fp,"%d%c%d=%d\n",i,op,j,q);

}

如果想生成负数那么就对其上限乘以2然后在减去自身就是想要的答案。

i=rand()%(2*z)-z+1;

j=rand()%(2*z)-z+1;

n=rand()%2;if(n==0){op='+'; q=i+j;}if(n==1){op='-'; q=i-j;}

六. 总结

自己写的if判断语句有点多,而且我写注释的习惯不好造成我自己有时候都看不明白自己写的东西,不过经过这一次的经验与训练,相信下一次我定能在原有基础上做到更好。

七. PSP

PSP

任务内容

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

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

Planning

计划

8

6

Estimate

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

8

6

Development

开发

66

64

Analysis

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

6

10

Design

具体设计

10

12

Coding

具体编码

40

30

Test

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

10

12

Reporting

报告

3

3

Postmortem & Process Improvement Plan

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

3

3

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值