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

Библиотеки языка С++ - C++

Восстановить пароль Регистрация
 
verena-12358
1 / 1 / 0
Регистрация: 12.10.2011
Сообщений: 165
19.04.2012, 13:29     Библиотеки языка С++ #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
#include "stdafx.h"
 
#include <stdio.h>
#include <iostream>
#include <stdlib.h>
#include <conio.h>
#include <cstdio>
#include <Windows.h>
#include <io.h>
 
struct lecture{
    int full;
    int half;
};
struct sostav{
    int id;
    char name[31];
    char fam[31];
    char otch[31];
    lecture lectures[12];
};
 
char* filename = "1.data";
 
int _tmain(int argc, _TCHAR* argv[])
{
    int menunumber = 0;
    sostav temp;
    setlocale(LC_ALL,"Russian");
    for(;;)
    {
        printf("1- Добавить запись в файл\n2- Просмотр\n3- Вывод в файл 2.txt\n4- Выход\n");
        scanf("%i", &menunumber);
        switch (menunumber) {
            //Добавление в файл
        case 1:{
 
            printf("Введите имя\n");
            scanf("%s", temp.name);
            printf("Введите фамилию\n");
            scanf("%s", temp.fam);
            printf("Введите отчество\n");
            scanf("%s", temp.otch);
            for (int i = 0; i < 12; i++){
                printf("Введите количество лекций на полную ставку за %i месяц\n",i+1);
                scanf("%i", &temp.lectures[i].full);
                printf("Введите количество лекций на пол ставки за %i месяц\n",i+1);
                scanf("%i", &temp.lectures[i].half);
            }
            FILE *fp = fopen( filename, "a+b");
            fseek(fp,0,SEEK_END);
            int index = ftell(fp);
            index = index / sizeof(sostav);
            temp.id = index;
            fwrite(&temp,sizeof(sostav),1,fp);
            fclose(fp);
            break;
               }
               //чтение из файла
        case 2:{
            printf("Данные в файле:\n");
            FILE *fp = fopen(filename, "rb");
            if ( fp != NULL ){
                while ( fread(&temp, sizeof(temp),1,fp) == 1 ){
                    printf("id=%i %s %s %s\n", temp.id, temp.name, temp.fam, temp.otch);
                    for (int i = 0; i < 12; i++){
                        printf("%i: %i %i\n",i+1,temp.lectures[i].full,temp.lectures[i].half);
                    }
                }
                fclose(fp);
            }               
            break;
                }
        case 3:{
            //Вывод в файл 2.txt
            FILE *fp = fopen(filename, "rb");
            FILE *fout = fopen("2.txt","w+");
            if ( fp != NULL && fout  != NULL ){
                while ( fread(&temp, sizeof(temp),1,fp) == 1 ){
                    printf("%s %s %s\n", temp.name, temp.fam, temp.otch);
                    int sumFull = 0, sumHalf = 0;
                    for (int i = 0; i < 12; i++){
                        sumFull += temp.lectures[i].full;
                        sumHalf += temp.lectures[i].half;
                    }
                    printf("За год: %i %i\n",sumFull, sumHalf);
                    fprintf(fout,"id=%i %s за год: %i %i\n", temp.id, temp.fam, sumFull, sumHalf);
                }
                printf("Данные выгружены в файл 2.txt\n");
                fclose(fp);
                fclose(fout);
            }
            break;
 
        }
               //Выход из программы
        case 4: {
            return 0;
            break;
                }
        }
        //fwrite(&A, sizeof A, 1, fp);
    }
    return 0;
}
Объясните данную программу
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.04.2012, 13:29     Библиотеки языка С++
Посмотрите здесь:

Функции языка С++ C++
Контейнеры стандартной библиотеки шаблонов языка С + +. C++
C++ Выделение в исходном коде программы ключевых слов языка и операторов языка по словарю
C++ Переписать символы с входящего рядка в выходящий, меняя операторы языка паскаль на операторы языка С++ := на =, = на ==, # на !=
Исключения языка C++ C++
Перспективы языка C++
По русскому названию языка программирования определить английское название этого языка C++
C++ Синтаксис языка

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

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