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

Создать программу обработки файла типа запись "Успеваемость студента" - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ API & C++ http://www.cyberforum.ru/cpp-beginners/thread368797.html
Приветствую Вас уважаемыые форумчане... Не подскажете какой справочник по функциям API С++
C++ Проверить правильность расстановки символов “/*” и “*/” для комментариев Проверить правильность расстановки символов “/*” и “*/” для комментариев в фрагменте программы на языке С++. http://www.cyberforum.ru/cpp-beginners/thread368784.html
После каждого слова текста, заканчивающегося заданной подстрокой, вставить указанный символ C++
После каждого слова текста, заканчивающегося заданной подстрокой, вставить указанный символ. помогите! :)
Рассортировать числа по частоте встречаемости, используя алгоритм обмена C++
Известно, что в массиве размерности N могут быть только целые числа из диапазона 1..31. Рассортировать эти числа по частоте встречаемости, используя алгоритм обмена.
C++ Найти количество строк в максимальном множестве попарно непохожих строк заданной матрицы. http://www.cyberforum.ru/cpp-beginners/thread368779.html
Две строки целочисленной матрицы назовём похожими, если совпадают множества чисел, встречающихся в этих строках. Найти количество строк в максимальном множестве попарно непохожих строк заданной матрицы, расположенных подряд. на с++ найти не смог. а с pascal перевести не могу, потому, что не знаю абсолютно с++! Помогите! :)
C++ Открытие txt файла для просмотра #include <stdio.h> int main() { FILE * fi; fi = fopen("test.txt","rt"); int n; while( !feof(fi) ) { fscanf( fi, "%d\n", &n ); printf("%d\n",n ); подробнее

Показать сообщение отдельно
p1ggy
0 / 0 / 0
Регистрация: 19.10.2011
Сообщений: 12
19.10.2011, 11:25     Создать программу обработки файла типа запись "Успеваемость студента"
Я тут недавно начал разбираться с с++... В принципе многое понял, научился, нашел интересное задание:
Создать программу обработки файла типа запись, содержащую следующие пункты меню: «Создание», «Просмотр», «Коррекция» (добавление новых данных или редактирование старых), «Решение индивидуального задания».
Там есть пункты : ФИО, группа, оценки по 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
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
#include <stdio.h>
#include <io.h>
#include <conio.h>
#include <iostream>
using namespace std;
 
struct T_BD{
     char FIO[30];
     short g_r;
     char group;
     short o_f, o_m, o_i, o_h;
     double s_b;
     } BD;
int size = sizeof(T_BD);
FILE *Fz, *Ft;
char File_Zap[] = "zapisi.dat";
char File_Rez[] = "rezult.txt";
void Out(T_BD);
 
int main()
{
    int kod, D_f, i=0, j, kol, kod2, pos; char qgroup;
    long len;
    T_BD st, *mas_Z;
Ft = fopen(File_Rez, "w");
    while(true) {
            puts("\n Create – 1 \n Edit – 2 \n View – 3 \n My Task – 4 \n EXIT – 0");
            switch(kod = getch())
            {
                case 1:
                        if ((Fz=fopen(File_Zap,"wb"))==NULL)  {
                                puts("\n Create ERROR!");
                                return 0;
                        }
                    fclose(Fz);
                    printf ("\n Create New File %s !\n", File_Zap);
                break;
                case 2:
                   /* puts ("\n Correct - 1 \n Add - 2");
                    switch(kod2 = getch())
                    {
                        case 1:
                            Fz= fopen(File_Zap,"ab");
                            cout <<"\n Input number of unit: "; cin >>
                        case 2: */
                            Fz = fopen(File_Zap,"ab");
                            cout <<"\n F.I.O. – "; cin >> BD.FIO;
                            cout <<"\n Date of birth – "; cin >> BD.g_r;
                            cout <<"\n Points – ";
                            cout <<"\n Phisics: "; cin >> BD.o_f;
                            cout <<"\n Math: "; cin >> BD.o_m;
                            cout <<"\n IT knowledge: "; cin >> BD.o_i;
                            cout <<"\n Chemistry: "; cin >> BD.o_h;
                            BD.s_b=(BD.o_f+BD.o_m+BD.o_i+BD.o_h)/4;
                            fwrite(&BD, size, 1, Fz);
                            fclose(Fz);
                        break;
                break;
                case 3:
                    if ((Fz=fopen(File_Zap,"rb"))==NULL)  {
                                puts("\n Open ERROR!");
                                return 0;
                        }
// Вывод на экран
                        cout <<"\n\t--------- Informations ---------";
// Запись такой же информации в текстовый файл Ft
                        cout <<Ft << "\n\t--------- Informations ---------";
                        while(1) {
                            if(!fread(&BD,size,1,Fz)) break;
                                Out(BD);
                        }
                        fclose(Fz);
                break; /*
                case 4:
                        Fz = fopen(File_Zap,"rb");
                        D_f = fileno(Fz);
                len = filelength(D_f);
                kol = len/size;
                mas_Z = new T_BD[kol];
                cout << "\n Input group:"; cin >> qgroup;
// Считываем записи из файла в динамический массив
                    for (i=0; i < kol; i++)
                            fread((mas_Z+i), size, 1, Fz);
                    fclose(Fz);
                            cout <<"\n\t----- S O R T -----\n";
                            cout <<Ft <<"\n\t----- S O R T -----\n";
                            for (i=0; i < kol; i++) {
                            if (((mas_Z[i].group = qgroup) && (mas_Z[i].FIO[0] = "В"))  Out(mas_Z[i]);
                            if ((mas_Z[i].group = qgroup) && (mas_Z[i].FIO[0] = "Г"))  Out(mas_Z[i]);
                            if ((mas_Z[i].group = qgroup) && (mas_Z[i].FIO[0] = "Д"))  Out(mas_Z[i]); }
                        delete []mas_Z;
                        break; */
                case 0:
                        fclose(Ft);
                        return 0;
            }
  }
}
//----------------- Функция вывода одной записи на экран и в файл --------------------
void Out(T_BD z)
{
     printf("\n %20s , %4d , %10s, %1d , %1d , %1d , %1d , %6.3lf .", z.FIO,z.g_r, z.group, z.o_f, z.o_m, z.o_i, z.o_h, z.s_b);
     fprintf(Ft, "\n %20s , %6.3lf .",  z.FIO,z.g_r, z.group, z.o_f, z.o_m, z.o_i, z.o_h, z.s_b);
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 13:16. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru