Реализация библиотеки для работы с
Вид материала | Документы |
СодержаниеСкриншот №1,2 Скриншот №5,6 Скриншот №9 Скриншот №11 Скриншот №12,13,14 Скриншот №18 Скриншот №20,21,22 Скриншот №24 Заголовочный файл (реализация методов классов) |
- План работы библиотеки зав библиотекой Полещук Людмила Дмитриевна Анализ работы библиотеки, 363.46kb.
- Реализация комплексной программы автоматизации обслуживания пользователей в библиотеке, 81.9kb.
- План работы библиотеки Муниципального бюджетного общеобразовательного учреждения основной, 511.68kb.
- Годовой план работы библиотеки псош №46 имени В. П. Астафьева на 2008 2009 учебный, 536.46kb.
- В. М. Красильщикова Советник отдела библиотек, 110.39kb.
- Задачи конкурса -повысить престиж библиотеки как современного информационного и культурного, 108.49kb.
- Зональной научной библиотеки, 1482.03kb.
- План работы библиотеки моу «Миндерлинская сош» на 2010 -2011 учебный год Задачи библиотеки, 63.53kb.
- План работы школьной библиотеки мбоу краснокаменская сош №4 на 2011/2012 учебный год., 170.02kb.
- План работы Никольской сельской библиотеки на 2011, 33.87kb.
Скриншот №1,2

Вернуться к таблице тестов
Скриншот №4

Вернуться к таблице тестов
Скриншот №5,6

Вернуться к таблице тестов
Скриншот №8

Вернуться к таблице тестов
Скриншот №9

Вернуться к таблице тестов
Скриншот №10

Вернуться к таблице тестов
Скриншот №11

…

….

Вернуться к таблице тестов
Скриншот №12,13,14

Вернуться к таблице тестов
Скриншот №15,16,17

Вернуться к таблице тестов
Скриншот №18

Вернуться к таблице тестов
Скриншот №19

Вернуться к таблице тестов
Скриншот №20,21,22

Вернуться к таблице тестов
Скриншот №23

Вернуться к таблице тестов
Скриншот №24

