四则运算三+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分) 实现新课程添加的功能. 要求判断任课教师为王建民.刘立嘉.刘丹.王辉.杨 ...
随机推荐
- SVN更新、清理乱码解决
我的电脑信息 win7 64bit svn版本: 先介绍一种最简单的方法,一般都会有效,疑难杂症请用第二种 方法一: 将前面6项全部选上--> [确定] 无效请仔细看下面方法二方法详解 方法二: ...
- IIS FTP文件服务器搭建步骤
利用IIS搭建需要验证用户用的FTP服务器(当然也可以不用验证,为了安全,添加验证) 1.C盘下创建文件夹,iftppub 2.打开关闭Windows功能,Internet信息服务全选,操作完后,重启 ...
- 2.2安装JDK
在Ubuntu下安装JDK的步骤: (1)首先需要自己安装的Ubuntu系统是多少位的,可以使用命令[getconf LONG_BIT]获取这个信息: (2)在JDK官网下载相应(选取和Linux系统 ...
- Android IOS WebRTC 音视频开发总结(十八)-- 手机适配
本文主要介绍上次碰到的某些机器上看不到视频的问题,文章来自博客园RTC.Blacker,转载请说明出处. 之前做的视频聊天App一直运行良好,前几天客户反馈说在三星9100. Android4.0.3 ...
- Elasticsearch的PHP的API使用(一)
前提:在服务器上安装Elasticsearch (host:192.168.1.10) http://192.168.1.10:9200?_search?pretty 1:安装PHP的Elast ...
- ASP.NET MVC5 高级编程 第2章 控制器
参考资料<ASP.NET MVC5 高级编程>第5版 第2章 控制器 控制器:响应用户的HTTP 请求,并将处理的信息返回给浏览器. 2.1 ASP.NET MVC 简介 MVC 模式中的 ...
- 软件工程 speedsnail 第二次冲刺6
20150523 完成任务:碰撞墙壁,或线身体翻转: 遇到问题: 问题1 身体翻转与帧数冲突 解决1 运用循环嵌套解决 明日任务: 蜗牛碰到线后速度方向的调整
- 实例化新的一个(new)
今天越到了一个特别尴尬的问题,其实特别简单就一句代码的事. PlayList pModel = new PlayList(); foreach (XmlNode xn1 in xnl) { ····· ...
- swiper 页面双向设置
<!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8&quo ...
- 重回程序员之路。重写博客。我的ecshop小京东二开问题汇总与解决方案。
问题1:混合支付(余额支付+在线支付)不跟更新订单状态问题. 解决方案:http://bbs.ecshop.com/viewthread.php?tid=156761&highlight= i ...