其实这道题在刚看到的时候大多都会觉得简单,难易程度就像大一初学C++时候平常的练习题,所以或许在估计自己需要的完成时间的时候就会短一些,慢慢的随着题目的要求一步一步的提高,自己所需要的完成的时间就会越来越长,到了后面需要考虑到所做的软件要承担多人同时访问的时候,由于大多数同学都没有接触过这方面的知识,就会觉得自己不可能完成这样的一个程序。
我觉得一个简单或者复杂的程序在完成的过程中总会碰到一些出乎意料的问题,绝对不会是自己看一眼需求就能想到所有可能碰到的困难,我们需要考虑这些突发状况,需要在动手写程序之前留下足够的思考空间来思考对程序该如何规划,尽可能考虑所有可能遇到的问题(比如虽然程序简单,但是大多数同学都会忘记了简单的随机数生成的函数的用法),即使不全面。而且还应该在程序完成的预计时间上留有一定的空余,既不能过长,也不能盲目自信的把时间估计的太短,这样我们才能在合理的时间范围和正确的安排部署下将客户的需求逐步完善到一个可供使用的稳定的软件。
-----------------------------------------------我是萌萌哒分割线----------------------------------------------------
以上只是我自己的一些浅薄的看法,可能很片面,如果有不对的地方还望老师批评指正。
关于这个程序,要生成真分数的话可以通过生成两个随机数,一个作为分子,另一个作为分母,还要将两个随机数区分出大小,避免生成假分数。关于随机生成的四则运算是哪种,可以用一个1~4之间的随机数对应四则运算的加减乘除,程序中已将所有的随机数控制在0~100的闭区间上。
/*====================================================================== # Author: ZhangYaPeng # E-Mail: [email protected] # Last modified: 2015-03-08 10:42 # Filename: Demo.cpp # Description: ======================================================================* 1 # include <iostream> 2 using namespace std; 3 4 //含有真分数的练习题 5 void Display1() 6 { 7 int k,a,b,c,d; //k判定随机生成哪种四则运算 8 //a和b生成第一个真分数 若其中含有5的倍数 则生成整数 9 //c和d同上 10 for(int i=0;i<4;i++) 11 { 12 k = rand()%4+1; 13 a = rand()%101; //生成0~100之间的随机数 14 b = rand()%101; 15 c = rand()%101; 16 d = rand()%101; 17 if(a>b) //将a设为较小的数字 b为较大的数字 18 { 19 a = a ^ b; 20 b = a ^ b; 21 a = a ^ b; 22 } 23 if(c>d) //将c设为较小的数字 d为较大的数字 24 { 25 c = c ^ d; 26 d = c ^ d; 27 c = c ^ d; 28 } 29 if((a%5==0||b%5==0)&&(a+b<100)) 30 cout<<a+b; 31 else 32 cout<<"("<<a<<"/"<<b<<")"; 33 if(k==1) 34 cout<<" + "; 35 else if(k==2) 36 cout<<" - "; 37 else if(k==3) 38 cout<<" * "; 39 else 40 cout<<" / "; 41 if((c%5==0||d%5==0)&&(c+d<100)) 42 cout<<c+d<<" = "<<endl; 43 else 44 cout<<"("<<c<<"/"<<d<<") = "<<endl; 45 } 46 } 47 48 //无真分数的练习题 49 void Display2() 50 { 51 int k,a,b; 52 for(int i=0;i<4;i++) 53 { 54 k = rand()%4+1; //生成1~4之间的随机数 55 a = rand()%101; //生成0~100之间的练习题 56 b = rand()%101; 57 if(k==1) 58 cout<<a<<" + "<<b<<" = "<<endl; 59 else if(k==2) 60 cout<<a<<" - "<<b<<" = "<<endl; 61 else if(k==3) 62 cout<<a<<" * "<<b<<" = "<<endl; 63 else 64 cout<<a<<" / "<<b<<" = "<<endl; 65 } 66 } 67 68 //测试函数 69 int main() 70 { 71 char ch; 72 int n; 73 cout<<"要生成多少套练习题?"; 74 cin>>n; 75 cout<<"是否要生成含有真分数的练习题?Y/N: "; 76 cin>>ch; 77 if(ch==‘Y‘||ch==‘y‘) 78 { 79 for(int i=0;i<n;i++) 80 { 81 cout<<"第"<<i+1<<"套题"<<endl; 82 cout<<"------------------------"<<endl; 83 Display1(); 84 cout<<"------------------------"<<endl; 85 } 86 } 87 else if(ch==‘N‘||ch==‘n‘) 88 { 89 for(int i=0;i<n;i++) 90 { 91 cout<<"第"<<i+1<<"套题"<<endl; 92 cout<<"------------------------"<<endl; 93 Display2(); 94 cout<<"------------------------"<<endl; 95 } 96 } 97 else 98 { 99 cout<<"Data Error!"<<endl; 100 } 101 return 0; 102 }
时间: 2024-08-06 02:44:36