作业四|个人项目-小学四则运算初版

 

作业要求来自于https://edu.cnblogs.com/campus/gzcc/GZCC-16SE2/homework/2186

GitHub远程仓库的地址https://github.com/damaoy

 

一、题目要求:

像《构建之法》的人物阿超那样,写一个能自动生成小学四则运算题目的命令行 “软件”。


具体要求:任何编程语言都可以,命令行程序接受一个数字输入,然后输出相应数目的四则运算题目和答案。例如输入数字是 30, 那就输出 30 道题目和答案。 运算式子必须至少有两个运算符,运算数字是在 100 之内的正整数,答案不能是负数。 如:

23 - 3 * 4 = 11

扩展要求:

1) 要求能出和真分数 (二分之一, 十二分之五,等)相关的练习题。

2) 并且要求能处理用户的输入,并判断对错,打分统计。 要求能处理用户输入的真分数, 如 1/2, 5/12 等。

初步拟定要实现的功能后,估计一下自己需要花多长时间。编程过程中记录自己实际用了多长时间。

然后和同学们比较一下各自程序的功能、实现方法的异同等等。

写博客纪录自己实现的过程和思路。

 

二、psp

PSP2.1 Personal Software Process Stages Time Senior Student Time
Planning 计划 20min 30min
· Estimate 估计这个任务需要多少时间 5min 15min
Development 开发 30min 1h
· Analysis 需求分析 (包括学习新技术)

10min

10min
· Design Spec 生成设计文档 0min 0min
· Design Review 设计复审 5min 3min
· Coding Standard 代码规范 3min 3min
· Design 具体设计 30min 40min
· Coding 具体编码 40min 1.5h
· Code Review 代码复审 5min 5min
· Test 测试(自我测试,修改代码,提交修改) 30min 50min
Reporting 报告 10min 15min
· 测试报告 0min 0min
· 计算工作量 2min 2min
· 并提出过程改进计划 2min 2min

 

三、代码提交

提交源代码和可执行程序至github上,博客开头已给出github地址。

#include<stdio.h>
#include<stdlib.h>
#include<string.h>


//函数功能:生成随机运算符
char Operator(){
int a=rand()%4+1;

switch(a){
case 1:return '+';
case 2:return '-';
case 3:return '*';
case 4:return '/';
}
}

//模块1 生成题目并计算答案
int generate(int i)
{
int a,b,c;
char s1,s2;
float x,y,get,answer;
//生成3个随机数
a=rand()%100+1;
b=rand()%100+1;
c=rand()%100+1;

//生成2个运算符
s1=Operator();
s2=Operator();

//计算答案
switch(s1)
{
case '+': {x=(float)a+(float)b;break;}
case '-': { x=(float)a-(float)b;break;}
case '*':{ x=(float)a*(float)b;break;}
case '/':{ x=(float)a/(float)b;break;}
}
switch(s2)
{
case '+': {y=(float)x+(float)c;break;}
case '-': { y=(float)x-(float)c;break;}
case '*':{ y=(float)x*(float)c;break;}
case '/':{ y=(float)x/(float)c;break;}
}

answer=y;

printf("\n %d%c%d%c%d=",a,s1,b,s2,c);
scanf("%f",&get);

if(answer==get)
i=i+1;

return i;
}

 


void main()
{
int i=0,num, a,b,c,count;
float result,answer;
char s, s1;
printf("-------欢迎使用小学四则运算软件(初版)--------\n\n");
printf("请输入需要生成的题目数:");
scanf("%d",&num);

for(count=0;count<num;count++){
i=generate(i);
}

printf("\n\n答题结束,本次共答对题目%d道\n",i);

 }

四、设计与结果

 

 

 五、小结

软件实现功能并不完整,代码容错也有待提升。

 

posted on 2018-10-27 11:27  大大大大猫呀  阅读(114)  评论(0)    收藏  举报

导航