Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
ISlonI
#1

исправить ошибку в коде: - C++

24.05.2012, 19:46. Просмотров 244. Ответов 0
Метки нет (Все метки)

//h-файл
#include "stdafx.h"
#include <stdlib.h>
#include <iostream>
#include <fstream>
using namespace std;
class znak //клас-описание
{
private:
char surname[80];
int number;
int arr[3];
friend class klass;
public:
znak(){number=0;}
~znak(){}
friend istream &operator>>(ifstream &ZORG,znak &NARF)
{
return ZORG>>NARF.surname>>NARF.number>>NARF.arr[0]>>NARF.arr[1]>>NARF.arr[2];
}
friend ostream &operator <<(ostream &out,znak &z)
{
return out<<z.surname<<" "<<z.number<<" "<<z.arr[0]<<" "<<z.arr[1]<<" "<<z.arr[2]<<"\n\n";
}
char* getSurname(){return surname;}
int getNumber(){return number;}
int getArr(int i){return arr[i];}
int* getA(){return arr;}
void setSurname(char* str) {strcpy(surname,str);}
void setNum(int n) {number=n;}
void setArr(int i, int n) {arr[i]=n;}

static bool Surname(znak& a,znak& b){return strcmp(a.surname,b.surname)<0;}
static bool Number(znak& a,znak& b){return a.number<b.number;}
static bool Age(znak& a,znak& b){return a.arr<b.arr;}

};

class klass //основной класс
{
public:
znak z[50];
struct hesh {int key[3]; int index;};
hesh table[100];
int count;

static void arrcopy(int* a,int* b) //копирование массива
{
a[0]=b[0];
a[1]=b[1];
a[2]=b[2];
}

static bool arrcmp(int* a,int* b) // сравнение массивов
{
return a[0]==b[0] && a[1]==b[1] && a[2]==b[2];
}

static int heshfunc(int* a) // сумма эл-ов массива
{
return a[0]+a[1]+a[2];
}

void createtable() // создаем таблицу
{
int i,j,i1=0;
for(i=0;i<100;i++)table[i].index=-1;

for(j=0;j<50 && z[j].number;j++)
{
i1=0;
while(1)
{
i=((i1*i1)+heshfunc(z[j].arr))%50;
if(table[i].index==-1) break;
i1++;
}
table[i].index=j;
arrcopy(table[i].key,z[j].arr);
}
}

int search (int* k) // поиск в таблице
{
int j,i1=0;
while(1)
{
j=(heshfunc(k)+i1*i1)%50;
if(arrcmp(table[j].key,k))break;
i1++;
if(i1>100000){cout<<"not found\n\n";return -1000;}
}
cout<<" "<<i1<<" \n";
return table[j].index;
}

friend istream &operator >>(ifstream &in,klass &k) // ввод
{
for(int i=0;i<50;i++)
{
in>>k.z[i];
if(!k.z[i].getNumber()){k.count=i;return in;}
}
k.count=50;
return in;
}
friend ostream &operator <<(ostream &out,klass &k) // вывод
{
for(int i=0;i<k.count;i++)
{
out<<k.z[i];
}
return out;
}
void binr()
{
fstream in("binka",ios::in|ios::out|ios::binary|ios::trunc);
in.write((char*) this,sizeof(klass));
in.flush();
}

void binee()
{
fstream in("binka",ios::in|ios::out|ios::binary);
in.read((char*) this,sizeof(klass));
}

znak extract(int i)
{
znak zn;
ifstream bin("binka",ios::binary|ios::in);
bin.seekg(sizeof(znak)*i,ios::beg);
bin.read((char*) zn,sizeof(znak)); // пишет, что нельзя преобразовать знак в чар.
}
};
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.05.2012, 19:46
Здравствуйте! Я подобрал для вас темы с ответами на вопрос исправить ошибку в коде: (C++):

Исправить ошибку в коде - C++
#include &lt;iostream&gt; #include &lt;cmath&gt; #include &lt;math.h&gt; using namespace std; const int MaxIter=500; int matn () { double...

Исправить ошибку в коде - C++
помогите найти ошибку . студия 2012 #include &lt;iostream&gt; #include &quot;queue.h&quot; using namespace std; int main() { Queue a,c;...

Исправить ошибку в коде с++ - C++
Помогите исправить ошибку в коде: CString m_showlink; CRec1-&gt;GetFieldValue(&quot;Ïóòü&quot;,CValue); m_showlink = CValue.pbVal; ...

исправить ошибку в коде - C++
мне вот недавно скинули программу, только она не работает, ругается на &quot;выражение должно иметь тип класса&quot;. не могу понять и вообще саму...

Исправить ошибку в коде. - C++
Реализовать функцию, которая принимает одномерный массив и возвращает индексы его максимального и минимального элементов, с указателями ...

Исправить ошибку в коде - C++
Задача простейшая, но вот реализовать не получается правильно, вот условие : Написать программу вычисления стоимости покупки с учетом...

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.05.2012, 19:46
Привет! Вот еще темы с ответами:

Исправить ошибку в коде - C++
//--------------------------------------------------------------------------- #pragma hdrstop #include &lt;iterator&gt; #include...

Исправить ошибку в коде - C++
где ошибка? #include &lt;iostream&gt; #include &lt;math.h&gt; using namespace std; int main () { setlocale(LC_ALL,&quot;Russian&quot;); double...

Исправить ошибку в коде. С++ - C++
Помогите исправить ошибку. Ошибка заключается в некорректной работе при вводе сообщения с пробелом. #include &quot;stdafx.h&quot; #include...

исправить ошибку в коде - C++
#include &lt;stdio.h&gt; #include &lt;conio.h&gt; #include &lt;windows.h&gt; #include &lt;locale.h&gt; #include &lt;stdlib.h&gt; #define OUTPUT_FILE...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru