Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
yura`
11 / 8 / 0
Регистрация: 09.02.2010
Сообщений: 107
#1

Работа с файлами - C++

13.05.2010, 21:34. Просмотров 1731. Ответов 9
Метки нет (Все метки)

Всем добрый день. Помогите кто-нибудь с этим заданием: о каждом из студентов известны фамилия и информация о том, имеет ли студент зачет по каждому из 6 предметов. Отпечатать фамилии студентов, не имеющих зачета более чем по 2 предметам.
Сам файл создать нужно самостоятельно, и с него информацию брать для создания нового файла.
Только на С++ программу делать, не на С.
Заранее очень и очень благодарен.

Добавлено через 3 часа 28 минут
Помогите пожалуйста, очень нужно...
http://www.cyberforum.ru/cpp-beginners/thread1990755.html
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.05.2010, 21:34
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Работа с файлами (C++):

Работа с файлами
Мне нужно реализовать программу следующим образом:все входные данные...

Работа с файлами в C++
Створити текстовий файл. Слова у файлі відділені пробілами, си-мволами "," та...

Работа с файлами
Напишите код пожалуйста, и если можно с пояснениями: Написать программу,...

Работа с файлами
Какаой вариант работы с фалами лучше и какая разница между ними вообще?? ...

работа с файлами
лет 5 назад изучал с++ консольный еще в технаре. Щас php считаю более...

9
Crudelis
Шаровик затейник
679 / 428 / 78
Регистрация: 06.05.2010
Сообщений: 1,109
13.05.2010, 22:19 #2
т.е. есть файл текстовый в котором информация о студентах, вводить информацию с консоли не нужно, а просто взять считать данные с файла?
1
yura`
11 / 8 / 0
Регистрация: 09.02.2010
Сообщений: 107
13.05.2010, 22:28  [ТС] #3
Да, ну вот есть пример похожей рабочей программы:
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
#include <iostream>
#include <fstream>
using namespace std;
char f[] = "file1.txt";
char g[] = "file2.txt";
char h[] = "out.txt";
ifstream inp1(f);
ifstream inp2(g);
ofstream out(h);
 
int main()
{
        int n;
       while(inp1 >> n) {
                out << n << " ";
        }
        while(inp2 >> n) {
                        out << n << " ";
        }
        out.close();
        inp1.close();
        inp2.close();
        system("PAUSE");
        return 0;
}
Заранее спасибо.

Добавлено через 1 минуту
Тут есть созданые пользователем текст в текстовом файле, и данные с файлов считываются в новый, но я не знаю как в моей программе это все вычислить...тоесть как перенести правильные данные по условию задания в новый файл...
1
Crudelis
Шаровик затейник
679 / 428 / 78
Регистрация: 06.05.2010
Сообщений: 1,109
13.05.2010, 23:08 #4
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
//о каждом из студентов известны фамилия и информация о том, имеет ли студент зачет по каждому из 6 предметов.
//Отпечатать фамилии студентов, не имеющих зачета более чем по 2 предметам. 
//Сам файл создать нужно самостоятельно, и с него информацию брать для создания нового файла.
//Только на С++ программу делать, не на С.
#include<iostream>
using namespace std;
struct Student
{
    char name[150];
    int osenk[6];
};
void Find(Student *st,int n)
{
    FILE *fn;
        fn=fopen("student2.txt","w");
    if(!fn)
        cout<<"Невозможно открыть файл\n";
    else
    {
    int ch=0;
    for(int i=0;i<n;i++)
    {
        int k=0;
        for(int j=0;j<5;j++)
        {
            if(st[i].osenk[j]<=2)
                ch++;
        if(ch>2&&k==0)
        {
            fprintf(fn,"%s\t%d\t%d\t%d\t%d\t%d\t%d\t\n",st[i].name,st[i].osenk[0],st[i].osenk[1],st[i].osenk[2],st[i].osenk[3],st[i].osenk[4],st[i].osenk[5]);
        k++;
        }
            
        }
    }
    
 
}
    fclose(fn);
}
void main()
{
    int n=10,q=0;
    Student *st=new Student[n];
    setlocale(LC_CTYPE,"Rus");
    FILE *fo;
    fo=fopen("student.txt","r");
    if(!fo)
        cout<<"Невозможно открыть файл\n";
    else
    {
        while(!feof(fo))
        {
            fscanf(fo,"%s%d%d%d%d%d%d",&st[q].name,&st[q].osenk[0],&st[q].osenk[1],&st[q].osenk[2],&st[q].osenk[3],&st[q].osenk[4],&st[q].osenk[5]);
            q++;
        }
    fclose(fo);
    }
    Find(st,n);
    cout<<endl;
    delete [] st;
}
Файл студентов выглядит так
Серов 5 5 5 3 2 2
Белов 2 2 2 2 2 2
Иванов 2 2 2 2 2 2

