Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> База данных, найти ошибки в коде  
:(
    Опции темы
Pascal2015
Дата 14.1.2016, 00:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 1
Регистрация: 14.1.2016

Репутация: нет
Всего: нет



Помогите найти ошибки и дописать программу
Особенности - условие задачи является внедрение трех функций
- insert - вставить новую строку (запись) в системе со всей информацией,
-find - указано количество столбцов, по которым она ищет
-номера столбцов считаются от 0
- параметр функции является тип в соответствии с выбранной колонкой
- возвращает список строк из системы (желательно ссылки (pointer*) const...) по
ключам поиска в этом столбце
-erase - снова указано количество столбцов
- параметр введен правильно по колонкам
-удаляет все записи, для которых данное положение совпадает с параметром
запись значения
- возвращает количество удаленных строк
Код



#include<iostream>
#include<vector>
#include<string>
using namespace std;



    enum position { student, teacher, external_worker };
    int main(){
    class inf_system {
        //first name, last name, position, telephone, address
        typedef tuple<string, string, position, size_t, string> row_def;
        typedef const row_def * row_def_const_ptr;
        template<size_t idx>
        using type = typename tuple_element<idx, row_def>::type;
        void insert(const string& first_name, const string& last_name,
            const position& position, const size_t& telephone, const string& address);
        template<size_t idx>
        vector<row_def_const_ptr> find(const type<idx>& value);
        template<size_t idx>
        size_t erase(const type<idx>& value) { ... }
    };
    
        
        inf_system inf_system;
        int main(){
        inf_system.insert("Prokofjev", "Shaldybin", student, 507 - 66 - 87, "Azovska 1, Moskva");
        inf_system.insert("Prokofjev", "Artem", student, 269 - 85 - 85, "Glinky 27, Fevralskoye");
        inf_system.insert("Rusov", "Solomon", teacher, 598 - 87 - 43, "Baumanskaja 11, Takhtamukay");
        inf_system.insert("Dmitrieva", "Alina", teacher, 598 - 21 - 47, "Avanhard 3, Chaplygin");
        inf_system.insert("Gorodnova", "Viktoria", teacher, 517 - 31 - 23, "Baumanskaja 43, Takhtamukay");
        auto result = inf_system.find<2>(student);
        print_vector(result);
        auto count = inf_system.erase<1>("Prokofjev");
        

    void print_vector(const vector<inf_system::row_def_const_ptr>& vector) {
        for (const auto& r : vector) {
            cout << get<0>(*r) << " " << get<1>(*r) << " " << get<2>(*r) <<
                " " << get<3>(*r) << " " << get<4>(*r) << endl;
        }
        cout << inf_system.find<< endl;
        system("pause");
        return 0;
    }





Это сообщение отредактировал(а) Pascal2015 - 14.1.2016, 00:35
PM MAIL   Вверх
xvr
Дата 15.1.2016, 15:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 7006
Регистрация: 28.8.2007
Где: Химки, Московская обл

Репутация: 60
Всего: 222



Мешанина знатная  smile 
Для начала добейтесь, что бы оно хотя бы откомпилировалось.

Ошибки:
  • Строка 9 лишняя
  • В классе inf_system все внутренности приватные, т.ч. практическое использование его невозможно
  • В методе inf_system::insert параметр telephone описан как size_t - вы что, размер телефона вводите???
  • Функция main не завершена (как синтаксически, так и логически)

PM MAIL   Вверх
baldman88
Дата 15.1.2016, 17:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 209
Регистрация: 18.1.2009

Репутация: 3
Всего: 7



Да и способ задания номера весьма нетривиален  smile 
Где реализации методов класса system_inf?
Нельзя создавать переменные с именем в точности аналогичным имени типа (строка 25).
В строке 42 что вы хотите вывести? Откуда функции print_vector(...) знает что такое system_inf? Даже если это экземпляр вашего класса, то у него нет поля find (есть метод, но это уже другое, да и вектор так не выведется).
А вообще да -- трэшь и угар в лучших традициях Тарантино и Родригеса  smile 
PM MAIL   Вверх
korol
Дата 4.3.2016, 13:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 4.3.2016

Репутация: нет
Всего: нет




Модератор: Сообщение скрыто.

PM MAIL   Вверх
Google
  Дата 12.11.2019, 21:49 (ссылка)  





  Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0900 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.