四则运算三+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分) 实现新课程添加的功能. 要求判断任课教师为王建民.刘立嘉.刘丹.王辉.杨 ...
随机推荐
- u-boot-1.1.6移植之dm9000
网卡dm9000的执行过程(u-boot版本:u-boot-1.1.6): 在board.c里面有eth_initialize(gd->bd); eth_initialize的实现在eth.c里 ...
- 软件工程 speedsnail 冲刺1
2015-5-5 完成任务:背景音乐的添加: 遇到问题:循环播放的设置: 明日任务:snail的移动功能.
- sql批量修改插入数据
1.批量修改 select 'update 读者库 set 单位代码='''+新单位代码+''' where 单位代码='''+单位代码+'''' from 读者单位 ,)<'L' and is ...
- kettle的job
1.首先创建一个job 2.拖拽组件形成下面的图 这里需要注意,在作业中的连线分为三类: 黄色锁的线:这个步骤执行之后,无论失败与否都会执行下一个步骤 绿色对号线:步骤执行成功了,才会执行下一个步骤. ...
- Laravel 安装predis 扩展
在安装predis扩展之前先安装composer,安装教程在https://getcomposer.org/download/: php -r "copy('https://getcompo ...
- PHP实现的一分页工具类代码
总的页数是一个长度一定的木块,这把尺子在这个木块上滑动,前提,尺子的两端不能超出木块:D.发现这么一来要做的事情就是去找这个尺子在木块上的起始点,根据用户给传进来的page变量.哈哈,关键代码下面: ...
- 13)Java static
1.static变量 按照是否静态的对类成员变量进行分类可分两种:一种是被static修饰的变量,叫静态变量或类变量:另一种是没有被static修饰的变量,叫实例变量.两者的区别是: ...
- Learning Scrapy笔记(三)- Scrapy基础
摘要:本文介绍了Scrapy的基础爬取流程,也是最重要的部分 Scrapy的爬取流程 Scrapy的爬取流程可以概括为一个方程式:UR2IM,其含义如下图所示 URL:Scrapy的运行就从那个你想要 ...
- python基础学习笔记第二天 内建方法(s t r)
python的字符串内建函数 str.casefold()将字符串转换成小写,Unicode编码中凡是有对应的小写形式的,都会转换str.center()返回一个原字符串居中,并使用空格填充至长度 w ...
- mvvm 模式
MVC = Massive View Controller ? 有笑话称MVC为重量级的试图控制器.仔细一想,确实存在这个问题.以UITableViewController和UITableView举个 ...