武汉大学遥感信息工程学院复试机试.doc_第1页
武汉大学遥感信息工程学院复试机试.doc_第2页
武汉大学遥感信息工程学院复试机试.doc_第3页
武汉大学遥感信息工程学院复试机试.doc_第4页
武汉大学遥感信息工程学院复试机试.doc_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

2004:#include#include#include/sort所需头文件#includeusing namespace std;int main()ifstream infile(test.txt);ofstream outfile(result.txt);if(!infile)couttext.txt open failedendl;return 1;if(!outfile)coutresult.txt open failedendl;vectorm_vecInt;/读出数的个数int sum = 0;infilesum;int i = 0;while(inumber;m_vecInt.push_back(number);i+;/排序算法sort(m_vecInt.begin(), m_vecInt.end();outfilethe min number is:m_vecInt0endl;outfilethe max number is:m_vecIntsum - 1endl;int mid = (sum-1)/2;outfilethe middle number is:m_vecIntmidendl;outfile.close();infile.close();return 0;2005:#include#include#includeusing namespace std;typedef vectorvector VecInt;VecInt ConvolutionFun1(const vector&vec, const int & m, const int& n);VecInt ConvolutionFun2(const vector&vec, const int&r, const int&s);int main()const int M =125;const int N =80;const int R =100;const int S =100;VecInt vecInt; int i,j;ifstream infile(SourceData.txt);if(!infile)coutSourceData.txt open failed.n;return 1;vectorvec_int;int numeric(0);for(i=0;inumeric;vec_int.push_back(numeric);ofstream outfile(result.txt);if(!outfile)coutresult.txt open failed.n;return 1;outfile卷积一次后的矩阵:n;vecInt = ConvolutionFun1(vec_int, M, N);for(i=0; iM; i+)for(j=0; jN; j+)outfilevecIntij ;outfilen;outfilen;vecInt = ConvolutionFun2(vec_int, R, S);outfile第二次卷积后的矩阵:n;for(i=0; iR; i+)for(j=0; jS; j+)outfilevecIntij ;outfilen;outfilen;outfile.close();infile.close();return 0;/卷积函数1VecInt ConvolutionFun1(const vector&vec, const int&m, const int&n)VecInt vecInt(m, vector(n); int num =0;for(int i=0; im; i+)for(int j=0; jn; j+)vecIntij = vecnum;num+;int a=0,-1,0,-1,5,-1,0,-1,0;for(int i=1;im-1;i+)for(int j=1;jn-1;j+)vecIntij = vecInti-1j-1 * a0 + vecInti-1j * a1 + vecInti-1j+1* a2 + vecIntij-1 * a3 + vecIntij * a4 + vecIntij+1 * a5 + vecInti+1j-1 * a6 + vecInti+1j * a7 + vecInti+1j+1 * a8;return vecInt;/卷积函数VecInt ConvolutionFun2(const vector&vec, const int&r, const int&s)VecInt vecInt(r, vector(s); int num =0;for(int i=0; ir; i+)for(int j=0; js; j+)vecIntij = vecnum;num+;int b=0,0,-1,0,0,0,-1,-2,-1,0,-1,-2,16,-2,-1,0,-1,-2,-1,0,0,0,-1,0,0;for(int i=2;ir-2;i+)for(int j=2;js-2;j+)vecIntij = vecInti-2j-2 * b0 + vecInti-2j-1 * b1 + vecInti-2j * b2 + vecInti-2j+1* b3+ vecInti-2j+2 * b4 + vecInti-1j-2 * b5 + vecInti-1j-1 * b6 + vecInti-1j * b7 + vecInti-1j+1* b8+ vecInti-1j+2 * b9 + vecIntij-2 * b10 + vecIntij-1 * b11 + vecIntij * b12 + vecIntij+1* b13+ vecIntij+2 * b14 + vecInti+1j-2 * b15 + vecInti+1j-1 * b16 + vecInti+1j * b17 + vecInti+1j+1* b18+ vecInti+1j+2 * b19 + vecInti+2j-2 * b20 + vecInti+2j-1 * b21 + vecInti+2j * b22 + vecInti+2j+1* b23+ vecInti+2j+2 * b24 ; return vecInt;20061#include/ifstream ofstream头文件#include/sqrt,log,cos所需头文件#include#include#include/accumulate所需头文件#includeusing namespace std;const int N = 100;const double PI = 3.1415926;int main()int i;/定义vector对象,存储产生的随机数vectorvec_double;vectorvec_square_double;/定义输出流对象ofstream outfile(SourceData.txt);if(!outfile)cerrSourceData.txt open failed.n;return 1;/随机数产生的开始点srand(unsigned)time(NULL);/产生个随机数for(i=0;iN;i+)double num = rand()*1.0/RAND_MAX;vec_double.push_back(num);vec_square_double.push_back(num*num);outfilenum ;outfilen;double sum_double = accumulate(vec_double.begin(), vec_double.end(), (double)0.0);double sum_square_double = accumulate(vec_square_double.begin(), vec_square_double.end(), (double)0.0);double average_double = sum_double/N;outfile均值为:naverage_doublen;double variance = (sum_square_double/N)-(average_double*average_double);outfile方差为:nvariancen;outfile.close();/定义输入流对象ifstream infile(SourceData.txt);if(!infile)cerrSourceData.txt open failed.n;return 1;/清空容器vec_double.clear();double num =0.0;vectorvec_normalDistibution;vectorvec_squre_NorDistibution;for(i=0;inum;vec_double.push_back(num);double num_normal_distrion = (sqrt(-2)*log(num)*cos(2*PI*num)*0.3 + 1;vec_normalDistibution.push_back(num_normal_distrion);vec_squre_NorDistibution.push_back(num_normal_distrion * num_normal_distrion);/定义输出路对象outfile2ofstream outfile2(ResultData.txt);if(!outfile)cerrResultData.txt open failed.n;return 1;/输出正太分布数值copy(vec_normalDistibution.begin(), vec_normalDistibution.end(), ostream_iterator(outfile2, );outfile2n;double sum_normalDistibution = accumulate(vec_normalDistibution.begin(),vec_normalDistibution.end(),0.0);double average_normalDistibution = sum_normalDistibution/N;double sum_squre_NorDistibution = accumulate(vec_squre_NorDistibution.begin(),vec_squre_NorDistibution.end(),0.0);double variance_normalDistibution = sum_squre_NorDistibution/N - (average_normalDistibution * average_normalDistibution);outfile2均值为:naverage_normalDistibutionn;outfile2方差为:nvariance_normalDistibutionn;outfile2.close();infile.close();return 0;20062:#include#include#include#include#includeusing namespace std;typedef vectorvector VecDouble;double AverageVector(const vector & vecDouble);VecDouble CovariationMatrix(const vectorvector & vecDouble, const vector & vecAverageDouble, int nBand, int nPiexl);int main()int nBand;int nPiexl;int i,j;ifstream infile(data.txt);if(!infile)cerrdata.txt open failed.n;return 1;ofstream outfile(result.txt);if(!outfile)cerrnBandnPiexl;vectorvector vec_double(nBand, vector(nPiexl);for(i=0; inBand;i+)for(j =0; jvec_doubleij;vectorvec_average_double(nBand);for(i=0; inBand;i+)vec_average_doublei = AverageVector(vec_doublei);outfile均值向量为:n;copy(vec_average_double.begin(), vec_average_double.end(), ostream_iterator(outfile, );outfilen;VecDouble vec_covariation_double(nBand, vector(nPiexl);vec_covariation_double = CovariationMatrix(vec_double, vec_average_double, nBand, nPiexl);outfile协方差矩阵:n;for( i =0; inBand; i+)for(j =0; jnBand; j+)outfilevec_covariation_doubleij ;outfilen;return 0;/均值向量函数double AverageVector(const vector & vecDouble)int size = vecDouble.size();double sum = accumulate(vecDouble.begin(), vecDouble.end(), 0);double average = sum/size;return average;/协方差矩阵函数VecDouble CovariationMatrix(const vectorvector & vecDouble, const vector & vecAverageDouble, int nBand, int nPiexl)VecDouble vec_coveration_double(nBand, vector(nBand);for(int i =0; inBand; i+)for(int j =0; jnBand; j+)double sum =0.0;for(int k=0; knPiexl; k+)sum += (vecDoubleik - vecAverageDoublei)*(vecDoublejk - vecAverageDoublej);vec_coveration_doubleij = sum/nPiexl;return vec_coveration_double;20071:#include#include#includeusing namespace std;struct POINT/标记点号int point_num;/点的坐标double x;double y;POINT()x = 0.0;y = 0.0;int main()ifstream infile(test.dat);if(!infile)cerrnum;vectorvec_double;int i=0;while(ixy;POINT point;point.x = x;point.y = y;vec_double.push_back(point);i+;double xMin,yMin,xMax,yMax;xMin = vec_double0.x;yMin = vec_double0.y;xMax = vec_double0.x;yMax = vec_double0.y;for(i=1; inum; i+)if(vec_doublei.xxMin)xMin = vec_doublei.x;if(vec_doublei.yxMax)xMax = vec_doublei.x;if(vec_doublei.yyMax)yMax = vec_doublei.y;ofstream outfile(result.txt);if(!outfile)cerrresult.txt open failed.n;return 1;outfile外包矩形的坐标为:n;outfilexMintyMinn;outfilexMintyMaxn;outfilexMaxtyMinn;outfilexMaxtyMaxn;ifstream inpointfile(point.txt);if(!inpointfile)cerrpoint.txt open failed.n;return 1;vectorvec_point;while(!inpointfile.eof()int num;double x;double y;inpointfilenumxy;POINT point;point.point_num = num;point.x = x;point.y = y;vec_point.push_back(point);int size = vec_point.size();for(i=0; ixMin & vec_pointi.xyMin & vec_pointi.yyMax)outfile坐标点vec_pointi.point_num落在矩形外包内部,坐标为:n;outfilevec_pointi.xtvec_pointi.yn;return 0;20071:#include#include#includeusing namespace std;struct POINT/标记点号int point_num;/点的坐标double x;double y;POINT()x = 0.0;y = 0.0;int main()ifstream infile(test.dat);if(!infile)cerrnum;vectorvec_double;int i=0;while(ixy;POINT point;point.x = x;point.y = y;vec_double.push_back(point);i+;double xMin,yMin,xMax,yMax;xMin = vec_double0.x;yMin = vec_double0.y;xMax = vec_double0.x;yMax = vec_double0.y;for(i=1; inum; i+)if(vec_doublei.xxMin)xMin = vec_doublei.x;if(vec_doublei.yxMax)xMax = vec_doublei.x;if(vec_doublei.yyMax)yMax = vec_doublei.y;ofstream outfile(result.txt);if(!outfile)cerrresult.txt open failed.n;return 1;outfile外包矩形的坐标为:n;outfilexMintyMinn;outfilexMintyMaxn;outfilexMaxtyMinn;outfilexMaxtyMaxn;ifstream inpointfile(point.txt);if(!inpointfile)cerrpoint.txt open failed.n;return 1;vectorvec_point;while(!inpointfile.eof()int num;double x;double y;inpointfilenumxy;POINT point;point.point_num = num;point.x = x;point.y = y;vec_point.push_back(point);int size = vec_point.size();for(i=0; ixMin & vec_pointi.xyMin & vec_pointi.yyMax)outfile坐标点vec_pointi.point_num落在矩形外包内部,坐标为:n;outfilevec_pointi.xtvec_pointi.yn;return 0;20072:#include #include #includeusing namespace std;typedef vectorvector VecInt;const int R = 256;const int L = 256;struct Tableint x;double y;Table() x = 0;y = 0.0;int main()int i, j;double a,b;ifstream infile(r.raw, ios:in|ios:binary);if(!infile)cerrr.raw open failed.n;return 1;/int *grey = new int*R;VecInt vec_int(R, vector(L);/*for(i=0;iR;i+)greyi = new intL;*/for(i=0; iR; i+)for(j=0; jL; j+)unsigned char c; infile.read(char*)&c, sizeof(char);int num = c;vec_intij = num;int min, max;min = vec_int00;max = vec_int00;for(i=0; iR; i+)for(j=0; jL; j+)if(vec_intijmax)max = vec_intij;a = (double)(255)/(double)(max-min);b = -(min * a);vectorvecTable;for(i=0; i255; i+)double y = a * i + b;Table tab;tab.x = i;tab.y = y;vecTable.push_back(tab);ofstream outfile(result.raw, ios:out|ios:binary);if(!outfile)cerrresult.raw open failed.n;return 1;for(i=0; iR; i+)for(j=0; jL; j+)for(int k=0; k255; k+)if(vec_intij=vecTablek.x)unsigned char c;c = vecTablek.y;outfile.write(char*)&c, sizeof(char);outfile ;outfilen;return 0;2008:#include#include#include#include#includeusing namespace std;int main()ifstream infile(sourcefile.txt);ofstream outfile(result.txt);if(!infile)coutsourcefile.txt open failedendl;if(!outfile)coutresult.txt open failedtotal;vectorvec_double;vectorvec_square;double numeric = 0.0;int i =0;while(inumeric;vec_double.push_back(numeric);vec_square.push_back(numeric*numeric);i+;sort(vec_double.begin(),vec_double.end();double average = accumulate(vec_double.begin(),vec_double.end(),0.0)/total;double sum_square = 0.0;for(i=0;itotal;i+)sum_square+=(vec_doublei-average)*(vec_doublei-average);double variance = sum_square/total;outfilethe max score is:vec_doubletotal-1endl;outfilethe min score is:vec_double0endl;outfilethe average score is: averageendl;outfilethe variance is:varianceendl;outfile.close();infile.close();return 0;2009:#include#include#include#include using namespace std;int main()string s;ifstream infile(test.txt);ofstream outfile(result.txt);if(!infile)couttest.txt open failedendl;return 1;if(!outfile)coutresult.txt open failedendl;return 1;/copy(istream_iterator(infile), istream_iterator(), back_insert_iterator(s);while(!infile.eof()char ch(0);infilech;s.push_back(ch);transform(s.begin(), s.end(), s.begin(), toupper);int result26;int i = 0;for(char c=A;cZ;c+)if(s.find(c)!=s.npos)resulti = count(s.begin(),s.end(),c);elseresulti = 0;outfilect;outfileresultin;/copy(&resulti,&resulti+1,ostream_iterator(outfile,n);i+;outfile.close();infile.close();return 0;2011:#include#include#include#include#include#includeusing namespace std;struct POINTdouble x;double y;POINT()x = 0;y = 0;typedef vectorvector VecPoint;/计算面积函数double polygonarea(const vector &vec_point);/计算周长函数double polygongirth(const vector &vec_point);int main()ifstream infile(Input.txt);if(!infile)cerrInput.txt open failed.n;return 1;ofstream outfile(result.txt);if(!outfile)cerrnum;int i;int j;VecPoint vecpoint(num);double numeric1(0);double numeric2(0);char c1(0);char c2(0);for(i=0; inumeric1c1numeric2;POINT point;point.x = numeric1;point.y = numeric2;vecpointi.push_back(point);if(j!=0 & vecpointij.x=vecpointi0.x & vecpointij.y=vecpointi0.y)break;infilec2;vectorvec_area;vectorvec_grith;for(i=0; inum; i+)double area = polygonarea(vecpointi);vec_area.push_back(area);double grith = polygongirth(vecpointi);vec_grith.push_back(grith);double minArea = vec_area0;int minAreaID;double maxArea = vec_area0;int maxAreaID;double minGrith = vec_grith0;int minGrithID;double maxGrith = vec_grith0;int maxGrithID;for(i =0; inum; i+)if(vec_areaimaxArea)maxArea = vec_areai;maxAreaID = i;if(vec_grithimaxGrith)maxGrith = vec_grithi;maxGrithID = i;outfile第maxAreaID多变形面积最大fixedmaxArean;outfile第minAreaID多变形面积最小fixedminArea

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论