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

Фильтрация данных в структуре - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Строки http://www.cyberforum.ru/cpp-beginners/thread585541.html
-удалить все символы ‘-‘ и удвоить все символы ‘&’;
C++ WinInet InternetReadFile() и мусор Читаю интернет странички через WinInet InternetReadFile() следующим образом: do { // for (size_t i = 0; i < (sizeof(cBuffer) / sizeof(char)); ++i) cBuffer = '\0'; // Отрубаем мусор bResult = InternetReadFile( hURL, // handle to URL (LPSTR)cBuffer, // pointer to buffer (char cBuffer;) sizeof(cBuffer)/* - 1*/, // size of buffer, "- 1" - оставляем место... http://www.cyberforum.ru/cpp-beginners/thread585538.html
C++ Структуры. Функции
Помогите очень срочно нужно сделать это задание!!! Описать тип struct Complex, задающий комплексное число с действительной частью Re и мнимой частью Im. Реализовать в виде отдельных функций а) операцию вычисления модуля комплексного числа; б) операцию вычисления аргумента комплексного числа; в) операцию вычисления k-го корня n-й степени из заданного комплексного числа; операции...
структуры данных. сортировка однонаправленного списка C++
значит так, есть вот эта программа: #include <stdio.h> #include <conio.h> #include <math.h> struct spisok { int info; spisok *link; }; spisok *first=NULL;
C++ С++, Составить программу поиска элемента массива http://www.cyberforum.ru/cpp-beginners/thread585504.html
2. Задан числовой массив А. Составить программу поиска элемента массива, который является одновременно наименьшим в строке и наименьшим в своем столбце. Вывести номер столбца и строки, если такой элемент есть и 0 если нет. Заранее спасибо, язык С++
C++ В матрице разместить все строки по возрастанию суммы цифр в каждой строке В двумерном массиве разместить все строки по возрастанию суммы цифр в каждой строке подробнее

Показать сообщение отдельно
cruzel
0 / 0 / 0
Регистрация: 20.02.2012
Сообщений: 18

Фильтрация данных в структуре - C++

24.05.2012, 17:51. Просмотров 279. Ответов 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
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
#include <stdio.h>
int Nmenu = 5;
char filename[]="bd.dat";
struct record {
char fam[20];
char ima[20];
int bi,bu;
};
 
int menu(){
int otvet;
printf("----====MENU====------\n");
printf("1 Sozdat' bazy dannix\n");
printf("2 Dobavit' zapis\n");
printf("3 Prosmotr vsex zapisey\n");
printf("4 Poisk\n");
printf("0 Vixod\n");
 
printf("Vash vibor:");
scanf( "%d",&otvet);
    return otvet;
}//menu
 
int testbd(){
FILE *f;
if (f=fopen(filename,"r")) 
  {fclose(f); return 1;}
else return 0;
}//testbd
 
void sozdat(){
FILE *f;
if (testbd()==1)
  {printf("Baza dannix %s yje suhestvyet!\n",filename);}
else
   {f=fopen(filename,"w"); fclose(f);}
}//sozdat
 
void dobavit(){
FILE *f;
record rec;
if (testbd()==1){
  printf("Strana:"); scanf("%s",&rec.fam);
  printf("Stolica:"); scanf("%s",&rec.ima);
  printf("Naselenie:"); scanf("%d",&rec.bi);
  printf("Ploshad':"); scanf("%d",&rec.bu);
  f=fopen(filename,"ab");
  fwrite(&rec,sizeof rec, 1, f);
  fclose(f);}
else printf("Sozdat' bazy dannix!!!\n");
}//dobavit
 
void pokazat(){
FILE *f;
record rec;
if (testbd()==1){
f=fopen(filename,"rb");
printf("\t\tStrana \t\t Stolica \t\t Naselenie\t Ploshad' \n");
while (!feof(f)) {
 if(fread(&rec,sizeof rec, 1, f)==1){
   printf("%25s  %25s  %8d   %8d \n",rec.fam, rec.ima, rec.bi, rec.bu);
 };
};
fclose(f);}
else printf("Sozdaite bazy dannix!!!\n");
}//pokazat
 
void poisk(){
FILE *f;
record rec;
double key,srb;
if (testbd()==1){
   printf("Vvesti nyjnyu plotnost' naseleniya:"); 
   scanf("%f",&key);
 
   f=fopen(filename,"rb");
   printf("\t\tStrana \t\t Stolica \t\t Plotnost' naseleniya\n");
   while (!feof(f)) {
     if(fread(&rec,sizeof rec, 1, f)==1){
        srb=(rec.bi+rec.bu)/2;
         if (srb>=key) printf("%25s  %25s  %f \n",rec.fam, rec.ima, srb);
     };
   };
 
   fclose(f);}
else printf("Sozdat' bazy dannix!!!\n");
}//poisk
void main(){
int vybor=0;
do{
    vybor=menu();
    switch(vybor){
      case 1: sozdat();break;
      case 2: dobavit(); break;
      case 3: pokazat(); break;
      case 4: poisk(); break;
      default: printf( "Vibranno:%d \n", vybor);
    }
    
}while (vybor!=0);
}//main
Не работает эта часть кода:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
void poisk(){
FILE *f;
record rec;
double key,srb;
if (testbd()==1){
   printf("Vvesti nyjnyu plotnost' naseleniya:"); 
   scanf("%f",&key);
 
   f=fopen(filename,"rb");
   printf("\t\tStrana \t\t Stolica \t\t Plotnost' naseleniya\n");
   while (!feof(f)) {
     if(fread(&rec,sizeof rec, 1, f)==1){
        srb=(rec.bi+rec.bu)/2;
         if (srb>=key) printf("%25s  %25s  %f \n",rec.fam, rec.ima, srb);
     };
   };
 
   fclose(f);}
else printf("Sozdat' bazy dannix!!!\n");
}//poisk
Не зависимо от числа выводит все страны, которые есть. Надеюсь на вашу помощь
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru