一、题目

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

二、设计思路

  • 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. Bootstrap CSS 描述

    <!DOCTYPE html><html lang="zh-CN"><head> <!--定于内容,和内容的编码格式--> < ...

  2. SQL笔记-第二章,数据表的创建和管理

    数据类型 分5类:整数.数值.字符相关.日期时间以及二进制 1.整数 数据库系统 类型 说明 MYSQL tinyint [unsigned] 一个很小的整数.有符号的范围是-128 到127,无符号 ...

  3. javaSE第十二天

    第十二天    64 1. Scanner的使用(了解)    64 (1)在JDK5以后出现的用于键盘录入数据的类.    64 (2)构造方法:    64 (4)要掌握的两个方法    65 ( ...

  4. Android开发教程AnimationDrawable逐帧播放动画

    下面我们一起来看篇Android开发AnimationDrawable控制逐帧播放动画实现过程,希望文章对各位朋友带不一些帮助. 当我们点击按钮时,该图片会不停的旋转,当再次点击按钮时,会停止在当前的 ...

  5. ADO.NET中的Connection详解

    连接字符串 1.写法一 "Data Source=服务器名; Initial Catalog=数据库; User ID =用户名; Password=密码; Charset=UTF8; &q ...

  6. 小米、MIUI、sqlite3: not found--miui安装sqlite3

    以下为miui安装sqlite3的教程: 1.从AVD中将sqlite3导入到PC的D:\android目录下(AVD的版本需要和手机操作系统的版本相同). #adb pull system/xbin ...

  7. Winform登录、控制软件只运行一次、回车登录

    Winform登录对很多程序猿来说都有些困惑,登录进入主窗体后要销毁登录窗体,而不是隐藏哦,怎么实现呢? 先贴一段Program.cs的代码 static void Main() { Mutex mu ...

  8. js生成有缩进的表格

    项目中用到用了两天时间想到的,记录下来,如有更好的方法,留言给我,谢谢! js做如下表格: json [{"id":302,"serviceId":15,&qu ...

  9. onClick事件实现方式(打电话为例子)

    1.在button 中 android:onclick="call" 注意事项:①.方法的名字必须是call ②.区别大小写 ③.call方法必须接收一个View类型的参数 ④.方 ...

  10. jquery 点击页面其他地方实现隐藏菜单功能

    1.给页面文档添加一个点击事件函数,在函数内实现隐藏菜单功能. $('html').click(function(){//Hide the menus if visible});//用$(docume ...