四则运算三+psp0级表格

一、题目

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

二、设计思路

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

三、程序源代码

  1 // sizeyunsuan.cpp : Defines the entry point for the console application.
  2 //
  3
  4 #include "stdafx.h"
  5 #include"time.h"
  6 #include "iomanip"
  7 #include"iostream"
  8 #include"String"
  9 using namespace std;
 10 /*确定运算符*/
 11 char suanfu(int n)
 12 {
 13     switch(n)
 14     {
 15     case 0:
 16         return ‘+‘;
 17     case 1:
 18         return ‘-‘;
 19     case 2:
 20         return ‘*‘;
 21     case 3:
 22         return ‘/‘;
 23     }
 24 }
 25
 26 /*结果判断函数*/
 27 int judge(float jsjg,float sjjg,int count)
 28 {
 29     while(!(cin>>jsjg))
 30     {
 31             cout<<"输入错误,请重新输入:";
 32             cin.clear();
 33             cin.sync();
 34     }
 35     if(sjjg==jsjg)                                                                                    //检查用户输入的答案
 36     {
 37         count++;
 38     }
 39     else
 40     {
 41         cout<<"错误"<<endl;
 42     }
 43     return count;
 44 }
 45 /*运算调整函数*/
 46 int yunsuan(int num1,int num2,int count,string s,string l)
 47 {
 48     int temp;
 49     float jsjg=0;
 50     float sjjg=0;
 51     int operators=0;
 52     num1=rand()%100;
 53     num2=rand()%100;
 54     if(s=="Y"||s=="y")
 55     {
 56         operators=rand()%4;
 57     }
 58     else
 59     {
 60         operators=rand()%2;
 61     }
 62     if(operators==1)                                                                //避免结果出现负数
 63     {
 64         if(l=="N"||l=="n")
 65         {
 66             if(num1<num2)
 67             {
 68                 temp=num2;
 69                 num2=num1;
 70                 num1=temp;
 71             }
 72         }
 73     }
 74     else if(operators==3)                                                            //为了避免除不尽的情况,使除法运算调整为都能整除的。
 75     {
 76         num1=num2*(rand()%10);
 77     }
 78     switch(operators)                                                                //自动计算出正确的答案,便于检查用户输入的对错
 79     {
 80     case 0:
 81         sjjg=num1+num2;
 82         break;
 83     case 1:
 84         sjjg=num1-num2;
 85         break;
 86     case 2:
 87         sjjg=num1*num2;
 88         break;
 89     case 3:
 90         sjjg=num1/num2;
 91     }
 92
 93     cout<<num1<<suanfu(operators)<<num2<<"=";
 94     count=judge(jsjg,sjjg,count);
 95     return count;
 96 }
 97
 98
 99 /*主函数*/
100 int main()
101 {
102     int num1=0;
103     int num2=0;
104     int count=0;
105     string plus,add;
106     string judge;
107     int m;
108     cout<<"请输入题目数量:";
109     while(!(cin>>m))
110     {
111         cout<<"输入错误,请重新输入:";
112         cin.clear();
113         cin.sync();
114     }
115     cout<<endl;
116     cout<<"是否有乘除法:";
117     cin>>plus;
118     cout<<endl;
119     while(plus!="Y"&&plus!="y"&&plus!="N"&&plus!="n")
120     {
121         cout<<"输入错误,请重新输入(Y/N):";
122         cin>>plus;
123         cout<<endl;
124     }
125
126     cout<<"是否加减出现负数:";
127     cin>>add;
128     while(add!="Y"&&add!="y"&&add!="N"&&add!="n")
129     {
130         cout<<"输入错误,请重新输入(Y/N):";
131         cin>>add;
132         cout<<endl;
133     }
134     cout<<endl;
135     cout<<"例子:13+15=28"<<endl;
136     cout<<endl;
137     srand((unsigned)time(NULL));
138     for(int i=0;i<m;i++)
139     {
140         cout<<i+1<<"、";
141         count=yunsuan(num1,num2,count,plus,add);
142     }
143     cout<<endl;
144     cout<<"正确:"<<count<<endl;
145     cout<<endl;
146     cout<<"错误:"<<m-count<<endl;
147     cout<<endl;
148     cout<<"正确率: "<<count<<"/"<<m<<"="<<fixed<<setprecision(2)<<float(count)/m*100<<"%"<<endl;                    //输出统计的数据
149     cout<<endl;
150     cout<<"是否继续(Y/N)";
151     cin>>judge;
152     cout<<endl;
153     while(judge!="Y"&&judge!="y"&&judge!="N"&&judge!="n")
154     {
155         cout<<"输入错误,请重新输入(Y/N):";
156         cin>>judge;
157         cout<<endl;
158     }
159     if(judge=="Y"||judge=="y")
160     {
161         main();
162     }
163     else
164     {
165         return 0;
166     }
167 }

四、程序运行结果

五、实验结果分析

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

六、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  
 描述:参数传递问题,主函数定义的参数在调用函数中没有正确返回
             
 
时间: 2024-08-04 14:00:53

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

四则运算2+psp0级表格

四则运算2 一.题目和要求 题目:写一个能自动生成小学四则运算题目的程序,要求一次输出不少于30道,只能是整数100以内的四则运算(四则运算1升级版) 要求: 1.题目避免重复 2.可定制(数量/打印方式) 3.可以控制下列参数:是否有除法,是否有括号,数值范围,加减有无负数,除法有无余数,是否支持分数,是否支持小数,精确到多少位,打印中每行的间隔 二.题目设计思路 根据第一次的程序实现,已经实现了打印数量上的控制,直接确定了打印列数,其他实现基本功能 第一步:避免题目重复:将打印的结果保存,此

四则运算三

上次的作业,四则运算三,在以前的基础上又有了新的需求.算术题目中不能产生复数,也就是所算术表达式如果有形如e1-e2的子表达式,那么e1>e2 .而且除法的结果可以表示为真分数或者带分数,每道题目不超过三个运算符.而且一次程序运行的结果不能产生重复的表达式,即任何两道题目不能通过有限次的加法交换和乘法交换变成统一到题目(其实我觉得如果两个表达式需要经过加法交换或者乘法交换变成同一道题,那么这两个题也不是重复的题目呀,因为这还需要涉及到交换律呀!).最重要的是需要连接数据库,计算答案和判定对错.

ExtJS4.2 Grid知识点三:改变表格Grid单元格背景颜色

在ExtJS4.2 Grid知识点一:改变表格Grid单元格文字颜色一文中讲解了如何改变单元格中文字颜色,接下来在本章学习如何改变Grid中单元格的背景颜色,显示结果如图片: 在线演示  /  示例代码 实现方式同样是为Grid中该列自定义renderer函数,查询ExtJS 4.2 API得知,Ext.grid.column.Column的renderer属性可以是一个函数也可以是字符串,这个知识点是通过函数来实现的.函数参数列表如下: value : 当前待渲染的单元格值,即表格中某行某列的

三种php表格隔行换色

第一种for{}eles{}: <?php echo "<table width='80%' border = 1 cellpadding=5 cellspacing=0>"; for ($i = 1; $i <= 5; $i++){ if($i % 2 == 0){ echo '<tr align="center" bgcolor="red">'; }else{ echo '<tr align=&quo

软件工程概论-psp0级记录1

psp0级日志记录1

Word中设置三栏式表格

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

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

一.项目计划总结: 周活动总结表 姓名:               日期: 日期\任务 听课 编写程序 阅读课本 准备考试     日总计 周日               周一               周二               周三               周四               周五               周六               周总结               阶段时间和效率                                  

第三天--html表格

<!Doctype html><html>    <head>        <meta charset="UTF-8">        <meta name="keywords" content="">        <meta name="description" content="">        <meta name=&

四则运算3+psp0

题目要求: 1.程序可以判断用户的输入答案是否正确,如果错误,给出正确答案,如果正确,给出提示. 2.程序可以处理四种运算的混合算式. 3.要求两人合作分析,合作编程,单独撰写博客. 团队成员:张绍佳.杜文星(博客:http://www.cnblogs.com/duwenxing/p/5294508.html) 设计思路: 代码分写于不同的文件中: ① head.h:在头文件head.h中,将其他.cpp文件中所需要的头文件.全局变量的声明.函数的声明都写在此文件中. ② fraction.cp