📄 软件.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 + -