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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> [cи++] Программа на структуры, Структура на три поля  
:(
    Опции темы
kniazik
Дата 23.1.2010, 23:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Кто может помочь с таким заданием 

Разработать программу «Книг по году издания», которая должна содержать структуру из трех полей (название, год, цена) и четыре функции пользователя:
– функция ввода информации;
– функция вывода информации на экран;
– сортировка;
– запись в файл.
Обязательное условие – это наличие меню, что позволит пользователю самому выбирать те действия, которые он хочет совершить над данными.


Хотя бы просто - подскажите как создать менюшку с обращением к данным?
PM MAIL   Вверх
Luyan
Дата 24.1.2010, 00:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Цитата(kniazik @  23.1.2010,  23:51 Найти цитируемый пост)
Обязательное условие – это наличие меню, что позволит пользователю самому выбирать те действия, которые он хочет совершить над данными.


Цитата(kniazik @  23.1.2010,  23:51 Найти цитируемый пост)

Хотя бы просто - подскажите как создать менюшку с обращением к данным? 

Код

#include <iostream>
using namespace std;
int main ()
{
    char ch;
    do 
    {
        cout << " 1......" << endl;
        cout << " 2......" << endl;
        cout << " 3......" << endl;
        cout << " 4......" << endl;
        cout << " 5.Exit." << endl;

        do
        {
            ch = getchar();
        }while( (ch < '1') || (ch > '5')  );

        switch (ch)
        {
            case '1':
                cout << "function 1";break;
            case '2':
                cout << "function 2";break;
            case '3':
                cout << "function 3";break;
            case '4':
                cout << "function 4";break;
            case '5':
                return 0;
        }
        
        cout << "\nContinue? (y/n)";
        do
        {
            ch = getchar();
        }while((ch != 'y') && (ch != 'Y') && (ch != 'n' ) && (ch != 'N') );

    }while ((ch != 'n' ) && (ch != 'N'));
    return 0;
}


Цитата(kniazik @  23.1.2010,  23:51 Найти цитируемый пост)
Разработать программу «Книг по году издания», которая должна содержать структуру из трех полей (название, год, цена) и четыре функции пользователя:
– функция ввода информации;
– функция вывода информации на экран;

Полазь по разделу, подобные программы уже кучу раз реализовывались.

PM   Вверх
kniazik
Дата 24.1.2010, 01:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Огромное спасибо - самому разобраться очень тяжело ) 

Буду пробовать писать продолжение )

Добавлено через 4 минуты и 7 секунд
Скажите еще, пожалуйста - как создавать этот проект и файл 

До этого работал только с консольными файлами - а в этом понятия не имею

PM MAIL   Вверх
Loner
Дата 24.1.2010, 12:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 22
Регистрация: 22.1.2010
Где: Омск

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



Цитата(kniazik @  24.1.2010,  01:24 Найти цитируемый пост)
До этого работал только с консольными файлами - а в этом понятия не имею

какими-какими файлами? smile
Если ты о консольном приложении, то это оно и есть.
Чтобы создать файл жми Ctrl+N - не ошибешься. smile
PM ICQ   Вверх
Luyan
Дата 24.1.2010, 12:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Цитата(kniazik @  24.1.2010,  01:24 Найти цитируемый пост)
До этого работал только с консольными файлами - а в этом понятия не имею

это тоже для работы с "консольными" файлами. kniazik ты под меню подразумеваешь графический интерфейс? Уверен, тебе задание надо сделать в консоли.
PM   Вверх
kniazik
Дата 24.1.2010, 14:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



спасибо, теперь все понял , но как быть с ...

"Обязательное условие – это наличие меню, что позволит пользователю самому выбирать те действия, которые он хочет совершить над данными."

Ведь это в консольном приложении будет как то не так выглядеть :?

Может кто либо приведет пример? Или напишет начало программы? 
PM MAIL   Вверх
Luyan
Дата 24.1.2010, 15:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Цитата(kniazik @  24.1.2010,  14:22 Найти цитируемый пост)
спасибо, теперь все понял

что ты понял?
Цитата(kniazik @  24.1.2010,  14:22 Найти цитируемый пост)
Может кто либо приведет пример?

пример чего? меню? я тебе в первом посте пример привёл, тебе осталось создать структуру и функции ввода/вывода и вызывать их в нужном месте:
Код

//..
case '1':
                vvodData();break;
//..

где vvodData() - функция, которую ты напишешь. С помощью меню пользователь будет вызывать необходимые функции.

Это сообщение отредактировал(а) Luyan - 24.1.2010, 15:02
PM   Вверх
kniazik
Дата 24.1.2010, 15:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Отлично! все работает - скажите, а обращение к другим данным как описать ? 

Вы описали обращение к 5 пункту "Exit" а как еще описать, например, к п. 4 ? 

