1.撰写一篇博文要求将程序的设计思想,源程序代码、运行结果截图以及分析一下个人上课未按时完成的原因。
1》设计思想
1)首先确定这个程序的功能,即进行整数四则运算和真分数四则运算,所以先要确定写两个大的模块
2)整数运算部分,就是进行一个循环,为30次,然后每次循环产生两个进行运算的数(0~100) ,还要产生一个随机数用来表示运算符,即产生0~3的随机数,分别代表加减乘除。然后如果进行除法,如果分母为零,则对其加1.然后将结果显示出来。
3)真分数运算部分,进行30次循环,每次循环先产生四个随机数,用来表示分子,分母。然后为了结果为真分数,要将分子分母比较大小,然后将分子变为较小的数。然后保证分母不为零,分母为零则加1.然后进行约分,保证为最简分数。最后将结果显示出来。
4)设置退出程序以跳出循环。
2》源程序代码
//简单的四则运算,用随机数实现
//2016 3 7 Sunzhe
#include<iostream>
using namespace std;
void main()
{
int x;//进行选择的数
q:cout<<"请选择要进行的运算:1.整数运算 2.真分数运算 3.退出程序"<<endl;
cin>>x;
switch(x)//进行整数的运算
{
case 1:
{
for(int i=0;i<30;i++)
{
int n=rand() %4;//产生随机数,运算符的
int a=rand()%100;//产生1~100随机数
int b=rand()%100;//产生1~100随机数
if(n==0){
cout<<a<<"+"<<b<<"="<<endl;
}
else if(n==1){
cout<<a<<"-"<<b<<"="<<endl;
}
else if(n==2){
cout<<a<<"*"<<b<<"="<<endl;
}
else{
if(b==0){
b++;
}
cout<<a<<"/"<<b<<"="<<endl;
}
}
goto q;
}
case 2:
{
for(int i=0;i<30;i++)
{
int c=rand()%100;//产生1~100随机数
int d=rand()%100;//产生1~100随机数
int e=rand()%100;//产生1~100随机数
int f=rand()%100;//产生1~100随机数
//保证为真分数
if(c>d)
{
int t;
t=d;
d=c;
c=t;
}
if(e>f)
{
int s;
s=f;
f=e;
e=s;
}
if(d==0){d++;} //分母不为零
if(f==0){f++;} //分母不为零
//约分化为最简
for(int a=c;a>0;a-- )
{
if(c%a==0&&d%a==0)
{
c=c/a;
d=d/a;
break;
}
}
for(int b=e;b>0;b-- )
{
if(e%b==0&&f%b==0)
{
e=e/b;
f=f/b;
break;
}
}
int n=rand() %4; //产生运算符的随机数
if(n==0){
cout<<c<<"/"<<d<<"+"<<e<<"/"<<f<<"="<<endl;
}
else if(n==1){
cout<<c<<"/"<<d<<"-"<<e<<"/"<<f<<"="<<endl;
}
else if(n==2){
cout<<c<<"/"<<d<<"*("<<e<<"/"<<f<<")="<<endl;
}
else
{
cout<<c<<"/"<<d<<"/("<<e<<"/"<<f<<")="<<endl;
}
}
goto q;
}
case 3:
{
exit(0);
}
}
}
3》运行结果截图
4》分析一下个人上课未按时完成的原因
主要是对随机数的产生这块掌握的不是很熟练,要查阅有关资料才能写出相应代码,还有就是刚开始考虑不太周全,没有考虑到确保真分数及真分数的约分等问题。