个人作业-四则运算题目生成程序

博客班级 https://edu.cnblogs.com/campus/ahgc/AHPU-se-JSJ18
作业要求 https://edu.cnblogs.com/campus/ahgc/AHPU-se-JSJ18/homework/11377
这个作业的目标 编程并熟悉makdown使用方法进行排版
学号 3180701324

一、题目要求

写一个能自动生成小学四则运算题目的程序,然后在此基础上扩展:

1)除了整数以外,还要支持真分数的四则运算,例如:1/6+1/8=7/24

2)程序要求能处理用户的输入,判断对错,累积分数

3)程序支持可以由用户自行选择加、减、乘、除运算

4)使用-n参数控制生成题目的个数,例如Myapp.exe -n 10,将生成10个题目

二、代码

整数加法

void add()
{
 int a,b,c;
 a=rand()%100;
 b=rand()%100;
 printf("请回答:\n\t\t %d + %d = ",a,b);
 scanf("%d",&c);
 if(a+b==c)
 {
  printf("回答正确!\n");
  right++;
 }
 else
 {
  printf("回答错误!\n");
  wrong++;
 }
}

整数减法

void minu()
{
 int a,b,c;
 a=rand()%100;
 b=rand()%100;
 printf("请回答:\n\t\t %d - %d = ",a,b);
 scanf("%d",&c);
 if(a-b==c)
 {
  printf("回答正确!\n");
  right++;
 }
 else
 {
  printf("回答错误!\n");
  wrong++;
 }
}

整数除法

void mul()
{
 int a,b,c;
 a=rand()%100;
 b=rand()%100;
 printf("请回答:\n\t\t %d * %d = ",a,b);
 scanf("%d",&c);
 if(a*b==c)
 {
  printf("回答正确!\n");
  right++;
 }
 else
 {
  printf("回答错误!\n");
  wrong++;
 }
}

整数乘法

void mul()
{
 int a,b,c;
 a=rand()%100;
 b=rand()%100;
 printf("请回答:\n\t\t %d * %d = ",a,b);
 scanf("%d",&c);
 if(a*b==c)
 {
  printf("回答正确!\n");
  right++;
 }
 else
 {
  printf("回答错误!\n");
  wrong++;
 }
}

介绍界面

void di()
{
 int a,b,c;
 a=rand()%100;
 b=rand()%100;
 printf("请回答:\n\t\t %d / %d = ",a,b);
 scanf("%d",&c);
 if(a/b==c)
 {
  printf("回答正确!\n");
  right++;
 }
 else
 {
  printf("回答错误!\n");
  wrong++;
 }
}

主函数

void main()
{
 int choise;
 int con=0;
 printf("\n\t\t\t欢迎进入小学简易四则运算\n\n");
 while(1)
 {
  printf("请选择:\n");
  printf("\t\t\t  加法运算(请输入1)\n");
  printf("\t\t\t  减法运算(请输入2)\n");
  printf("\t\t\t  乘法运算(请输入3)\n");
  printf("\t\t\t  除法运算(请输入4)\n");
  printf("\t\t\t  退出运算(请输入5)\n");
  if(con==0)
   scanf("%d",&choise);
  switch(choise)
  {
  case 1:
   add();
   break;
  case 2:
   minu();
   break;
  case 3:
   mul();
   break;
  case 4:
   di();
   break;
  case 5:
   return;
  }
  printf("\n\t\t\t继续运算?(请输入1)\n");
  printf("\n\t\t\t重新选择?(请输入2)\n");
  printf("\n\t\t\t退出运算?(请输入3)\n");
  scanf("%d",&con);
  if(con==1)
   con=1;
  else if(con==2)
   con=0;
  else if(con==3)
   break;
  else
   printf("抱歉!,你输入的指令有误!请重新输入!\n");
 }
 printf("您总共完成了 %d 道题\n正确 %d 道\n错误 %d 道\n",right+wrong,right,wrong);
}

源代码

#include<stdio.h>
#include<math.h>
#include<windows.h>
int right = 0;
int wrong = 0;
void add()
{
	int a, b, c;
	a = rand() % 100;
	b = rand() % 100;
	printf("请回答:\n\t\t %d + %d = ", a, b);
	scanf("%d", &c);
	if (a + b == c)
	{
		printf("回答正确!\n");
		right++;
	}
	else
	{
		printf("回答错误!\n");
		wrong++;
	}
}
void minu()
{
	int a, b, c;
	a = rand() % 100;
	b = rand() % 100;
	printf("请回答:\n\t\t %d - %d = ", a, b);
	scanf("%d", &c);
	if (a - b == c)
	{
		printf("回答正确!\n");
		right++;
	}
	else
	{
		printf("回答错误!\n");
		wrong++;
	}
}
void mul()
{
	int a, b, c;
	a = rand() % 100;
	b = rand() % 100;
	printf("请回答:\n\t\t %d * %d = ", a, b);
	scanf("%d", &c);
	if (a * b == c)
	{
		printf("回答正确!\n");
		right++;
	}
	else
	{
		printf("回答错误!\n");
		wrong++;
	}
}
void di()
{
	int a, b, c;
	a = rand() % 100;
	b = rand() % 100;
	printf("请回答:\n\t\t %d / %d = ", a, b);
	scanf("%d", &c);
	if (a / b == c)
	{
		printf("回答正确!\n");
		right++;
	}
	else
	{
		printf("回答错误!\n");
		wrong++;
	}
}
void main()
{
	int choise;
	int con = 0;
	printf("\n\t\t\t欢迎进入小学简易四则运算\n\n");
	while (1)
	{
		printf("请选择:\n");
		printf("\t\t\t  加法运算(请输入1)\n");
		printf("\t\t\t  减法运算(请输入2)\n");
		printf("\t\t\t  乘法运算(请输入3)\n");
		printf("\t\t\t  除法运算(请输入4)\n");
		printf("\t\t\t  退出运算(请输入5)\n");
		if (con == 0)
			scanf("%d", &choise);
		switch (choise)
		{
		case 1:
			add();
			break;
		case 2:
			minu();
			break;
		case 3:
			mul();
			break;
		case 4:
			di();
			break;
		case 5:
			return;
		}
		printf("\n\t\t\t继续运算?(请输入1)\n");
		printf("\n\t\t\t重新选择?(请输入2)\n");
		printf("\n\t\t\t退出运算?(请输入3)\n");
		scanf("%d", &con);
		if (con == 1)
			con = 1;
		else if (con == 2)
			con = 0;
		else if (con == 3)
			break;
		else
			printf("抱歉!,你输入的指令有误!请重新输入!\n");
	}
	printf("您总共完成了 %d 道题\n正确 %d 道\n错误 %d 道\n", right + wrong, right, wrong);
}

三、运行界面


四、个人小结

psp2.1 任务内容 计划完成需要的时间(min) 实际完成需要的时间(min)
Planning 计划 15 12
Estimate 估计这个任务需要多少时间,并规划大致工作步骤 8 8
Development 开发 120 130
Analysis 需求分析(包括学习新技术) 12 15
Design Spec 生成设计文档 5 6
Design Review 设计复审 5 5
Coding Standard 代码规范 3 4
Design 具体设计 12 16
Coding 具体编码 35 40
Code Review 代码复审 5 6
Test 测试(自我测试,修改代码,提交修改) 10 15
Reporting 报告 10 12
Test Report 测试报告 6 12
Size Measurement 计算工作量 20 25
Postmortem & Process Improvement Plan 事后总结,并提出过程改进计划 5 5

由于本人和时间原因,部分功能还未完善,还需改进。

posted @ 2020-11-07 22:43  WGT-UP  阅读(95)  评论(0)    收藏  举报