------------恢复内容开始------------
一、作业信息
[博客班级] 软件工程
[作业要求] 作业要求
[作业目标] 能够精准高效完成四则运算并输出结果;
[学号] 318071334
二、作业要求
写一个能自动生成小学四则运算题目的程序,然后在此基础上扩展:
1.除了整数以外,还要支持真分数的四则运算,例如:1/6+1/8=7/24
2.程序要求能处理用户的输入,判断对错,累积分数
3.程序支持可以由用户自行选择加、减、乘、除运算
4.使用-n参数控制生成题目的个数,例如Myapp.exe -n 10,将生成10个题目
三、代码提交和运行截图
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <time.h>
void add_oper();//加法运算
void sub_oper();//减法运算
void mul_oper();//乘法运算
void div_oper();//除法运算
void menu();
int main()
{
int select;
do
{
menu();
scanf_s("%d", &select);
switch (select)
{
case 1: add_oper(); break;
case 2: sub_oper(); break;
case 3: mul_oper(); break;
case 4: div_oper(); break;
default:break;
}
}while (select > 0);
}
void menu()//菜单函数
{
printf("欢迎使用四则运算器
");
printf("1.加法运算
");
printf("2.减法运算
");
printf("3.乘法运算
");
printf("4.除法运算
");
printf("0.退出
");
}
void add_oper()//加法运算法则
{
int x, y, z = 0, anwser, amount,i,T = 0, F = 0;//x,y为随机生成的两个数,x y计算结果的值暂存于z中,anwser为使用者输入的答案,amount为输入的题目数,T,F显示计算题目的正确错误数
printf("请输入你想计算的题目数");
scanf_s("%d", &amount);
for (i = 1; i <= amount; i++)
{
srand(time(NULL));
x = rand() % 100;
y = rand() % 100;
z = x + y;
printf("%d+%d=", x, y);
printf("两数之和为:");
scanf_s("%d", &anwser);
if (z == anwser)
{
printf("回答正确
");
T++;
}
else
{
printf("回答错误
");
F++;
}
}
printf("此次运算正确题数为%d,错题数为%d。
", T, F);
}
void sub_oper()//减法运算法则
{
int x, y, z = 0, anwser, amount, i, T = 0, F = 0;
printf("请输入你想计算的题目数");
scanf_s("%d", &amount);
for (i = 1; i <= amount; i++)
{
srand(time(NULL));
x = rand() % 100;
y = rand() % 100;
z = x + y;
printf("%d-%d=", x, y);
printf("两数之差为:");
scanf_s("%d", &anwser);
if (z == anwser)
{
printf("回答正确
");
T++;
}
else
{
printf("回答错误
");
F++;
}
}
printf("此次运算正确题数为%d,错题数为%d。
", T, F);
}
void mul_oper()//乘法运算法则
{
int x, y, z = 0, anwser, amount, i, T = 0, F = 0;
printf("请输入你想计算的题目数");
scanf_s("%d", &amount);
for (i = 1; i <= amount; i++)
{
srand(time(NULL));
x = rand() % 100;
y = rand() % 100;
z = x + y;
printf("%d*%d=", x, y);
printf("两数之积为:");
scanf_s("%d", &anwser);
if (z == anwser)
{
printf("回答正确
");
T++;
}
else
{
printf("回答错误
");
F++;
}
}
printf("此次运算正确题数为%d,错题数为%d。
", T, F);
}
void div_oper()//除法运算法则
{
int x, y, z = 0, anwser, amount, i, T = 0, F = 0;
printf("请输入你想计算的题目数");
scanf_s("%d", &amount);
for (i = 1; i <= amount; i++)
{
srand(time(NULL));
x = rand() % 100;
y = rand() % 100;
z = x + y;
printf("%d/%d=", x, y);
printf("两数之商为:");
scanf_s("%d", &anwser);
if (z == anwser)
{
printf("回答正确
");
T++;
}
else
{
printf("回答错误
");
F++;
}
}
printf("此次运算正确题数为%d,错题数为%d。
", T, F);
}
运行截图
psp2.1 | 任务内容 | 计划完成需要的时间(min) | 实际完成需要的时间(min) |
---|---|---|---|
Planning | 计划 | 30 | 45 |
Estimate | 估计这个任务需要多少时间,并规划大致工作步骤 | 5 | 6 |
Development | 开发 | 360 | 540 |
Analysis | 需求分析(包括学习新技术 | 10 | 30 |
Design Spec | 生成设计文档 | 15 | 40 |
Design Review | 设计复审 | 5 | 10 |
Coding Standard | 代码规范 | 3 | 5 |
Design | 具体设计 | 10 | 50 |
Coding | 具体编码 | 100 | 300 |
Code Review | 代码复审 | 5 | 10 |
Test | 测试(自我测试,修改代码,提交修改) | 10 | 20 |
Reporting | 报告 | 10 | 20 |
Test Report | 测试报告 | 10 | 20 |
Size Measurement | 计算工作量 | 3 | 5 |
Postmortem & Process Improvement Plan | 事后总结,并提出过程改进计划 | 3 | 4 |
个人小结
初次使用博客园的时候,存在很多意想不到的问题,markdown格式的使用也很别扭。
四则运算的题目虽然很简单,但是在编写的过程中,也出现了一些让我很头疼的问题,之前的c语言知识,很长时间没有使用,也都忘得差不多了。
经过此次的编写,让我学到了很多东西,今后对代码编写的能力也会进一步的提高。