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

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

Восстановить пароль Регистрация
 
GDimon
 Аватар для GDimon
25 / 25 / 1
Регистрация: 13.12.2009
Сообщений: 81
20.05.2010, 00:42     Исправте пожалуйста ошибку в работа по файлам. #1
Вот условие и код.Не могу доделать до ума....
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 минуты
вроде бы надо поменять местами объект структуры в месте, где идет чтение из файла и сортировка.
только все равно не работает?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.05.2010, 00:42     Исправте пожалуйста ошибку в работа по файлам.
Посмотрите здесь:

C++ Исправте ошибку.
C++ Укажите на ошибку или исправте!!!
C++ Исправте пожалуйста ошибку
пожалуйста исправте ошибку string subscript out of range C++
Исправте ошибки, Пожалуйста!) C++
C++ Исправте ошибку программе с ++ в 6 версии визуал студио
исправте ошибки пожалуйста C++
C++ Просто исправте ошибку

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Crudelis
Шаровик затейник
 Аватар для Crudelis
668 / 410 / 13
Регистрация: 06.05.2010
Сообщений: 1,109
20.05.2010, 00:45     Исправте пожалуйста ошибку в работа по файлам. #2
Цитата Сообщение от GDimon Посмотреть сообщение
CTyD student;
как я понял у вас выделяется структура для 1го студента, попробуйте выделить место для N студентов
GDimon
 Аватар для GDimon
25 / 25 / 1
Регистрация: 13.12.2009
Сообщений: 81
20.05.2010, 01:23  [ТС]     Исправте пожалуйста ошибку в работа по файлам. #3
Цитата Сообщение от Crudelis Посмотреть сообщение
как я понял у вас выделяется структура для 1го студента, попробуйте выделить место для N студентов
НЕ помогает...
Yandex
Объявления
20.05.2010, 01:23     Исправте пожалуйста ошибку в работа по файлам.
Ответ Создать тему
Опции темы

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