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

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

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 10.05.2013, 21:45   #1
Sniti01
Новичок
Джуниор
 
Регистрация: 10.05.2013
Сообщений: 2
По умолчанию

Добрый день участники форума! На этом форуме видел программу к этому задание, но оно не удовлетворяет требованию курсовой, и хочу сам разобраться и написать) Напомню задание:

Описать класс «домашняя библиотека». Предусмотреть возможность работы с произвольным количеством книг, поиска книги по какой-либо признаки (например, по автору или по году издания), добавления книг библиотеку, удаления книг из нее, сортировки книг по различным полей. Написать программу, демонстрирующую работу с этим классом. Программа должна содержать меню, позволяющее осуществить проверку всех методов класса.
ТРЕБОВАНИЯ К ПРОГРАММЕ
Программа должна отвечать следующим требованиям:
1. Количество классов не менее 6.
2. Наличие связей между классами, в том числе отношений наследования глубиной не менее 3.
3. Для инициализации объектов должны использоваться конструкторы разных видов.
4. В программе должны использоваться виртуальные функции.
5. Должен использоваться механизм перегрузки функций и операторов.
6. Используйте абстрактные классы.
7. В классах должны использоваться различные виды доступа к полям и методам (public, private, protected).

Начал писать программу,и в самом начале пошли ошибки. Подскажите пожалуйста что не правильно и как можно лучше сделать?
Код:
#include "stdafx.h"
#include <iostream>
#include <string.h>
using namespace std;
 
class Book {
private:
    Book* Obj_Book;
    char *name;
    char *auzer;
    char *tupe;
    int god_v;
    int col_str;
public:
 
    Book ( char* , char* , char* , int& , int& ); // конструктор инициализации
    Book ();
    char *fname () { return name ; }
    char *fauzer () { return auzer ; }
    char *ftupe () { return tupe ; }
    int & fgod_v () { return god_v ; }
    int & fcol_str () { return col_str ; }
};
 
Book::Book (char* na, char* au, char* ty, int& god , int& col) {  // описания конструктора инициализации
    name = na;
    auzer = au;
    tupe = ty;
    god_v = god;
    col_str = col;
}
 
 
class Zapolnenie_Dan : public Book {
private:
 char *name, *auzer, *tupe, *fantastich, *naychnioe, *psihologicheskie, *dif_tupe, *prom ;
 int god_v , col_str, w;
public:
    
    void manu (){
    cout << "\nВведите название книги: " ;
    cin >> name;
    cout << "\nВведите автора: " ;
    cin >> auzer;
    cout << "\nБыберите тип книги: " ;
    cout << "\n 1 Фантастика \n 2 Научные \n 3 Психологические \n 4 Другой тип" ;
    cin >> w;
    switch (w) {
    case 1 : { fantastich = "Фантастика";
             prom = fantastich; }
    case 2 : { naychnioe = "Научные" ; 
             prom = naychnioe;
             }
    case 3 : { psihologicheskie = "Психологические";
             prom = psihologicheskie;
             }
    case 4 : { cin >> dif_tupe;  
             prom = dif_tupe;
             }
    default: { cout << "Введите правельный знак операции!!";  exit(0);  }
    }
    cout << "\nВведите год издания книги: ";
    cin >> god_v;
    cout << "\nВведите колличество страниц книги: ";
    cin >> col_str;
    Book::Book ( name, auzer, prom, god_v, col_str );
 
    }
};
 
 
int _tmain(int argc, _TCHAR* argv[])
{ setlocale (LC_ALL, "rus");
     Zapolnenie_Dan Ob_Zap;
      cout << "   Меню" << endl;
      cout << "1 Добавления" << endl;
      cout << "2 Просмотр библиотеки" << endl;
      cout << "3 Удаление книг" << endl;
      cout << "4 Сортировка книг" << endl;
      cout << "5 Выход" << endl;
     int t;
     cin >> t;
      switch (t){
      case 1: {
              Ob_Zap.manu();
              }
      }
    system ("pause");
    return 0;
}

Последний раз редактировалось Stilet; 10.05.2013 в 23:04.
Sniti01 вне форума Ответить с цитированием
Старый 11.05.2013, 00:04   #2
kineziz
Форумчанин
 
Регистрация: 22.12.2011
Сообщений: 378
По умолчанию

Код:
 switch (w) {
    case 1 : { fantastich = "Фантастика";
             prom = fantastich; }
    case 2 : { naychnioe = "Научные" ; 
             prom = naychnioe;
             }
    case 3 : { psihologicheskie = "Психологические";
             prom = psihologicheskie;
             }
    case 4 : { cin >> dif_tupe;  
             prom = dif_tupe;
             }
    default: { cout << "Введите правильный знак операции!!";  exit(0);  }
    }
Нет оператора break и можно записать это красивее:

Код:
switch (w) 
{
case 1:
       fantastich = "Фантастика";
       prom = fantastich; 
       break;
case 2: 
       naychnioe = "Научные" ; 
       prom = naychnioe;
       break;
case 3: 
       psihologicheskie = "Психологические";
       prom = psihologicheskie;
       break;
case 4: 
       cin >> dif_tupe;  
       prom = dif_tupe;
       break;
default: 
       cout << "Введите правильный знак операции!!";  
       exit(0); 
}
Большинство хороших программистов делают свою работу не потому, что ожидают оплаты или признания, а потому что получают удовольствие от программирования.
kineziz вне форума Ответить с цитированием
Старый 11.05.2013, 09:39   #3
Sniti01
Новичок
Джуниор
 
Регистрация: 10.05.2013
Сообщений: 2
По умолчанию

Дело не в break;, до этого ещё не дошло. Вот что он пишет:

unresolved external symbol "public: __thiscall Zapolnenie_Dan::Zapolnenie_Dan(void )" (??0Zapolnenie_Dan@@QAE@XZ) referenced in function _wmain
Sniti01 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Домашняя Работа olzhas.demisenov Фриланс 5 28.03.2013 09:39
База данных (Домашняя Библиотека) Redas C/C++ Базы данных 3 26.11.2010 20:58
Домашняя работка. SkApY Помощь студентам 2 29.11.2009 16:16
Домашняя робота :( Ktuftuftagn Фриланс 10 29.10.2009 08:45
Домашняя сеть Looker Свободное общение 11 15.09.2009 08:55