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

Запись структуры в файл. - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Сортировка двумерного массива по возрастанию http://www.cyberforum.ru/cpp-beginners/thread22698.html
Помогите, пожалуйста с задачей.:-[ Необходимо отсортировать двумерный массив по возрастанию (не переводя его в одномерный). Должно получиться примерно так: 0 0 1 1 2 3 4 5 ...
C++ dynamic_cast #include <iostream> class B { public: virtual void foo(){std::cout<<"B";} private: int a; }; class D : public B { public: void foo(){std::cout<<"D"<<std::endl;} http://www.cyberforum.ru/cpp-beginners/thread22683.html
C++ Функция, которая при вводе натурального числа выводит количество цифр в нем и их сумму
Написать и протестировать функцию которая при вводе натурального числа выводит количество цифр в нем и их сумму. Пример : натуральное число 8564 количество цифр 4 сумма цифр 23
Функция atoi, без использования библиотеки string C++
функции atoi, без использования библиотеки string
C++ Вопрос по массивав, "институтский" вопрос. http://www.cyberforum.ru/cpp-beginners/thread22636.html
Готовлюсь к летней сессии по программированию. С++ Есть такая вот задачка (привожу как есть) Какие операторы надо записать до оператора int(*a) = new int чтобы был открыт массив, содержащий 5...
C++ Найти слово, один и тот же символ в котором встречается максимальное число раз (в рамках всей строки) состоит из слов, разделенных одним или несколькими пробелами. Найти слово, один и тот же символ в котором встречается максимальное число раз (в рамках всей строки). Если таких слов несколько, найти... подробнее

Показать сообщение отдельно
necto
5 / 4 / 1
Регистрация: 27.01.2009
Сообщений: 30
12.02.2009, 16:30  [ТС]
Итог(программа закончена). Добавилось графическое (слишком сильно сказано конечно)меню, 2 функции(дозапись структуры, замена любого поля выбранной структуры), особое спасибо XuTPbIu_MuHTAu, за отклик(кто знает что бы было и насколько бы дольше я писал эту программу)
В приведенном тексте только меню и 2 новые функции.
Меню
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
#include <conio.h>
#include <iostream.h>
#include <iomanip.h>
#include <fstream.h>
#include <string.h>
#include <ctype.h>
#include <io.h>
struct TRAIN{
        char punkt[20];
        int nomb;
        float time;
        };
int vvod(struct TRAIN pp[10],char ima[20]);
int vivod(struct TRAIN pp[10],char ima[20]);
int per(struct TRAIN pp[10],char ima[20]);
int nom(struct TRAIN pp[10],char ima[20]);
int doz(struct TRAIN pp[10],char ima[20]);
int zam(struct TRAIN pp[10],char ima[20]);
int main()
{   clrscr();
    int h,z,k,SS=0,vib;
    char name[20];
    TRAIN tr[10];
    cout<<"vv-te ima faila s -> ";
    cin>>name;
    h=1;
    vib=getch();
    z=1;
    while (2!=3){
        vib=21; h=1; z=1;
        while (vib!=13){
            clrscr();
            textbackground(0);
            clrscr();
            window(5,5,40,12);
            textbackground(6);
            textcolor(15);
            clrscr();
                  gotoxy(1,1);
                  cout<<"1-vvod       "<<endl;
                  gotoxy(1,2);
                  cout<<"2-vivod      "<<endl;
                  gotoxy(1,3);
                  cout<<"3-perest     "<<endl;
                  gotoxy(1,4);
                  cout<<"4-izbir vivd "<<endl;
                  gotoxy(1,5);
                  cout<<"5-dozapis    "<<endl;
                  gotoxy(1,6);
                  cout<<"6-zamena     "<<endl;
                  gotoxy(1,7);
                  cout<<"7-exit       "<<endl;
                      switch(z){
                        case 1:{ gotoxy(1,1); textcolor(4);  cprintf("  1-vvod       "); cout<<endl; break;}
                        case 2:{ gotoxy(1,2); textcolor(4);  cprintf("  2-vivod      "); cout<<endl; break;}
                        case 3:{ gotoxy(1,3); textcolor(4);  cprintf("  3-perest     "); cout<<endl; break;}
                        case 4:{ gotoxy(1,4); textcolor(4);  cprintf("  4-izbir vivd "); cout<<endl; break;}
                        case 5:{ gotoxy(1,5); textcolor(4);  cprintf("  5-dozapis    "); cout<<endl; break;}
                        case 6:{ gotoxy(1,6); textcolor(4);  cprintf("  6-zamena     "); cout<<endl; break;}
                        case 7:{ gotoxy(1,7); textcolor(4);  cprintf("  7-exit       "); cout<<endl; break;}
                       }
            vib=getch();
            if ((h<7)&(vib==80)){
                h=h+1; z=h;
            }
            else if ((h==7)&(vib==72)){
                h=1;   z=h;
            }
            else if ((h>1)&(vib==72)){
                h=h-1; z=h;
            }
            else if ((h==1)&(vib==80)){
                h=7;    z=h;
            }
        }
        switch(h){
            case 1:{ vvod(tr,name); break;}
            case 2:{ vivod(tr,name); break;}
            case 3:{ per(tr,name); break;}
            case 4:{ nom(tr,name); break;}
            case 5:{ doz(tr,name); break;}
            case 6:{ zam(tr,name); break;}
            case 7:{ return(0); }
         }
    }
    getch();
    return(0);
}
Добавление записи:
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
int doz(struct TRAIN pp[10],char ima[20]){
        fstream f(ima, ios::end|ios::app|ios::binary);
        int i=0,p=0,n=0;
        window(1,1,80,25);
        clrscr();
        textcolor(15);
        textbackground(0);
        clrscr();
        cout<<"dobav zapis? esli da nazmite 1 -> "<<endl;
        cin>>p;
        if(p==1)
        {
            long gg;
            f.seekp(0,ios::end);
            gg=f.tellp();
            n=gg/sizeof(TRAIN);
            for(i=n;i<(n+1);i++)
            {
                cout<<"vv-te nazvanie puncta naznachenia  -> ";
                cin>>pp[i].punkt;
                cout<<"vv-te nomer poezda  ->  ";
                cin>>pp[i].nomb;
                cout<<"vvedite vrema otpravlenia    ->  ";
                cin>>pp[i].time;
                f.write((char *)&pp[i],sizeof(TRAIN));
            }
    cout<<"zapis dobavlena "<<endl;
    }
    f.close();
    getch();
    return(0);
    }
И замена одного из полей записи.
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
int zam(struct TRAIN pp[10],char ima[20]){
    int k=0,i=0,n,l=0;
    fstream f(ima, ios::app|ios::in|ios::beg|ios::binary);
    clrscr();
    window(1,1,80,25);
    clrscr();
    textcolor(15);
    textbackground(0);
    clrscr();
    long int gg;
    f.seekg(0,ios::end);
    gg=f.tellg();
    n=gg/sizeof(TRAIN);
    cout<<"vv-te nomer poesda inf-u o kotorom zamenit   ->  ";
    cin>>pp[10].nomb;
    for(i=0;i<n;i++)
    {
        f.read((char *)&pp[i],sizeof(TRAIN));
    }
 
    for(i=0;i<n;i++)
        if (pp[i].nomb==pp[10].nomb)
        {
            k=5;
            cout<<pp[i].punkt<<"    "<<pp[i].nomb<<"   "<<pp[i].time<<endl;
            cout<<"vv-te chto zamn: 1 -punkt naz; 2 -nomer poezda; 3 -vrema otp. -> ";
            cin>>l;
            if (l==1){
                cout<<"vv-te nazvanie puncta naznachenia  -> ";
                cin>>pp[i].punkt;
            }
            else if (l==2){
                cout<<"vv-te nomer poezda  ->  ";
                cin>>pp[i].nomb;
            }
            else if (l==3){
                cout<<"vvedite vrema otpravlenia    ->  ";
                cin>>pp[i].time;
            }
                f.write((char *)&pp[i],sizeof(TRAIN));
        }
    if (k==0){
    cout<<"takix poezdov net "<<endl;}
    f.close();
    getch();
    return(0);
    }
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru