实验四(2) 5阶幻方

来源:互联网 发布:所罗门矩阵刘少丹违法 编辑:程序博客网 时间:2024/06/01 19:42

《数据结构》实验四:    字符串和多维数组 实验

一..实验目的

     巩固字符串和多维数组相关知识,学会运用灵活应用。

1.回顾字符串和多维数组的逻辑结构和存储操作特点,字符和数组的物理存储结构和常见操作。

2.学习运用字符串和和数组的知识来解决实际问题。

3.进一步巩固程序调试方法。

4.进一步巩固模板程序设计。

二.实验时间

   准备时间为第9周到第10前半周,具体集中实验时间为10周周四。2个学时。

三..实验内容

1.从键盘输入一些文本,统计文本单词的个数。

2.写程序输出一个5阶幻方:每一行每一列每一个对角线和均相等。

3.  自己设计一个字符加密算法,并设计程序验证:输入文本,解后加密并输出。在些基础上设计一个你算法的解密程序。

    前两题是必做题,第3题是选做题。


#include<iostream>using namespace std;void main(){Square H;int a;int b;cout<<"请输入幻方阶数(阶数小于9的奇数)";cin>>a;if(a>9||a%2==0)cout<<"有错误,请改正!"<<endl;else H.MagicSquare(a);    H.OutPut(a);}class Square{public:void MagicSquare(int n);void OutPut(int n);private:int i;int j;int n;int x;int y;int z;int c[9][9];};void Square::MagicSquare(int n){i=0;j=n/2;int k;int itemp,jtemp;c[i][j]=1;for(k=2;k<=n*n;k++){itemp=i;jtemp=j;i=(i-1+n)%n;j=(j-1+n)%n;if(c[i][j]>0){i=(itemp+1)%n;j=(jtemp);}c[i][j]=k;}}void Square::OutPut(int n){x=y=z=0;for(i=0;i<n;i++){for(j=0;j<n;j++){x=c[i][j]+x;cout<<c[i][j];cout<<"    ";}cout<<"| ";cout<<y<<endl;y=0;}cout<<"-----------------------------"<<endl;for(j=0;j<n;j++){for(i=0;i<n;i++){y=y+c[i][j];if(i==j)   z=c[i][j]+z;}cout<<y<<"    ";y=0;}cout<<z<<endl;}



运行结果:




运行流程图:


0 0
原创粉丝点击