一、题目

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

二、设计思路

  • 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. JB for iOS 9.3

    令人期待已久的JB再度现世,真是望穿秋水,千呼万唤始出来~ http://www.pangu.io/?flag=cn JB的过程顺利不卡关. 完成后就可以看到心爱的Cydia出现在桌面上了. 还需要A ...

  2. ASP.NET数据绑定

    数据绑定是ASP.NET提供的另一种访问数据库的方法.与ADO.NET数据库访问技术不同的是:数据绑定技术可以让程序员不关注数据库连接.数据库命令以及如何格式化这些数据以显示在页面上等环节,而是直接把 ...

  3. .NET Web开发总结(二)

    第二章 4.1  Application对象 在.NET开发中具有举足轻重的作用 Application对象的作用和运行机制存储所有用户的信息将一个网站创建一个应用程序一 . 创建一个Global文件 ...

  4. C# 集合 — Hashtable 线程安全

    基础知识重要吗?真的很重要. 就在笔者与同事聊天中突然同事提出一个问题,让笔都有点乱了手脚(有点夸张),题目是这样的: 问:Hashtable 是线程安全的吗? 答:…… (沉默中,Yes Or No ...

  5. ASP.NET MVC5 高级编程 第2章 控制器

    参考资料<ASP.NET MVC5 高级编程>第5版 第2章 控制器 控制器:响应用户的HTTP 请求,并将处理的信息返回给浏览器. 2.1 ASP.NET MVC 简介 MVC 模式中的 ...

  6. (四)、 nodejs中Async详解之一:流程控制

    为了适应异步编程,减少回调的嵌套,我尝试了很多库.最终觉得还是async最靠谱. 地址:https://github.com/caolan/async Async的内容分为三部分: 流程控制:简化十种 ...

  7. RecyclerView中显示不同的item

    测试代码: activity_main.xml <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/an ...

  8. 删:Centos 7安装Nginx 1.8

    [CentOS 7] 安装nginx! 首先进行 nginx yum Nginx安装记录 注意:如果用源码安装,nginx配置时需要指定--with-pcer对应的压缩包路径,如果使用二进制安装不需要 ...

  9. LinkedList存储一副扑克牌,实现洗牌功能。

    package cd.itcast.runble; import java.util.LinkedList; import java.util.Random; /** * LinkedList存储一副 ...

  10. SQLite中命令行程序(CLP)的使用

    SQLite CLP是使用和管理SQLite数据库最常用的工具.它在所有平台上的操作方式相同.CLP其实是两个程序,它可以运行在Shell模式下以交互的方式执行查询操作,也可以运行在命令行模式下完成各 ...