и т.д.

Добавлено через 40 секунд
использовал не сдал это оценка меньше 2х
1
yura`
11 / 8 / 0
Регистрация: 09.02.2010
Сообщений: 107
13.05.2010, 23:33  [ТС] #5
Crudelis, программа выдает ошибку...Может я не там работаю где нужно? У меня Dev C++ .
0
Vorona
Peace 2 all shining faces
671 / 533 / 84
Регистрация: 05.03.2010
Сообщений: 1,283
14.05.2010, 00:20 #6
попробуйте подключить <stdio.h>
и вместо <iostream> попробуйте <iostream.h>
1
yura`
11 / 8 / 0
Регистрация: 09.02.2010
Сообщений: 107
14.05.2010, 00:50  [ТС] #7
Vorona, у меня ошибку выдает сдесь:
C++
1
2
3
void main()
{
        int n=10,q=0;
Ошибка выглядит так:
`main' must return `int'
0
easybudda
Модератор
Эксперт CЭксперт С++
10021 / 5944 / 1483
Регистрация: 25.07.2009
Сообщений: 11,230
14.05.2010, 01:00 #8
Цитата Сообщение от yura` Посмотреть сообщение
Ошибка выглядит так:
`main' must return `int'
C++
1
2
3
4
5
...
int main(){
...
    return 0;
}
1
yura`
11 / 8 / 0
Регистрация: 09.02.2010
Сообщений: 107
14.05.2010, 01:13  [ТС] #9
easybudda, а куда его вставить?
Я уже пробывал по разному...А оно еще больше ошибок...
0
Vorona
Peace 2 all shining faces
671 / 533 / 84
Регистрация: 05.03.2010
Сообщений: 1,283
14.05.2010, 01:21 #10
работает?
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<iostream>
using namespace std;
struct Student
{
        char name[150];
        int osenk[6];
};
void Find(Student *st,int n)
{
        FILE *fn;
                fn=fopen("student2.txt","w");
        if(!fn)
                cout<<"Невозможно открыть файл\n";
        else
        {
        int ch=0;
        for(int i=0;i<n;i++)
        {
                int k=0;
                for(int j=0;j<5;j++)
                {
                        if(st[i].osenk[j]<=2)
                                ch++;
                if(ch>2&&k==0)
                {
                        fprintf(fn,"%s\t%d\t%d\t%d\t%d\t%d\t%d\t\n",st[i].name,st[i].osenk[0],st[i].osenk[1],st[i].osenk[2],st[i].osenk[3],st[i].osenk[4],st[i].osenk[5]);
                k++;
                }
                        
                }
        }
        
 
}
        fclose(fn);
}
int main()
{
        int n=10,q=0;
        Student *st=new Student[n];
        setlocale(LC_CTYPE,"Rus");
        FILE *fo;
        fo=fopen("student.txt","r");
        if(!fo)
                cout<<"Невозможно открыть файл\n";
        else
        {
                while(!feof(fo))
                {
                        fscanf(fo,"%s%d%d%d%d%d%d",&st[q].name,&st[q].osenk[0],&st[q].osenk[1],&st[q].osenk[2],&st[q].osenk[3],&st[q].osenk[4],&st[q].osenk[5]);
                        q++;
                }
        fclose(fo);
        }
        Find(st,n);
        cout<<endl;
        delete [] st;
        return 0;
}
1
14.05.2010, 01:21
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.05.2010, 01:21
Привет! Вот еще темы с решениями:

работа с файлами в c++
Я думаю моя задача нерешаемая, но все же: насколько я знаю, файл это...

работа с файлами
Помагите пожалуйсто доделать прогу. В справочной автовокзала хранится...

Работа с файлами на С++
Здравствуйте ! Написал код программы, что-то на подобии базы данных библиотеки....

Работа с файлами.
Имеется файл txt с текстом. Как узнать номер строки в которой только одно...


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Опции темы

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