设计思想:手动或使用随机函数生成一系列数组成一个数组,设计求数组中最大值的函数,在主函数中调用即可;但是考虑到用户的各种需求与程序的各种不一致性,为此设计了相关的能柔和两种状态下的各种情况测试提醒:
(1)计算机会对用户有意无意输入的数组长度为0,复数,或大于分配的内存空间情况而对用户做不了用户满意的应答,故在程序中加一段对用户输入的数组长度判断的测试,则用户便可根据系统的提示一步步进行即可。
(2)由于用户的无意性,可能会混淆键入不同的数据类型,然而计算机并不能愉快的解决此问题为用户得来满意的答复,故亦是在程序中应该加入不同数据类型的不同比较情况来满足用户的需求。
源代码:
#include<iostream>
using namespace std;
int Largest(int list[],int length)
{
int i,max;
max=list[0];
for(i=1;i<length;i++)
{
if( list[i]>max)
{
max=list[i];
}
}
return max;
}
double Largest(double list[],int length)
{
int i;
double max;
max=list[0];
for(i=1;i<length;i++)
{
if( list[i]>max)
{
max=list[i];
}
}
return max;
}
void main()
{
int i, a[1000],n,s,c;
double b[1000],t;
char mm;
cout<<"输入数组的个数:"<<endl;
cin>>n;
if(n==0||n<0||n>1000)
{
cout<<"输入的数组长度不合法,请重新输入!"<<endl;
cin>>n;
}
do{
cout<<"**************************请输入需要的数据类型:***********************"<<endl;
cout<<" 1.整型 "<<endl;
cout<<" 2.浮点型 "<<endl;
cout<<"**************************************************************************"<<endl;
cin>>c;
switch(c)
{
case(1) :
cout<<"输入数组:"<<endl;
for(i=0;i<n;i++)
{
cin>>a[i];
}
s= Largest(a,n);
cout<<s;
case(2):
cout<<"输入数组:"<<endl;
for(i=0;i<n;i++)
{
cin>>b[i];
}
t= Largest(b,n);
cout<<t;
}
cout<<endl;
cout<<"*************************************************************"<<endl;
cout<<" 继续请输入Y 退出请输入N "<<endl;
cout<<"*************************************************************"<<endl;
cin>>mm;
}while(mm==‘y‘||mm==‘Y‘);
}
实验截图:
编程总结:本次实验是一个简单的为解决求解一个数组的最大值中计算机与用户之间的冲突的问题,虽然是想到了那么几种简单的冲突情况,可还是想的不全面,还没有彻底站在计算机与用户的角度各方面思考问题,所以既要不断提高自己的编程能力,还得不断提高自己的思考问题的意识。