软件工程课堂训练——随即四则运算加强版
一、加强功能:
让程序能接受用户输入答案,并判定对错。最后给出总共对/错的数量。
二、设计思路:
1、先定义两个数组,一个存放正确答案,一个存放用户给的答案。再定义两个变量来统计累加正确个数和错误个数;
2、每次循环出题时计算出正确答案;
3、然后出完题以后利用循环让用户输入答案,并判断正误,如果正确则正确累加1,否则错误累加1;
三、源代码:
// sizeyunsuanzhongjiban.cpp : 定义控制台应用程序的入口点。 // #include "stdafx.h" #include "stdlib.h" #include "time.h" //调用随机函数 #include "iostream" using namespace std; int main() { int trueresult[10000],userresult[100000];//定义存放正确答案数组和存放错误答案数组 int truenumber=0;//正确累加 int falsenumber=0;//错误累加 int i,k; int a,b; //a,b为两个随机整数 int g; //g为随机产生四种运算符的情况 int j; //j为用户想要的题目数量 int c,d,f; //c,d,f用户的选择 cout<<"******欢迎进入随机产生四则运算程序******"<<endl; cout<<"****************************************"<<endl; cout<<" 是否有乘除法运算?(是->1,否->0)"<<endl; cin>>c; while(c!=0&&c!=1) { cout<<"请输入“0”或“1”"<<endl; cin>>c; } cout<<" 减法结果有无负数?(有->1,无->0)"<<endl; cin>>d; while(d!=0&&d!=1) { cout<<"请输入“0”或“1”"<<endl; cin>>d; } cout<<" 随机数数值范围是(100以内->1,随机->0)"<<endl; cin>>f; while(f!=0&&f!=1) { cout<<"请输入“0”或“1”"<<endl; cin>>f; } cout<<"****************************************"<<endl; cout<<"请输入题目数量:"; cin>>j; while(j<=0) { cout<<"请输入大于0的数"<<endl; cin>>j; } for(i=0;i<j;i++) { if(f==1)//控制随机数的范围 { a=rand()%100; //产生100以内随机数,将随机数控制在100以内 b=rand()%100; } if(f==0) { a=rand(); b=rand(); } if(c==0)//无乘除法时,输出加减 { g=rand()%2; switch(g) { case 0: cout<<a<<"+"<<b<<"="<<endl; trueresult[i]=a+b;//计算正确答案 break; case 1: if(d==0)//控制减法结果有无负数 { if(a<b) { cout<<b<<"-"<<a<<"="<<endl; trueresult[i]=b-a;//保证输出减法结果是正数 } else { cout<<a<<"-"<<b<<"="<<endl; trueresult[i]=a-b; } } else { cout<<a<<"-"<<b<<"="<<endl; trueresult[i]=a-b; } break; } } if(c==1)//允许有乘除法时,输出加减乘除 { g=rand()%4; //产生随机运算符 switch(g) { case 0://当随机数是0时,输出加法 cout<<a<<"+"<<b<<"="<<endl; trueresult[i]=a+b; break; case 1://当随机数是1时,输出减法 if(d==0) { if(a<b) { cout<<b<<"-"<<a<<"="<<endl; trueresult[i]=b-a; } else { cout<<a<<"-"<<b<<"="<<endl; trueresult[i]=a-b; } } else { cout<<a<<"-"<<b<<"="<<endl; trueresult[i]=a-b; } break; case 2: cout<<a<<"*"<<b<<"="<<endl; trueresult[i]=a*b; break; case 3: cout<<a<<"/"<<b<<"="<<endl; trueresult[i]=a/b; break; } } } cout<<"请依次输出答案:"<<endl;//用户输出答案 for(k=0;k<j;k++) { cout<<"请输入第"<<k+1<<"个答案"<<endl; cin>>userresult[k]; if(userresult[k]==trueresult[k])//判断用户给的结果是否正确 { cout<<" √"<<endl; truenumber++; } else if(userresult[k]!=trueresult[k]) { cout<<" ×"<<endl; falsenumber++; } } cout<<"正确的答案有"<<truenumber<<"个"<<endl; cout<<"错误的答案有"<<falsenumber<<"个"<<endl; system("pause"); return 0; }
四、运行结果
五、心得体会
刚开始的时候我想的很复杂,到处乱加功能,但到后来思路越来越清楚,明白了具体的结构,比以前更简单明了。这一次的练习比以前出现的错误要少,用时也少了很多。实践和练习真的是必不可少的。
六、PSP0级 记录表:
周活动总结表
姓名:焦燕 日期:15/3/22
日期 任务 | 听课 | 编写程序 | 阅读课本 | 准备考试 | 日总计 |
周日 | |||||
周一 | 300 | 300 | |||
周二 | 400 | 20 | 420 | ||
周三 | 100 | 60 | 30 | 190 | |
周四 | 300 | 15 | 315 | ||
周五 | 200 | 80 | 15 | 295 | |
周六 | |||||
周总结 | 1300 | 140 | 80 | 1520 |
阶段时间和效率 周数:2
总计 | 1300 | 140 | 80 | 1520 | |
平均 | 185.7 | 20 | 11.4 | 217 | |
最大 | 400 | 80 | 30 | 420 | |
最小 | 100 | 60 | 15 | 190 |
以前各周的累计时间
总计 | 800 | 240 | 110 | 1150 | |
平均 | 800 | 240 | 110 | 1150 | |
最大 | 800 | 240 | 110 | 1150 | |
最小 | 800 | 240 | 110 | 1150 |
时间记录表
学生 : 焦燕 日期 :15/3/22
教师 : 王建民 课程 : PSP
日期 | 开始时间 | 结束时间 | 中断时间 | 净时间 | 活动 | 备注 |
15/3/17 | 8:00 | 12:00 | 40 | 200 |
软件工程 操作系统上课 |
读梦断代码20分钟 |
14:00 | 15:50 | 10 | 100 | 嵌入式系统 | 课间 | |
16:10 | 18:00 | 10 | 100 | 《windows高级编程》 | 课间休息 | |
3/18 | 8:00 | 9:50 | 10 | 100 | 计算机网络上课 | 课间休息 |
10:30 | 11:30 | 60 | 四则运算编程 | |||
22:00 | 22:30 | 30 | 梦断代码 | |||
3/19 | 8:00 | 9:50 | 10 | 100 | 嵌入式系统 | 课间 |
10:10 | 12:00 | 10 | 100 | 计算机技术上课 | 课间 | |
14:00 | 15:50 | 10 | 100 | 嵌入式开发技术 | 课间 | |
22:20 | 22:35 | 15 | 《梦断代码》 | |||
3/20 | 8:00 | 12:00 | 40 | 200 |
软件工程 操作系统上课 |
课间休息 喝水 |
14:40 | 16:00 | 80 | 四则运算编程 | |||
22:10 | 22:25 | 15 | 《梦断代码》 | |||
3/22 | 12:00 | 14:00 | 120 | 整理资料 上传博客 |
缺陷记录日志
学生 : 焦燕 日期 : 3/22
教员 : 王建民 程序号 : 3
日期 |
编号 |
类型 |
引入阶段 |
排除阶段 |
修复时间 |
修复缺陷 |
15/3/18 |
1 |
|
编码 |
编译 |
1min |
|
描述:没有 头文件#include "stdafx.h" |