第一次作业-四则运算生成程序
------------恢复内容开始------------
一、题目信息
这个作业属于哪个课程 | https://edu.cnblogs.com/campus/ahgc/AHPU-se-JSJ18 |
---|---|
这个作业要求在哪里 | https://edu.cnblogs.com/campus/ahgc/AHPU-se-JSJ18/homework/11377 |
这个作业的目标 | 学会markdown使用方法;能对需求进行分析并实现 |
学号 | 3180701306 |
二、题目要求
写一个能自动生成小学四则运算题目的程序,然后在此基础上扩展:
1)除了整数以外,还要支持真分数的四则运算,例如:1/6+1/8=7/24
2)程序要求能处理用户的输入,判断对错,累积分数
3)程序支持可以由用户自行选择加、减、乘、除运算
4)使用-n参数控制生成题目的个数,例如Myapp.exe -n 10,将生成10个题目
三、代码提交与运行截图
1、源代码
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
int i=0,j=0;
void jia()
{
int a,b,m;
srand(time(NULL));
a=1+rand()%100;
b=1+rand()%100;
printf("%d\n",a);
printf("%d\n",b);
printf("a+b=?\n");
printf("请输入结果\n");
scanf("%d",&m);
if(m==a+b)
{
printf("你答对了\n");
i++;
}
else
{
printf("你答案有错误请改正\n");
j++;
}
}
void jian()
{
int a,b,m;
srand(time(NULL));
a=1+rand()%100;
b=1+rand()%100;
if(a<b)
{
int t=0;
t=a;a=b;b=t;
}
printf("%d\n",a);
printf("%d\n",b);
printf("a-b=?\n");
printf("请输入运算结果\n");
scanf("%d",&m);
if(m==a-b)
{
printf("你答对了\n");
i++;
}
else
{
printf("你答案有错误请改正\n");
j++;
}
}
void cheng()
{
int a,b,m;
srand(time(NULL));
a=1+rand()%20;
b=1+rand()%20;
printf("%d\n",a);
printf("%d\n",b);
printf("a*b=?\n");
printf("请输入运算结果\n");
scanf("%d",&m);
if(m==a*b)
{
printf("你答对了\n");
i++;
}
else
{
printf("你答案有错误请改正\n");
j++;
}
}
void chu()
{
int a,b,m;
srand(time(NULL));
a=1+rand()%100;
b=1+rand()%100;
if(b==0)
{
b=1+rand()%100;
}
if(a<b)
{
int t=0;
t=a;a=b;b=t;
}
while(a%b!=0)
{
a=1+rand()%100;
b=1+rand()%100;
}
printf("%d\n",a);
printf("%d\n",b);
printf("a/b=?\n");
printf("请输入运算结果\n");
scanf("%d",&m);
if(m==a/b)
{
printf("你答对了\n");
i++;
}
else
{
printf("你答案有错误请改正\n");
j++;
}
}
int main()
{
int m,n=0;
while(1)
{
printf("1.加法运算\n");
printf("2.减法运算\n");
printf("3.乘法运算\n");
printf("4.除法运算\n");
printf("请选择");
scanf("%d", &m);
switch(m)
{
case 1:jia();break;
case 2:jian();break;
case 3:cheng();break;
case 4:chu();break;
}
printf("5.请重新选择\n");
printf("6.结束\n");
scanf("%d", &n);
if(n==6) break;
}
printf("你回答题的总数%d和正确的个数%d\n",i+j,i);
return 0;
}
2、运行截图
(1)、加法
(2)、减法
(3)、乘法
(4)、除法
四、个人小结
在做作业的时候,体会到了逻辑清晰是有多重要,不管编程能力怎么样,首先看见一道题目时不要急着就去做,想想如何做怎么做才是最重要的,如果逻辑清晰知道需要建几个类,每个类包含什么,每个类之间的关系是什么,就算个别方法不会写,大体的模子也能画出来,最后要就个别函数即可。下次我做作业的时候应该会多花时间在逻辑分析,流程图上。
(psp表格)
psp2.1 | 任务内容 | 计划完成需要的时间(min) | 实际完成需要的时间(min) |
---|---|---|---|
Planning | 计划 | 120 | 150 |
Estimate | 估计这个任务需要多少时间,并规划大致工作步骤 | 30 | 35 |
Development | 开发 | 120 | 160 |
Analysis | 需求分析(包括学习新技术) | 20 | 17 |
Design Spec | 生成设计文档 | 20 | 23 |
Design Review | 设计复审 | 15 | 12 |
Coding Standard | 代码规范 | 10 | 12 |
Design | 具体设计 | 20 | 20 |
Coding | 具体编码 | 40 | 59 |
Code Review | 代码复审 | 9 | 10 |
Test | 测试(自我测试,修改代码,提交修改) | 40 | 45 |
Reporting | 报告 | 10 | 20 |
Test Report | 测试报告 | 5 | 5 |
Size Measurement | 计算工作量 | 10 | 10 |
Postmortem & Process Improvement Plan | 事后总结,并提出过程改进计划 | 10 | 10 |
------------恢复内容结束------------ |