题目:
撰写一篇博客按照代码规范重新四则运算,并设计四则运算2的程序设计单元测试项目。
要求:
按照单元测试原则BICEP设计单元测试计划,并将测试计划和测试结果以博客形式发表。
实现:
#include<iostream>
using namespace std;
//是否发生重复
void chongfu(int c,int j,int ku[])
{
int a1,a2,a3;
ku[0]=c;
for(int p=1;p<10000;p++)
{
if(ku[0]==ku[p])
{
a1=rand();
a2=rand();
a3=rand();
c=a1+a2+a3;
ku[j]=c;
chongfu(c,j,ku);
}
else
{
ku[j]=c;
break;
}
}
}
//算式表括达式的输出
void suanshi(int zdz,int cc,int ysh,int fs)
{
int a1,a2,a3,b1,b2,c,j=0,ku[10000];
char ch;
a1=rand();
a2=rand();
a3=rand();
c=a1+a2+a3;
chongfu(c,j,ku);
j++;
//控制数值范围
a1=a1%zdz;
a2=a2%zdz;
//有无负数
if(fs==2)
{
b1=(a1+a3)%2;
b2=(a2+a3)%2;
if(b1==0)
a1=-a1;
if(b2==1)
a2=-a2;
}
//有无乘除法
if(cc==2)
{
if(a3%4==0)
ch='+';
else if(a3%4==1)
ch='-';
else if(a3%4==2)
ch='*';
else
{
ch='/';
if(a2==0)
do
{
a2=rand();
a2=a2%zdz;
}
while(a2==0);
//除法有无余数之无余数
if(ysh==1)
{
int temp,tem;
if(abs(a1)<abs(a2))
{
temp=a1;
a1=a2;
a2=temp;
}
tem=a1%a2;
a2=a2%(zdz/3);
temp=rand();
temp=temp%3;
if(a1+a2*temp<=zdz)
a1=a1+a2*temp;
a1=a1-tem;
}
}
}
else
{
if(a3%2==0)
ch='+';
else
ch='-';
}
//输出算式
if(a2<0)
cout<<a1<<ch<<"("<<a2<<")"<<"="<<endl;
else
cout<<a1<<ch<<a2<<"="<<endl;
}
//定制题目数量打印方式
void dingzhi()
{
int sl,zl,zdz,cc,ysh,fs;
do
{
cout<<"请依次输入出题数量和每页的题量:"<<endl;
cout<<"请输入出题的数量:";
cin>>sl;
cout<<"请输入每页的题量:";
cin>>zl;
cout<<"请指定算式的范围:";
cin>>zdz;
cout<<"加减是否有负数 1.没有负数 2.有负数 请选择:";
cin>>fs;
cout<<"算式是否有乘除法 1.无乘除法 2.有乘除法 请选择:";
cin>>cc;
if(cc==2)
{
cout<<"除法是否有余数 1.没有余数 2.有余数 请选择:";
cin>>ysh;
}
else
ysh=1;
cout<<endl;
}while(sl<=0||zl<=0);
int ys=1;
for(int i=1;i<sl+1;i++)
{
suanshi(zdz,cc,ysh,fs);
cout<<endl;
if(i==zl*ys)
{
cout<<" 页数 "<<ys<<endl;
cout<<"--------------------------------------------------------------"<<endl;
ys++;
}
if(i==sl&&i!=zl*(ys-1))
{
cout<<" 页数 "<<ys<<endl;
cout<<"--------------------------------------------------------------"<<endl;
}
}
}
void main()
{
cout<<" "<<"****************************************"<<endl;
cout<<" *"<<" 四则运算 *"<<endl;
cout<<" *"<<" 作者:张欢龙 *"<<endl;
cout<<" *"<<" 日期:2015.3.19 *"<<endl;
cout<<" "<<"****************************************"<<endl<<endl;
dingzhi();
}