题目:可怜的二柱子,老师又对他的出题系统提出了新的要求:
1,题目避免重复;
2,可定制打印的方式;
3,可控制下列参数:是否有乘除,是否有括号,数值范围,加减有无负数,乘除有无余数,是否支持分数,打印每行间隔可调整。
解题思路:
一,(1)题目避免重复:使用srand(seed)函数进行随机化,随seed的不同,可以产生不同的随机数
二,(1)控制数量:输入变量num控制
三,利用调用函数,定义一个能产生加减乘除四则运算的函数;
(1)控制是否有乘除:(div=0,没有乘除;div=1,有乘除)
(2)数值范围:数值在10范围rand()%11;数值在50范围 5rand()%11;数值在100范围rand()%101
(3)是否有括号:kuohao=0,没有括号;kuohao=1,有括号
(4)加减有无负数:fushu=0,没有负数;fushu=1,有负数
(5)除法有无余数:yushu=0,没有余数;yushu=1,有余数
(6)打印每行的间隔:间隔=g,通过g的大小控制间隔
(7)是否支持分数:fenshu=0,不支持分数;fenshu=1支持分数
(8)是否支持小数:利用随机函数rand()产生0——1之间的小数
具体程序:
#include<iostream.h> #include<stdlib.h>//使用随机函数 #include<time.h>//题目避免重复 #include<conio.h> int x1[100],x2[100],op,i; void yunsuan1() { if(op==0) cout<<x1[i]<<"+"<<x2[i]<<"="<<endl; if(op==1) cout<<x1[i]<<"-"<<x2[i]<<"="<<endl; if(op==2) cout<<x1[i]<<"*"<<x2[i]<<"="<<endl; if(op==3) cout<<x1[i]<<"/"<<x2[i]<<"="<<endl; } void yunsuan2() { if(op==0) cout<<x1[i]<<"+"<<x2[i]<<"="<<" "; if(op==1) cout<<x1[i]<<"-"<<x2[i]<<"="<<" "; if(op==2) cout<<x1[i]<<"*"<<x2[i]<<"="<<" "; if(op==3) cout<<x1[i]<<"/"<<x2[i]<<"="<<" "; } int main() { srand(time(NULL));//题目避免重复 int num,temp;//题目的数量num int fanwei,out,div,fushu,jixu;//数值的范围,输出方式,是否有乘除运算,加减法是否有负数 cout<<"********欢迎使用小学四则运算定制系统********"<<endl; cout<<"本系统支持定制,祝您使用愉快!"<<endl; cout<<"请输入题目的数量num:"<<endl; cin>>num; cout<<"请选择数值范围(0--*)fanwei"<<endl; cin>>fanwei; cout<<"请选择打印方式out(0,空行打印 1,空格打印)"<<endl; cin>>out; cout<<"请选择有无乘除运算div(0,没有乘除运算 1,有乘除运算)"<<endl; cin>>div; cout<<"请选择加减运算有无负数fushu(0,没有负数 1,有负数)"<<endl; cin>>fushu; for(i=1;i<=num;i++) { x1[i]=rand()%fanwei;//输出两个用户制定范围内的数 x2[i]=rand()%fanwei;//输出两个用户制定范围内的数 op=rand()%4; if(out==0) { if(div==0&&fushu==0) { if(op>=2) { op=op-2; yunsuan1(); } else { yunsuan1(); } } if(div==1&&fushu==1) { if(x1[i]>x2[i]) { temp=x1[i]; x1[i]=x2[i]; x2[i]=temp; } yunsuan1(); } if(div==0&&fushu==1) { if(op>=2) { op=op-2; yunsuan1(); } else { yunsuan1(); } } if(div==1&&fushu==0) { yunsuan1(); } } else if(out==1) { if(div==0&&fushu==0) { if(op>=2) { op=op-2; yunsuan2(); } else { yunsuan2(); } } if(div==1&&fushu==1) { if(x1[i]>x2[i]) { temp=x1[i]; x1[i]=x2[i]; x2[i]=temp; } yunsuan2(); } if(div==0&&fushu==1) { if(op>=2) { op=op-2; yunsuan2(); } else { yunsuan2(); } } if(div==1&&fushu==0) { yunsuan2(); } } } cout<<"要继续吗?jixu(0, 退出 1,继续)"<<endl; cin>>jixu; if(jixu==1) { cout<<endl; main(); } else { return 0; } getch(); return 0; }
总结:这次程序用到了使题目不能重复的函数srand(time(NULL)),以及调用函数。因为对函数的调用不是很熟练,所以事先定义了两个函数yuansuan1(),yunsuan2();
通过设置变量来达到题目的要求,不过本程序对于实现乘除发有无余数和有无分数还没能实现,需要进一步进行改进。还有就是程序中虽然出现了数组,但在实际应用用中没有起到相应的作用,也是需要改进的。
项目计划总结 周活动总结表 姓名:张金 日期:2015/3/15 |
|||||||
任务 日期 |
听课 |
编程 |
阅读课外数目 |
锻炼身体 |
写老师留得作业 |
业余活动 |
日总计 (分钟) |
周日 |
30 |
30 |
60 |
||||
周一 |
400 |
15 |
415 |
||||
周二 |
200 |
30 |
60 |
60 |
60 |
410 |
|
周三 |
100 |
60 |
30 |
60 |
60 |
60 |
370 |
周四 |
200 |
30 |
30 |
60 |
40 |
60 |
420 |
周五 |
200 |
100 |
30 |
60 |
40 |
60 |
490 |
周六 |
40 |
30 |
60 |
40 |
60 |
230 |
阶段时间和效率 周数:1 |
|||||||
总计 |
60 |
415 |
410 |
370 |
420 |
490 |
230 |
平均 |
30 |
69 |
68 |
61 |
70 |
67 |
46 |
最大 |
30 |
400 |
200 |
100 |
200 |
200 |
60 |
最小 |
30 |
15 |
30 |
30 |
30 |
30 |
2,时间记录日志:
学生:张金 日期:2015/3/15
老师:王建民 课程:PSP
日期 |
开始时间 |
结束时间 |
中断时间 |
净时间 |
活动 |
备注 |
3/10 |
08:00 |
12:00 |
40 |
200 |
上课 |
|
14:30 |
15:30 |
60 |
构思程序 |
|||
16:00 |
17:00 |
60 |
写作业 |
|||
21:00 |
21:30 |
30 |
阅读课外书物 |
|||
3/11 |
08:00 |
10:00 |
20 |
100 |
听课 |
|
11:00 |
12:00 |
60 |
程序 |
|||
14:00 |
15:00 |
60 |
写作业 |
|||
21:00 |
21:30 |
30 |
阅读课外书物 |
|||
3/12 |
10:00 |
12:00 |
20 |
100 |
听课 |
|
14:00 |
14:30 |
30 |
程序 |
|||
15:00 |
16:00 |
60 |
写作业 |
|||
21:00 |
21:30 |
30 |
阅读课外读物 |
|||
3/13 |
08:00 |
12:00 |
40 |
200 |
听课 |
|
14:00 |
15:40 |
100 |
程序 |
|||
21:00 |
21:30 |
30 |
阅读课外书物 |
3,缺陷记录日志:
学生:张金 日期:2015/3/15
老师:王建民
日期 |
编号 |
类型 |
引入阶段 |
排除阶段 |
修复阶段 |
修复缺陷 |
3/10 |
1 |
001 |
编程 |
编译 |
15min |
|
描述:函数定义错误 |
||||||
2 |
002 |
编程 |
编译 |
10min |
||
描述:函数调用出现错误 |
||||||
3/11 |
3 |
003 |
编程 |
编译 |
2 |
|
描述:使题目不重复使没有添加头文件 |
||||||
4 |
004 |
编程 |
编译 |
10min |
||
描述:if结构使用错误 |
||||||
3/12 |
5 |
005 |
编程 |
编译 |
5min |
|
描述:使题目不出现乘除时出错 |
||||||
3/13 |
6 |
006 |
编程 |
编译 |
5min |
|
描述:使题目中加减法出现负数是出错 |