一、题目

 在四则运算二的基础上,选择一个方向进行拓展,我选择的是增加了答题模块

二、设计思路

  • 1、在上次的基础上,增加了答题模块,每出现一道四则运算题目,便提醒输入结果,如果结果错误,就会提示错误
  • 2、生成的是一百以内的数的四则运算,对上次的题目中可以进行范围确定的功能进行了缩减,符合小学生四则运算题目
  • 3、仍然可以选择是否结果可以出现正负数,但是对除法进行了修改,直接不允许不能整除的数据出现,因为不能整除的数据出现后,用户在输入结果时,可能不能判断错误
  • 4、通过count计数确定做对多少题目,并计算正确率,保留两位小数

三、程序源代码

 // sizeyunsuan.cpp : Defines the entry point for the console application.
 //

 #include "stdafx.h"
 #include"time.h"
 #include "iomanip"
 #include"iostream"
 #include"String"
 using namespace std;
 /*确定运算符*/
 char suanfu(int n)
 {
     switch(n)
     {
     :
         return '+';
     :
         return '-';
     :
         return '*';
     :
         return '/';
     }
 }

 /*结果判断函数*/
 int judge(float jsjg,float sjjg,int count)
 {
     while(!(cin>>jsjg))
     {
             cout<<"输入错误,请重新输入:";
             cin.clear();
             cin.sync();
     }
     if(sjjg==jsjg)                                                                                    //检查用户输入的答案
     {
         count++;
     }
     else
     {
         cout<<"错误"<<endl;
     }
     return count;
 }
 /*运算调整函数*/
 int yunsuan(int num1,int num2,int count,string s,string l)
 {
     int temp;
     ;
     ;
     ;
     num1=rand()%;
     num2=rand()%;
     if(s=="Y"||s=="y")
     {
         operators=rand()%;
     }
     else
     {
         operators=rand()%;
     }
     )                                                                //避免结果出现负数
     {
         if(l=="N"||l=="n")
         {
             if(num1<num2)
             {
                 temp=num2;
                 num2=num1;
                 num1=temp;
             }
         }
     }
     )                                                            //为了避免除不尽的情况,使除法运算调整为都能整除的。
     {
         num1=num2*(rand()%);
     }
     switch(operators)                                                                //自动计算出正确的答案,便于检查用户输入的对错
     {
     :
         sjjg=num1+num2;
         break;
     :
         sjjg=num1-num2;
         break;
     :
         sjjg=num1*num2;
         break;
     :
         sjjg=num1/num2;
     }  

     cout<<num1<<suanfu(operators)<<num2<<"=";
     count=judge(jsjg,sjjg,count);
     return count;
 }

 /*主函数*/
 int main()
 {
     ;
     ;
     ;
     string plus,add;
     string judge;
     int m;
     cout<<"请输入题目数量:";
     while(!(cin>>m))
     {
         cout<<"输入错误,请重新输入:";
         cin.clear();
         cin.sync();
     }
     cout<<endl;
     cout<<"是否有乘除法:";
     cin>>plus;
     cout<<endl;
     while(plus!="Y"&&plus!="y"&&plus!="N"&&plus!="n")
     {
         cout<<"输入错误,请重新输入(Y/N):";
         cin>>plus;
         cout<<endl;
     }

     cout<<"是否加减出现负数:";
     cin>>add;
     while(add!="Y"&&add!="y"&&add!="N"&&add!="n")
     {
         cout<<"输入错误,请重新输入(Y/N):";
         cin>>add;
         cout<<endl;
     }
     cout<<endl;
     cout<<"例子:13+15=28"<<endl;
     cout<<endl;
     srand((unsigned)time(NULL));
     ;i<m;i++)
     {
         cout<<i+<<"、";
         count=yunsuan(num1,num2,count,plus,add);
     }
     cout<<endl;
     cout<<"正确:"<<count<<endl;
     cout<<endl;
     cout<<"错误:"<<m-count<<endl;
     cout<<endl;
     cout<<)<<<<"%"<<endl;                    //输出统计的数据
     cout<<endl;
     cout<<"是否继续(Y/N)";
     cin>>judge;
     cout<<endl;
     while(judge!="Y"&&judge!="y"&&judge!="N"&&judge!="n")
     {
         cout<<"输入错误,请重新输入(Y/N):";
         cin>>judge;
         cout<<endl;
     }
     if(judge=="Y"||judge=="y")
     {
         main();
     }
     else
     {
         ;
     }
 }

四、程序运行结果

五、实验结果分析

  四则运算的作业已经做了三次,每次的题目都有一些拓展和改进,我所认识到的并不是说程序实现的怎么样,而是程序从开始到结束,是一个不断完善和改进的过程,每一次的拓展,实际上是对以前不足之处的改进,使之更加符合我们的需要,从程序到软件,都要经历开始,分析,实现,完善,改进,测试等方面。要做的不仅仅是把结果运行出来,而是要注重过程和思路

六、psp0级表格

项目计划总结:

周活动总结表

姓名:张世通                                  日期:3/21

日期       任务

听课

编写程序

阅读课本

准备考试

日总计

周日

周一

60

60

周二

100

100

周三

120

120

周四

60

60

周五

100

100

周六

120

120

周总结

200

240

120

560

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

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

总计

200

240

120

560

平均

200

240

120

560

最大

200

240

120

560

最小

200

240

120

560

以前各周的累计时间

总计

200

160

70

430

平均

200

160

70

430

最大

200

160

70

430

最小

200

160

70

430

                  时间记录表:

                学生         张世通                                           日期          3/21

                教师        王建民                                             课程           PSP

日期

开始时间

结束时间

中断时间

净时间

活动

备注

3.18

19:25

21:25

120

课堂作业求最大子数组的和

3.21

08:30

