拉丁方阵(易语言版)

来源:互联网 发布:淘宝app怎么看信用 编辑:程序博客网 时间:2024/04/28 21:18

面向过程版

#include<iostream>#include<conio.h>using namespace std;struct Node;#define N 11typedef Node* 节点针;struct Node{wchar_t data;节点针 nextPos;};Node 拉丁表[N + 1];const Node*尾哨兵 = &拉丁表[N-1];wchar_t*大写阿拉伯数字 = L"零壹贰叁肆伍陆柒捌玖拾";//----11个void 循环表(){for (int i = 0; i < N; i++){拉丁表[i].nextPos = &拉丁表[i + 1];拉丁表[i].data = 大写阿拉伯数字[i];}拉丁表[N - 1].nextPos = &拉丁表[0];拉丁表[N - 1].data = 大写阿拉伯数字[N - 1];}void 测试(){节点针 p = 拉丁表;for (int i = 0; i < 15; i++, p = p->nextPos){wcout << p->data;}wcout <<endl<< p->data;}void 打印拉丁表(){    节点针 p = 拉丁表;cout <<endl<<"拉丁方阵表生成如下:"<<endl<<endl;for (int i = 0; i != N; i++){wcout << endl;p = p->nextPos;p = p->nextPos;p = p->nextPos;for (int j = 0; j != N; j++){wcout << p->data;p = p->nextPos;}}}int main(){setlocale(LC_ALL, "chs");循环表();打印拉丁表();return _getch();}

面向对象


#include<iostream>#include<conio.h>using namespace std;#define N 11struct Node;typedef Node* 节点针;struct Node{wchar_t data;节点针 nextPos;};class 拉丁方阵类{Node *拉丁表;节点针 尾哨兵;wchar_t*大写阿拉伯数字;//----11个int 拉丁表边长,横向位移调节杆;void循环表(),测试(),打印拉丁表();public:拉丁方阵类(int , int );};拉丁方阵类::拉丁方阵类(int 拉丁边长 = N, int 调节杆 = 3){拉丁表边长 = 拉丁边长;横向位移调节杆 = 调节杆;拉丁表 = new Node[拉丁边长];尾哨兵 = 拉丁表+拉丁边长 - 1;大写阿拉伯数字 = L"零壹贰叁肆伍陆柒捌玖拾";if (!拉丁表){cout << "new错误!";exit(1);}循环表();//测试();打印拉丁表();}void 拉丁方阵类::循环表(){int i = 0;while (拉丁表 != 尾哨兵){拉丁表[0].nextPos = 拉丁表 + 1;拉丁表[0].data = 大写阿拉伯数字[i++];拉丁表++;}拉丁表->nextPos = &拉丁表[-拉丁表边长 + 1];拉丁表->data = 大写阿拉伯数字[拉丁表边长 - 1];}void 拉丁方阵类::测试(){节点针 p = 拉丁表;for (int i = 0; i < 15; i++, p = p->nextPos){wcout << p->data;}wcout << endl << p->data;}void 拉丁方阵类::打印拉丁表(){节点针 p = 拉丁表;//cout << "\n" << "拉丁方阵表生成如下:";for (int i = 0; i != 拉丁表边长; i++){wcout << endl;for (int i = 0; i != 横向位移调节杆;i++)p = p->nextPos;for (int j = 0; j != 拉丁表边长; j++){wcout << p->data;p = p->nextPos;}}cout << endl;}int main(){setlocale(LC_ALL, "chs");拉丁方阵类 A,B(8, 5),C(5,2);return _getch();}



0 0
原创粉丝点击