四则运算

------------恢复内容开始------------
一、作业信息
[博客班级] 软件工程
[作业要求] 作业要求
[作业目标] 能够精准高效完成四则运算并输出结果;
[学号] 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("欢迎使用四则运算器\n");
	printf("1.加法运算\n");
	printf("2.减法运算\n");
	printf("3.乘法运算\n");
	printf("4.除法运算\n");
	printf("0.退出\n");
}

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("回答正确\n");
			T++;
		}
		else
		{
			printf("回答错误\n");
			F++;
		}	
	}
	printf("此次运算正确题数为%d,错题数为%d。\n", 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("回答正确\n");
			T++;
		}
		else
		{
			printf("回答错误\n");
			F++;
		}
	}
	printf("此次运算正确题数为%d,错题数为%d。\n", 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("回答正确\n");
			T++;
		}
		else
		{
			printf("回答错误\n");
			F++;
		}
	}
	printf("此次运算正确题数为%d,错题数为%d。\n", 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("回答正确\n");
			T++;
		}
		else
		{
			printf("回答错误\n");
			F++;
		}
	}
	printf("此次运算正确题数为%d,错题数为%d。\n", 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语言知识,很长时间没有使用,也都忘得差不多了。
经过此次的编写,让我学到了很多东西,今后对代码编写的能力也会进一步的提高。

posted @ 2020-11-08 16:36  Rasend  阅读(164)  评论(0编辑  收藏  举报