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

Сформировать двоичный файл из элементов, заданной в варианте структуры. Структура "Стадион" - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.80
маня
1 / 1 / 0
Регистрация: 28.04.2012
Сообщений: 114
05.06.2013, 16:47     Сформировать двоичный файл из элементов, заданной в варианте структуры. Структура "Стадион" #1
Люди добрые помогите пожалуйста написать программу на С++!
Сформировать двоичный файл из элементов, заданной в варианте структуры, распечатать его содержимое, выполнить удаление и добавление элементов в соответствии со своим вариантом, используя для поиска удаляемых или добавляемых элементов функцию. Формирование, печать, добавление и удаление элементов оформить в виде функций. Предусмотреть сообщения об ошибках при открытии файла и выполнении операций ввода/вывода.
Структура "Стадион":
- название;
- адрес;
- вместимость;
- виды спорта.
Удалить элемент с заданным названием, добавить 2 элемента после элемента с указанным номером.

Добавлено через 10 часов 39 минут
вот что сделала, но почему -то не работает (работаю в вижуал студио 2012)
помогите исправить ошибки!
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
#include "stdafx.h"
#include <stdio.h>
#include <stdlib.h>
#include <tchar.h>   
#include <iostream>
#include <cstring>
 
using namespace std;
 
struct AEROFLOT{
 char destination[40];
 int number;
 char type[15];
};
int main(){
 
 AEROFLOT routes[7];
  int i=0;
 for(int i=0; i<7; i++){
  cout<<"punkt naznachenia\n";
  cin>> routes[i].destination;
 
  cout<<"nomer reisa\n";
  cin>>routes[i].number;
 
  cout<<"tip samoleta\n";
  cin>>routes[i].type;
 }
 
 AEROFLOT n;
 int k=1;
 
 while(k==1) {
  k=0;
     for (int i=0; i<7; i++)
         if (strcmp(routes[i].destination, routes[i+1].destination)>0){
             n=routes[i];
             routes[i]=routes[i+1];
             routes[i+1]=n;
             k=1;
         }
 }
 
 char str[40];
 cout<<"tip samoleta\n";
 cin>>str;
 int b=0;
 for (int i=0; i<7; i++){
  if (strcmp(routes[i].type,str)==0){
   cout<<routes[i].destination,routes[i].number;
   b=1;
  }
 }
 if (b==0){
  cout<<"net takih\n";
 }
 system ("pause");
 return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.06.2013, 16:47     Сформировать двоичный файл из элементов, заданной в варианте структуры. Структура "Стадион"
Посмотрите здесь:

В файл с помощью структуры записать следующие данные: "название папки, ее размер, дата создания" C++
Функции и файлы. Чтение и запись данных в файл. Структура "Ноутбук" C++
Сформировать двоичный файл из элементов, заданных в варианте структур C++
Сформировать двоичный файл из элементов, заданной структуры "Абитуриент" C++
Сформировать двоичный файл из элементов, заданных в варианте структуры. Структура "Человек" C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
05.06.2013, 16:57     Сформировать двоичный файл из элементов, заданной в варианте структуры. Структура "Стадион" #2
Цитата Сообщение от маня Посмотреть сообщение
но почему -то не работает
Что не так?
маня
1 / 1 / 0
Регистрация: 28.04.2012
Сообщений: 114
05.06.2013, 19:57  [ТС]     Сформировать двоичный файл из элементов, заданной в варианте структуры. Структура "Стадион" #3
она не запускается!

Добавлено через 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
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
#include "stdafx.h"
 
#include <locale>
 #include <iostream>
 #include <conio.h>
 #include <stdio.h>
 #include <Windows.h>
 using namespace std;
 typedef struct
 {
 char nazvanie [40];
 char adres [40];
 float vmestimost [40];
 char vid_sporta [40];
 
 } stadion;
 
 void form(char sFileName[10],int KolZap)
 {
 setlocale (LC_ALL,"RUSSIAN");
 int i;
 char* rejim="w";
 FILE *f;
 stadion s;
 if (KolZap==1) {
 rejim="a";
 }
 if ((f=f_open(sFileName,rejim))==NULL) exit(1);
 for (i=0;i<KolZap;i++) {
 cout <<"Vvedite nazvanie - ";
 scanf ("%s",&s.nazvanie);
 cout <<"Vvedite adres - ";
 scanf ("%s",&s.adres);
 cout <<"Vvedite vmestimost - ";
 scanf ("%s",&s.vmestimost);
 cout <<"Vvedite vid_sporta - ";
 scanf ("%f",&s.vid_sporta);
 cout <<endl;
 fwrite(&s,sizeof(stadion),1,f);
 if (ferror(f)!=NULL) exit(2);
 }
 fclose(f);
 }
 void vivod(char sFileName[10])
 {
 FILE *f;
 stadion d;
 if ((f=fopen(sFileName, "r"))==NULL) exit(3);
 cout <<"File - "<<sFileName<<endl;
 while (!feof(f)) {
 fread (&d,sizeof(stadion),1,f);
 if (!feof(f)) {
 cout <<"============================\n";
 cout <<"Nazvanie: "<<d.nazvanie<<endl;
 cout <<"Adres: "<<d.adres<<endl;
 cout <<"Vmestimost: "<<d.vmestimost<<endl;
 cout <<"Vid_sporta: "<<d.vid_sporta<<endl;
 cout <<"============================\n";
 }
 }
 fclose(f);
 
 }
 
 void udalenie(char cFileIn[10],char cFileOut[10])
 {
 stadion d;
 FILE *f1,*f2;
 float time;
 if ((f1=fopen(cFileIn, "r"))==NULL) exit(4);
 if ((f2=fopen(cFileOut,"w"))==NULL) exit(5);
 cout <<"Vvedite nazvanie na udalenie - ";
 cin >>time;
 cout <<endl;
 while(!feof(f1)) 
 
 { 
 fread(&d,sizeof(stadion),1,f1);
 fwrite (&d,sizeof(stadion),1,f2);
 }
 
 fclose(f2);
 fclose(f1);
 }
 
 void main()
 {
 int n;
 setlocale(LC_ALL,"RUSSIAN");
 cout <<"Vvedite kol-vo zapisey: - ";
 cin>>n;
 cout <<endl;
 form("f1.dat",n);
 vivod("f1.dat");
 udalenie("f1.dat","f2.dat");
 cout <<"Posle udalenia:\n";
 vivod("f2.dat");
 getch();
 n=2;
 system("cls");
 form ("f2.dat",n);
 cout <<"Posle dobavlenia:\n";
 vivod ("f2.dat");
 getch();
 }[


Добавлено через 59 секунд
помогите пожалуйста исправить ошибки!
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
05.06.2013, 20:34     Сформировать двоичный файл из элементов, заданной в варианте структуры. Структура "Стадион" #4
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
#include <locale>
 #include <iostream>
 #include <conio.h>
 #include <stdio.h>
 #include <Windows.h>
 using namespace std;
 
 typedef struct
 {
 char nazvanie [40];
 char adres [40];
 float vmestimost;
 char vid_sporta [40];
 
 } stadion;
 
 void form(char sFileName[10],int KolZap)
 {
 setlocale (LC_ALL,"RUSSIAN");
 int i;
 char* rejim="w";
 FILE *f;
 stadion s;
 if (KolZap==1) {
 rejim="a";
 }
 if ((f=fopen(sFileName,rejim))==NULL) exit(1);
 for (i=0;i<KolZap;i++) {
 cout <<"Vvedite nazvanie - ";
 scanf ("%s",&s.nazvanie);
 cout <<"Vvedite adres - ";
 scanf ("%s",&s.adres);
 cout <<"Vvedite vmestimost - ";
 scanf ("%f",&s.vmestimost);
 cout <<"Vvedite vid_sporta - ";
 scanf ("%s",&s.vid_sporta);
 cout <<endl;
 fwrite(&s,sizeof(stadion),1,f);
 if (ferror(f)!=NULL) exit(2);
 }
 fclose(f);
 }
 void vivod(char sFileName[10])
 {
 FILE *f;
 stadion d;
 if ((f=fopen(sFileName, "r"))==NULL) exit(3);
 cout <<"File - "<<sFileName<<endl;
 while (!feof(f)) {
 fread (&d,sizeof(stadion),1,f);
 if (!feof(f)) {
 cout <<"============================\n";
 cout <<"Nazvanie: "<<d.nazvanie<<endl;
 cout <<"Adres: "<<d.adres<<endl;
 cout <<"Vmestimost: "<<d.vmestimost<<endl;
 cout <<"Vid_sporta: "<<d.vid_sporta<<endl;
 cout <<"============================\n";
 }
 }
 fclose(f);
 
 }
 
 void udalenie(char cFileIn[10], char cFileOut[10])
 {
 stadion d;
 FILE *f1,*f2;
 char temp[40];
 if ((f1=fopen(cFileIn, "r"))==NULL) exit(4);
 if ((f2=fopen(cFileOut,"w"))==NULL) exit(5);
 cout << "Vvedite nazvanie na udalenie - ";
 cin >> temp;
 
 while(1) 
 { 
    fread(&d,sizeof(stadion),1,f1);
    if (feof(f1)) break;
    if (strcmp(d.nazvanie, temp))
        fwrite (&d,sizeof(stadion),1,f2);
 }
 
 fclose(f2);
 fclose(f1);
 }
 
 void main()
 {
     int n;
     setlocale(LC_ALL,"RUSSIAN");
     cout <<"Vvedite kol-vo zapisey: - ";
     cin>>n;
     cout <<endl;
     form("f1.dat",n);
     vivod("f1.dat");
     udalenie("f1.dat","f2.dat");
     cout <<"Posle udalenia:\n";
     vivod("f2.dat");
     getch();
     n=1;
     system("cls");
     form ("f2.dat",n);
     cout <<"Posle dobavlenia:\n";
     vivod ("f2.dat");
     getch();
 }
маня
1 / 1 / 0
Регистрация: 28.04.2012
Сообщений: 114
05.06.2013, 21:40  [ТС]     Сформировать двоичный файл из элементов, заданной в варианте структуры. Структура "Стадион" #5
Выдаёт ошибку:
Error 1 error C4996: 'fopen': This function or variable may be unsafe. Consider using fopen_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. h:\рплор\рплор\рплор.cpp 31 1 рплор
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
05.06.2013, 22:05     Сформировать двоичный файл из элементов, заданной в варианте структуры. Структура "Стадион" #6
Цитата Сообщение от маня Посмотреть сообщение
Выдаёт ошибку:
Это не ошибка. На студии компилируется без ошилок, но выдаёт предупреждения, когда, по мнению MSVC, функции не безопасные. Я так понял, у вас где-то включена опция, чтобы такие предупреждения выдавались как ошибки. У вас пишет, чтобы такого не было:" To disable deprecation, use _CRT_SECURE_NO_WARNINGS", т.е. использовать _CRT_SECURE_NO_WARNINGS. У вас какая среда?

Добавлено через 12 минут
Цитата Сообщение от маня Посмотреть сообщение
Consider using fopen_s instead.
Или (пишет вам) замените на fopen_s.
маня
1 / 1 / 0
Регистрация: 28.04.2012
Сообщений: 114
05.06.2013, 22:19  [ТС]     Сформировать двоичный файл из элементов, заданной в варианте структуры. Структура "Стадион" #7
изменила на fopen_s, не работает
Visual Studio 2012
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
05.06.2013, 22:39     Сформировать двоичный файл из элементов, заданной в варианте структуры. Структура "Стадион" #8
Цитата Сообщение от маня Посмотреть сообщение
изменила на fopen_s, не работает
Не работает как понимать? Не компилируется? Не запускается? Не то выводит?
Вы что, никогда fopen() не применяли? Или среда другая была? Это же в вашем коде было. Демонстрирую работу кода. С остальным сами разбирайтесь: с настройками среды, с С-функциями и с пр.
Миниатюры
Сформировать двоичный файл из элементов, заданной в варианте структуры. Структура "Стадион"  
маня
1 / 1 / 0
Регистрация: 28.04.2012
Сообщений: 114
05.06.2013, 22:41  [ТС]     Сформировать двоичный файл из элементов, заданной в варианте структуры. Структура "Стадион" #9
Так всё таки как мне её запустить?
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
05.06.2013, 22:54     Сформировать двоичный файл из элементов, заданной в варианте структуры. Структура "Стадион" #10
Цитата Сообщение от маня Посмотреть сообщение
Так всё таки как мне её запустить?
Тему создайте: "Как сделать, чтобы 12 Студия не выдавала ошибку на функцию fopen()?" и выложите ошибку.
Арслан Садритди
0 / 0 / 0
Регистрация: 23.12.2013
Сообщений: 32
22.09.2014, 10:16     Сформировать двоичный файл из элементов, заданной в варианте структуры. Структура "Стадион" #11
а можете кто нибудь скинуть эту же задачу но на C++ builder 2009 / был бы очень благодарен
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
22.09.2014, 10:21     Сформировать двоичный файл из элементов, заданной в варианте структуры. Структура "Стадион" #12
Цитата Сообщение от Арслан Садритди Посмотреть сообщение
а можете кто нибудь скинуть эту же задачу но на C++ builder 2009 / был бы очень благодарен
А что, в билдере этот код не компилируется?
Арслан Садритди
0 / 0 / 0
Регистрация: 23.12.2013
Сообщений: 32
22.09.2014, 11:43     Сформировать двоичный файл из элементов, заданной в варианте структуры. Структура "Стадион" #13
помоему нетalsav22,
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
22.09.2014, 11:45     Сформировать двоичный файл из элементов, заданной в варианте структуры. Структура "Стадион" #14
Цитата Сообщение от Арслан Садритди Посмотреть сообщение
помоему нет
Какие ошибки пишет?
Арслан Садритди
0 / 0 / 0
Регистрация: 23.12.2013
Сообщений: 32
22.09.2014, 11:47     Сформировать двоичный файл из элементов, заданной в варианте структуры. Структура "Стадион" #15
у меня просто по ней лаба. но мы не проходили некоторые библиотеки , и хотелось бы простые примитивные библиотеки alsav22,
#include <locale>
#include <stdio.h>
#include <Windows.h>
вот эти мы не проходили
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
22.09.2014, 12:23     Сформировать двоичный файл из элементов, заданной в варианте структуры. Структура "Стадион" #16
Цитата Сообщение от Арслан Садритди Посмотреть сообщение
вот эти мы не проходили
А кто их проходил? Я тоже не проходил. Нужны для работы кода. В каждой среде (компиляторе) могут свои потребоваться. Нужно смотреть на компиляцию. #include <Windows.h> там точно не нужен (заменить на #include <stdlib.h>).
Арслан Садритди
0 / 0 / 0
Регистрация: 23.12.2013
Сообщений: 32
22.09.2014, 13:01     Сформировать двоичный файл из элементов, заданной в варианте структуры. Структура "Стадион" #17
alsav22, а без этих кодов не получится?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.09.2014, 13:04     Сформировать двоичный файл из элементов, заданной в варианте структуры. Структура "Стадион"
Еще ссылки по теме:

Структуры: сформировать двоичный файл, записав в него всю известную информацию о каждом сотруднике C++
C++ Файл, структура "Студент"
C++ Структура "Авто", заполнение и запись в файл

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

Или воспользуйтесь поиском по форуму:
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
22.09.2014, 13:04     Сформировать двоичный файл из элементов, заданной в варианте структуры. Структура "Стадион" #18
Цитата Сообщение от Арслан Садритди Посмотреть сообщение
а без этих кодов не получится?
Написал уже:
Цитата Сообщение от alsav22 Посмотреть сообщение
Нужны для работы кода.
Цитата Сообщение от alsav22 Посмотреть сообщение
В каждой среде (компиляторе) могут свои потребоваться. Нужно смотреть на компиляцию.
Yandex
Объявления
22.09.2014, 13:04     Сформировать двоичный файл из элементов, заданной в варианте структуры. Структура "Стадион"
Ответ Создать тему
Опции темы

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