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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 20, средняя оценка - 4.95
aNastya
0 / 0 / 0
Регистрация: 16.02.2012
Сообщений: 6
#1

Задача на структуры C++ Составить инвентарную ведомость - C++

17.02.2012, 23:27. Просмотров 2843. Ответов 8
Метки нет (Все метки)

Есть задачка:
Решить задачу, используя стрктуру содержащую члены-данные и члены-функции
На основе данных входного файла составить инвентарную ведомость игрушек, включив следующие данные: название игрушки, её стоимость (в руб.). возрастные границы детей, для которых предназначена игрушка. Вывести в новый файл информацию о тех игрушках, которые преназначены для детей от N до M лет.
Шаблон задачи я сделала, а вот вывести в новый файл именно те игрушки что предназначены в определённый возрастной промежуток что-то не выходит. Нуждаюсь в вашей помощи.

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
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
#include <fstream>
#include <iostream>
#include <iomanip>
using namespace std;
 
ifstream in("input.txt");
ofstream out("output.txt");
 
struct Inventar
{
    char Name[30];
    double Cost;
    int Age, age_limit;
    void show();
    void print();
};
 
void Inventar::show()
{
    cout<<setw(8)<<Name<<setw(10)<<Cost<<setw(8)<<Age<<setw(8)<<age_limit<<endl;
 
}
void Inventar::print()
{
    cout<<setw(8)<<Name<<setw(10)<<Cost<<setw(8)<<Age<<setw(8)<<age_limit<<endl;
 
}
 
int main()
{
    Inventar Toy[10];
    int num;
    int i,j,n=0;
    if(!in) cout<<"Opening eror of file input.txt\n";
    else
    {
        while (in.peek()!=EOF)
        {
    in>>Toy[n].Name;
    in>>Toy[n].Cost;
    in>>Toy[n].Age;
    in>>Toy[n].age_limit;
    Toy[n].show();
    n++;
};
cout<<"Age";
cout<<"age_limit";
cin>>num;
if (!out) cout <<"Erorr of openin file";
else 
{
    j=0;
    for(i-0;i<n && !j;i++)
        if(Toy[i].age_limit==num)
                {
                Toy[i].print();
                
                }
}
in.close();out.close();
return 0;
}
}
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.02.2012, 23:27
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Задача на структуры C++ Составить инвентарную ведомость (C++):

Составить инвентарную ведомость игрушек - C++
Здраствуйте, прошу помощи в виде решения нелегкого для меня задания :( Нужно решить задачу используя структуру, содержащую члены-данные и...

Составить инвентарную ведомость склада - C++
Сделайте пожалуйста ребят, очень вас прошу, завтра уже сдать нужно :( 2 задачки, если вам не трудно, помогите мне ((( 1) Решить ,...

Составить программу с массивами структурами. Заполнить структуры информации, составить - C++
Составить программу с массивами структурам согласно варианту. Заполнить структуры информации, составить запросы , и вывести результаты...

Задача. Структуры в С++ - C++
Дан список студентов 25 человек и сведения о результатах сдачи экзамена по дисциплинам информатика, мат.анализ, алгебра, история....

Задача на структуры - C++
написать программу которая просит ввести число точек, их координаты, а затем найти среднюю точку, координаты которой равны среднему...

Структуры задача - C++
Горная вершина представлена названием, высотой в метрах, уровнем сложности восхождения на вершину. Среди некоторого кол-ва вершин отобрать...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
renald
35 / 35 / 2
Регистрация: 11.02.2012
Сообщений: 105
17.02.2012, 23:36 #2
в функции
C++
1
void Inventar::print()
исправь cout на out
1
aNastya
0 / 0 / 0
Регистрация: 16.02.2012
Сообщений: 6
17.02.2012, 23:46  [ТС] #3
Еще в 53 строчке у меня ошибка, там
C++
1
for(i=0;i<n && !j;i++)
должно быть.

Но в итоге меня все равно запись того, что нужно по условию не выходит.
0
renald
35 / 35 / 2
Регистрация: 11.02.2012
Сообщений: 105
17.02.2012, 23:57 #4
дай входной файл

input.txt
0
DU
1483 / 1059 / 45
Регистрация: 05.12.2011
Сообщений: 2,279
18.02.2012, 00:00 #5
как образом не выводит? может быть не разу не вызывается функция print из строки 55? если так, то условие из строки 54 не выполняется. это может быть либо из-за того, что реально нет игрушек с нужным возрастным критерием, либо из файла что-то плохо зачиталось. попробуйте сначала безусловно на экран или файл вывести все то, что у вас зачиталось из файла. если напечатанные данные будут кривыми, то проблема понятна, если нет - то нужно искать дальше.
0
aNastya
0 / 0 / 0
Регистрация: 16.02.2012
Сообщений: 6
18.02.2012, 00:08  [ТС] #6
Cubik;50.99;1;6;
Constructor;88.95;6;10;
Car;31.00;3;7;
Doll;30.50;3;7;
Barbi;14.95;5;15;
Например такой.
Наверное я неправильно его задаю, поэтому у меня пишет "рендомную" строку в консоли и не производит записи в output вообще.
0
DU
1483 / 1059 / 45
Регистрация: 05.12.2011
Сообщений: 2,279
18.02.2012, 00:10 #7
разделители неправильные. либо в стриме задать кастомный разделитель (';' - не знаю как), либо все точки с запятой на пробелы заменить. у вас с такими разделителями чтение из файла работает не корректно.
1
renald
35 / 35 / 2
Регистрация: 11.02.2012
Сообщений: 105
18.02.2012, 00:11 #8
Во первых, поставь пробелы вместо ';'
1
aNastya
0 / 0 / 0
Регистрация: 16.02.2012
Сообщений: 6
18.02.2012, 00:13  [ТС] #9
Всё, вроде теперь получилось Спасибо!
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.02.2012, 00:13
Привет! Вот еще темы с ответами:

[C++] Задача на структуры - C++
В Европе около 35 государств. По каждому государству имеется следующая информация: название, численность населения, площадь территории,...

Задача на структуры - C++
Помогите пожалуйста! Составить программу.Начальные данные берутся из файла и вводятся вручную. Минимальное содержание 15 элементов. ...

Задача на структуры - C++
Помогите плиз з лабораторной, немогу написать... Из клавиатуры ввести набор данных с информацией о наличии санаторных путевок:...

задача на структуры - C++
1.сформировать массив из элементов структурного типа. 2.распечатать сформированный массив на экране в виде таблицы. Проблема вот в чем,...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
18.02.2012, 00:13
Ответ Создать тему
Опции темы

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