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

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

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 621, средняя оценка - 4.99
Kimel
15 / 16 / 0
Регистрация: 01.02.2012
Сообщений: 182
#1

Решение всех упражнений из книги Р. Лафоре "Объектно-ориентированное программирование в С++" - C++

01.02.2012, 17:47. Просмотров 85670. Ответов 288
Метки нет (Все метки)

Хотя я и начинающий с++-шник. Хочу помочь другим людям. Здесь я буду выкладывать всё что мне удалось решить. В моих решениях будет много хедеров, делал я это в Dev C++. Ос Win 7 64 bit.

Начнём со второй главы:
Упражнение 1
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream> 
 
using namespace std;
 
int main()
{
   setlocale(0,"Rus");
   float gallons, cufeet;
 
   cout << "Введите количество галоннов: \n";
   cin >> gallons;
   cufeet = gallons / 7.481;
   cout << "Еквивалент в футах = " << cufeet << endl;
    
   return 0;
}

Упражнение 2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream> 
#include <iomanip>
 
using namespace std;
 
int main()
{
   setlocale(0,"Rus");
   
    cout << 1990 << setw(8) << 135 << endl
           << 1991 << setw(8) << 7290 << endl 
           << 1992 << setw(8) << 11300 << endl
           << 1993 << setw(8) << 16200 << endl;
  
   return 0;
}

Упражнение 3
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <iostream> 
 
using namespace std;
 
int main() 
{
    setlocale(0,"Rus");
    int var = 10;
 
    cout << var << endl;      
    var *= 2;                 
    cout << var-- << endl;    
    cout << var << endl;      
    return 0;
}

Упражнение 4
C++
1
2
3
4
5
6
7
8
9
10
#include <iostream> 
 
using namespace std;
 
int main() 
{
    setlocale(0,"Rus");
    cout<<"\nУ лукоморья дуб срубили\nКота на мясо порубили \nА по неведанным дорожкам\nШагали черти в босоножках\n"; 
    return 0;
}

Упражнение 5
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <iostream> 
#include <ctype.h>
 
using namespace std;
 
int main() 
{
    setlocale(0,"Rus");
    char ch;
    cin >> ch;
    cout << islower(ch);  // При вводе строчной буквы будет 2 при прописной 0. Но есть нюанс, поддерживаються только англ буквы 
    return 0;
}


Упражнение 6
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream> 
 
using namespace std;
 
int main() 
{
    setlocale(0,"Rus");
 
    float a,b,c,d,f;
    cout << "Введите кол-во доларов"<<endl;
    cin >> f;
    b=f/1.487;
    c=f/0.172;
    a=f/0.584;
    d=f/0.00955;
    cout << f <<"доларов = "<< b<<" фунтов стерлинга"<<endl;
    cout << f <<"доларов = "<< c<<" франков"<<endl;
    cout << f <<"доларов = "<< a<<" немецких марок"<<endl;
    cout << f <<"доларов = "<< d<<" японских йен"<<endl;
    return 0;
}

Упражнение 7
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <iostream> 
#include <iomanip>
 
using namespace std;
 
int main() 
{
    setlocale(0,"Rus");
    double f,c;
    cout << "Введите количество градусов по Цельсию"<<endl;
    cin >> c;
    f=c*1.8+32;
    cout <<setprecision(3)<< f << " градусов по Фаренгейту "<< endl; // Регуляция кол-во символов после запятой
    return 0;
}

Упражнение 8
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <iostream> 
#include <iomanip>
 
using namespace std;
 
int main() 
{
    setlocale(0,"Rus");
    long pop1=2425785, pop2=47, pop3=9761;       
 
    cout << setfill('.') <<setw(8) << "LOCATION" << setw(12) // Обратите внимание на одинарные кавычки
           << "POPULATION" << endl
           <<setw(8) << "Portcity" << setw(12) << pop1 << endl
           << setw(8) << "Hightown" << setw(12) << pop2 << endl
           << setw(8) << "Lowville" << setw(12) << pop3 << endl;
    return 0;
}

Упражнение 9

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <iostream> 
 
using namespace std;
 
int main() 
{
    setlocale(0,"Rus");
    char dummychar;
    double a,b,c,d,e,f;
    cout << "Введите а и b"<< endl;
    cin >>a>>dummychar>>b;
    cout << "Введите c и d"<<endl;
    cin >>c>>dummychar>>d;
    cout <<(b*c)+(d*a)<<dummychar<<(b*d)<<endl;
 
    return 0;
}

Упражнение 10 (Намучился с этой задачей)
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream> 
 
using namespace std;
 
int main() 
{
    setlocale(0,"Rus");
    float a,b,c,f;
    cout << "Введите количество фунтов"<<endl;
    cin >> a;
    cout << "Введите количество шиллингов"<<endl;
    cin >> b;
    cout << "Введите количество пенсов"<<endl;
    cin >> c;
    f = a+(b+c/12)/20;
    cout << "Количество фунтов = " << f << endl;
    return 0;
}

Упражнение 11
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <iostream> 
#include <iomanip>
 
using namespace std;
 
int main() 
{
     setlocale(0,"Rus");
     cout << setiosflags(ios::left) <<setw(15) << "Фамилия"<< setw(15)<< "Имя"<<setw(15) << "Адресс"<<setw(15)<< "Город"<<endl
            <<setw(15)<< "Иванов"<<setw(15)<<"Петя"<<setw(15)<<"Кленовая 16"<<setw(10)<<"Москва"<<endl
            <<setw(15)<< "Иванов"<<setw(15)<<"Петя"<<setw(15)<<"Кленовая 16"<<setw(10)<<"Москва"<<endl
            <<setw(15)<< "Иванов"<<setw(15)<<"Петя"<<setw(15)<<"Кленовая 16"<<setw(10)<<"Москва"<<endl;
    return 0;
}

Упражнение 12 (это самая геморная программа на разработку которой ушло больше дня)
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <iostream> 
 
using namespace std;
 
int main() 
{
setlocale(0,"Rus");
float a,b,z;
int c,k;
cout << "Введите кол-во футов " << endl;
cin >> a;
c = static_cast<int>(a);
b = a - c;
b *= 20;
k = static_cast<int>(b);
z = b - k;
z = z*12;
z = static_cast<int>(z);
k = static_cast<int>(k);
cout << c <<"."<< k <<"."<< z << endl;
return 0;
}
Это конец второй главы, третюю сделаю позже если будет нужна
 Комментарий модератора 
Пост обновлен по просьбе ТС
12
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.02.2012, 17:47
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Решение всех упражнений из книги Р. Лафоре "Объектно-ориентированное программирование в С++" (C++):

Решение всех упражнений из книги Р. Лафоре "Объектно-ориентированное программирование в С++" - C++
Мне надо решение упражнений из книги Р. Лафоре &quot;Объектно-ориентированное программирование в С++&quot;. Хотя бы какая-то часть

Ищу ответы на задания из книги Лафоре Р. "Объектно-ориентированное программирование в С++" 4 издание. - C++
Дошел до 10 главы, из каждой главы делал все 12 заданий, хочу проверить правильно ли я их делал. И еще нужны ответы на вопросы которые идут...

Объектно-ориентированное приложение: "Эмулятор банкомата" - C++
Доброго времени всем! я начал изучать С++ И хотел бы спросить вашей помощи в этом нелёгком труде. Дело в том, что мне нужно сделать...

Разобраться в примерх к книге Лафоре "Обьектно-ориентированое программирование в С++" - C++
Всем доброго времени суток кто читает эту тему. Сегодня, изучая С++ по книге Лафоре &quot;Обьектно-ориентированое программирование в С++&quot; 4-е...

Объектно-ориентированное программирование - C++
Помогите мне отредактировать программу...У меня есть исходники..Склеить нужно.... Класс Данные класса Методы ...

Объектно-ориентированное программирование в С++ ? - C++
Книга Р. Лафоре - Объектно-ориентированное программирование в С++ как вам ?

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Jupiter
Каратель
Эксперт С++
6554 / 3975 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
01.02.2012, 17:54 #2
Цитата Сообщение от Kimel Посмотреть сообщение
#include<conio.h>
этому тоже Лафоре научил? очень сомневаюсь
0
Kimel
15 / 16 / 0
Регистрация: 01.02.2012
Сообщений: 182
01.02.2012, 18:11  [ТС] #3
Цитата Сообщение от Jupiter Посмотреть сообщение
этому тоже Лафоре научил? очень сомневаюсь
Это ваш прекрасный форум научил, в теме выше, а так же в других тема. Это сделано что бы окно не закрывалось после выполнения программы.
1
fasked
Эксперт С++
4936 / 2516 / 180
Регистрация: 07.10.2009
Сообщений: 4,311
Записей в блоге: 1
01.02.2012, 18:31 #4
Цитата Сообщение от Kimel Посмотреть сообщение
Это ваш прекрасный форум научил, в теме выше, а так же в других тема. Это сделано что бы окно не закрывалось после выполнения программы.
Единственный правильный способ - запуск программы из консоли или из скрипта или еще чего, но явно это не должно быть костылем в коде. Это ересь и провокация. Не учитесь плохому.
3
go
Эксперт C++
3586 / 1366 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
01.02.2012, 18:34 #5
Цитата Сообщение от Jupiter Посмотреть сообщение
этому тоже Лафоре научил? очень сомневаюсь
Да. Так лучше не писать, но я сам у него этот хедер встречал

Добавлено через 1 минуту
Цитата Сообщение от Kimel Посмотреть сообщение
system("pause"); *// выведет "нажмите любую клавишу"
getch(); * // особенности экспресс-версии
А тут getch() зачем?
0
Kimel
15 / 16 / 0
Регистрация: 01.02.2012
Сообщений: 182
01.02.2012, 18:37  [ТС] #6
Цитата Сообщение от fasked Посмотреть сообщение
Единственный правильный способ - запуск программы из консоли или из скрипта или еще чего, но явно это не должно быть костылем в коде. Это ересь и провокация. Не учитесь плохому.
Спасибо что откликнулись в этой теме и подметили ошибки в коде. Я извиняюсь что пришлось прибегнуть к такому решению, оно временное и работает. Если у вас есть конкретный совет, как только что скомпилированную программу заставить не закрываться сразу же после исполнения, то пожалуйста изложите, мне это очень важно. Еще раз спасибо.

Добавлено через 1 минуту
Цитата Сообщение от go Посмотреть сообщение
Да. Так лучше не писать, но я сам у него этот хедер встречал

Добавлено через 1 минуту

А тут getch() зачем?
Вы правы, это без надобности, сейчас уберу.

Добавлено через 1 минуту
Уважаемы модераторы. Подскажите как изменить первый пост в топике
0
go
Эксперт C++
3586 / 1366 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
01.02.2012, 18:40 #7
Цитата Сообщение от Kimel Посмотреть сообщение
вас есть конкретный совет, как только что скомпилированную программу заставить не закрываться сразу же после исполнения, то пожалуйста изложите, мне это очень важно.
Смотря что вам надо. Если сделать паузу при выполнении
C++
1
std::system("pause");
Если просто хотите увидеть результат работы, то запускайте .exe из командной строки. В студии можно чуть иначе
0
Kimel
15 / 16 / 0
Регистрация: 01.02.2012
Сообщений: 182
01.02.2012, 18:46  [ТС] #8
Цитата Сообщение от go Посмотреть сообщение
Смотря что вам надо. Если сделать паузу при выполнении
C++
1
std::system("pause");
Если просто хотите увидеть результат работы, то запускайте .exe из командной строки. В студии можно чуть иначе
Вы правы, сейчас так и использую.

Добавлено через 4 минуты
Пожалуйста, скажите какие хедеры лишние
0
go
Эксперт C++
3586 / 1366 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
01.02.2012, 18:50 #9
№2
C++
1
2
3
4
5
6
7
8
9
10
11
12
#include <iostream> 
#include <iomanip>
 
int main()
{   
   std::cout << 1990 << std::setw(8) << 135   << std::endl
             << 1991 << std::setw(8) << 7290  << std::endl 
             << 1992 << std::setw(8) << 11300 << std::endl
             << 1993 << std::setw(8) << 16200 << std::endl;
  
   return 0;
}
http://liveworkspace.org/code/76c85b...7d5b849ed061c7
0
fasked
Эксперт С++
4936 / 2516 / 180
Регистрация: 07.10.2009
Сообщений: 4,311
Записей в блоге: 1
01.02.2012, 18:59 #10
Цитата Сообщение от Kimel Посмотреть сообщение
Вы правы, сейчас так и использую.
Прошу Вас, не надо в коде таких штук делать. Во-первых, только для windows. Во-вторых, некрасиво.
Цитата Сообщение от go Посмотреть сообщение
Если просто хотите увидеть результат работы, то запускайте .exe из командной строки. В студии можно чуть иначе
0
Kimel
15 / 16 / 0
Регистрация: 01.02.2012
Сообщений: 182
01.02.2012, 19:32  [ТС] #11
Цитата Сообщение от fasked Посмотреть сообщение
Прошу Вас, не надо в коде таких штук делать. Во-первых, только для windows. Во-вторых, некрасиво.

Спасибо, учту ваше замечание.
0
AAA-
13 / 13 / 1
Регистрация: 14.02.2012
Сообщений: 46
14.02.2012, 17:13 #12
нужна помощь с 3 главой
есть решение ?
0
muradasilov
0 / 0 / 0
Регистрация: 22.02.2012
Сообщений: 5
24.02.2012, 18:25 #13
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <iostream> 
 
using namespace std;
 
int main() 
{
setlocale(0,"Rus");
float a,b,z;
int c,k;
cout << "Введите кол-во футов " << endl;
cin >> a;
c = static_cast<int>(a);
b = a - c;
b *= 20;
k = static_cast<int>(b);
z = b - k;
z = z*12;
z = static_cast<int>(z);
k = static_cast<int>(k);
cout << c <<"."<< k <<"."<< z << endl;
return 0;
}
Кажется не совсем корректно работает!
\\\\\
Пример: введите значение фунта 8.65, выдает ответ 8.12.11, а надо 8.13.0,
Кто поможет??

Добавлено через 1 минуту
Цитата Сообщение от AAA- Посмотреть сообщение
нужна помощь с 3 главой
есть решение ?
какие именно задачи, попробую помочь

Добавлено через 2 минуты
ну собственно почему static_cast делает из значения 13, 12
0
Vihost
Сообщений: n/a
24.02.2012, 21:14 #14
Мой вариант решения задачи 12 Главы 2.
Оформлена как отдельная функция т.к. пишу все упражнения в отдельном модуле.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
void nfunt_ofunt()
{
    double nFunt, temp;
    int shil, pens;
    cout<<"Введите сумму в новых фунтах: ";
    cin>>nFunt;
    temp=nFunt*20;                                    //Переводим все в шиллинги
    shil=static_cast<int>(temp)%20;              //Количество шиллингов
    pens=(temp-static_cast<int>(temp))*12;  //Количество пенсов
    cout<<static_cast<int>(nFunt)                //Количество фунтов
          <<"."<<shil<<"."<<pens<<endl;
 
    return;
}
xxbigxl
0 / 0 / 0
Регистрация: 28.02.2012
Сообщений: 8
29.02.2012, 13:13 #15
Упражнение 12___Обратная конвертация____Лафоре C++

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
//------------------Кампилятор dev-C++ 4.9.9.2 Windows 7 x64------------------------------------------------------------
#include <iostream>
using namespace std;
int main ()
{
setlocale(LC_ALL,"Russian"); // Русский язык 
float new_$, new_pens, shiling;
int funt,  pens, int_shiling;
 
cout << "Введите число десятичных фунтов: ";
cin >> new_$;                     // 5.13
  funt = static_cast<int>(new_$); // 5 фунтов ---------------------------------------------------------------------- в ответ
    new_pens = new_$ - funt;       // 0.13
    shiling = new_pens * 20;         // 0.13*20(20 шилингов в 1 фунте) = 2.6 2 шиллинга и 6 десятичных пенсов т.е 0.6 
      int_shiling = static_cast<int>(shiling); // 2 шиллинга  ------------------------------------------------------------ в ответ
        new_pens = shiling - int_shiling;         // 0.6  десятичных пенсов
        pens = new_pens * 12;                   // 0.6*12(12 пенсов в 1 шилинге)= 7 пенсов ------------------------------ в ответ
    cout << endl << "Эквивалентная сумма в старой форме записи: $" << funt << "." << int_shiling << "." << pens << endl << endl;     
   system ("pause");
   return 0;    
}
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.02.2012, 13:13
Привет! Вот еще темы с ответами:

Объектно ориентированное программирование - C++
Нужно решить задачи. Помогите кому это не сложно, очень нужно. Вот задачи: 1) Создание и редактирование классов. Нужно создать класс...

Объектно-ориентированное программирование - C++
Составить описание класса одномерных массивов строк, каждая строка которых задается длиной и указателем на выделенную для нее память....

Объектно-ориентированное программирование - C++
На основе объектного подхода создать программу которая рассчитывает значения степенных функций y=sqr(x), корень 3, 4, 5 степеней. В...

Объектно ориентированное программирование. - C++
Нужно решить задачи. Помогите кому это не сложно, очень нужно. Вот задачи: 1) Создание и редактирование классов. Нужно создать класс...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
29.02.2012, 13:13
Ответ Создать тему
Опции темы

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