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

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

Войти
Регистрация
Восстановить пароль
 
GDimon
25 / 25 / 1
Регистрация: 13.12.2009
Сообщений: 81
#1

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

20.05.2010, 00:42. Просмотров 365. Ответов 2
Метки нет (Все метки)

Вот условие и код.Не могу доделать до ума....
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 минуты
вроде бы надо поменять местами объект структуры в месте, где идет чтение из файла и сортировка.
только все равно не работает?
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.05.2010, 00:42
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Исправте пожалуйста ошибку в работа по файлам. (C++):

Исправте пожалуйста ошибку - C++
Нжно в двовымерный массив добавить в начало К строк. Весь код: // regre.cpp : main project file. #include &quot;stdafx.h&quot; #include...

Исправте ошибку - C++
#include &lt;conio.h&gt; #include &lt;iostream.h&gt; long fact (int n) { if (n==0) return 1; else return fact(n-1)*n; ...

Исправте ошибку. - C++
Дана программа: но программа борланд С++ пишет что найдена ошибка в 46 рядке, и я хз как эту ошибку исправить(( #include&lt;iostream.h&gt; ...

исправте ошибки пожалуйста - C++
Написать программу, которая вводит по строкам с клавиатуры двумерный массив и вычисляет сумму его элементов по столбцам

Исправте ошибки, Пожалуйста!) - C++
нужно исправить код..помогите)) // перкуквр.cpp: определяет точку входа для консольного приложения. // #include &quot;stdafx.h&quot; ...

Просто исправте ошибку - C++
//---------------------------------------------------------------------------- #include &lt;stdio.h&gt; #include &lt;conio.h&gt; #include...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Crudelis
Шаровик затейник
674 / 416 / 13
Регистрация: 06.05.2010
Сообщений: 1,109
20.05.2010, 00:45 #2
Цитата Сообщение от GDimon Посмотреть сообщение
CTyD student;
как я понял у вас выделяется структура для 1го студента, попробуйте выделить место для N студентов
0
GDimon
25 / 25 / 1
Регистрация: 13.12.2009
Сообщений: 81
20.05.2010, 01:23  [ТС] #3
Цитата Сообщение от Crudelis Посмотреть сообщение
как я понял у вас выделяется структура для 1го студента, попробуйте выделить место для N студентов
НЕ помогает...
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.05.2010, 01:23
Привет! Вот еще темы с ответами:

Укажите на ошибку или исправте!!! - C++
Здраствуйте!! написал консольную программу которая захватывает написанную строку, потом проверяет её на наличие Больших и маленьких букв!!!...

Исправте ошибку программе с ++ в 6 версии визуал студио - C++
Незнаю как исправить для 6 версии, помогите! #include &lt;iostream.h&gt; #include &lt;conio.h&gt; using namespace std; int main() { ...

Вычисление функций с использованием их разложения в степенной ряд ощибки исправте пожалуйста - C++
Постановка задачи Для х, изменяющегося от a до b (интервал целиком лежит внутри интервала, указанного в третьей колонке) с шагом ,...

Добрый день! Исправте, пожалуйста. Дан листинг программы, где заданы два массива - C++
Здравствуйте! Помогите, пожалуйста. Дан листинг программы, где заданы два массива. Сделайте, пожалуйста, так, чтобы значения этих массивов...


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

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

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