Вернуться к таблице тестов
Листинг программы на С++
Заголовочный файл (объявление классов)
// stdafx.h : include file for standard system include files,
// or project specific include files that are used frequently, but
// are changed infrequently
//
#pragma once
#define WIN32_LEAN_AND_MEAN // Exclude rarely-used stuff from Windows headers
#include
#include
#include
#include
// TODO: reference additional headers your program requires here
class MyArr
{
public:
bool check(char x[80]);
void createArrayStatic();
void createTwoDimenArray();
void createDynArray();
void createDynArrayT();
void MyError(short Err, char x[80]);
};
//-------------------------------------------------------------------
class SearchAndSort
{
public:
virtual void SortMin();
virtual void SortMax();
virtual void printArray();
void searchMax();
void searchMin();
void searchMaxT();
void searchMinT();
void searchMinForSort(short pos);
void searchMaxForSort(short pos);
void searchMinForSortT(short pos);
void searchMaxForSortT(short pos);
void printTwoDimArray();
short GetMax();
short GetNumMax();
short GetMin();
short GetNumMin();
protected:
short max;
short numMax;
short min;
short numMin;
};
class TwoDimenStr : public SearchAndSort
{
public:
void createNewArrayStatic();
void SortMin();
void SortMax();
void printArray();
};
class TwoDimenCol : public SearchAndSort
{
public:
void createNewArrayStatic();
void SortMin();
void SortMax();
void printArray();
};
//-------------------------------------------------------------------
// Одномерный динамический массив
class DynArray
{
short d_AllEl; // число элементов
short * d_hV; // указатель
public:
DynArray ( short ); // конструктор
~DynArray ( void ); // деструктор
short get ( short ); // Получить элемент массива по номеру
short set ( short, short );
void sort_p ( short ); // Сортировка методом вставок.
void sort_b ( short ); // Сортировка методом пузырька
void sort_ch ( short, short ); // Обменная сортировка.
void print ( short );
};
// Двумерный динамический массив
class DynArrayT
{
short d_AllEl; // число элементов
short **d_hW; // указатель
public:
DynArrayT ( short, short ); // конструктор
~DynArrayT ( void ); // деструктор
short get ( short, short ); // Получить элемент массива по номеру
void print ( void );
void rebuild ( void );
};
Заголовочный файл (реализация методов классов)
// for visual
#include “stdafx.h”
#pragma hdrstop
#include
#include
#include
//#include
#include
// for borland
/*
#include
#include
#include
#include
#include
*/
//---------------------------------------------------------------------------
using namespace std;
//----------------------------------------------------------------------------
char bufRus[256];
/*
// for borland
char* Rus (char text)
{
CharToOem(text, bufRus);
return bufRus;
}
*/
// for visual
char* Rus(char* in)
{
if (CharToOemA (in, bufRus))
return bufRus;
else return 0;
}
//------------------- КОНСТАНТЫ ---------------------------------------------
const short nn = 127,
ss = 127, // кол-во строк
cc = 127, // кол-во столбцов
ll = (ss*cc)/127; // кол-во элементов (строк * столбцов)
short n,s,c,l;
short ArrayStatic[nn];
short TwoDimenArray[ss][cc];
short NewArrayStatic[ll];
DynArray vp ( nn );
DynArray vb ( nn );
DynArray vc ( nn );
DynArrayT wp ( ss, cc);
//======================= ОБЩИЕ МЕТОДЫ ==================================
//------------------- СООБЩЕНИЯ ОБ ОШИБКАХ -------------------------------------
void MyArr::MyError(short Err, char x[10]){
switch (Err){
case 0 : cout << (Rus(“\a\t Введеное вами значение “)); cout<< x; cout << (Rus( “ не является целым числом\n\n”)); break;
case 1 : cout << (Rus(«\a Введеное вами значение выходит за пределы заданного диапазона от 1 до 127\n\n»));break;
case 2 : cout << (Rus(«\a Введеное вами значение выходит за пределы заданного диапазона от -128 до 127\n\n»));break;
case 3 : cout << (Rus(«\a Введеное вами значение выходит за пределы заданного диапазона от 1 до «))<<(127/atoi(x))<<»\n\n»;break;
case 4 : cout << (Rus(«\a\t Данного пункта меню не существует\n\n»));break;
default : break;
}
}
//------------------ ПРОВЕРКА ВВОДИМЫХ ДАННЫХ ----------------------------------
bool MyArr::check(char x[80]){
short j=0,z;
bool d;
if (x[0]==’-‘) { d=false; j++;z=5;}
z=4;
while (x[j]!=’\0’ && j
d = isdigit (x[j]); j++;
if (!d) return d; else d =true;
}
x[j]=’\0’;
return d;
}
//------------- СОЗДАНИЕ ОДНОМЕРНОГО СТАТИЧЕСКОГО МАССИВА ------------------------
void MyArr::createArrayStatic(){
char x[80] ;
short i=0,a=0;
while (1)
{
cout<<(Rus(«\tВведите количество элементов массива от 1 до 127»))<<»\n»;
cin >> x ;
if (MyArr::check(x) )
{
n=atoi(x) ;
if (n>0 && n<=127) { break; }
else MyArr::MyError(1, x);
}
else MyArr::MyError(0, x);
}
while (i
{
cout<<(Rus(«Введите элемент массива – целое число от -128 до 127\n»));
cin >> x ;
if (MyArr::check(x) )
{
a=atoi(x) ;
if (a>=-128 && a<=127)
{ ArrayStatic[i]=a; i++; }
else MyArr::MyError(2, x);
}
else MyArr::MyError(0, x);
}
}
//--------------- СОЗДАНИЕ ДВУМЕРНОГО СТАТИЧЕСКОГО МАССИВА -------------------
void MyArr::createTwoDimenArray(){
char x[80];char y[80];char el[80];
short k=0,a=0,temp=0;
while (1)
{
cout<<(Rus(«\tВведите количество строк массива от 1 до 127»))<<»\n»;
cin >> x ;
if (MyArr::check(x) )
{
n=atoi(x) ;
if (n>0 && n<=127) { break; }
else MyArr::MyError(1, x);
}
else MyArr::MyError(0, x);
}
while (1)
{
cout<<(Rus(«\tВведите количество столбцов массива от 1 до «))<<(127/atoi(x))<<»\n»;
cin >> y ;
if (MyArr::check(y) )
{
n=atoi(y) ;
if (n>0 && n<=(127/atoi(x))) { break; }
else MyArr::MyError(3, x);
}
else MyArr::MyError(0, y);
}
s=atoi(x) ; c=atoi(y);
while (k
{
cout<<(Rus(«Введите элемент массива – целое число от -128 до 127\n»));
cin >> el ;
if (MyArr::check(el) )
{
a=atoi(el) ;
if (a>=-128 && a<=127)
{ ArrayStatic[k]=a; k++; }
else MyArr::MyError(2, x);
}
else MyArr::MyError(0, x);
}
k=0;
for (short i=0; i
for (short j = 0; j < c; j++){
temp = ArrayStatic[k];
TwoDimenArray[i][j] = temp;
k++;
}
}
//------------- СОЗДАНИЕ ОДНОМЕРНОГО ДИНАМИЧЕСКОГО МАССИВА ---------------
void MyArr::createDynArray(){
char x[80] ;
short i=0,a=0;
while (1)
{
cout<<(Rus(«\tВведите количество элементов массива от 1 до 127»))<<»\n»;
cin >> x ;
if (MyArr::check(x) )
{
n=atoi(x) ;
if (n>0 && n<=127) { break; }
}
cout<< (Rus(«\a\t\tВведено ошибочное значение\n\n»));
}
while (i
{
cout<<(Rus(«Введите элемент массива – целое число от -128 до 127\n»));
cin >> x ;
if (MyArr::check(x) )
{
a=atoi(x) ;
if (a>=-128 && a<=127)
{vp.set(i, a); vb.set(i, a); vc.set(i, a); i++;}
else cout<< (Rus(«\a\t\tВведено ошибочное значение\n\n»));
}
else cout<< (Rus(«\a\t\tВведено ошибочное значение\n\n»));
}
}
//---------------- СОЗДАНИЕ ДВУМЕРНОГО СТАТИЧЕСКОГО МАССИВА ------------------
void MyArr::createDynArrayT(){
char x[80];char y[80];char el[80];
short k=0,a=0,temp=0;
while (1)
{
cout<<(Rus(«\tВведите количество строк массива от 1 до 127»))<<»\n»;
cin >> x ;
if (MyArr::check(x) )
{
n=atoi(x) ;
if (n>0 && n<=127) { break; }
}
cout<< (Rus(«\a\t\tВведено ошибочное значение\n\n»));
}
while (1)
{
cout<<(Rus(«\tВведите количество столбцов массива от 1 до «))<<(127/atoi(x))<<»\n»;
cin >> y ;
if (MyArr::check(y) )
{
n=atoi(y) ;
if (n>0 && n<=(127/atoi(x))) { break; }
}
cout<< (Rus(«\a\t\tВведено ошибочное значение\n\n»));
}
s=atoi(x) ; c=atoi(y);
while (k
{
cout<<(Rus(«Введите элемент массива – целое число от -128 до 127\n»));
cin >> el ;
if (MyArr::check(el) )
{
a=atoi(el) ;
if (a>=-128 && a<=127)
{vp.set(k, a); k++;}
else cout<< (Rus(“\a\t\tВведено ошибочное значение\n\n”));
}
else cout<< (Rus(“\a\t\tВведено ошибочное значение\n\n”));
}
}
//--- ВЫВОД НА ПЕЧАТЬ ОДНОМЕРНОГО СТАТИЧЕСКОГО МАССИВА ---
void SearchAndSort::printArray(){
for (short i = 0; i
cout << ArrayStatic[i]<<”\t”;
cout <<”\n”;
}
//--- ВЫВОД НА ПЕЧАТЬ ИСХОДНОГО ДВУМЕРНОГО СТАТИЧЕСКОГО МАССИВА ---
void SearchAndSort::printTwoDimArray(){
for (short i = 0; i< s; i++){
for (short j = 0; j < c; j++)
cout << TwoDimenArray[i][j]<<”\t”;
cout <<»\n»;
}
}
//================= ИНДИВИДУАЛЬНЫЕ МЕТОДЫ ======================
//--- ПОИСК ПЕРВОГО МАКСИМАЛЬНОГО ЭЛЕМЕНТА И ЕГО НОМЕРА В ОДНОМЕРНОМ СТАТИЧЕСКОМ МАССИВЕ ---
void SearchAndSort::searchMax(){
max = ArrayStatic[0];
numMax = 1;
for (short i = 0; i
if (ArrayStatic[i] > max) {
max = ArrayStatic[i];
numMax = i + 1;
}
}
//--- ПОИСК ПЕРВОГО МИНИМАЛЬНОГО ЭЛЕМЕНТА И ЕГО НОМЕРА В ОДНОМЕРНОМ СТАТИЧЕСКОМ МАССИВЕ ---
void SearchAndSort::searchMin(){
min = ArrayStatic[0];
numMin = 1;
for (short i = 0; i
if (ArrayStatic[i] < min) {
min = ArrayStatic[i];
numMin = i + 1 ;
}
}
//--- ВЗЯТИЕ ПЕРВОГО МАКСИМАЛЬНОГО ЭЛЕМЕНТА В МАССИВЕ ---
short SearchAndSort::GetMax(){
return max;
}
//--- ВЗЯТИЕ ПЕРВОГО МИНИМАЛЬНОГО ЭЛЕМЕНТА В МАССИВЕ ---
short SearchAndSort::GetMin(){
return min;
}
//--- ВЗЯТИЕ НОМЕРА ПЕРВОГО МАКСИМАЛЬНОГО ЭЛЕМЕНТА В МАССИВЕ ---
short SearchAndSort::GetNumMax(){
return numMax;
}
//--- ВЗЯТИЕ НОМЕРА ПЕРВОГО МИНИМАЛЬНОГО ЭЛЕМЕНТА В МАССИВЕ ---
short SearchAndSort::GetNumMin(){
return numMin;
}
//--- ПОИСК МИНИМАЛЬНОГО ЭЛЕМЕНТА В ОДНОМЕРНОМ СТАТИЧЕСКОМ МАССИВЕ,ПЕРЕДАЧА ЕГО ПОЗИЦИИ В СОРТИРОВКУ ---
void SearchAndSort::searchMinForSort(short pos){
min = ArrayStatic[pos];
numMin = pos;
for (short i = pos; i
if (ArrayStatic[i] < min) {
min = ArrayStatic[i];
numMin = i ;
}
}
//--- СОРТИРОВКА ВСТАВКАМИ ПО ВОЗРАСТАНИЮ ОДНОМЕРНОГО СТАТИЧЕСКОГО МАССИВА ---
void SearchAndSort::SortMin(){
short temp;
for (short i=0; i
SearchAndSort::searchMinForSort(i);
temp = ArrayStatic[i];
ArrayStatic[i]= SearchAndSort::GetMin();
ArrayStatic[SearchAndSort::GetNumMin()]= temp;
}
}
//--- ПОИСК МАКСИМАЛЬНОГО ЭЛЕМЕНТА В ОДНОМЕРНОМ СТАТИЧЕСКОМ МАССИВЕ,ПЕРЕДАЧА ЕГО ПОЗИЦИИ В СОРТИРОВКУ ---
void SearchAndSort::searchMaxForSort(short pos){
max = ArrayStatic[pos];
numMax = pos;
for (short i = pos; i
if (ArrayStatic[i] > max) {
max = ArrayStatic[i];
numMax = i ;
}
}
//--- СОРТИРОВКА ВСТАВКАМИ ПО УБЫВАНИЮ ОДНОМЕРНОГО СТАТИЧЕСКОГО МАССИВА ---
void SearchAndSort::SortMax(){
short temp;
for (short i=0; i
SearchAndSort::searchMaxForSort(i);
temp = ArrayStatic[i];
ArrayStatic[i] = SearchAndSort::GetMax();
ArrayStatic[SearchAndSort::GetNumMax()] = temp;
}
}
//--- ПОИСК МИНИМАЛЬНОГО ЭЛЕМЕНТА В ДВУМЕРНОМ СТАТИЧЕСКОМ МАССИВЕ,ПЕРЕДАЧА ЕГО ПОЗИЦИИ В СОРТИРОВКУ ---
void SearchAndSort::searchMinForSortT(short pos){
l=s*c;
min = NewArrayStatic[pos];
numMin = pos;
for (short i = pos; i
if (NewArrayStatic[i] < min) {
min = NewArrayStatic[i];
numMin = i ;
}
}
//--- ПОИСК МАКСИМАЛЬНОГО ЭЛЕМЕНТА В ДВУМЕРНОМ СТАТИЧЕСКОМ МАССИВЕ,ПЕРЕДАЧА ЕГО ПОЗИЦИИ В СОРТИРОВКУ ---
void SearchAndSort::searchMaxForSortT(short pos){
l=s*c;
max = NewArrayStatic[pos];
numMax = pos;
for (short i = pos; i
if (NewArrayStatic[i] > max) {
max = NewArrayStatic[i];
numMax = i ;
}
}
//--- ПОИСК ПЕРВОГО МАКСИМАЛЬНОГО ЭЛЕМЕНТА И ЕГО НОМЕРА В ДВУМЕРНОМ СТАТИЧЕСКОМ МАССИВЕ ---
void SearchAndSort::searchMaxT(){
l=s*c;
max = NewArrayStatic[0];
numMax = 1;
for (short i = 0; i
if (NewArrayStatic[i] > max) {
max = NewArrayStatic[i];
numMax = i + 1;
}
}
//--- ПОИСК ПЕРВОГО МИНИМАЛЬНОГО ЭЛЕМЕНТА И ЕГО НОМЕРА В ДВУМЕРНОМ СТАТИЧЕСКОМ МАССИВЕ ---
void SearchAndSort::searchMinT(){
l=s*c;
min = NewArrayStatic[0];
numMin = 1;
for (short i = 0; i
if (NewArrayStatic[i] < min) {
min = NewArrayStatic[i];
numMin = i + 1 ;
}
}
//------------------------- ДВУМЕРНЫЕ СТАТИЧЕСКИЕ---------------------------------------
//--- СОЗДАНИЕ ДВУМЕРНОГО СТАТИЧЕСКОГО МАССИВА ВЫПРЯМЛЕННОГО ПО СТРОКАМ ---
void TwoDimenStr::createNewArrayStatic (){
short temp = 0,k = 0;
for (short i = 0; i < s; i++)
for (short j = 0; j < c; j++){
temp = TwoDimenArray [i][j];
NewArrayStatic[k]=temp;
k++;
}
}
//--- СОРТИРОВКА ВСТАВКАМИ ПО СТРОКАМ ПО ВОЗРАСТАНИЮ ДВУМЕРНОГО СТАТИЧЕСКОГО МАССИВА ---
void TwoDimenStr::SortMin(){
l=s*c;
short temp;
for (short i=0; i
TwoDimenStr::searchMinForSortT(i);
temp = NewArrayStatic[i];
NewArrayStatic[i] = TwoDimenStr::GetMin();
NewArrayStatic[TwoDimenStr::GetNumMin()]= temp;
}
}
//--- СОРТИРОВКА ВСТАВКАМИ ПО СТРОКАМ ПО УБЫВАНИЮ ДВУМЕРНОГО СТАТИЧЕСКОГО МАССИВА ---
void TwoDimenStr::SortMax(){
l=s*c;
short temp;
for (short i=0; i
TwoDimenStr::searchMaxForSortT(i);
temp = NewArrayStatic[i];
NewArrayStatic[i] = TwoDimenStr::GetMax();
NewArrayStatic[TwoDimenStr::GetNumMax()]= temp;
}
}
//--- ВЫВОД НА ПЕЧАТЬ ОТСОРТИРОВАННОГО ПО СТРОКАМ ДВУМЕРНОГО СТАТИЧЕСКОГО МАССИВА ---
void TwoDimenStr::printArray (){
short temp,k=0;
for (short i=0; i
for (short j = 0; j < c; j++){
temp = NewArrayStatic[k];
TwoDimenArray[i][j]=temp;
k++;
}
for (short i = 0; i< s; i++){
for (short j = 0; j < c; j++)
cout << TwoDimenArray[i][j]<<”\t”;
cout <<»\n»;
}
}
//----------------------------------------------------------------------------
//--- СОЗДАНИЕ ДВУМЕРНОГО СТАТИЧЕСКОГО МАССИВА ВЫПРЯМЛЕННОГО ПО СТОЛБЦАМ ---
void TwoDimenCol::createNewArrayStatic (){
short temp = 0,k = 0;
for (short j = 0; j < c; j++)
for (short i = 0; i < s; i++){
temp = TwoDimenArray [i][j];
NewArrayStatic[k]=temp;
k++;
}
}
//--- СОРТИРОВКА ВСТАВКАМИ ПО СТОЛБЦАМ ПО ВОЗРАСТАНИЮ ДВУМЕРНОГО СТАТИЧЕСКОГО МАССИВА ---
void TwoDimenCol::SortMin(){
l=s*c;
short temp;
for (short i=0; i
TwoDimenCol::searchMinForSortT(i);
temp = NewArrayStatic[i];
NewArrayStatic[i] = TwoDimenCol::GetMin();
NewArrayStatic[TwoDimenCol::GetNumMin()]= temp;
}
}
//--- СОРТИРОВКА ВСТАВКАМИ ПО СТОЛБЦАМ ПО УБЫВАНИЮ ДВУМЕРНОГО СТАТИЧЕСКОГО МАССИВА ---
void TwoDimenCol::SortMax(){
l=s*c;
short temp;
for (short i=0; i
TwoDimenCol::searchMaxForSortT(i);
temp = NewArrayStatic[i];
NewArrayStatic[i] = TwoDimenCol::GetMax();
NewArrayStatic[TwoDimenCol::GetNumMax()]= temp;
}
}
//--- ВЫВОД НА ПЕЧАТЬ ОТСОРТИРОВАННОГО ПО СТОЛБЦАМ ДВУМЕРНОГО СТАТИЧЕСКОГО МАССИВА ---
void TwoDimenCol::printArray (){
short temp,k=0;
for (short i=0; i
for (short j = 0; j < s; j++){
temp = NewArrayStatic[k];
TwoDimenArray[j][i]=temp;
k++;
}
for (short i = 0; i< s; i++){
for (short j = 0; j < c; j++)
cout << TwoDimenArray[i][j]<<”\t”;
cout <<”\n”;
}
}
// ---------------------------------------------------------------------------
DynArray::DynArray ( short in1 )
{
d_hV = new short [in1];
}
DynArray::~DynArray ( void )
{
delete[]d_hV;
}
short DynArray::get ( short in1 )
{
return d_hV[in1];
}
short DynArray::set ( short in1, short in2 )
{
d_hV[in1] = in2;
return 0;
}
void DynArray::sort_p ( short in1 )
{
short i, j, tmp;
for (i = 0; i < in1; i++ )
{
tmp = d_hV[i];
for(j = i-1; j >= 0 && tmp < d_hV[j]; j--)
d_hV[j+1] = d_hV[j];
d_hV[j+1] = tmp;
}
}
void DynArray::sort_b ( short in1 )
{
short i,j,tmp;
for(i = 1; i < in1; i++)
for(j = in1 – 1; j >= i; j--)
if(d_hV[j-1] > d_hV[j])
{
tmp = d_hV[j-1];
d_hV[j-1] = d_hV[j];
d_hV[j] = tmp;
}
}
void DynArray::sort_ch (short in1, short in2)
{
int i = in1, j = in2, tmp, x = d_hV[(in1 + in2) / 2];
do {
while (d_hV[i] < x) ++i;
while (d_hV[j] > x) –j;
if(i <= j) {
if (i < j)
{
tmp = d_hV[j];
d_hV[j] = d_hV[i];
d_hV[i] = tmp;
};
++i;
--j;
}
} while (i <= j);
if (i < in2)
sort_ch(i, in2);
if (in1
< j)
sort_ch(in1,j);
}
void DynArray::print ( short in1 )
{
for (short i = 0; i< in1; i++){
cout << d_hV[i]<<»\t»;
}
cout <<»\n»;
}
//-------------------------------------------------------------------
DynArrayT::DynArrayT ( short in1, short in2 )
{
short i,j;
d_hW = new short*[in1];
for (i = 0; i < in1; i++)
d_hW[i] = new short[in2];
}
DynArrayT::~DynArrayT ( void )
{
short i;
for (i = 0; i < nn; i++)
delete[]d_hW[i];
delete[]d_hW;
}
short DynArrayT::get ( short in1, short in2 )
{
return d_hW[in1][in2];
}
void DynArrayT::rebuild ( void )
{
short temp,k=0;
for (short i=0; i
for (short j = 0; j < s; j++){
temp = vp.get(k);
d_hW[i][j]=temp;
k++;
}
}
void DynArrayT::print ( void )
{
for (short i = 0; i< s; i++){
for (short j = 0; j < c; j++)
cout << d_hW[i][j]<<”\t”;
cout <<»\n»;
}
}
// --------------------------------------------------------------------------