⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 软件.cpp

📁 矩阵操作
💻 CPP
字号:
#include<iostream.h>
#include<stdlib.h>
int i,j;
const int m=5;                                                           //定义全局变量m
void  export(int b[m][m])
{
	for (i=0;i<m;i++)
	{
		for (j=0;j<m;j++)
	cout<<b[i][j]<<"         ";                         
	cout<<endl;
	}
	cout<<endl;
}                                                                        //输出整个5*5的数组



//矩阵的翻转
void overturning(int a[m][m])                           
{
	int k,temp=0;
	cout<<"原始数据为:"<<endl;
	export (a);
	cout<<"                           0.Ouit"<<endl;
	
	cout<<"                           1.垂直翻转"<<endl;
	cout<<"                           2.水平翻转"<<endl;
	
	cout<<"                    Please choose(0、1 Or 2)"<<endl;          //翻转主菜单
	cin>>k;
	switch (k)
	{
	case 1:for (i=0;i<m;i++)
			   for (j=0;j<m-3;j++)
			   {
				   temp=a[j][i];a[j][i]=a[m-j-1][i];a[m-j-1][i]=temp;
			   } 
			   cout<<"垂直翻转后的数据为:"<<endl;                         //垂直翻转
			   export (a);break; 
	case 2:for (i=0;i<m;i++)
		    {
			   for (j=0;j<m-3;j++)
			   {
			   temp=a[i][j];a[i][j]=a[i][m-j-1];a[i][m-j-1]=temp;
			   }
			 cout<<"水平翻转后的数据为:"<<endl;                          //水平翻转
			 export(a);break;
		    }
	case 0:cout<<"$*$*$*$*$*$*$*金磊感谢你的使用,再见!*$*$*$*$*$*$*$*$"<<endl;break;
	}
}
	


