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

Исправте пожалуйста ошибку в работа по файлам. - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Новичёк. http://www.cyberforum.ru/cpp-beginners/thread132605.html
Доброго времени суток! Пришёл на этот форум за знаниями, по характеру раздолбай, но надо всё таки иметь знания в программировании и всем что с этим связано. Пару раз пытался, почитал, забросил в долгий ящик. Снова вернулся, надеюсь этот раз будет продуктивным! Человек как известно учится с другими :) Поэтому, прошу принять в ученики :) Своего учителя/учителей прошу назначить вводный курс....
C++ Получить доступ в приват Не получается получить доступ к полям привата. Вот написал такой код на с++. #include <iostream> using namespace std; class A{ private: int a; public: int b; int d(); http://www.cyberforum.ru/cpp-beginners/thread132601.html
C++ Написать программу, в которой описать перечисляемые типы...
Написать программу, в которой описать перечисляемые типы, содер¬жащие в качестве элементов названия месяцев года – полное название и сокращенное (Jan, Feb, …) на английском языке, предложить пользователю ввести сокращенное название месяца, вывести на экран соответствующее полное название.
C++ Перегрузка оператора ==
Я уже встречала подобный вопрос на этом форуме, но у меня всё равно что-то не получается Вот виртуальная ф-ция, которую я вызываю в перегрузке void Plane::Str(char *str1) { char st; int a1,b1,c1; Line::Str(str1); int d=Line::Get_X1(); int d1=Line::Get_Y1();
C++ Простое выражение...ошибка http://www.cyberforum.ru/cpp-beginners/thread132592.html
z1=(pow( (1+a+a*a)/(2*a+a*a) + 2 - (1-a+a*a)/(2*a-a*a) ),-1 ) * (5-2*a*a); вот пример Выдает ошибку: Too few parameters in call to 'pow(double,double)' in function main() что не так?
C++ класс обработчик Написать класс обработчик исключительных ситуаций. Программа ловит ошибкуделения на нуль и выводитсообщение,вв какой части программы произошла ошибка. Ребята помогите с задачей пожалуйста. подробнее

Показать сообщение отдельно
GDimon
 Аватар для GDimon
25 / 25 / 1
Регистрация: 13.12.2009
Сообщений: 81
20.05.2010, 00:42     Исправте пожалуйста ошибку в работа по файлам.
Вот условие и код.Не могу доделать до ума....
1.Написать программу формирования ведомости об успеваемости студентов. Каждая запись этой ведомости должен содержать номер группы, фамилия студента, средний балл за последнюю сессию. Вывести списки студентов по группам. В каждой группе фамилии студентов разместить в порядке убывания среднего балла.
2.Взяв за основу задачу № 1, записать в файл полную базу данных, после чего считать из базы данных записи соответствии с определенными в задании критериев и вывести считанные из файла данные на экран.
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
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
# pragma once
# include <iostream>
# include <iomanip>
# include <fstream>
# include <stdlib.h>
# include <string.h>
 
using namespace std;
 
struct CTyD
{
    int group;
    char sname[10];
    float sbal;
};
 
void main()
{
    ofstream OutFile ("file.txt", ios::out);
 
    if(! OutFile)
    {
        cerr << "Fail He cywecTByeT" << endl;
        exit(1);
    }
    
    const int N = 6000;
    CTyD student;
    CTyD tmp;
    CTyD nstud[N];
    int l = 0, u = 0;
    
    cout << "BBediTe Homep rpynu, familiu, cpedHiu bal cTydeHTa: " << endl;
 
    while (cin >> student.group >> student.sname >> student.sbal)
    {
        l++;
        OutFile << student.group << " " << student.sname << " " << student.sbal << endl;
    }
 
    ifstream InFile ("file.txt", ios::in);
 
    cout << "rpyna\tfamiliua  bal" << endl;
 
    while (InFile >> student.group >> student.sname >> student.sbal)
    {
        nstud[u].group = student.group;
        nstud[u].sbal = student.sbal;
        strcpy_s(student.sname, nstud[u].sname);
        cout << nstud[u].group << "\t" << nstud[u].sname << "\t" << nstud[u].sbal << endl;
        u++;
    }
 
    cout << endl << endl << endl;
 
    for (int i = 0; i < l; i++)
        {
            for (int j = 0; j < l-1; j++)
            {
                if (strcmp(nstud[j].sname, nstud[j+1].sname) > 0)
                {
                    tmp.group = nstud[j].group;
                    nstud[j].group = nstud[j+1].group;
                    nstud[j+1].group = tmp.group;
                    strcpy_s(nstud[j].sname, tmp.sname);
                    strcpy_s(nstud[j+1].sname, nstud[j].sname);
                    strcpy_s(tmp.sname, nstud[j+1].sname);
                    tmp.sbal = nstud[j].sbal;
                    nstud[j].sbal = nstud[j+1].sbal;
                    nstud[j+1].sbal = tmp.sbal;
                }
            }
        }
 
    for (int i = 0; i < l; i++)
    {
        for (int j = 0; j < l-1; j++)
        {
            if (nstud[j].group < nstud[j+1].group)
            {
                tmp.group = nstud[j].group;
                nstud[j].group = nstud[j+1].group;
                nstud[j+1].group = tmp.group;
                strcpy_s(nstud[j].sname, tmp.sname);
                strcpy_s(nstud[j+1].sname, nstud[j].sname);
                strcpy_s(tmp.sname, nstud[j+1].sname);
                tmp.sbal = nstud[j].sbal;
                nstud[j].sbal = nstud[j+1].sbal;
                nstud[j+1].sbal = tmp.sbal;
            }
        }
    }
 
    for (int i = 0; i < l; i++)
    {
        cout << nstud[i].group << "\t" << nstud[i].sname << "\t" << nstud[i].sbal << endl;
    }
}
Добавлено через 4 минуты
вроде бы надо поменять местами объект структуры в месте, где идет чтение из файла и сортировка.
только все равно не работает?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 20:00. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru