一、题目

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

二、设计思路

  • 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. 用绝对路径引用JS、CSS

    项目中,最好使用绝对路径引用JS和CSS文件,详情如下: 1.vm文件中: <link rel="stylesheet" href="$!{request.cont ...

  2. C# 常用小技巧

    int? id 表示id是可以为null的整型 跟Nullable<int> id 是一样的 id ?? 1等于 id==null?1:id;

  3. 仿AS语法来写HTML5—第1章,显示一张图片

    最近开始学习html5,因为一直都是研究as,所以还是觉得as顺眼一点,但是html5也不能不学,于是就想出了,可以把html5用as的语法来写出来,做游戏应该来的比较顺手一些,下面开始第一篇 第一篇 ...

  4. Windows Phone 开发起步之旅之一 平台环境的搭建

    最近大家都在写博客园的技术文章,按耐不住了,也把自己平时学习中遇到和学习到的一些东西写出来,供大家分享也好,自己留个纪念也好,有个可以查看的东西. 言归正传,随着微软对Windows Phone的投入 ...

  5. 《深入剖析Tomcat》读书笔记(一)

    一.Tomcat Tomcat,全名Apache Tomcat,最初是由Sun发起,后来捐赠给ASF,是Apache Jakarta下的一个子项目.Tomcat是对Servlet API定义的容器的一 ...

  6. sqlite mvc分页

      <tr class="tr1">                 <td>                     共<asp:Literal r ...

  7. SMTP sendMail 失败解决办法

    If you are seeing messages like this in your message log when running a process through the process ...

  8. ViewGroup 和 View 事件传递及处理小谈

    前言 在自定义组件的时候少不了会去处理一些事件相关的东西,关于事件这块网上有很多文章,有说的对的也有说的不对的,我在理解的时候也有过一段时间的迷惑,现在把自己理解的东西写下来,给有相同疑问的朋友提供些 ...

  9. eMarketer:DMP帮广告主搞定大数据处理问题

    DMP(数据管理平台)帮助广告主获得可行动的洞察 在数字广告领域,大数据和数据管理平台(DPMs)仍大有可为.DMPs让广告主可以使用他们的大数据来做出更灵活更有效的营销决策. 数据管理和分析是业界挑 ...

  10. linux下关于mysqldump备份的.sql导入数据库表数据丢失优化

    直切正题 前2个随笔做了linux下自动备份,但是备份的.sql文件发现表数据丢失,原因是数据库太大我的数据库文件是804M,在用ftp拉去也会丢失数据 所以对db.sh备份数据库加一个压缩gizp ...