10:30

120

课堂作业四则运算

                  

三、缺陷记录日志:          
学生             张世通                   
日期       2015年3月14日                
教员            王建民                    
程序号            01                         
日期 编号 类型 引入阶段 排除阶段 修复时间 修复缺陷
 3.18  1  3  编码  编码  10min  
 描述:定义动态数组出错,int *father=new int[length]
 3.18  2  4  编码  调试  5min  
 描述:使用了sizeof(father),没有意识到sizeof(参数)参数应该是数据类型,而不是指针,求长度出错
 3.21  3  3  编码  调试  20min  
 描述:参数传递问题,主函数定义的参数在调用函数中没有正确返回
             
 

四则运算三+psp0级表格的更多相关文章

  1. 四则运算2+psp0级表格

    四则运算2 一.题目和要求 题目:写一个能自动生成小学四则运算题目的程序,要求一次输出不少于30道,只能是整数100以内的四则运算(四则运算1升级版) 要求: 1.题目避免重复 2.可定制(数量/打印 ...

  2. 撰写一篇博客要求讲述四则运算2的设计思想,源程序代码、运行结果截图、编程总结分析,并按照PSP0级的要求记录开发过程中的时间记录日志。

    一.撰写一篇博客要求讲述四则运算2的设计思想,源程序代码.运行结果截图.编程总结分析,并按照PSP0级的要求记录开发过程中的时间记录日志. 1.设计思想: ①创建test.jsp建立第一个前端界面,提 ...

  3. Word中设置三栏式表格

    一般期刊要求三栏式表格,我原来是选中表格,用橡皮差擦去不必要的线,但是今天发现只能查去横线,竖线一插曲格式就乱了,我想起了上图,不选“内部竖框线”就好了.

  4. 实验三 HTML表格和表单的制作

    实验三 HTML表格和表单的制作 [实验目的] 1.掌握表格的创建.结构调整与美化方法: 2.熟悉表格与单元格的主要属性及其设置方法: 3.掌握通过表格来进行网页页面的布局方法. [实验环境] 连接互 ...

  5. PSP0级 周活动总结表+时间记录日志+缺陷记录日志 表格模板

    一.项目计划总结: 周活动总结表 姓名:               日期: 日期\任务 听课 编写程序 阅读课本 准备考试     日总计 周日               周一           ...

  6. 第三天--html表格

    <!Doctype html><html>    <head>        <meta charset="UTF-8">      ...

  7. 用FlexGrid做开发,轻松处理百万级表格数据

    表格数据处理是我们项目开发中经常会遇到的设计需求之一,所需处理的数据量也较大,通常是万级.甚至百万级.此时,完全依赖平台自带的表格工具,往往无法加载如此大的数据量,或者加载得很慢影响程序执行. 那么, ...

  8. 触发器三(行级DML触发器)(学习笔记)

    行级DML触发器 每当一条记录出现更新操作时进行触发操作定义时要定义FOR EACH ROW 使用":old.字段"和":new.字段"标识符 No. 触发语句 ...

  9. 第一个PSP0级

    1.计划: 需求描述: 按照图片要求设计添加新课程界面.(0.5分) 在后台数据库中建立相应的表结构存储课程信息.(0.5分) 实现新课程添加的功能. 要求判断任课教师为王建民.刘立嘉.刘丹.王辉.杨 ...

随机推荐

  1. u-boot-1.1.6移植之dm9000

    网卡dm9000的执行过程(u-boot版本:u-boot-1.1.6): 在board.c里面有eth_initialize(gd->bd); eth_initialize的实现在eth.c里 ...

  2. 软件工程 speedsnail 冲刺1

    2015-5-5 完成任务:背景音乐的添加: 遇到问题:循环播放的设置: 明日任务:snail的移动功能.

  3. sql批量修改插入数据

    1.批量修改 select 'update 读者库 set 单位代码='''+新单位代码+''' where 单位代码='''+单位代码+'''' from 读者单位 ,)<'L' and is ...

  4. kettle的job

    1.首先创建一个job 2.拖拽组件形成下面的图 这里需要注意,在作业中的连线分为三类: 黄色锁的线:这个步骤执行之后,无论失败与否都会执行下一个步骤 绿色对号线:步骤执行成功了,才会执行下一个步骤. ...

  5. Laravel 安装predis 扩展

    在安装predis扩展之前先安装composer,安装教程在https://getcomposer.org/download/: php -r "copy('https://getcompo ...

  6. PHP实现的一分页工具类代码

    总的页数是一个长度一定的木块,这把尺子在这个木块上滑动,前提,尺子的两端不能超出木块:D.发现这么一来要做的事情就是去找这个尺子在木块上的起始点,根据用户给传进来的page变量.哈哈,关键代码下面: ...

  7. 13)Java static

    1.static变量      按照是否静态的对类成员变量进行分类可分两种:一种是被static修饰的变量,叫静态变量或类变量:另一种是没有被static修饰的变量,叫实例变量.两者的区别是:    ...

  8. Learning Scrapy笔记(三)- Scrapy基础

    摘要:本文介绍了Scrapy的基础爬取流程,也是最重要的部分 Scrapy的爬取流程 Scrapy的爬取流程可以概括为一个方程式:UR2IM,其含义如下图所示 URL:Scrapy的运行就从那个你想要 ...

  9. python基础学习笔记第二天 内建方法(s t r)

    python的字符串内建函数 str.casefold()将字符串转换成小写,Unicode编码中凡是有对应的小写形式的,都会转换str.center()返回一个原字符串居中,并使用空格填充至长度 w ...

  10. mvvm 模式

    MVC = Massive View Controller ? 有笑话称MVC为重量级的试图控制器.仔细一想,确实存在这个问题.以UITableViewController和UITableView举个 ...