Объектно-ориентированное программирование в С++ (4-е издание) (2004) PDF
Год: 2004
Автор: Лафоре Р.
Издательство: ПИТЕР
ISBN: 5-94723-302-9
Серия: Классика Computer Science
Изучение объектно-ориентированной парадигмы программирования обычно ассоциируется с многочасовым курсом лекций и утомительными лабораторными занятиями, во время которых вас бросает из крайности в крайность — от тупого отчаяния до ложного ощущения полного понимания. Книга популярного среди американских студентов писателя Роберта Лафоре призвана помочь изучающему C++ избежать таких нагрузок на психику и без чьей-либо помощи пройти путь от застенчивого ученика до уверенного в своих силах программиста.
Столь значительный объем этого учебника обусловлен как сложностью предмета, так и стремлением автора не оставить белых пятен в программистском образовании читателя: любой элемент теории немедленно иллюстрируется небольшим примером кода, для приобретения практических навыков даются детально прокомментированные тексты полномасштабных приложений, а для закрепления полученных знаний читателю предлагается выполнить множество самостоятельных упражнений.
Программа для открытия файлов .cpp по горячим клавишам (Visual Studio 2010)
Как запускать приложения с клавиатуры:http://akak.ru/recipes/13905-kak-zapuskat-prilozheniya-s-klaviaturyiКопируете название файла
.cpp и запускаете открытие этого файла в редакторе по горячим клавишам.
// открытие файла из нужной папки (Visual Studio 2010)
// Использовать многобайтовую кодировку
#include "stdafx.h"
#include <iostream>
#include <string>
#include <windows.h>
using namespace std;
int main()
{
system("chcp 1251 > nul");
string str_oll, str1, str2, str3;
int str_length;
HGLOBAL buf = NULL;
// папка назначения (где файлы примеров к книге)
str1 = "U:\\КНИГИ !!!\\си и си++\\Лафоре Р. ООП в C++ 2004 + коды\\Листинг мой русский (проверено в vs98)\\Ch oll\\";
str3 = ".cpp";
//вставка текста из буфера обмена
if(IsClipboardFormatAvailable(CF_TEXT))
{
if(OpenClipboard(GetForegroundWindow()))
{
if((buf = (HGLOBAL) GetClipboardData(CF_TEXT)) != NULL)
{
str2 = (TCHAR*)::GlobalLock(buf);
GlobalUnlock(buf);
}
CloseClipboard();
}
}
str_length = str2.length();
str2.insert(str_length, str3);
cout << "str2 (после добавления) = " << str2 << endl << endl;
str_oll = str1 + str2;
cout << "str_OLL = " << str_oll << endl << endl;
ShellExecute(0, 0, (LPCSTR)str_oll.c_str(), 0, 0, SW_SHOWNORMAL);
//system("pause");
return 0;
}
Решение, когда требуется 2 кодировки (правильное отображение символов + русская кодировка):
Добавляете в нужных местах:
system("chcp 1251 > nul"); // использовать кодовую страницу 1251 (WINDOWS)
cout << "Исходная колода:\n";
system("chcp 866 > nul"); // использовать кодовую страницу 866 (DOS)
Весь код примера в файле, например в // cardaray.cpp:
#include "stdafx.h"
// cardaray.cpp
// класс игральных карт
#include <iostream>
#include <cstdlib>
#include <ctime>
using namespace std;
enum Suit { clubs, diamonds, hearts, spades };
// от 2 до 10 обычные числа
const int jack = 11;
const int queen = 12;
const int king = 13;
const int ace = 14;
/////////////////////////////////////////////////////////////
class card
{
private:
int number;
Suit suit;
public:
card() // конструктор
{ }
void set(int n, Suit s) // установка значения
{
suit = s; number = n;
}
void display(); // показ карты
};
/////////////////////////////////////////////////////////////
void card::display()
{
if(number >= 2 && number <= 10)
cout << number;
else
{
switch(number)
{
case jack: cout << 'J'; break;
case queen: cout << 'Q'; break;
case king: cout << 'K'; break;
case ace: cout << 'A'; break;
}
}
switch(suit)
{
case clubs: cout << static_cast<char>(5); break;
case diamonds: cout << static_cast<char>(4); break;
case hearts: cout << static_cast<char>(3); break;
case spades: cout << static_cast<char>(6); break;
}
}
/////////////////////////////////////////////////////////////
int main()
{
system("chcp 1251 > nul");
card deck[52];
int j;
cout << endl;
for(j = 0; j < 52; j++) // создаем упорядоченную колоду карт
{
int num = (j % 13) + 2;
Suit su = Suit(j / 13);
deck[j].set(num, su);
}
// показываем исходную колоду
system("chcp 1251 > nul");
cout << "Исходная колода:\n";
system("chcp 866 > nul");
for(j = 0; j < 52; j++)
{
deck[j].display();
cout << " ";
if(!((j + 1) % 13)) // начинаем новую строку после каждой 13-й карты
cout << endl;
}
srand(time(NULL)); // инициализируем генератор случайных чисел
for(j = 0; j < 52; j++)
{
int k = rand() % 52; // выбираем случайную карту
card temp = deck[j]; // и меняем ее с текущей
deck[j] = deck[k];
deck[k] = temp;
}
// показываем перемешанную колоду
system("chcp 1251 > nul");
cout << "\nПеремешанная колода:\n";
system("chcp 866 > nul");
for(j = 0; j < 52; j++)
{
deck[j].display();
cout << " ";
if(!((j + 1) % 13)) // начинаем новую строку после каждой 13-й карты
cout << endl;
}
return 0;
}
Язык: Русский
Формат: PDF
Качество: Распознанный текст (OCR)
Интерактивное оглавление: Да
Количество страниц: 924
Описание для данного торрента отсутствует
Поделиться: