个人作业一 四则运算

一、作业信息

这个作业属于哪个课程 https://edu.cnblogs.com/campus/ahgc/AHPU-se-JSJ18
这个作业要求在哪里 https://edu.cnblogs.com/campus/ahgc/AHPU-se-JSJ18/homework/11377
这个作业的目标 能对需求进行分析并实现;编码格式规范;学习博客撰写
学号 3180701310

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

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

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

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

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

三、代码提交与运行截图
1、源代码

#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 reduce()//减法运算
{
 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 ride()//乘法运算
{
 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 except()//除法运算
{
 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:
   reduce();
   break;
  case 3:
   ride();
   break;
  case 4:
   except();
   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);
}

2、运行截图
(1)、加法

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++;
 }
}

截图

(2)、减法

void reduce()
{
 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++;
 }
}

截图

(3)、乘法

void ride()//乘法运算
{
 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++;
 }
}

截图

(4)、除法

void except()//除法运算
{
 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++;
 }
}

截图

(5)、菜单

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:
   reduce();
   break;
  case 3:
   ride();
   break;
  case 4:
   except();
   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);
}

截图

四、个人小结
这是第一次在博客园做作业,对于我这种基础不太好的人来说,遇到了很多问题!所以我用的方法是,先百度一下,看看大概写出的程序都是什么样子的,然后自己尝试写自己的程序。遇到不会的就去上百度搜索,或者找到相同的题目看看有什么可以利用的,比如程序内的srand和rand就是我以前不会的,所以特别查了一下。程序中仍有许多未解决的问题,例如如何做到每次随机数尽量不同,以及如何避免除数不为0等等,还需要多加练习,并且提高自己!!

(psp表格)

psp2.1 任务内容 计划完成需要的时间(min) 实际完成需要的时间(min)
Planning 计划 300 480
Estimate 估计这个任务需要多少时间,并规划大致工作步骤 40 50
Development 开发 140 160
Analysis 需求分析(包括学习新技术) 50 60
Design Spec 生成设计文档 30 30
Design Review 设计复审 20 15
Coding Standard 代码规范 15 10
Design 具体设计 30 20
Coding 具体编码 40 45
Code Review 代码复审 20 30
Test 测试(自我测试,修改代码,提交修改) 40 45
Reporting 报告 30 35
Test Report 测试报告 20 30
Size Measurement 计算工作量 10 10
Postmortem & Process Improvement Plan 事后总结,并提出过程改进计划 15 30
posted @ 2020-11-07 22:43  桃桃布丁  阅读(75)  评论(0编辑  收藏  举报