四则运算三+psp0级表格
一、题目
在四则运算二的基础上,选择一个方向进行拓展,我选择的是增加了答题模块
二、设计思路
- 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级表格的更多相关文章
- 四则运算2+psp0级表格
四则运算2 一.题目和要求 题目:写一个能自动生成小学四则运算题目的程序,要求一次输出不少于30道,只能是整数100以内的四则运算(四则运算1升级版) 要求: 1.题目避免重复 2.可定制(数量/打印 ...
- 撰写一篇博客要求讲述四则运算2的设计思想,源程序代码、运行结果截图、编程总结分析,并按照PSP0级的要求记录开发过程中的时间记录日志。
一.撰写一篇博客要求讲述四则运算2的设计思想,源程序代码.运行结果截图.编程总结分析,并按照PSP0级的要求记录开发过程中的时间记录日志. 1.设计思想: ①创建test.jsp建立第一个前端界面,提 ...
- Word中设置三栏式表格
一般期刊要求三栏式表格,我原来是选中表格,用橡皮差擦去不必要的线,但是今天发现只能查去横线,竖线一插曲格式就乱了,我想起了上图,不选“内部竖框线”就好了.
- 实验三 HTML表格和表单的制作
实验三 HTML表格和表单的制作 [实验目的] 1.掌握表格的创建.结构调整与美化方法: 2.熟悉表格与单元格的主要属性及其设置方法: 3.掌握通过表格来进行网页页面的布局方法. [实验环境] 连接互 ...
- PSP0级 周活动总结表+时间记录日志+缺陷记录日志 表格模板
一.项目计划总结: 周活动总结表 姓名: 日期: 日期\任务 听课 编写程序 阅读课本 准备考试 日总计 周日 周一 ...
- 第三天--html表格
<!Doctype html><html> <head> <meta charset="UTF-8"> ...
- 用FlexGrid做开发,轻松处理百万级表格数据
表格数据处理是我们项目开发中经常会遇到的设计需求之一,所需处理的数据量也较大,通常是万级.甚至百万级.此时,完全依赖平台自带的表格工具,往往无法加载如此大的数据量,或者加载得很慢影响程序执行. 那么, ...
- 触发器三(行级DML触发器)(学习笔记)
行级DML触发器 每当一条记录出现更新操作时进行触发操作定义时要定义FOR EACH ROW 使用":old.字段"和":new.字段"标识符 No. 触发语句 ...
- 第一个PSP0级
1.计划: 需求描述: 按照图片要求设计添加新课程界面.(0.5分) 在后台数据库中建立相应的表结构存储课程信息.(0.5分) 实现新课程添加的功能. 要求判断任课教师为王建民.刘立嘉.刘丹.王辉.杨 ...
随机推荐
- C++利用注册表添加桌面右键新建菜单
对于程序员来说,新建一个cpp文件是再频繁不过的事情了. 为了方便,我们习惯在桌面右键新建文件,而不是新建一个文本文档,然后修改后缀名. 百度谷歌查询了一下,终于知道如何添加注册表. 手痒,抽出时间用 ...
- 【转载】UML用例图
用例图主要用来描述“用户.需求.系统功能单元”之间的关系.它展示了一个外部用户能够观察到的系统功能模型图. [用途]:帮助开发团队以一种可视化的方式理解系统的功能需求. 用例图所包含的元素如下: 1. ...
- 配置server.xml后,启动tomcat 失败(Unable to start cluster)及解决方法
在配置负载均衡环境过程中修改server.xml 后重启tomcat报错,报错信息如下 [root@Alice bin]# ./catalina.sh runUsing CATALINA_BASE: ...
- protobuf的使用
Protobuf的安装 正确安装方法: [http://blog.csdn.net/guoyilongedu/article/details/17093811] linux下安装protobuf教程+ ...
- objective-C常量与变量
1.Objective-C中声明常量使用关键字const.如:const double PI = 3.1514; 2.Objective-C中变量可以分为成员变量.局部变量和全局变量(用的很少,尽量不 ...
- [leetcode]_String to Integer (atoi)
非常考虑思维全面性的一道题,考验是否能够考虑本问题的方方面面. 题目:将一个string转换为int.实现函数atoi()的功能. 先应该明确atoi()有哪些特殊功能:(正常的正负数情况我就不列了) ...
- [leetcode]_Symmetric Tree
第二道树的题目,依旧不会做,谷歌经验. 题目解释: give you a tree , judge if it is a symmetric tree. 思路:我以为要写个中序遍历(进阶学习非递归算法 ...
- WordPress 主题开发 - (七) 让主题更安全 待翻译
We're just about ready to start building our theme's template files. Before we do this, however, it' ...
- PHP+MYSQL会员系统的开发实例教程
本文通过一个简单的实例完成了完整的PHP+MySQL会员系统功能.是非常实用的一个应用.具体实现步骤如下: 一.会员系统的原理: 登陆-->判断-->保持状态(Cookie或Session ...
- emlog模板制作帮助手册
emlog基本模板文件 必须文件: main.css: CSS(样式表)文件 log_list.php: 日志列表页模板 echo_log.php: 日志页模板 page.php: 页面(page)模 ...