软件工程课堂训练——随机四则运算升级版
一,设计思路
请参考上篇博客
二,代码
// 123.cpp : 定义控制台应用程序的入口点。 // #include "stdlib.h" #include "time.h" //调用随机函数 #include "iostream" using namespace std; int main() { 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(int 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; break; case 1: if(d==0)//控制减法结果有无负数 { if(a<b) { cout<<b<<"-"<<a<<"="<<endl; } else { cout<<a<<"-"<<b<<"="<<endl; } } else { cout<<a<<"-"<<b<<"="<<endl; } break; } } if(c==1)//允许有乘除法时,输出加减乘除 { g=rand()%4; //产生随机运算符 switch(g) { case 0: cout<<a<<"+"<<b<<"="<<endl; break; case 1: if(d==0) { if(a<b) { cout<<b<<"-"<<a<<"="<<endl; } else { cout<<a<<"-"<<b<<"="<<endl; } } else { cout<<a<<"-"<<b<<"="<<endl; } break; case 2: cout<<a<<"*"<<b<<"="<<endl; break; case 3: cout<<a<<"/"<<b<<"="<<endl; break; } } } system("pause"); return 0; }
三,运行截图
1,当功能选择不符合规范时出现出错提醒
2,四个功能,乘除运算,有无负数,随机数范围,题目定制。。。。。
3,题目定制的边界值无错误,输入小于1的数提醒错误。
三,心得体会
在编写程序时,才发现自己的基础太薄弱。只会基本的if-else,switch-case,for,while等,想写个函数调用一下才发现自己根本不知道怎么传参;好在代码都是自己一个一个码上去的,收获和体会还是有的。好多格式出错,比如输入(cin>>),我想输入一个整数却写成cin>>"a"。还有程序运行太快,问同学结尾加了一句system("pause");才使程序能够正常运行。每一次编程都有新的体会,也会发现许多不足。只有多练习,多积累才能出好程序。
四,PSP0级 记录表
周活动总结表
姓名:焦燕 日期:15/3/15
日期 任务 | 听课 | 编写程序 | 阅读课本 | 准备考试 | 日总计 |
周日 | |||||
周一 | |||||
周二 | 300 | 20 | 320 | ||
周三 | 100 | 30 | 130 | ||
周四 | 200 | 60 | 15 | 275 | |
周五 | 200 | 80 | 15 | 295 | |
周六 | 100 | 30 | 130 | ||
周总结 | 800 | 240 | 110 | 1150 |
阶段时间和效率 周数(上一次周活动表的周数+1):1
不包括上一周在内的累计时间
总计 | |||||
平均 | |||||
最大 | |||||
最小 |
以前各周的累计时间
总计 | 800 | 240 | 110 | 1150 | |
平均 | 800 | 240 | 110 | 1150 | |
最大 | 800 | 240 | 110 | 1150 | |
最小 | 800 | 240 | 110 | 1150 |
时间记录表
学生 : 焦燕 日期 :15/3/14
教师 : 王建民 课程 : PSP
日期 | 开始时间 | 结束时间 | 中断时间 | 净时间 | 活动 | 备注 |
15/3/10 | 8:00 | 12:00 | 40 | 200 |
软件工程 操作系统上课 |
课件休息 |
14:20 | 14:40 | 20 | 阅读《梦断代码》 | |||
16:10 | 18:00 | 10 | 100 | 《windows高级编程》 | 课间休息 | |
3/11 | 8:00 | 9:50 | 10 | 100 | 计算机网络上课 | 课间休息 |
10:30 | 11:00 | 30 | 阅读《梦断代码》 | |||
3/12 | 10:10 | 12:00 | 10 | 100 | 计算机技术上课 | 课间 |
14:00 | 15:50 | 10 | 100 | 嵌入式开发技术 | 课间 | |
16:10 | 17:10 | 60 | 四则运算编程 | |||
22:20 | 22:35 | 《梦断代码》 | ||||
3/13 | 8:00 | 12:00 | 40 | 200 |
软件工程 操作系统上课 |
课间休息 喝水 |
14:40 | 16:00 | 80 | 四则运算编程 | |||
22:10 | 22:25 | 15 | 《梦断代码》 | |||
3/14 | 9:20 | 11:00 | 100 |
编写代码加 优化代码 |
||
21:30 | 22:00 | 30 | 《梦断代码》 | |||
3/15 | 12:00 | 14:00 | 120 | 整理资料 上传博客 |
缺陷记录日志
学生 : 焦燕 日期 : 3/15
教员 : 王建民 程序号 : 2
日期 |
编号 |
类型 |
引入阶段 |
排除阶段 |
修复时间 |
修复缺陷 |
15/3/12 |
1 |
|
编码 |
编译 |
4min |
|
描述:i 没有定义 |
||||||
3/13 |
2 |
|
编码 |
编译 |
2min |
逻辑错误 |
描述:输入整数多加双引号 |
||||||
3/14 |
3 |
|
编码 |
执行 |
20min |
逻辑错误 |
描述:加system("pause");从程序里调用“pause”命令;等待键盘响应来继续程序下面部分 |