|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » C/C++ - набрал пример по книге, но он не работает |
|
|
C/C++ - набрал пример по книге, но он не работает
|
Пользователь Сообщения: 147 |
Профиль | Отправить PM | Цитировать
программа многоцелевой сортировки использующая указатели на функции
(mvs2008) //------------------------------------------------------- #include <iostream> #include <iomanip> void bubble(int *, const int, int(*)(int,int)); int ascending(const int,const int); int descending(const int, const int); int main() { setlocale(LC_ALL,".1251"); const int arraySize=10; int order, a[arraySize]={2,3,4,5,8,12,10,89,86,45}; std::cout<<"Введите 1 для сортировки в возрастающем порядке, \n Введите 2 для сортировки в убывающем порядке: "; std::cin>>order; std::cout<<"\nЭлементы в исходном порядке"<<std::endl; for(int i=0; i<arraySize; i++) std::cout<<std::setw(4)<<a[i]; std::cout<<std::endl; if(order==1) { bubble(a,arraySize, ascending); std::cout<<"Элементы данных в возрастающем порядке"<<std::endl; } else { bubble(a,arraySize,descending); std::cout<<"Элементы данных в убывающем порядке"<<std::endl; } for(int i=0; i<arraySize; i++) std::cout<<std::setw(4)<<a[i]; std::cout<<std::endl; system("pause"); return 0; } void bobble(int *work, const int size, int (*compare)(int,int)) { void swap(int *, int *); for(int pass=1; pass<size; pass++) for(int count=0; count<size-1; count++) if((*compare)(work[count],work[count+1])) swap(&work[count], &work[count+1]); } void swap(int *element1Ptr, int *element2Ptr) { int temp; temp=*element1Ptr; *element1Ptr=*element2Ptr; *element2Ptr=temp; } int ascending(const int a, const int b) { return b<a; } int descending(const int a, const int b) { return b>a; } 1>------ Построение начато: проект: программа_многоцелевой_сортировки, Конфигурация: Debug Win32 ------ 1>Компиляция... 1>unit.cpp 1>Компоновка... 1>unit.obj : error LNK2019: ссылка на неразрешенный внешний символ "void __cdecl bubble(int *,int,int (__cdecl*)(int,int))" (?bubble@@YAXPAHHP6AHHH@Z@Z) в функции _main 1>C:\Documents and Settings\Admin\Мои документы\Visual Studio 2008\Projects\программа_многоцелевой_сортировки\Debug\программа_многоцелевой_сортировки.exe : fatal error LNK1120: 1 неразрешенных внешних элементов 1>Журнал построения был сохранен в "file://c:\Documents and Settings\Admin\Мои документы\Visual Studio 2008\Projects\программа_многоцелевой_сортировки\программа_многоцелевой_сортировки\Debug\BuildLog.htm " 1>программа_многоцелевой_сортировки - ошибок 2, предупреждений 0 ========== Построение: успешно: 0, с ошибками: 1, без изменений: 0, пропущено: 0 ========== в чем ошибка? |
|
Отправлено: 00:50, 22-06-2010 |
Будем жить, Маэстро... Сообщения: 6694
|
Профиль | Сайт | Отправить PM | Цитировать |
------- Отправлено: 13:15, 22-06-2010 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Пользователь Сообщения: 147
|
Профиль | Отправить PM | Цитировать именно из нее
|
Отправлено: 22:39, 23-06-2010 | #3 |
Пользователь Сообщения: 147
|
Профиль | Отправить PM | Цитировать раз тут есть знающие люди, спрошу еще один вопрос. По этой книге .
Пример снова не работает: //FIG6_5.CPP //Драйвер класса Time1 //ЗАМЕЧАНИЕ: компилируется вместе с TIME1.CPP #include <iostream> //определение абстрактного типа данных Time class Time { public: Time();//конструктор void setTime(int, int, int); void printMilitary(); void printStandard(); private: int hour; int minute; int second; }; //Конструктор Time присваивает нулевые начальные значания каждому //элементу данных. Обеспечивает согласованное начальное состояние //всех объектов Time Time::Time(){hour=minute=second=0;} //Задание нового значения Time в виде военного времени. //Проверка правильности значений данных. Обнуление неверных значений. Time::setTime(int h, int m, int s) { hour = (h >= 0 && h < 24) ? h : 0; minute = (m >= 0 && m < 60) ? m : 0; second = (s >= 0 && s < 60) ? s : 0; } //Печать времени в военном формате void Time::printMilitary() { std::cout << (hour < 10 ? "0" : "") << hour << ":" << (minute < 10 ? "0" : "") << minute << ":" << (second < 10 ? "0" : "") << second; } //Печать времени в стандартном формате void Time::printStandard() { std::cout << ((hour == 0 || hour == 12) ? 12 : hour%12) << ":" << (minute < 10 ? "0" : "") << minute << ":" << (second < 10 ? "0" : "") <<second << (hour <12 ? "AM" : "PM"); } //Драйвер проверки простого класса Time int main() { setlocale(LC_ALL,".1251"); Time t;// определение зкземпляра объекта t класс Time std::cout<<"Начальное значение военного времени равно "; t.printMilitary(); std::cout << std::endl << "Начальное значение стандартного времени равно "; t.printStandard(); t.setTime(13,27,6); std::cout << "\n\n" << "Военное время после setTime равно "; t.printMilitary(); std::cout << "\n" <<"Стандартное время после setTime равно "; t.printStandard(); system("pause"); return 0; } 1>Компиляция... 1>FIG6_5.cpp 1>c:\$p\mvs\{как программировать на с++}\драйвер_класса_time\драйвер_класса_time\fig6_5.cpp(29) : error C4430: отсутствует спецификатор типа - предполагается int. Примечание. C++ не поддерживает int по умолчанию 1>c:\$p\mvs\{как программировать на с++}\драйвер_класса_time\драйвер_класса_time\fig6_5.cpp(29) : error C2556: int Time::setTime(int,int,int): перегруженная функция отличается от 'void Time::setTime(int,int,int)' только возвращаемым типом 1> c:\$p\mvs\{как программировать на с++}\драйвер_класса_time\драйвер_класса_time\fig6_5.cpp(12): см. объявление 'Time::setTime' 1>c:\$p\mvs\{как программировать на с++}\драйвер_класса_time\драйвер_класса_time\fig6_5.cpp(29) : error C2371: Time::setTime: переопределение; различные базовые типы 1> c:\$p\mvs\{как программировать на с++}\драйвер_класса_time\драйвер_класса_time\fig6_5.cpp(12): см. объявление 'Time::setTime' 1>c:\$p\mvs\{как программировать на с++}\драйвер_класса_time\драйвер_класса_time\fig6_5.cpp(62) : error C2264: Time::setTime: ошибка в определении или объявлении функции; функция не вызвана 1>Журнал построения был сохранен в "file://c:\$p\mvs\{как программировать на с++}\драйвер_класса_Time\драйвер_класса_Time\Debug\BuildLog.htm" 1>драйвер_класса_Time - ошибок 4, предупреждений 0 ========== Построение: успешно: 0, с ошибками: 1, без изменений: 0, пропущено: 0 ========== О ЭВРИКА, САМ ДОКУМЕКАЛ!! вот: |
Последний раз редактировалось котвася, 04-07-2010 в 00:12. Отправлено: 00:01, 04-07-2010 | #4 |
Пользователь Сообщения: 147
|
Профиль | Отправить PM | Цитировать Еще один пример, если можно:
//MAIN.CPP //Перегрузка операций поместить в поток и взять из потока #include <iostream> #if !defined(__USING_STD_NAMES__) && defined(__cplusplus) using namespace std; #endif class PhoneNumber { friend ostream &operator << (ostream &, const PhoneNumber &); friend istream &operator >> (istream &, PhoneNumber &); private: char areaCode[4]; char exchange[4]; char line[5]; }; ostream &operator << (ostream &output, const PhoneNumber &num) { output << "(" << num.areaCode << ")" << num.exchange << "-" << num.line; return output; } istream &operator >> (istream &input, PhoneNumber &num) { input.ignore(); input.getline(num.areaCode, 4); input.ignore(2); input.getline(num.exchange, 4); input.ignore(); input.getline(num.line, 5); return input; } int main() { setlocale(LC_ALL,".1251"); PhoneNumber phone; cout << "Введите номер телефона в " << "виде (123) 456-7890:" << endl; cin >> phone; cout << "Был введен номер телефона:" << endl << phone << endl; system("pause"); return 0; } |
|
Отправлено: 16:14, 25-07-2010 | #5 |
Будем жить, Маэстро... Сообщения: 6694
|
Профиль | Сайт | Отправить PM | Цитировать Цитата котвася:
// ГЛАВА 8. рисунок 8.3 // перегруженные операторы, помещённые в поток // и извлечение из потока #include <iostream.h> using std::cout; using std::cin; using std::endl; using std::ostream; using std::istream; #include <iomanip> using std::setw; class PhoneNumber{ friend ostream &operator<<(ostream &, const PhoneNumber &); friend istream &operator>>(istream &, PhoneNumber &); private: char areaCode[4]; // трехцифровой код местности и нулевой символ char exchange[4]; // трехцифровой комутатор и нулевой символ char line[5]; // четырехцифровая линия и нулевой символ }; // перегруженная операция, помещённая в поток // ( не может быть функцией-членом, если только нам // не понадобилось бы активизировать её с cout<<somePhoneNumber; ). ostream &operator<<(ostream &output, const PhoneNumber &num) { output<< "("<<num.areaCode<<") " <<num.exchange<<"-"<<num.line; return output; // разрешает вывод из потока <<a<<b<<c; } istream &operator>>(istream &input, PhoneNumber &num) { input.ignore(); // пропуск ( input>>setw(4)>>num.areaCode; // ввод кода местности input.ignore(2); // пропуск ( и пробела input>>setw(4)>>num.exchange; // ввод коммутатора input.ignore(); // пропуск дефиса input>>setw(5)>>num.line; // ввод линии return input; // разрешает ввод в поток >>a>>b>>c; } int main() { int z; PhoneNumber phone; // создание объекта phone cout<<" ENTER NUMBER TELEFON V FORME (123) 456-7890:\n "; // cin>>phone активизирует функцию operator>> // путем вызова operator>>(cin, phone) cin>>phone; // cout<<phone активизирует функцию operator<< // путем вызова operator<<(cout, phone) cout<<" BIL VVEDEN NUMBER TELEFONA: "<<phone<<endl; cin>>z; return 0; } //--------------------------------------------------------------------------- |
|
------- Отправлено: 16:40, 25-07-2010 | #6 |
Пользователь Сообщения: 147
|
Профиль | Отправить PM | Цитировать Ха
работает! тему закрывать не буду, может еще какие-нибудь вопросы будут. |
Отправлено: 16:48, 25-07-2010 | #7 |
Будем жить, Маэстро... Сообщения: 6694
|
Профиль | Сайт | Отправить PM | Цитировать Цитата котвася:
|
|
------- Отправлено: 18:58, 25-07-2010 | #8 |
Пользователь Сообщения: 147
|
Профиль | Отправить PM | Цитировать |
Отправлено: 20:06, 25-07-2010 | #9 |
Будем жить, Маэстро... Сообщения: 6694
|
Профиль | Сайт | Отправить PM | Цитировать котвася, Так одну ж книгу читаем, чего ж ты пропустил-то?
|
------- Отправлено: 11:55, 26-07-2010 | #10 |
|
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Разное - [Outlook] Отсортировать список контактов в Адресной книге | Gangabass | Microsoft Office (Word, Excel, Outlook и т.д.) | 0 | 18-08-2009 08:28 | |
Exchenge-дубликаты в адресной книге | IV@one | Microsoft Exchange Server | 2 | 31-10-2007 09:50 | |
MS Exchange Формат Записей в Адресной Книге | Loki3D | Microsoft Exchange Server | 1 | 27-11-2006 12:37 | |
[решено] C/C++ | Задание в книге по С | Grekalov | Программирование и базы данных | 2 | 13-08-2006 13:58 | |
Пример документа | Umka | Вебмастеру | 2 | 25-11-2005 23:03 |
|