//矩阵的卷动
void rolling(int a[m][m])
{
	int L,i,j,k,m,x,c[5][5];
          for(i=0;i<=4;i++)                              
		  {
		for(j=0;j<=4;j++)
		c[i][j]=a[i][j];
		  }
	    cout<<"                        0.Ouit"<<endl;
		cout<<"                        1.左卷动"<<endl;
		cout<<"                        2.右卷动"<<endl;
		cout<<"                        3.下卷动"<<endl;
		cout<<"                        4.上卷动"<<endl;
	  	cout<<"              Please choose(0、1、2、3 Or 4)"<<endl;   //卷动主菜单
        cin>>x;
	while(x!=0)
	{
		cout<<"原始数据为:"<<endl;
          for(i=0;i<=4;i++)
           {
            for(j=0;j<=4;j++)
               cout<<c[i][j]<<"         ";
              cout<<endl;
            }
		  cout<<endl;
		  cout<<endl;
           
		switch(x)
		{
           
           
		case 1:
			cout<<"请输入卷动的列数:"<<endl;
			cin>>L;
			for(i=0;i<=L-1;i++)
			{
				for(j=0;j<=4;j++)
				{
                   m=a[j][0];
					for(k=1;k<=4;k++)
					  a[j][k-1]=a[j][k];
					  a[j][4]=m;
				}
			}
            cout<<"左卷"<<L<<"列后的数据为"<<endl;
             for(i=0;i<=4;i++)
			{
                for(j=0;j<=4;j++)
					cout<<a[i][j]<<"         ";
				cout<<endl;
			}
			 cout<<endl;
			 cout<<endl;
         for(i=0;i<=4;i++)                              
		 {
		for(j=0;j<=4;j++)
		a[i][j]=c[i][j];
		 }
		break;
		case 2:
			cout<<"请输入卷动的列数:"<<endl;
			cin>>L;
			for(i=0;i<=L-1;i++)
			{
				for(j=0;j<=4;j++)
				{
					m=a[j][4];
					for(k=3;k>=0;k--)
					 a[j][k+1]=a[j][k];
					  a[j][0]=m;
				}
			}
            cout<<"右卷"<<L<<"列后的数据为"<<endl;
			for(i=0;i<=4;i++)
			{
                 for(j=0;j<=4;j++)
					cout<<a[i][j]<<"         ";
		        cout<<endl;
			}
			cout<<endl;
			cout<<endl;
           for(i=0;i<=4;i++)                              
		   {
		   for(j=0;j<=4;j++)
		    a[i][j]=c[i][j];
		   }
			break;
		case 3:
		cout<<"请输入卷动的行数:"<<endl;
		cin>>L;
			for(i=0;i<=L-1;i++)
			{
				for(j=0;j<=4;j++)
				{
					m=a[0][j];
					for(k=1;k<=4;k++)
					 a[k-1][j]=a[k][j];
				     a[4][j]=m;
				}
			}
           cout<<"下卷"<<L<<"行后的数据为"<<endl;
			for(i=0;i<=4;i++)
			{
                 for(j=0;j<=4;j++)
					cout<< a[i][j]<<"         ";
				cout<<endl;
			}
			cout<<endl;
			cout<<endl;
        for(i=0;i<=4;i++)                              
		{
		for(j=0;j<=4;j++)
		a[i][j]=c[i][j];
		}
	    break;
		case 4:
	   cout<<"请输入卷动的行数:"<<endl;
	   cin>>L;
			for(i=0;i<=L-1;i++)
			{
				for(j=0;j<=4;j++)
				{
					m=a[4][j];
				    for(k=3;k>=0;k--)
					a[k+1][j]=a[k][j];
					  a[0][j]=m;
				}
			}
          cout<<"上卷"<<L<<"行后的数据为"<<endl;
			for(i=0;i<=4;i++)
			{
                for(j=0;j<=4;j++)
					cout<<a[i][j]<<"         ";
				cout<<endl;
			}
			cout<<endl;
			cout<<endl;
		for(i=0;i<=4;i++)                              
		{
		for(j=0;j<=4;j++)
		a[i][j]=c[i][j];
		}
			break;
		}
        cout<<"                        0.Ouit"<<endl;
		cout<<"                        1.左卷动"<<endl;
		cout<<"                        2.右卷动"<<endl;
		cout<<"                        3.下卷动"<<endl;
		cout<<"                        4.上卷动"<<endl;		
		cout<<"              Please choose(0、1、2、3 Or 4)"<<endl;   //卷动主菜单	
        cin>>x;
}
}
//矩阵的旋转
void revolving(int a[m][m])                                        //旋转菜单
{
	int k,t,x;
	cout<<"原始数据为:"<<endl;
	export(a);
	cout<<"                            0.Ouit"<<endl;
	cout<<"                            1.Anticlockwise旋转"<<endl;
	cout<<"                            2.clockwise旋转"<<endl;
	cout<<"                        Please choose(0、1 Or 2)"<<endl; //旋转主菜单
	cin>>k;
	switch(k)
	{
	case 0:cout<<"      $*$*$*$*$*$*$*金磊感谢你的使用,再见!*$*$*$*$*$*$*$*$"<<endl;break;

	case 1:cout<<"                            0.Ouit"<<endl;
	cout<<"                            1.90°"<<endl;
	cout<<"                            2.180°"<<endl;
	cout<<"                            3.270°"<<endl;
	cout<<"                            4.360°"<<endl;
	cout<<"                   Please choose(0、1、2、3 Or4)"<<endl; //逆时针旋转角度菜单
	cin>>t;
	if (t==0)
		break;
	if (t==1)
	{
		for (i=0;i<5/2;i++)	
	    for (k=0;k<4-2*i;k++)
	  {
		  x=a[i][i];
		for (j=1+i;j<5-i;j++)
			a[i][j-1]=a[i][j];
		for (j=1+i;j<5-i;j++)
			a[j-1][4-i]=a[j][4-i];
		for (j=3-i;j>=0;j--)
			a[4-i][j+1]=a[4-i][j];                   
		for (j=3-i;j>=1;j--)
			a[j+1][i]=a[j][i];
		a[1+i][i]=x;
	  }
	cout<<"旋转90°后的数据为:"<<endl;                             //矩阵逆时针旋转90°
	export(a);break;}
	if (t==2)
	{
		for (i=0;i<5/2;i++)	
	for (k=0;k<2*(4-2*i);k++)
	{
		x=a[i][i];
		for (j=1+i;j<5-i;j++)
			a[i][j-1]=a[i][j];
		for (j=1+i;j<5-i;j++)
			a[j-1][4-i]=a[j][4-i];                   
		for (j=3-i;j>=0;j--)
			a[4-i][j+1]=a[4-i][j];
		for (j=3-i;j>=1;j--)
			a[j+1][i]=a[j][i];
		a[1+i][i]=x;
	}
	cout<<"旋转180°后的数据为:"<<endl;                          //逆时针旋转180°
	export(a);break;
	}
	if (t==3   )
	{for (i=0;i<5/2;i++)	
	for (k=0;k<3*(4-2*i);k++)
	{
		x=a[i][i];
		for (j=1+i;j<5-i;j++)
			a[i][j-1]=a[i][j];
		for (j=1+i;j<5-i;j++)
			a[j-1][4-i]=a[j][4-i];                    
		for (j=3-i;j>=0;j--)
			a[4-i][j+1]=a[4-i][j];
		for (j=3-i;j>=1;j--)
			a[j+1][i]=a[j][i];
		a[1+i][i]=x;
	}
	cout<<"旋转270°后的数据为:"<<endl;                        //逆时针旋转270°
	export(a);break;
	}
	if (t==4)
	{
		cout<<"旋转360°后的数据为:"<<endl;                    //逆时针旋转360°
	export(a);break;}
	case 2 :cout<<"                            0.Ouit"<<endl;
	cout<<"                            1.90°"<<endl;
	cout<<"                            2.180°"<<endl;
	cout<<"                            3.270°"<<endl;
	cout<<"                            4.360°"<<endl;
	cout<<"                Please choose(0、1、2、3 Or 4)"<<endl;            //顺时针旋转角度菜单
	cin>>t;
	if (t==0)
		break;
	if (t==1)
	{
		for (i=0;i<5/2;i++)	
	for (k=0;k<3*(4-2*i);k++)
	{
		x=a[i][i];
		for (j=1+i;j<5-i;j++)
			a[i][j-1]=a[i][j];
		for (j=1+i;j<5-i;j++)
			a[j-1][4-i]=a[j][4-i];                             //顺时针旋转90°
		for (j=3-i;j>=0;j--)
			a[4-i][j+1]=a[4-i][j];
		for (j=3-i;j>=1;j--)
			a[j+1][i]=a[j][i];
		a[1+i][i]=x;
	}
	cout<<"旋转90°后的数据为:"<<endl;
	export(a);break;}
	if (t==2)
	{
		for (i=0;i<5/2;i++)	
	for (k=0;k<2*(4-2*i);k++)
	{
		x=a[i][i];
		for (j=1+i;j<5-i;j++)
			a[i][j-1]=a[i][j];
		for (j=1+i;j<5-i;j++)
			a[j-1][4-i]=a[j][4-i];                   
		for (j=3-i;j>=0;j--)
			a[4-i][j+1]=a[4-i][j];
		for (j=3-i;j>=1;j--)
			a[j+1][i]=a[j][i];
		a[1+i][i]=x;
	}
	cout<<"旋转180°后的数据为:"<<endl;                       //顺时针旋转180°
	export(a);break;}
	if (t==3)
	{
		for (i=0;i<5/2;i++)	
	for (k=0;k<4-2*i;k++)
	{
		x=a[i][i];
		for (j=1+i;j<5-i;j++)
			a[i][j-1]=a[i][j];
		for (j=1+i;j<5-i;j++)
			a[j-1][4-i]=a[j][4-i];                 
		for (j=3-i;j>=0;j--)
			a[4-i][j+1]=a[4-i][j];
		for (j=3-i;j>=1;j--)
			a[j+1][i]=a[j][i];
		a[1+i][i]=x;
	}
	cout<<"旋转270°后的数据为:"<<endl;                      //顺时针旋转270°
	export(a);break;
	}
	if (t==4)
	{cout<<"旋转360°后的数据为:"<<endl;                     //顺时针旋转360°
	export(a);break;
	}
	} 
}


 
//主菜单
void start()
{
	int x;
	
	do
{
int a[m][m],k;
	for (i=0;i<m;i++)
		for (j=0;j<m;j++)
			a[i][j]=rand()%899+100;                         //随机生成一个二维数组

cout<<"        *=*=*=*=*=*=*=*=*=*=*=*=欢迎使用矩阵翻转操作!=*=*=*=*=*=*=*=*=*=*=*=*"<<endl;
cout<<endl;
cout<<"                                 矩阵(Matrix)操作"<<endl;
cout<<"                                                            "<<endl;
cout<<"                       ¤-¤-¤-¤-¤-¤-¤-¤-¤-¤-¤-¤  "<<endl;
cout<<"                       ¤-¤-¤-¤-¤-¤-¤-¤-¤-¤-¤-¤  "<<endl;
cout<<"                                                            "<<endl;
cout<<"                           1.矩阵翻转(Matrix overturning)   "<<endl;
cout<<"                           2.矩阵卷动(Matrix rolling)       "<<endl;
cout<<"                           3.矩阵旋转(Matrix revolving)     "<<endl;
cout<<"                                                            "<<endl;
cout<<"                        Please choose(1、2 And 3,0:Ouit)"<<endl;       

cin>>k;
switch (k)
{
case 0:cout<<"             $*$*$*$*$*$*$*金磊感谢你的使用,再见!*$*$*$*$*$*$*$*$"<<endl;break;
case 1:overturning(a);break;

case 2:rolling(a);break;

case 3:revolving(a);break;
}
	cout<<"0、Ouit      1、 Go back to the main menu"<<endl; //调用函数
	
	cin>>x;
}
while (x!=0);
}


//主函数
void main()                                                 //个性化设置!                                     
{
end:;                                                       //goto语句的运用
	int x;
cout<<"                                                "<<endl;
cout<<"                                                "<<endl;
cout<<"                ÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷    "<<endl;
cout<<"                ÷                                                  ÷    "<<endl;
cout<<"                ÷                                                  ÷    "<<endl;
cout<<"                ÷                  C++课程设计                     ÷    "<<endl;
cout<<"                ÷                    第二小组                      ÷    "<<endl;
cout<<"                ÷                    矩阵操作                      ÷    "<<endl;
cout<<"                ÷                                                  ÷    "<<endl;
cout<<"                ÷           矩阵小组6号 1061301206  金磊           ÷    "<<endl;
cout<<"                ÷                                                  ÷    "<<endl;
cout<<"                ÷                  班级:计算机1062                 ÷    "<<endl;
cout<<"                ÷                                                  ÷    "<<endl;
cout<<"                ÷          使用软件请按“1”;退出请按“0”!       ÷    "<<endl;
cout<<"                ÷                                                  ÷    "<<endl;
cout<<"                ÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷    "<<endl;


cin>>x;
if(x==1)
{
	start();                                              //函数的嵌套使用
}
else if(x==0)
{
	cout<<endl;
	cout<<"                $*$*$*$*$*$*$*金磊感谢你的使用,再见!*$*$*$*$*$*$*$*$"<<endl;
}
else if(x!=1&&x!=0)  
{
	cout<<"您输入的数据不对!请重新输入!"<<endl;
	goto end;

}                    


}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -