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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
kagan
2 / 2 / 0
Регистрация: 26.12.2011
Сообщений: 44
#1

Поменять поиск информации по класу (си++) - C++

22.03.2012, 01:34. Просмотров 358. Ответов 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
#include <stdio.h>
#include <conio.h>
#include <cstdlib>
#include <iostream>
#include <string.h>
 
using namespace std;
 
class computer
{  
  float ghz; int ozy; int year;int search;
  public:
  void vvod()  
  {
  cout << "Vvedit mochnost' procesora PK GHz:" << " ";
  cin >> ghz; cout << endl; 
  cout << "Vvedit OZY PK:" << " "; 
  cin >> ozy; cout << endl;  
  cout << "Vvedit rik vugotovlennya PK:" << " "; 
  cin >> year; cout << endl << endl;
  }
  void vuvod()
   {
       cout << "\tGhz=" << ghz << "\tOZY=" << ozy << "\tRik=" << year << endl;
   }
   void searc(int m)
   {
   search = m; if(search == year) vuvod();
   }
};    
      int main()
{
 int n;
     cout << "Vvedite kol-vo kompov v komnate: ";
     cin >> n; cout << endl;
     cout << "!!! Zadaite info pro PK !!!" << endl << endl;
        
        computer *a = new computer [n];
        for(int i = 0; i < n; i++)
        a[i].vvod();
         for(int i = 0; i < n;i ++)a[i].vuvod();
  int m;
         cout << "Zadayte RIK vupyska PK:" << endl;
         cin >> m;
         for(int i = 0; i < n; i++)
         a[i].searc(m);
  system("PAUSE");
  return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.03.2012, 01:34     Поменять поиск информации по класу (си++)
Посмотрите здесь:

C++ Поиск информации в файле и ее вывод
C++ поиск информации для изучения
C++ Реализовать ввод данных в структуру и поиск информации в ней
Расшифровка информации C++
C++ Поиск символа не могу переделать под поиск сочетания символов
Двумерный массив. Найти минимальный и поменять его с первым, найти максимальный и поменять его с последним C++
Поиск пикселя и поиск изображения на экране C++
C++ Получение информации об ОС
C++ Ввод информации в структуру и поиск элемента по информации, находящейся в этом же элементе
Ввод информации в структуру и поиск минимального элемента C++
C++ Ввод информации и вывод информации на экране
Доступ к пользовательскому класу по void указателю C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Kidasov
77 / 77 / 12
Регистрация: 02.12.2011
Сообщений: 966
Записей в блоге: 3
22.03.2012, 02:34     Поменять поиск информации по класу (си++) #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
#include <stdio.h>
#include <cstdlib>
#include <iostream>
#include <string.h>
 
using namespace std;
 
class computer
{  
  float ghz;
  int ozy; 
  int year;
  public:
    
  computer() { ghz = 0; ozy = year = 0; }
  void vvod()  
  {
    cout << "Vvedit mochnost' procesora PK GHz:" << " ";
    cin >> ghz; cout << endl; 
    cout << "Vvedit OZY PK:" << " "; 
    cin >> ozy; cout << endl;  
    cout << "Vvedit rik vugotovlennya PK:" << " "; 
    cin >> year; cout << endl << endl;
  }
  void vuvod()
  {
    cout << "\tGhz=" << ghz << "\tOZY=" << ozy << "\tRik=" << year << endl;
  }
  void searchComputer(float ghz = 0, int ozy = 0, int year = 0) 
  {
     if ( this->ghz == ghz ) { vuvod(); return ; }
     else if (this->ozy == ozy) { vuvod(); return ; }
     else if (this->year == year) { vuvod(); return ; }
  }
};    
int main()
{
 int n;
  cout << "Vvedite kol-vo kompov v komnate: ";
  cin >> n; cout << endl;
  cout << "!!! Zadaite info pro PK !!!" << endl << endl;
        
  computer *a = new computer [n];
  for(int i = 0; i < n; i++)
  a[i].vvod();
    
  for(int i = 0; i < n;i ++) a[i].vuvod();
  
  cout << "The result of the seraching" << endl;
  for (int i = 0; i < n; i++) {
    a[i].searchComputer(3.0, 2); //ищем компьютеры с частотой 3mhz  и 2 gb RAM
  }
  return 0;
}
kagan
2 / 2 / 0
Регистрация: 26.12.2011
Сообщений: 44
22.03.2012, 11:11  [ТС]     Поменять поиск информации по класу (си++) #3
спасибо)
ну есть пару вопросов:
1) что означает здесь this? И return не должно возвращать значения? else if (this->ozy == ozy) { vuvod(); return ;
2) обязательно 2 цикла одинаковых делать?
C++
1
2
3
for(int i = 0; i < n; i++)
  a[i].vvod();
  for(int i = 0; i < n;i ++) a[i].vuvod();
3) Здесь наверное вместо Ram, OZY имелось введу) это же получается поиск по двум критериям одновременно? т.е. если я в этой ф-ии укажу не 2 а три параметра (3.0, 2, 10) то будет искать по трем параметрам, и значение 10 - это будет год выпуска пк?
a[i].searchComputer(3.0, 2); //ищем компьютеры с частотой 3mhz и 2 gb RAM

Ещё раз спасибо что помогли!
panicwassano
591 / 559 / 20
Регистрация: 07.11.2010
Сообщений: 2,004
22.03.2012, 12:31     Поменять поиск информации по класу (си++) #4
1) 'это указатель на сам объект. Return может ничего не вовзращать(т.к. функция ничего не возвращает) используется для выхода из функции
2) где вы видите, что они одинаковые? один цикл ввод, второй вывод.
kagan
2 / 2 / 0
Регистрация: 26.12.2011
Сообщений: 44
22.03.2012, 16:04  [ТС]     Поменять поиск информации по класу (си++) #5
спасибо за ответ! Все разобрался)
Yandex
Объявления
22.03.2012, 16:04     Поменять поиск информации по класу (си++)
Ответ Создать тему
Опции темы

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