题目:让程序能接受用户输入答案,并判定对错。最后给出总共对/错 的数量。

一、设计思想

1.存储用户输入答案,与正确答案比较得出总共对错数量。

二、源程序代码

 #include<iostream.h>
#include<stdlib.h>
#include "time.h"
#include<stdio.h>
int main ()
{
int a,b,c,f,j,i,t,num,l,jj,cc,fw;//i,j,t是计数变量,a,b是运算数。
int r=;//正确数目。
int e=;//错误数目。
char daan;
cout<<"-----------------四则运算题----------------------"<<endl;
cout<<endl;
srand( (unsigned)time( NULL ) );//随机数种子为当前计算机时间。
cout<<"*************请填写题目要求:********************"<<endl;
cout<<"* *"<<endl;
cout<<"* 1.请输入要生成题目数num: *"<<endl;//选择题目数量。
cout<<"* 2.请输入打印方式(列数l、行间距jj): *"<<endl;//选择打印方式。
cout<<"* 3.请选择有无乘除法cc(1代表有或0代表无): *"<<endl;//有无乘除法。
cout<<"* 4.请选择数的范围fw(fw是指该范围内最大的数): *"<<endl;//选择数的范围。
cout<<"* 5.请选择除法有无余数c(1代表有或0代表无): *"<<endl;//选择除法有无余数。
cout<<"* 6.请选择加减有无负数f(1代表有或0代表无): *"<<endl;//选择加减有无负数。
cout<<"* *"<<endl;
cout<<"*************************************************"<<endl;
cout<<"请输入要生成题目数num:"<<endl;
cin>>num;
int a1[];//存储用户输入答案。
int b1[];//正确答案。
if(num<)
{
cout<<"错了! 亲! 题目数量不能小于0,请重输:";
cin>>num;
}
cout<<"请输入打印方式 (列数l):"<<endl;
cin>>l;
if(l<=)
{
cout<<"错了! 亲! 列数不能小于等于0,请重输:";
cin>>l;
}
cout<<"请输入打印方式 (行间距jj):"<<endl;
cin>>jj;
if(jj<=)
{
cout<<"错了! 亲! 行间距不能小于等于0,请重输:";
cin>>jj;
}
cout<<"请选择有无乘除法cc(1代表有或0代表无): "<<endl;
cin>>cc;
if(cc!=&&cc!=)
{
cout<<"错了! 亲! 请重输:";
cin>>cc;
}
cout<<"请选择数的范围fw(fw是指该范围内最大的数):"<<endl;
cin>>fw;
cout<<"请选择除法有无余数c(1代表有或0代表无):"<<endl;
cin>>c;
if(c!=&&c!=)
{
cout<<"错了! 亲! 请重输:";
cin>>c;
}
cout<<"请选择加减有无负数f(1代表有或0代表无):"<<endl;
cin>>f;
if(f!=&&f!=)
{
cout<<"错了! 亲! 请重输:";
cin>>f;
}
cout<<endl;
if(cc==)
cc=cc+;
else
cc=cc+;
for(j=;j<num;j++)
{
//产生随机数。
a=rand()%fw;
b=rand()%fw+;//保证除数不为0。
i=rand()%cc;
cout<<"<"<<j+<<">: ";
switch(i)
{
case :
cout<<a<<"+"<<b<<"=";
b1[j]=a+b;
break;
case :
if(f==&&a<=b)
{
cout<<b<<"-"<<a<<"=";
b1[j]=b-a;
}
else
{
cout<<a<<"-"<<b<<"=";
b1[j]=a-b;
}
break;
case :
cout<<a<<"*"<<b<<"=";
b1[j]=a*b;
break;
case :
if(a%b!=&&c==)
{
cout<<a-a%b<<"/"<<b<<"=";
b1[j]=(a-a%b)/b;
}
else
{
cout<<a<<"/"<<b<<"=";
b1[j]=a/b;
}
break;
}
cin>>a1[j];
if(j%l==l-)
{
for(t=;t<jj;t++)
cout<<endl;
}
}
cout<<endl;
for(j=;j<num;j++)
{
if(b1[j]==a1[j])
r++;
else
e++;
}
cout<<"恭喜你做对了"<<r<<"道题目"<<endl;
cout<<"是否输出正确答案:(Y/N)";
cin>>daan;
if(daan=='Y')
for(j=;j<num;j++)
{
cout<<"<"<<j+<<">: "<<b1[j]<<endl;
} return ;
}

三、运行截图

四、实验心得

以前写代码不注意添加{}导致修改错误

如:

 case 1:
89 if(f==0&&a<=b)
90
91 cout<<b<<"-"<<a<<"=";
92 b1[j]=b-a;
93
94 else
95

习惯真的很重要,设计中出现了逻辑错误,通过测试用例 得到解决。

五、PSP0级 记录表

周活动记录总表

姓名:董龙洋                                                   日期:2015.3.21

日期/任务

听课

编程

阅读

准备考试

日总计

周日

周一

周二

20

周三

周四

75

周五

50

周六

125

周总结

270

阶段时间和效率                            周数(上一次周活动表的周数+1):1

不包括上一周在内的累计时间

总计

平均

最大

最小

以前各周的累积时间

时间记录表:

学生:董龙洋                        日期:2015.3.21

教师:王建民                        课程:psp

日期

开始时间

结束时间

中断时间

净时间

活动

备注

3.17

9:30

9:50

0

20

课堂练习

3.19

16:05

19:20

60

75

四则运算

吃饭一小时

3.20

9;20

9:55

0

35

课堂练习

3.21

18:23

20:03

0

100

四则运算

缺陷记录日志:

学生:董龙洋

日期:2015.3.21

教师:王建民

程序员:

日期

编号

类型

引入阶段

排除阶段

修复时间

修复缺陷

3.20

1

写代码

编译

2min

3.21

2

写代码

执行

30min

逻辑错误

四则运算2扩展---c++的更多相关文章

  1. 软件工程——四则运算3(C#)

    一.设计思想 设计两个窗体,在第一个窗体中选择功能参数,在第二个窗体中显示所出题目. 二.源代码 Form1.cs: using System; using System.Collections.Ge ...

  2. 多项式总结(unfinished)

    试试以二级标题为主的格式. 多项式相关 注:本篇博客不包含\(FFT\)基础姿势.如果您想要阅读本篇博客,请确保自己对\(FFT,NTT\)有基本的认识并且能够独立写出代码. 多项式是什么? 左转数学 ...

  3. 介绍一款原创的四则运算算式生成器:CalculateIt2

    家里小朋友读一年级了,最近每天都有一些10以内的加减法口算练习,作为程序员爸爸,自然也是想办法能够偷懒,让电脑出题,给小朋友做些练习.于是,自己在业余时间开发了一个四则运算算式生成器,名为:Calcu ...

  4. 一种高效的 vector 四则运算处理方法

    实现 vector 的四则运算 这里假设 vector 的运算定义为对操作数 vector 中相同位置的元素进行运算,最后得到一个新的 vector.具体来说就是,假如 vector<int&g ...

  5. 四则运算 Day3

    总结篇 一开始看到自己的成绩是接近及格线的时候,我的内心是崩溃的,就差辣么一点点..但是感谢老师给了这么一个补交作业的机会.在参考博客园相关四则运算题目后,做了一个适用小学一二年级使用的简单的四则运算 ...

  6. C++四则运算出题器---有答案版

    一.实验题目 四则运算扩展----能接受答案并判断对错然后给出成绩. 二.实验思路 在每次输出算式后面输入答案,然后判断对错,对则统计. 稍微优化了一下界面. 三.代码 // 12345.cpp : ...

  7. 结对编程1-基于GUI的四则运算生成器

    201421123016郑怀勇     201421123017康建灿 程序代码 / 康建灿 一.需求分析 记录用户的对错总数. 程序退出再启动的时候,能把以前的对错数量保存并在此基础上增量计算. 有 ...

  8. 菜鸟学IT之四则运算升级版

     菜鸟学IT之四则运算升级版 本次作业要求来自:https://edu.cnblogs.com/campus/gzcc/GZCC-16SE1/homework/2213 团队代码github远程仓库的 ...

  9. 20175226 2018-2019-2《java程序设计》结对编程-四则运算(第二周-阶段总结)

    需求分析(描述自己对需求的理解,以及后续扩展的可能性) 实现一个命令行程序,要求: 自动生成小学四则运算题目(加,减,乘,除) 支持整数 支持多运算符(比如生成包含100个运算符的题目) 支持真分数 ...

随机推荐

  1. Hive[1] 初识 及 安装

    本文前提是Hadoop & Java & mysql 数据库,已经安装配置好,并且 环境变量均已经配置到位   声明:本笔记参照 学习<Hive 编程指南>而来,如果有错误 ...

  2. SVN命令收集

    1.检出 svn co  http://路径(目录或文件的全路径) [本地目录全路径] --username 用户名 --password 密码 svn  co  svn://路径(目录或文件的全路径 ...

  3. 软件工程 speedsnail 第二次冲刺4

    20150521 完成任务:划线第四天,能蜗牛遇到线能反弹,加了障碍物: 遇到问题: 问题1 有一个方向碰到线没有反弹 解决1 没有解决 明日任务: 完善问题1

  4. 设置Safari浏览器在标签栏上打开新窗口,而不是弹出一个新窗口

    打开Safari浏览器的偏好设置,如图: 打开“标签”一项,如上图.在“在标签(而不是窗口)中打开页面:”中设置.

  5. PeopleSoft登录流程

    1.初始化连接.App Server从配置文件中获得connect ID和user ID进行数据库初始化连接. 2.查询数据库中与安全相关的表信息connect ID被验证以后,AppServer查询 ...

  6. sender是什么意思C#

    /// <summary> /// sender就是事件发起者,e存储事件发起者的一些参数 /// 例如: /// private void button1_Click(object se ...

  7. [leetcode]_Unique Paths

    题目:有一个m * n 的方格,如下图,一个小robot希望从左上角走到右下角,共有多少种不同的路线走法. 思路: 我的错误思路:全排列,从(0,0)走到(m - 1,n - 1)共需要往下走m-1步 ...

  8. ASP.NET中实现页面间的参数传递

    ASP.NET中实现页面间的参数传递   编写人:CC阿爸 2013-10-27 l  近来在做泛微OA与公司自行开发的系统集成登录的问题.在研究泛微页面间传递参为参数,综合得了解了一下现行页面间传参 ...

  9. Java 8 Lambda表达式

    Java 8 Lambda表达式探险 http://www.cnblogs.com/feichexia/archive/2012/11/15/Java8_LambdaExpression.html 为 ...

  10. JS下高效拼装字符串的几种方法比较与测试代码

    在使用Ajax提交信息时,我可能常常需要拼装一些比较大的字符串通过XmlHttp来完成POST提交.尽管提交这样大的信息的做法看起来并不优雅,但有时我们可能不得不面对这样的需求.那么JavaScrip ...