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

Упражнение с использованием структуры - C++

Восстановить пароль Регистрация
 
LiLi R.
 Аватар для LiLi R.
0 / 0 / 0
Регистрация: 15.04.2010
Сообщений: 82
19.05.2010, 00:09     Упражнение с использованием структуры #1
Ребят помогите.На основе данных в input.txt составить список студентов группы включив в них следующие данные: фио, год рождения, домашний адресс, какую школу окончил. вывести в output.txt список студентов, оконичвших в школу в этом году. Вот последнее незнаю как сделать а все остальное у меня уже есть. Т.е. как сказать на языке си++ что эти студенты окончили школу в этом году и их удалить из списка а остальных переписать в файл оутпут?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
accept
4838 / 3237 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
19.05.2010, 06:22     Упражнение с использованием структуры #2
не надо их удалять из списка
надо сделать так, что если год студента равен текущему, то вывести данные студента в output.txt
LiLi R.
 Аватар для LiLi R.
0 / 0 / 0
Регистрация: 15.04.2010
Сообщений: 82
19.05.2010, 21:37  [ТС]     Упражнение с использованием структуры #3
accept, Я не совсем правильно выразилась. Нужно вывести в новый список студентов, удалив из инпут.тхт студентов окончивших школу в этом году. Т.е. в структуре не должно быть такого раздела как типа "когда закончил". Как я поняла если на дворе 2010 а учимся допустим 11 лет а в школу дети идут возрастом в допустим 7 лет то студенты рожденные в 1992 год удаляются из списка а что сталось записываются в оутпут.тхт

Добавлено через 21 секунду
accept,
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
#include <fstream>
#include <iostream>
#include <iomanip>
using namespace std;
 
ifstream in("input.txt");
ofstream out("output.txt");
 
struct baza
{
    int year;
    char family[20], adress[20], shool[20];
    void show();
    void print();
};
void baza::show()
{
    cout<<setw(10)<<family<<setw(8)<<year<<setw(10)<<adress<<setw(10)<<shool<<endl;
}
void baza::print()
{
    out<<setw(10)<<family<<setw(8)<<year<<setw(10)<<adress<<setw(10)<<shool<<endl;
}
int main()
{   baza book[10];
int num;
int i,j,n=0;
if(!in) cout<<"Error";
else
{
    while(in.peek()!=EOF)
    {
        in>>book[n].family;
        in>>book[n].year;
        in>>book[n].adress;
        in>>book[n].shool;
        book[n].show();
        n++;
    };
    cout<<"Vvedite god";
    cin>>num;
    if(!out) cout<<"Error";
    else
    {
        j=0;
        for (i=0; i<n && !j; i++)
            if(book[i].year==num)
                for(i=0; i<n; i++)
                    book[i].print();
    }
    in.close();
    out.close();
    return 0;
}
 
}
Добавлено через 1 минуту
accept, я тут набросала код. знаю что неправильный. проблемма в последнем как в си++ удалить этих студентов а остаток записать в новый файл?

Добавлено через 54 минуты
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
#include <fstream>
#include <iostream>
#include <iomanip>
using namespace std;
 
ifstream in("input.txt");
ofstream out("output.txt");
 
struct baza
{
    int year;
    char family[16], adress[30], shool[15];
    void show();
    void print();
};
void baza::show()
{
    cout<<setw(10)<<family<<setw(8)<<year<<setw(10)<<adress<<setw(10)<<shool<<endl;
}
void baza::print()
{
    out<<setw(15)<<family<<setw(15)<<year<<setw(20)<<adress<<setw(15)<<shool<<endl;
}
int main()
{   baza book[10];
int num=1992;
int i,j,n=0;
if(!in) cout<<"Error";
else
{
    while(in.peek()!=EOF)
    {
        in>>book[n].family;
        in>>book[n].year;
        in>>book[n].adress;
        in>>book[n].shool;
        book[n].show();
        n++;
    };
    if(!out) cout<<"Error";
    else
    {
        j=0;
        for (i=0; i<n && !j; i++)
            if(book[i].year==num)
            {
                for(j=i; j<n-1;j++) book[j]=book[j+1];
                n--;
            }
                for(i=0; i<n; i++)
                    book[i].print();
    }
    in.close();
    out.close();
    system("PAUSE");
    return 0;
}
 
}
собственно почти все последний вопрос - я зделала чтоб только первого попавшегося студента года 1992 удалился а вот как сделать чтобы всех с 1992 годом удалили?
accept
4838 / 3237 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
20.05.2010, 02:52     Упражнение с использованием структуры #4
Цитата Сообщение от LiLi R.
На основе данных в input.txt составить список студентов группы включив в них следующие данные: фио, год рождения, домашний адресс, какую школу окончил. вывести в output.txt список студентов, оконичвших в школу в этом году.
Цитата Сообщение от LiLi R.
Нужно вывести в новый список студентов, удалив из инпут.тхт студентов окончивших школу в этом году. Т.е. в структуре не должно быть такого раздела как типа "когда закончил".
структура имеет год окончания

1. загрузить данные из input.txt в массив структур (вектор обычно)
2. проставить годы окончания в массиве для каждого студента
3. подготовить файлы для вывода (input.txt нужно переоткрыть)
4. сделать цикл вывода с условием, которое проверяет поле окончания (получатся два файла, а вообще лучше первый файл не стирать, а сделать три файла)
Yandex
Объявления
20.05.2010, 02:52     Упражнение с использованием структуры
Ответ Создать тему
Опции темы

Текущее время: 17:33. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru