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

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

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

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

17.02.2012, 23:27. Просмотров 2808. Ответов 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;
}
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.02.2012, 23:27
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Задача на структуры C++ Составить инвентарную ведомость (C++):

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

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

Задача-ведомость за зарплату - Pascal
Задача-ведомость за зарплату представлена в виде таблиц, одна содержит фамилии работников цеха,вторая их зарплату за тек.месяц,найти...

Ведомость (трудная задача) - MS Excel
Доброго времени суток. Помогите пожалуйста с такой задачей. &quot;Создать таблицу в MS Excel &quot;Платежная ведомость&quot; для небольшой...

Составить студенческую ведомость - Pascal ABC
До 3го пункта вроде нормально, после 3 встал и не могу:wall: Составить программу, используя меню и процедуры; 1.Создать файл &quot;1&quot;,...

Составить итоговую ведомость - VBA
Нашла такой код, но не знаю как его изменить под мою ведомость. Подходит ли он мне или же нужно совсем другое? Помогите, пожалуйста. ...

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

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

input.txt
DU
1482 / 1058 / 45
Регистрация: 05.12.2011
Сообщений: 2,279
18.02.2012, 00:00 #5
как образом не выводит? может быть не разу не вызывается функция print из строки 55? если так, то условие из строки 54 не выполняется. это может быть либо из-за того, что реально нет игрушек с нужным возрастным критерием, либо из файла что-то плохо зачиталось. попробуйте сначала безусловно на экран или файл вывести все то, что у вас зачиталось из файла. если напечатанные данные будут кривыми, то проблема понятна, если нет - то нужно искать дальше.
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 вообще.
DU
1482 / 1058 / 45
Регистрация: 05.12.2011
Сообщений: 2,279
18.02.2012, 00:10 #7
разделители неправильные. либо в стриме задать кастомный разделитель (';' - не знаю как), либо все точки с запятой на пробелы заменить. у вас с такими разделителями чтение из файла работает не корректно.
renald
35 / 35 / 2
Регистрация: 11.02.2012
Сообщений: 105
18.02.2012, 00:11 #8
Во первых, поставь пробелы вместо ';'
aNastya
0 / 0 / 0
Регистрация: 16.02.2012
Сообщений: 6
18.02.2012, 00:13  [ТС] #9
Всё, вроде теперь получилось Спасибо!
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.02.2012, 00:13
Привет! Вот еще темы с ответами:

Составить ведомость на стипендию - Pascal ABC
Ввести файл, содержащий поля: №, ФИО, Оценка по 1-му предмету, … , Оценка по 4-му предмету. Составить ведомость на стипендию в виде: №...

Составить ведомость, учитывающую скидки - MS Excel
Покупатели магазина пользуются 10% скидками, если покупка состоит более, чем из пяти наименований товаров или стоимость покупки превышает K...

Работа с записями. Составить библиотечную ведомость - Turbo Pascal
Нужно: Задание: Добавлено через 14 минут нужно очень срочно решение , помогите пожайлуста

Составить ведомость студентов, сдавших экзамены за семестр - Pascal ABC
Составить ведомость студентов, сдавших экзамены за семестр. Для работы с данными использовать структуру типа ' запись ' . Поля должны...


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

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

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