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

Структура "Государство". Блочный ввод-вывод - C++

Восстановить пароль Регистрация
 
MargaritaS
0 / 0 / 0
Регистрация: 27.10.2013
Сообщений: 31
16.05.2014, 18:34     Структура "Государство". Блочный ввод-вывод #1
Задание. Сформировать двоичный файл из элементов, заданных в варианте структуры.Напишите программу, которая бы позволяла:
- добавлять записи;
- просматривать записи;
- просматривать записи, отвечающие некоторому условию;
- производить действия над числовой информацией хранящейся в записях.

1. Структура "Государство":
- название;
- столица;
- численность населения;
- занимаемая площадь.
Удалить все элементы, у которых численность меньше заданной, добавить элемент после элемента с указанным номером.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
RamonN
 Аватар для RamonN
32 / 32 / 11
Регистрация: 13.07.2011
Сообщений: 136
16.05.2014, 18:43     Структура "Государство". Блочный ввод-вывод #2
Что вы сделали на данный момент?
MargaritaS
0 / 0 / 0
Регистрация: 27.10.2013
Сообщений: 31
16.05.2014, 18:46  [ТС]     Структура "Государство". Блочный ввод-вывод #3
Пока ничего, так как не знаю как это делать.У нас не было этой темы, а на практике дали задание. Вообщем как говорится делайте как хотите,знаете не знаете не важно.
nmcf
4315 / 3736 / 1259
Регистрация: 14.04.2014
Сообщений: 14,642
16.05.2014, 19:05     Структура "Государство". Блочный ввод-вывод #4
Начни с описания структур.
MargaritaS
0 / 0 / 0
Регистрация: 27.10.2013
Сообщений: 31
16.05.2014, 19:23  [ТС]     Структура "Государство". Блочный ввод-вывод #5
Я написала вроде как описание структуры
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
#include <iostream.h>
#include <stdio.h>
#include <string.h>
struct Gosydarstvo 
{char nam[20];
 char stl[20];
 int ch;
 int pl;
};
char filename[]="data.dat"; 
FILE *f;
 
void vvod()  
 { Gosydarstvo ex;
   f=fopen(filename,"ab");
   cout << "\nNazvaniye:";
   cin >> ex.nam;
   cout << "\nStoliza:";
   cin >> ex.stl;
   cout << "\nChislennost naseleniya:";
   cin >> ex.Ch;
        cout << "\nPloshad:";
   cin >> ex.pl;
   fwrite(&ex,sizeof(Gosydarstvo),1,f);
   fclose(f);
 }
void vyvod()
 {
   Gosydarstvo ex;
   f=fopen(filename,"rb");
   while(!feof(f))
   {
   if(fread(&ex,sizeof(Gosydarstvo),1,f)==1)
    {
     cout << "\nNazvanie: " << ex.nam;
     cout << "\tStoliza: "<< ex.stl;
     cout << "\tChislennost naseleniya: "<< ex.ch<<'\n';
     cout << "\tPloshad: "<< ex.pl<<'\n';
    }
   }
   fclose(f);
 }
MargaritaS
0 / 0 / 0
Регистрация: 27.10.2013
Сообщений: 31
18.05.2014, 19:21  [ТС]     Структура "Государство". Блочный ввод-вывод #6
Цитата Сообщение от nmcf Посмотреть сообщение
Начни с описания структур.
Описала структуру,сделала удаление.Не знаю как сделать добавление помогите пожалуйста.
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
#include "stdafx.h"
#include <iostream>
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
using namespace std ; 
struct Gosydarstvo //объявление структуры
{char nam[20];
char stl[20];
int ch;
int pl;
};
char filename[]="data.dat"; //имя файла
char data1[]="data1.dat";
FILE *f;
FILE *f1;
void vvod() //функция дописывает в файл запись 
{ Gosydarstvo ex;
f=fopen(filename,"ab");
cout « "\nNazvaniye:";
cin » ex.nam;
cout » "\nStoliza:";
cin » ex.stl;
cout « "\nChislennost naseleniya:";
cin » ex.Ch;
cout « "\nPloshad:";
cin » ex.pl;
fwrite(&ex,sizeof(Gosydarstvo),1,f);
fclose(f);
}
void vyvod()//функция отображает все записи из файла
{
Gosydarstvo ex;
f=fopen(filename,"rb");
while(!feof(f))
{
if(fread(&ex,sizeof(Gosydarstvo),1,f)==1)//если прочитано
{
cout « "\nNazvanie: " « ex.nam;
cout « "\tStoliza: "« ex.stl;
cout « "\tChislennost naseleniya: "« ex.ch«'\n';
cout « "\tPloshad: "« ex.pl«'\n';
}
}
fclose(f);
}
void obrabotka() // Удалить все элементы, у которых численность меньше заданной
{ Gosydarstvo ex;
int ich;
cout«"Zadayte chislennost: ";
cin»ich;;
f1=fopen("data1.dat","a+");
f=fopen(filename,"rb");
while(!feof(f))
{
if(fread(&ex,sizeof(Gosydarstvo),1,f)==)
{
if(ex.ch < ich)
}
fwrite(&ex,sizeof(Gosydarstvo),1,f1);
}
}
}
fclose(f);
fclose(f1);
remove(filename);
rename("data1.dat",filename);
vvod();
vvod();
vvod();
}
vvod();
}
void main()
{ char otv;
if((f=fopen(filename,"rb"))==NULL)//если файла нет,
f=fopen(filename,"wb"); // то создадим его
fclose(f);
do 
{// «меню»
cout«"Vyberi dejstvie:\n";
cout«"\t1-Vvod dannyh\n";
cout«"\t2-Vyvod dannyh\n";
cout«"\t3-Obrabotka dannyh\n";
cout«"\t4-Vyhod\n";
cin » otv;
switch(otv)
{//выбор действия
case '1': vvod();break;
case '2': vyvod();break;
case '3': obrabotka();break;
}
}
while (otv!='4');
}//main
Yandex
Объявления
18.05.2014, 19:21     Структура "Государство". Блочный ввод-вывод
Ответ Создать тему
Опции темы

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