Интереснейшая Задача Для Развития

Тема в разделе "C/C++/C#", создана пользователем Edip, 27 ноя 2013.

  1. Edip

    Edip Member

    Регистрация:
    26 ноя 2013
    Сообщения:
    5
    Симпатии:
    0
    Заданы сведения о книгах: автор, название, издательство, год издания, количество страниц, шифр. Напишите программу, которая по команде пользователя будет выполнять одно из следующих действий:

    Вводить сведения о новой книге.
    Выводить в файл сведения о заданной книге (по шифру).
    Сортировать множество книг по шифру.
    Проверять и, если необходимо, редактировать записи так, чтобы автор и название книги были написано с большой буквы.
    Выводить на экран сведения о первых n книгах.
     
  2. Whatka

    Whatka Well-Known Member

    Регистрация:
    9 окт 2011
    Сообщения:
    433
    Симпатии:
    4
    Я наивно полагал,что задача действительно интересная,увы.
    Это самая распространённая задача на работу со структурами/класами для начинающих.

    Возможно вам нужна помощь,тогда вопросы или ваш исходник в студию.
     
  3. Edip

    Edip Member

    Регистрация:
    26 ноя 2013
    Сообщения:
    5
    Симпатии:
    0
    с с++ у меня проблемы, поэтому я хотел бы попросить помощи ее решить( буду благодарен искренне
     
  4. Whatka

    Whatka Well-Known Member

    Регистрация:
    9 окт 2011
    Сообщения:
    433
    Симпатии:
    4
    За вас делать задачу никто не будет.
    Задавайте вопросы по коду,вопросы по стукруре программы в целом,по алгоритму,показывайте СВОЙ код с ошибкой\проблемой,тогда
    вам помогут,если нет - значит нет.
     
  5. Edip

    Edip Member

    Регистрация:
    26 ноя 2013
    Сообщения:
    5
    Симпатии:
    0
    Код (C++):
    #include<iostream>
    #include<vector>
    #include<algorithm>
    #include<string>
    #include<fstream>
    using namespace std;
    struct book
    {
    string name;
    string autor;
    int year;
    int key;//шифр
    };
    book input(book &x);
    void save(book y);
    void print(book a);
    void comparison(book k);
    bool Sort(book a,book b);
    void main()
    {
    int x;
    vector <book> v;
    book tmp=input(tmp);
    v.push_back(tmp);
    cout<<"Enter the number of comand(1, 2, 3, 4 or 5)"<<endl;
    cin>>x;
    switch (x){
    case 1: book new_tmp=input(new_tmp);
    case 2: save(tmp);
    case 3: sort(v.begin(),v.end(),Sort);
    case 4: comparison(tmp);
    case 5: print(tmp);
    default: cout<<"Unknown command!"<<endl;
    cin.get();
    cin.get();
    }
    book input(book &x)// ввод информации о новой книге
    {
    cout<<"Enter the book autor: "<<endl;
    cin>>x.autor;
    cout<<"Enter name of the book: "<<endl;
    cin>>x.name;
    cout<<"Enter year of publishing: "<<endl;
    cin>>x.year;
    cout<<"Enter the shifr: "<<endl;
    cin>>x.key;
    return x;
    }
    void save(book y)// запись информации в файл по шифру книги
    {
    int id;
    ofstream fl("Information.txt");
    cout<<"Enter the id: "<<endl;
    cin>>id;
    if(id==y.key)
    {
    fl<<y.name<<' '<<y.autor<<' '<<y.year<<endl;
    fl.close();
    }
    }
    void print(book a)// вывод на экран сведений о книге
    {
    cout<<a.name<<' '<<a.autor<<' '<<a.year<<' '<<a.key<<endl;
    }
    bool Sort(book a, book b)// сортировка множества книг по шифру
    {
    if(a.key>b.key)
    return true;
    return false;
    }
    void comparison(book k)// проверка на первую букву названия книги и ее редактирование
    {
    if(k.name[0]>='a' && k.name[0]<='z')
    k.name[0]+='A'-'a';
    if(k.autor[0]>='a' && k.autor[0]<='z')
    k.autor[0]+='A'-'a';
    }
     
  6. Whatka

    Whatka Well-Known Member

    Регистрация:
    9 окт 2011
    Сообщения:
    433
    Симпатии:
    4
    http://www.cplusplus.com/doc/tutorial/control/
    (конец страницы,для справки)
    а в кратце в каждом case в конце нужен свой break;(для выхода из свича)

    например:
    Код (Text):
    //...
    switch(x)
    {
    case 1:
    print(tmp);
    break;
    case 2:
    //...
     
  7. Edip

    Edip Member

    Регистрация:
    26 ноя 2013
    Сообщения:
    5
    Симпатии:
    0
    Код (C++):
     book tmp=input(tmp);
    v.push_back(tmp);
    Добавлено:
    Код (C++):
     book tmp=input(tmp);
    v.push_back(tmp);
     
  8. Whatka

    Whatka Well-Known Member

    Регистрация:
    9 окт 2011
    Сообщения:
    433
    Симпатии:
    4
    Код (C++):
    //
    void main()
    {
    int x;
    vector <book> v;
    book tmp=input(tmp);
    v.push_back(tmp);
    cout<<"Enter the number of comand(1, 2, 3, 4 or 5)"<<endl;
    cin>>x;
    switch (x)
    {
    case 1: book new_tmp=input(new_tmp);v.push_back(new_tmp);break;
    case 2: save(tmp);break;
    case 3: sort(v.begin(),v.end(),Sort);break;
    case 4: comparison(tmp);break;
    case 5: print(tmp);break;
    default: cout<<"Unknown command!"<<endl;
    }
    cin.get();
    cin.get();
    }

    //
     
  9. Edip

    Edip Member

    Регистрация:
    26 ноя 2013
    Сообщения:
    5
    Симпатии:
    0
    подчеркивает switch и выдает ошибку: передача управления в обход инициализации: переменная new_tmp;

    Добавлено: подчеркивает switch и выдает ошибку: передача управления в обход инициализации: переменная new_tmp;
     
  10. Whatka

    Whatka Well-Known Member

    Регистрация:
    9 окт 2011
    Сообщения:
    433
    Симпатии:
    4
    аа ну да,нельзя объявлять переменные внутри case
    сделай перед свичом переменную и в неё записывай данные,
    сохраняй в вектор,а потом очищай эту переменную
     
  11. rrrFer

    rrrFer Well-Known Member
    Команда форума C\C++ Team

    Регистрация:
    6 сен 2011
    Сообщения:
    1.324
    Симпатии:
    36
    можно, но надо тело кэйза взять в фигурные скобки. Это логично.

    Код (C++):
    switch (a) {
    case 1: {
    int b = 0;
    } break;
    }
    область видимости очевидно будет ограничена скобками, как всегда.

    Я буду делать, за деньги, может быть.
     
Загрузка...
Похожие Темы - Интереснейшая Задача Для
  1. Янчик
    Ответов:
    0
    Просмотров:
    473
  2. TrishaRay
    Ответов:
    1
    Просмотров:
    778
  3. elzim
    Ответов:
    0
    Просмотров:
    929
  4. ShaoKahn
    Ответов:
    0
    Просмотров:
    1.116
  5. eremin-sanek
    Ответов:
    3
    Просмотров:
    1.102

Поделиться этой страницей