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

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

Войти
Регистрация
Восстановить пароль
 
OLLEGATOR
Linux-оид
116 / 65 / 3
Регистрация: 15.02.2011
Сообщений: 353
#1

Вывести struct через fprint - C++

07.05.2011, 19:17. Просмотров 969. Ответов 2
Метки нет (Все метки)

Работает всё кроме функции Show_Rezult. т.к. у меня неразбериха с fprint...подсобите если нетрудно пожалуйста...

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
#include <iostream>
#include <stdio.h>
#include <iomanip>
 
using namespace std;
const int N=10, F=5;
 
struct STUDENT{ // данные о каждом студенте...
    char family[30];
    char group[N];
    int status[F];
    float sredniy_bal;
};
 
int General_Funckshion();
void Zapolnenie_Dannih_O_Studente(STUDENT *student);
void Sortirovka_Spiska_Po_Srednemu_Ballu(STUDENT *student);
int Zapis_Dannih_v_Fayl(STUDENT *student, char *name);
void Show_Rezult(char *name);
 
int main()
{
 
    int x=General_Funckshion();
    if(x) cout<<"Код ошибки: "<<x;
 
}
 
int General_Funckshion(){
 
    STUDENT *student=new STUDENT[N];
 
    Zapolnenie_Dannih_O_Studente(student);
 
    Sortirovka_Spiska_Po_Srednemu_Ballu(student);
 
    Zapis_Dannih_v_Fayl(student,"Rezult");
 
    Show_Rezult("Rezult");
 
    delete [] student;
    return 0;
}
 
 
void Zapolnenie_Dannih_O_Studente(STUDENT *student){ // Заполняем массив структур...
 
    for(int i=0;i<N;i++){
        cout<<"Введите информацию о "<<i+1<<" студенте: \n";
        cout<<"Фамилия : ";
        cin.getline(student[i].family,30);
        cout<<"Группа: ";
        cin.getline(student[i].group,N);
        cout<<"Введите 5 оценок студента(пятибальная система): \n";
 
        double temp=0;
        for(int j=0;j<F;j++){
            cout<<j+1<<" оценка: ";
            cin>>student[i].status[j];
            temp+=student[i].status[j];
        }
        student[i].sredniy_bal=temp/F;
        cin.get(); // что-б не пролитал cin...
        cout<<"\033[2J"<<"\033[0;0H"; // чистим консоль...
    }
 
}
 
void Sortirovka_Spiska_Po_Srednemu_Ballu(STUDENT *student){ // Сортировка по возрастанию...
 
    for(int i=0;i<N;i++){
        int imin=i;
        for(int j=i+1;j<N;j++)
            if(student[j].sredniy_bal<student[imin].sredniy_bal)
                imin=j;
 
        STUDENT a= student[i];
        student[i]=student[imin];
        student[imin]=a;
    }
 
 
}
 
int Zapis_Dannih_v_Fayl(STUDENT *student, char *name){
 
    FILE *f=fopen(name,"w+");
    if(!f) { cout<<"Данные не сохранены!"; return 1; }
 
    for(int i=0;i<N;i++){
 
        fwrite(&student[i].family,sizeof(student[i].family),1,f);
     //   fputc(' ',f);
        fwrite(&student[i].group,sizeof(student[i].group),1,f);
     //   fputc(' ',f);
 
        for(int j=0;j<F;j++)
            fwrite(&student[i].status[j],sizeof(student[i].status[j]),1,f);
 
     //   fputc('\n',f);
    }
 
    fclose(f);
    return 0;
 
}
 
void Show_Rezult(char *name){ // Отображение содержимого файла...
 
    FILE *f=fopen(name,"r");
 
    fseek(f,0,SEEK_END);
    int n=ftell(f)/sizeof(STUDENT);
    fseek(f,0,SEEK_SET);
 
    STUDENT *student_for_read = new STUDENT[N];
    fread(student_for_read,sizeof(STUDENT),n,f);
 
    for(int i=0;i<n;i++){
        printf("%30s %10s %5p %f\n",student_for_read[i].family,student_for_read[i].group,student_for_read[i].status,student_for_read[i].sredniy_bal);
    }
 
 
 
 
    cout<<"\033[00m";
 
    cout<<"\033[01m"<<"\033[92m"<<"______________________________________________________________________________\n"<<"\033[00m";
 
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.05.2011, 19:17
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Вывести struct через fprint (C++):

запись в struct через цикл - C++
#define _CRT_SECURE_NO_WARNINGS #include &lt;iostream&gt; #include &lt;string&gt; #include &lt;conio.h&gt; #define size 50 int main(){ struct...

Программа через структуру typedef struct - C++
Люди помогите если несложно с программой, задание таково: 1.С клавиатуры вводятся пункты структуры - Студент: Матрикул - номер...

Объясните,почему шаблоны написаны через struct? - C++
Пришлось залезть в файл limits,обратил внимание,что все шаблоны написаны через struct.Можете объяснить,почему?В смысле почему не классы?В...

Необходимо вывести элементы struct на экран - C++
Вообщем, само условие задачи: Описать структуру с данными о избирательном участке . В полях структуры должны храниться данные о номере...

Как вывести значения vector<list<struct>> ? - C++
У меня есть структура: struct graph { int i, j, len }; и массив списков: vector&lt;list&lt;graph&gt;&gt; g; Как мне вывести в цикле...

Степень вывести через указатель,a десятичный логарифм через функцию рекуренционную - C++
Написать функции,где 3 натуральных числа a,b,c(a/b-десятичный логарифм).Чтобы степень вывести через указатель,a десятичный логарифм через...

2
OLLEGATOR
Linux-оид
116 / 65 / 3
Регистрация: 15.02.2011
Сообщений: 353
07.05.2011, 21:37  [ТС] #2
переделал на такой вариант :

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
void Show_Rezult(char *name){ // Отображение содержимого файла...
 
    FILE *f=fopen(name,"r");
 
    fseek(f,0,SEEK_END);
    int n=ftell(f)/sizeof(STUDENT);
    fseek(f,0,SEEK_SET);
 
    STUDENT *student_for_read = new STUDENT[N];
    fread(student_for_read,sizeof(STUDENT),n,f);
 
    for(int i=0;i<N;i++){
        printf("%30s %10s \t",student_for_read[i].family,student_for_read[i].group);
 
        for(int j=0;j<F;j++)
            printf("%d",student_for_read[i].status[j]);
 
        cout<<"\n";
    }
 
}
теперь работает первая строчка а дальше здвигается...
0
Миниатюры
Вывести struct через fprint  
OLLEGATOR
Linux-оид
116 / 65 / 3
Регистрация: 15.02.2011
Сообщений: 353
07.05.2011, 22:43  [ТС] #3
разобрался...было неполное считывание структуры как оказалось оно обязательно
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.05.2011, 22:43
Привет! Вот еще темы с ответами:

Struct{...} - C++
Задача № 1 (динамические структуры) Написать программу создания динамической структуры, заданной рисунком, с вводом элементов с...

Struct - C++
У мя есть структура: указатель на предыдущий, следующий и значение... Ввод/вывод работает, а вот добавление после определённого значения...

struct - C++
Привествую ) Такой вопрос назрел ) Хочу создать переменную типа структуры: Всегда создавал так: my_struct var;

struct (с++) - C++
Кто может написать полный синтаксис структуры. Чем отличается структура от класса ? Всем ответившим высказываю свою благодарность.


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

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

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