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

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

Войти
Регистрация
Восстановить пароль
 
Chessy
7 / 7 / 1
Регистрация: 04.11.2012
Сообщений: 47
#1

Классы. Ввод данных о книге и их отображение (как улучшить код?) - C++

24.12.2012, 18:33. Просмотров 317. Ответов 6
Метки нет (Все метки)

Изучаю классы. Сделал программку для класса card имеющего 2 метода - для введения данных о книге и их отображения. Подскажите как можно улучшить код, может стоит от чего-то отказаться или сделать по другому.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
#include <iostream>
#include <string>
using namespace std;
 
class card {
      private:
              string author;
              string zaglav;
              int numbers;
      public:
             card(){
             //author="Garrison";
             //zaglav="Rat";
             //numbers=3;
       } 
             void store(string a, string b, int x);
             void show();
};
void card :: store(string a, string b, int x)
      {
          author=a;
          zaglav=b;
          numbers=x;
       }
void card :: show()
     {
          cout << author << "\n" << zaglav << "\n" << numbers << "\n";
      }
      
int main()
{
    string a,b;
    int x;
    card book0;
    
    cout << "Input author, zaglav, numbers"<< "\n";
    cin >> a >> b >> x;
    book0.store(a,b,x);
    book0.show();
    
    system ("pause");
    return 0;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.12.2012, 18:33
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Классы. Ввод данных о книге и их отображение (как улучшить код?) (C++):

Как улучшить код?! - C++
Написал код к заданию: Дан целочисленный массив размера N. Если он является перестановкой, то есть содержит все числа от 1 до N, то вывести...

Как улучшить свой код и его структуру? - C++
Изучил основы С++, сейчас активно изучаю SFML, Qt и глядя на код других людей я замечаю что мой код заведомо отличается, (хотя по сути то...

Плохой калькулятор: как его сделать нормальным? (улучшить код) - C++
Как его сделать нормальным ? :cry: #include &lt;functional&gt; #include &lt;iostream&gt; #include &lt;sstream&gt; #include &lt;string&gt; #include...

Как улучшить следующий код программы? Поиск всех простых чисел до 1000 - C++
#include &lt;iostream&gt; #include &lt;cstring&gt; int main() { std::size_t size = 1000; bool *simpleArray = new bool (); ...

Как правильно заменить ввод данных простой на ввод с клавиатуры? - C++
#include &quot;stdafx.h&quot; #include &lt;cstdlib&gt; #include &lt;iostream&gt; using namespace std; int _tmain(int argc, _TCHAR* argv) ...

Преобразовать код так, что бы ввод данных осуществлялся из файла - C++
Задание 2. Создал структуру: #include &quot;stdafx.h&quot; #include &quot;stdio.h&quot; #include &lt;iostream&gt; using namespace std; struct sity { ...

6
0x10
2475 / 1648 / 247
Регистрация: 24.11.2012
Сообщений: 4,070
24.12.2012, 18:38 #2
Беглый взгляд:
1. Конструктор не выполняет никакой работы. Было бы неплохо инициализировать целочисленную переменную нулем.
2. card::store: строки передавать по константной ссылке
3. Метод card::show сделать константным.
4. Названия переменных a, b, x не несут в себе никакой информации.
5. Форматирование хромает на обе ноги.
0
MrGluck
Модератор
Эксперт CЭксперт С++
7427 / 4542 / 676
Регистрация: 29.11.2010
Сообщений: 12,328
24.12.2012, 18:44 #3
Chessy, создайте аргументированный конструктор.
И что еще за zaglav? Выбрали способ названия переменных английским языком - им и продолжайте.
1
go
Эксперт С++
3586 / 1366 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
24.12.2012, 18:48 #4
Цитата Сообщение от Chessy Посмотреть сообщение
//author="Garrison";
* * * * * * *//zaglav="Rat";
* * * * * * *//numbers=3;
Лучше использовать список инициализации.
0
Dekio
Фрилансер
Эксперт С++
5837 / 1218 / 214
Регистрация: 23.11.2010
Сообщений: 3,378
Записей в блоге: 1
24.12.2012, 18:59 #5
Можно ещё добавить копирующий конструктор и перегрузку оператора вывода.
0
MrGluck
Модератор
Эксперт CЭксперт С++
7427 / 4542 / 676
Регистрация: 29.11.2010
Сообщений: 12,328
24.12.2012, 20:27 #6
Цитата Сообщение от Dekio Посмотреть сообщение
Можно ещё добавить копирующий конструктор и перегрузку оператора вывода.
Насчет второго согласен, а первое зачем? Работы с памятью нет же.
0
Dekio
Фрилансер
Эксперт С++
5837 / 1218 / 214
Регистрация: 23.11.2010
Сообщений: 3,378
Записей в блоге: 1
24.12.2012, 21:48 #7
Цитата Сообщение от MrGluck Посмотреть сообщение
а первое зачем?
Цитата Сообщение от Chessy Посмотреть сообщение
Изучаю классы.
ответ очевиден.
0
24.12.2012, 21:48
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.12.2012, 21:48
Привет! Вот еще темы с ответами:

Нужно улучшить код - C++
Нужно улучшить код. 1)Отсортировать таблицу(если ввести Hello World,то буква &quot;l&quot; должна быть на 1 месте так как она встречается 3...

Ввод целого числа (улучшить код) - C (СИ)
Помогите улучшить мой быдлокод: #include &lt;stdio.h&gt; int decpow(int a) { int pow=1; for(a;a!=0;--a) {pow*=10;} return pow; ...

Как улучшить код? - PHP
Я нубяра в ООП вот написал чтото хочу услышать мнение профи как улучшить код. &lt;?php abstract class DB { protected static...

Как улучшить код? - C#
Как улучшить? static double Power(double x, int y) { double b = x; double c; ...


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

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

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