Заранее большое пасибо 
PM MAIL   Вверх
Luyan
Дата 24.1.2010, 17:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Цитата(kniazik @  24.1.2010,  15:27 Найти цитируемый пост)
Отлично! все работает - скажите, а обращение к другим данным как описать ? 

Первые два можно так:
Код

#include <iostream>
using namespace std;
int const N = 4;
struct Book
{
    char name[20];  // название книги
    int date;  // год
    float price;  // цена
};
void writeData(Book* A)
{
    for(int i = 0; i < N; i++)
    {
        cout << "Введите информацию о книге №" << i+1 << ":" << endl;
        cout << "Название: ";
        cin >> A[i].name;
        cout << "Год издания: ";
        cin >> A[i].date;
        cout << "Цена: ";
        cin >> A[i].price;
    }
}
void displayData(Book* A)
{
    cout << "Книга:" << "\t\tГод:" << "\t\tСтоимость: " << endl;
    for(int i = 0; i < N; i++)
    {
        cout << i+1 << ") ";
        cout << A[i].name  << "\t\t" << A[i].date  << "\t\t" << A[i].price << endl;
    }
}
int main ()
{
    setlocale(LC_ALL,"");
    Book A[N];
    bool t = false;
    char ch;
    do 
    {
        cout << " 1. Ввод информации." << endl;
        cout << " 2. Вывод информации." << endl;
        cout << " 3......" << endl;
        cout << " 4......" << endl;
        cout << " 5. Выход." << endl;

        do
        {
            ch = getchar();
        }while( (ch < '1') || (ch > '5')  );

        switch (ch)
        {
            case '1':
                t = true;
                writeData(A);break;
            case '2':
                if(t)
                    displayData(A);
                else
                    cout << "Информация не была введена!" << endl;
                break;
            case '3':
                cout << "function 3";break;
            case '4':
                cout << "function 4";break;
            case '5':
                return 0;
        }
        
        cout << "\nПродолжить работу с программой?(y/n)";
        do
        {
            ch = getchar();
        }while((ch != 'y') && (ch != 'Y') && (ch != 'n' ) && (ch != 'N') );

    }while ((ch != 'n' ) && (ch != 'N'));
    return 0;
}


Это сообщение отредактировал(а) Luyan - 24.1.2010, 17:19
PM   Вверх
kniazik
Дата 24.1.2010, 18:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Спасибо, огромнейшее !

Остальное буду разбираться сам 

Буду должен !
PM MAIL   Вверх
kniazik
Дата 27.1.2010, 21:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



кто может подсказать как осуществляется запись в файл? 
PM MAIL   Вверх
Luyan
Дата 28.1.2010, 18:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Цитата(kniazik @  27.1.2010,  21:36 Найти цитируемый пост)
кто может подсказать как осуществляется запись в файл?  

функцию добавь:
Код

void writeInFile(Book* A)
{
    ofstream outf("123.txt");
    outf << "Книга\tГод\tЦена" << '\n';
    for(int i = 0; i < N; i++)
        outf << A[i].name << '\t' << A[i].date << '\t' << A[i].price << '\n';
    outf.close();
}


Добавлено через 19 секунд
kniazik, ты когда себе книгу купишь?  smile 
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Центр помощи"

ВНИМАНИЕ! Прежде чем создавать темы, или писать сообщения в данный раздел, ознакомьтесь, пожалуйста, с Правилами форума и конкретно этого раздела.
Несоблюдение правил может повлечь за собой самые строгие меры от закрытия/удаления темы до бана пользователя!


  • Название темы должно отражать её суть! (Не следует добавлять туда слова "помогите", "срочно" и т.п.)
  • При создании темы, первым делом в квадратных скобках укажите область, из которой исходит вопрос (язык, дисциплина, диплом). Пример: [C++].
  • В названии темы не нужно указывать происхождение задачи (например "школьная задача", "задача из учебника" и т.п.), не нужно указывать ее сложность ("простая задача", "легкий вопрос" и т.п.). Все это можно писать в тексте самой задачи.
  • Если Вы ошиблись при вводе названия темы, отправьте письмо любому из модераторов раздела (через личные сообщения или report).
  • Для подсветки кода пользуйтесь тегами [code][/code] (выделяйте код и нажимаете на кнопку "Код"). Не забывайте выбирать при этом соответствующий язык.
  • Помните: один топик - один вопрос!
  • В данном разделе запрещено поднимать темы, т.е. при отсутствии ответов на Ваш вопрос добавлять новые ответы к теме, тем самым поднимая тему на верх списка.
  • Если вы хотите, чтобы вашу проблему решили при помощи определенного алгоритма, то не забудьте описать его!
  • Если вопрос решён, то воспользуйтесь ссылкой "Пометить как решённый", которая находится под кнопками создания темы или специальным флажком при ответе.

Более подробно с правилами данного раздела Вы можете ознакомится в этой теме.

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

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


 




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


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

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