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

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

Восстановить пароль Регистрация
 
kagan
2 / 2 / 0
Регистрация: 26.12.2011
Сообщений: 44
22.03.2012, 01:34     Поменять поиск информации по класу (си++) #1
Доброй ночи, помогите пожалуйста сделать кое-какие изменения в програмке, буду благодарен)
Нужно изменить как-то по другому поиск по заданным критериям, и ещё можно одновременно задавать два-три критерия в поиске? А не один как, сделал я)

Цель задачи: Создать класс компьютер, и на его основе описать компьютерную аудиторию. Осуществить поиск по заданным(любым) параметрам, которые описаны в классе компьютер.
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;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Kidasov
76 / 76 / 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     Поменять поиск информации по класу (си++)
Ответ Создать тему
Опции темы

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