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

Создать список студентов с оценками по нескольким дисциплинам. Отсортировать список по убыванию среднего балла. Имеющих двойки удалить из списка. - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Ввод нелинейных уравнений http://www.cyberforum.ru/cpp-beginners/thread321169.html
Пишу курсовую работу на тему : "Решение нелинейных уравнений методом Ньютона" , в общем написал сам алгоритм метода Ньютона , но функции и производные к ним(частичные) нужно вводить вручную , тесть в самом коде. Вопрос как написать код который реализировал ввод уравнений самим пользователем программки ?
C++ Распределяющая сортировка Разбираю данную сортировку из вот этого материала http://algolist.manual.ru/sort/faq/q11.php и что-то я совсем запуталась... или уже крыша едет)) я правильно поняла, что байтовая, цифровая, радиксная или распределяющая сортировка это одно и тоже? просто разные названия?)) Если да, то объясните кто, пожалуйста, как понять, например, вот эту строку из кода сортировки : for ( int i=0; i<N; i++ )... http://www.cyberforum.ru/cpp-beginners/thread321147.html
C++ Не компилирует
Здравствуйте ув. Пользователи. Ответьте пожалуйста на мой нубский вопрос. Microsoft Visual C++ 2010 Express перестал компилировать код. Захожу в Visual C++ выбираю Win32 Console Application ввожу простейший код #include <iostream> using namespace std; int main() { cout << "Это моя первая программа на C++"; return 0; }
C++ Вывод текста в консоль цветными буквами!
Здравствуйте! Видел у одного чела при выполнении программы в консоли шрифт был разного цвета! Как мне такое реализовать? Заранее благодарен!
C++ Найти в матрице первую строку, все элементы которой положительны http://www.cyberforum.ru/cpp-beginners/thread321115.html
помогите плиииз
C++ 12 вариант, Павловская Помогите пожалуйста с написанием кода (желательно на Visual Studio 2010): Заранее благодарю за любую помощь. подробнее

Показать сообщение отдельно
radist88
0 / 0 / 0
Регистрация: 06.06.2011
Сообщений: 4

Создать список студентов с оценками по нескольким дисциплинам. Отсортировать список по убыванию среднего балла. Имеющих двойки удалить из списка. - C++

16.06.2011, 23:15. Просмотров 1356. Ответов 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
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
#pragma hdrstop
#include "stdafx.h"
#include <STDIO.H>
#include <iostream>
#include <string.h>
#include <stdlib.h>
#include <stdio.h>
//#include <fstream.h>
#include <math.h>
#include <windows.h>
#pragma argsused
 
    char slovo[1024], buf[1924];
    int sum, lens;
    int i;
    double sum2;
 
    FILE *f;
    FILE *f2;
 
struct pred {
    char pr[20];
    int oz[3];
    int srAr;
};
 
struct ListStud {
    char firstName[20];
    pred predmet[3];
    int  srBall;
};
 
    ListStud spisok[4], buffer;
//------------------------------------------------------------------------------
int getline() {
    char simvol;
    simvol=getc(f);
    if ((simvol==' ') || (simvol=='\n')) {
        while (((simvol==' ') || (simvol=='\n')) && (simvol!=EOF)) {
            simvol=getc(f);
        };
    };
    for(int i=0; ((simvol!=' ') && (simvol!='\n') && (simvol!=EOF)); i++) {
        buf[i]=simvol;
        simvol=getc(f);
    };
    return 0;
};
 
int clear() {
    for(int i=strlen(buf); i>=0; i--)
    buf[i]=NULL;
    return 0;
}
 
int vivod() {
    char* str;
    for (int kon = 0; kon < 4; kon++) {
     if (spisok[kon].srBall>2) {
        fputs(spisok[kon].firstName, f2);
        fputs("\t", f2);
        for (int kop = 0; kop < 3; kop++) {
            fputs(spisok[kon].predmet[kop].pr, f2);
            fputs(" ", f2);
            for (int koz = 0; koz < 3; koz++) {
                itoa((int) spisok[kon].predmet[kop].oz[koz], str, 1);
                fputs(str, f2);
            };
            itoa((int) (spisok[kon].predmet[kop].srAr+0.5), str, 1);
            fputs(str, f2);
        };
        itoa((int) (spisok[kon].srBall+0.5), str, 1);
        fputs(str, f2);
        fputs("\n", f2);
     }
    };
    return 0;
};
//------------------------------------------------------------------------------
int main(){
 
    char name[] = "text.txt";  // имя открываемого файла
    f = fopen(name, "r"); //открытие файла для чтения
    char name2[] = "text_sort.txt";  // имя открываемого файла
    f2 = fopen(name2, "w"); //открытие файла для записи
 
    if(f) //проверка существования исходного файла "text.txt"
    {
       while(!feof(f))
       {
            for (int kon = 0; kon <=3; kon++) {
                clear();
                getline();
                for (i = 0; i <= strlen(buf); i++) {
                    spisok[kon].firstName[i] = buf[i];
                };
                sum2=0;
                for (int kop = 0; kop <=2; kop++) {
                    clear();
                    getline();
                    for (i = 0; i <= strlen(buf); i++) {
                        spisok[kon].predmet[kop].pr[i] = buf[i];
                    };
                    sum=0;
                    for (int koz = 0; koz <=2; koz++) {
                        clear();
                        getline();
                        spisok[kon].predmet[kop].oz[koz]=atoi(buf);
                        sum=sum+atoi(buf);
                    };
                    spisok[kon].predmet[kop].srAr=sum / 3;
                    sum2=sum2+sum;
                };
                spisok[kon].srBall=sum2/9;
            };
       };
       fclose(f);
 
       for (int i = 0; i < 3; i++) {
        for (int kon=0; kon < 3-i; kon++) {
            if (spisok[kon].srBall<spisok[kon+1].srBall) {
                buffer = spisok[kon];
                spisok[kon] = spisok[kon+1];
                spisok[kon+1] = buffer;
            };
        };
       };
 
       vivod();
       fclose(f2);
 
    }else
        printf("file not found\n");
    system("pause");
    return 0;
 }
 
/*int propusk(f) {
    /*переход на новую строку и убираем пробелы и Tab'ы
    если ch пробел, TAP или конец строки
    if (ch==' ' || ch=='\t' || feof(f)) {
    /*если он пробел или TAB но не конец строки то считать следующий
    а если конец строки то прекратить проверку(b:=true)
      while ((ch=' ') || (ch=\t) && (not feof(f))) {
        read(f1, ch);
      }
    }
}   */
сейчас она выдвет ошибку которая на фото
Миниатюры
Создать список студентов с оценками по нескольким дисциплинам. Отсортировать список по убыванию среднего балла. Имеющих двойки удалить из списка.  
Вложения
Тип файла: txt text.txt (226 байт, 27 просмотров)
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru