本次实验的目的是让我们对函数的定义及使用方法有一个初步的认识,理解函数中值传递和引用传递的不同之处;在此基础上,能运用循环结构及continue,break等语句实现程序。由于有C语言的基础,因此这部分的内容较为简单。
第一个实验是实现一个简单的菜单程序,对于不同的输入显示不同的结果,这个程序很明显只要通过switch结构就可以轻易实现。实现之后,我考虑到这是个菜单,就略微美化了一下,让整个菜单居于屏幕中间。代码及结果如下:
#include<iostream>
using namespace std;
int main()
{
int p=1;
while(p)
{
cout<<" "<<"Menu: A(dd) D(elete) S(ort) Q(uit),Select one:";
char n;
cin>>n;
switch(n)
{
case 'A':
cout<<" "<<"数据已经增加。"<<endl;
break;
case 'D':
cout<<" "<<"数据已经删除。"<<endl;
break;
case 'S':
cout<<" "<<"数据已经排序。"<<endl;
break;
case 'Q':
p=0;
break;
}
}return 0;
}
第二个实验是用穷举法找出1-100间的质数,并输出在屏幕上,这个程序比较简单,按照要求我用了while和for两种方法来实现,代码及结果如下:
while:
#include<iostream>
#include<cmath>
using namespace std;
int main()
{
int i=2,j,k,flag;
while(i<=100)
{
flag=1;
k=sqrt(i);
j=2;
while(j<=k)
{
if(i%j==0)
{
flag=0;
break;
}j++;
}
if(flag)
cout<<i<<" ";
i++;
}
return 0;
}
for:
#include<iostream>
#include<cmath>
using namespace std;
int main()
{
int n;
for(n=2;n<=100;n++)
{
int i,k;
k=sqrt(n);
for(i=2;i<=k;i++)
if(n%i==0)
break;
if(i>=k+1)
cout<<n<<" ";
else
continue;
}
return 0;
}
第三个程序是设计一个猜整数的小游戏,我利用随机数生成的方法,生成了随机数,然后进行编程,代码及试验结果如下;
#include<iostream>
#include<cstdlib>
using namespace std;
int main()
{
unsigned seed;
int n;
cout<<"Please enter an unsigned integer:";
cin>>seed;
srand(seed);
n=rand();//生成随机数//
int p=1;
while(p)
{
cout<<"Please guess the number:";
int num;
cin>>num;
if(num>n)
cout<<"The number is smaller."<<endl;
else if(num<n)
cout<<"The number is bigger."<<endl;
else
p=0;
}
cout<<"Congratulation!";
return 0;
}
扫描二维码关注公众号,回复:
10859497 查看本文章
最后一个程序是计算摸球的方法,在此我借用了数学排列组合的方法,较为便捷的实现了功能,代码及结果如下:
#include<iostream>
using namespace std;
int main()
{
int num,n;
cout<<"输入小球颜色数"<<endl;
cin>>num;
cout<<"输入摸出种类数"<<endl;
cin>>n;
int a=1,b=1,c=1,j,k,l;
for(j=1;j<=num;j++)
a*=j;
for(k=1;k<=n;k++)
b*=k;
for(l=1;l<=(num-n);l++)
c*=l ;
cout<<"不同的摸球种类有:"<<a/(b*c)<<endl;
return 0;
}
这次的编程实验主要考察了对循环结构以及函数的掌握程度,我体会到,实现一个程序可以采取多种方法,甚至借用数学方面的方法,因此编程不能够太死板,同一个程序100个人就有100种方法,创新思维也是很重要的一种能力。