Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 26.06.2011, 19:09   #1
МихаилБ
Пользователь
 
Регистрация: 25.06.2011
Сообщений: 11
По умолчанию Исправление кода под нужный компилятор

Здравствуйте.
я составил 3 программы в компиляторе с++.
завтра их нужно сдать преподавателю, но пришла новость что преподователь принимает отчет только через компилятор борланд с++ для винды.
Пожалуйста помогите исправить код под этот компилятор - http://letitbit.net/download/04b2079269/cpp.rar.html
Вот сами коды:
Код первый

//---------------------------------------------------------------------------
#include <graphics.h>
#include <conio.h>
#include <iostream.h>
#include <stdlib.h>
#include "Point.h"
#include "Point.cpp"

#pragma hdrstop

//---------------------------------------------------------------------------

#pragma argsused
const int MAXCNT=100;
int main(int argc, char* argv[])
{
int grDriver=DETECT;
int grMode=0;
int i=0;
CEllipse * el;

int graphdriver = DETECT, gmode, errorcode;

initgraph(&graphdriver,&gmode,"");

el = new CEllipse[MAXCNT];
errorcode = graphresult();
if(errorcode != grOk) /* если ошибка */
{
cout << errorcode << endl;
getch();
return 1;
}
for (int k=0; k < MAXCNT; k++)
{
el[k].SetColor(random(128));
el[k].SetY(random(480));
el[k].SetX(random(640));
el[k].SetA(1.0f*random(20));
el[k].SetB(1.0f*random(20));
}
if (kbhit()) getch();
while (!kbhit())
{
for (int k=0; k < MAXCNT; k++)
{
el[k].Hide();
el[k].SetColor(random(128));
el[k].SetX(random(640));
el[k].SetY(random(480));
el[k].SetA(random(20));
el[k].SetB(random(20));
el[k].Show();

}
}
getch();
while (!kbhit())
{
for (int k=0; k < MAXCNT; k++)
{
el[k].MoveRel(random(3)-1,random(3)-1);
}
}
getch();
delete[] el;
closegraph();
return 0;
}

//---------------------------------------------------------------------------
МихаилБ вне форума Ответить с цитированием
Старый 26.06.2011, 19:09   #2
МихаилБ
Пользователь
 
Регистрация: 25.06.2011
Сообщений: 11
По умолчанию

Код второй

//---------------------------------------------------------------------------
#include "Person.h"
#include <iostream.h>
#include <iomanip.h>
#include <fstream.h>

#pragma hdrstop

//---------------------------------------------------------------------------
const int MAXMNUCNT=5;
const char TAB=char(9);

const string menu[]=
{
"Create",
"Show",
"Sort",
"Filter",
"Exit"
};

CPerson * arr=NULL, *newarr=NULL;
int arrcnt=0,newarrcnt;

int GetChoice(void)
{
int res;
cout << "Please choice" << endl;;
for (int i=0;i<MAXMNUCNT;i++)
{
cout << i << ". " << menu[i] << endl;
}
cin >> res;
return res;
}
CPerson* Create(void)
{
string filename;
fstream fin;
CPerson* res;
cout << "Please enter filename" << endl;
cin >> filename;
fin.open(filename.c_str(),ios_base: :in);
if (fin.is_open())
{
fin >> arrcnt;
res = new CPerson[arrcnt];
for (int i=0; i<arrcnt; i++)
{
fin >> res[i].Lastname;
fin >> res[i].Firstname;
fin >> res[i].Secondname;
fin >> res[i].Specialization;
fin >> res[i].Salary;
};
fin.close();
return res;
};
return NULL;

}
void Clear(void)
{
if (arr!=NULL) {delete[] arr;}
arrcnt = 0;
}
bool Test(void)
{
return arr!=NULL;
}

void Show(const CPerson * src,const int srccnt,const bool ShowSpec)
{
cout << setw(15) << "Lastname" <<setw(15) << "Firstname" <<setw(15) << "Secondname";
if (ShowSpec) cout << setw(15) << "Specialization";
cout << setw(7) << "Salary" << endl;
for (int i=0; i < srccnt;i++)
{
cout << setw(15) << src[i].Lastname << setw(15) << src[i].Firstname << setw(15) << src[i].Secondname;
if (ShowSpec) cout << setw(15) << src[i].Specialization;
cout << setw(7) << src[i].Salary << endl;
}
}
void Sort(CPerson* src,int srccnt)
{
for (int i=0; i < srccnt; i++)
{
for (int j=i+1; j < srccnt; j++)
if (src[i].Salary>src[j].Salary)
{
swap(src[i],src[j]);
}
}

}
#pragma argsused
CPerson* Filter(CPerson* src,const int srccnt,int& newarrcnt)
{
CPerson* res;
int j;
newarrcnt=0;
for (int i=0; i < srccnt; i++)
{
if (src[i].Salary>500)
{
newarrcnt++;
}
};
res = new CPerson[newarrcnt];
j=0;
for (int i=0; i < srccnt; i++)
{
if (src[i].Salary>500)
{
res[j++] = src[i];
}
};
return res;
}

int main(int argc, char* argv[])
{

bool cont=true;
while (cont)
switch (GetChoice())
{
case 0:
Clear();
arr = Create();
break;
case 1:
Show(arr,arrcnt,true);
break;
case 2:
Sort(arr,arrcnt);
Show(arr,arrcnt,true);
break;
case 3:
if (newarr!=NULL) {delete[] arr;}
newarr = Filter(arr,arrcnt,newarrcnt);
Show(newarr,newarrcnt,false);
delete[] newarr;
newarr = NULL;
break;
case 4:
cont = false;
}
Clear();
return 0;
}
//---------------------------------------------------------------------------
МихаилБ вне форума Ответить с цитированием
Старый 26.06.2011, 19:10   #3
МихаилБ
Пользователь
 
Регистрация: 25.06.2011
Сообщений: 11
По умолчанию

код третий

//---------------------------------------------------------------------------

#pragma hdrstop

#include "PhoCat.h"

#include <malloc.h>

void CPhoCat::Input(void)
{
// Вводим число записей
cout << "Please type a number of records" << endl;
cin >> count;
// Очищаем память
if (Names!=NULL)
{
delete[] Names;
delete[] Numbers;

};
// Выделяем память под массивы
Names = new string[count];
Numbers = new string[count];

// Заполняем массивы
for (int i=0;i<count;++i)
{
cout << "Please type a name" << endl;
cin >> Names[i];
cout << "Please type a number" << endl;
cin >> Numbers[i];
}
}
void CPhoCat::Output(void)
{
// Выводим число записей
cout << "Number of records: " << count << endl;
cout << "Name" << char(9);
cout << "Number" << endl;

// Выводим массивы
for (int i=0;i<count;++i)
{
cout << Names[i] << char(9);
cout << Numbers[i] << endl;
}
}

//---------------------------------------------------------------------------
#pragma package(smart_init)


string CPhoCat::FindPhone(const string &AKey)
{
//TODO: Add your source code here
for (int i=0; i < count; i++)
{
if (AKey.compare(Names[i])==0)
{
return Numbers[i];
}
}
return "";
}

void CPhoCat::DelPhone(string& AKey)
{
for (int i=0; i < count; i++)
{
if (AKey.compare(Names[i])==0)
{
string* temp1 = new string[count-1];
string* temp2 = new string[count-1];

for (int j=0,k=0; j < count; j++)
{
if (j!=i)
{
temp1[k] = Names[j];
temp2[k++] = Numbers[j];
}
}
count--;
delete [] Names;
delete [] Numbers;
Names = temp1;
Numbers= temp2;
return ;
}
}
}

void CPhoCat::AddPhone(const string& AKey, const string& AValue)
{
//TODO: Add your source code here
string* temp1 = new string[++count];
string* temp2 = new string[count];

for (int j=0,k=0; j < count; j++)
{
if ( j < count-1)
{
temp1[j] = Names[j];
temp2[j] = Numbers[j];
}
else
{
temp1[j] = AKey;
temp2[j] = AValue;
}
}
delete [] Names;
delete [] Numbers;
Names = temp1;
Numbers= temp2;
}


void CPhoCat::Sort(void)
{
//TODO: Add your source code her
for (int i=0; i < count; i++)
{
for (int j=i+1; j < count; j++)
if (Names[i].compare(Names[j])>0)
{
Names[i].swap(Names[j]);
Numbers[i].swap(Numbers[j]);
}
}

}


Заранее спасибо
МихаилБ вне форума Ответить с цитированием
Старый 26.06.2011, 22:32   #4
МихаилБ
Пользователь
 
Регистрация: 25.06.2011
Сообщений: 11
По умолчанию

да кстати, вот задания к кодам...
Задание к третьему коду коду
Описать класс «телефонный справочник», используя в качестве структуры данных массив строк.
Предусмотреть в классе следующие операции:
- ввод и вывод массива строк
- поиск номера по заданному имени
-сортировка записей в справочник по алфавиту
Написать программу, демонстрирующую работу с этим классом. Программа должна содержать меню позволяющее осуществить проверку всех методов класса.

Задание ко второму коду
Описать класс, включающий следующую информацию о сотрудниках фирмы:
- фамилия
- имя
- отчество
- специальность
- зарплата
В программе предусмотреть
- создание массива объектов заданного класса
-вывод на экран массива объектов в виде таблицы 1
Таблица 1
Фамилия Имя Отчество Специальность зарплата

-сортировку массива объектов по возрастанию зарплаты сотрудников и вывод на экран полученного массива в виде таблицы 1
- формирование нового массива объектов, содержащего сведения о тех сотрудниках, зарплата которых превышает $500 и вывод на экран полученного массива в виде таблицы 2
Фамилия Имя Отчество Зарплата


- создание меню для проверки всех действий над массивом объектов заданного класса.





Задание к первому коду
Описать базовый класс «точка» содержащий следующие поля:
- координаты точки
- цвет точки
и следующие методы:
- конструктор
- деструктор
- получение значений полей
- изменение значений полей
- отображение точки на экране
- гашение точки
- перемещение точки по экрану
Описать базовый класс «отрезок» включающий следующие поля:
- координаты концов отрезка
- цвет отрезка
и следующих методов:
- конструктор
- деструктор
- получение значений полей
- изменение значений полей
- отображение отрезка на экране
- гашение отрезка
- перемещение отрезка по экрану
Используя базовые классы «точка» и «отрезок» определить класс описанный ниже. В программе предусмотреть следующие действия с объектами создаваемого класса:
- создание объектов: в том числе создание массивов объектов
- уничтожение объектов
- изменение параметров объектов (цвет, координаты, размер и т.п.)
- отображение объектов на экране
- гашение объектов
- перемещение объектов по экрану
Производный класс: эллипс с начерченными диаметрами.
МихаилБ вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Создание формы + исправление кода Meiyo C# (си шарп) 2 22.06.2011 09:30
нужен компилятор, работающий под ДОС (в синем окошке) на виндоус 7 pa6kevi4 Помощь студентам 3 23.03.2010 00:59
Компилятор C под XP x64 .ghost Общие вопросы C/C++ 1 28.01.2010 20:46
Исправление кода... SwIm Помощь студентам 3 19.01.2010 01:43
Помогите в исправление кривого кода HECTOR.A. Помощь студентам 2 02.06.2009 11:05