Имя пользователя:
Пароль:
 

Показать сообщение отдельно

Аватара для virus8

Пользователь


Сообщения: 63
Благодарности: 4

Профиль | Отправить PM | Цитировать


Все разобрался - как раз тему читал про структуры. Сделал для себя великое открытие, что kniga и так является указателем на структуру KNIGA))))))).
ferget спасибо большое за помощь!!!
Если кому нужно вот код:
читать дальше »
Код: Выделить весь код
#include <iostream>
#include <cstring>

using namespace std;

typedef struct {
	char firstname[15],
		lastname[20];
	char address[40];
	int phone;
}KNIGA;

KNIGA kniga[50];

inline void menu();
inline void search(KNIGA *ptr, int k_abon);
inline void vivod(KNIGA *ptr, int i);
inline void searchB(KNIGA *ptr, int k_abon);

int main()
{



cout << "\t\tTelefonniy spravochnik\n";
int k_abon;
cout << "Vvedite kol-vo abonentov: ";
cin >> k_abon;
cout << endl;

for(int i = 0; i < k_abon; i++)
{
cin.ignore(numeric_limits<streamsize>::max(), '\n');
cout << "Vvedite imya:\t";
cin >> kniga[i].firstname;
cout << "Vvedite familiyu: ";
cin >> kniga[i].lastname;
cin.ignore(numeric_limits<streamsize>::max(), '\n');
cout << "Vvedite address: ";
cin.getline(kniga[i].address, 40);
cout << "Vvedite telefon:";
cin >> kniga[i].phone;
cout << endl;
}

for(int i = 0; i < k_abon; i++) // вывод введенного
{
cout << kniga[i].firstname << " " << kniga[i].lastname << " " << kniga[i].address << " " << kniga[i].phone << "\n";
}

int Menu;
do
{
menu();
cin >> Menu;

switch(Menu)
{

case 1: // поиск по фамилии
search(kniga, k_abon);
break;

case 2: // вывод всех абонентов по первой букве алфавита
	searchB(kniga, k_abon);
break;

case 3: // вывод всех абонентов
vivod(kniga, k_abon);
break;
}


} while(Menu > 1 || Menu < 3);
return 0;
}

inline void menu()
{
cout << "\t\tMenu\n"
<< "\n1) Poisk telefona po familii"
<< "\n2) Vivod abonentov po pervoy bukve familii"
<< "\n3) Vivod vsex abonentov\n";
}

inline void vivod(KNIGA *ptr, int k_abon)
{
for(int i = 0; i < k_abon; i++)
{
	cout << ptr[i].firstname << " "
<< ptr[i].lastname << " "
<< ptr[i].address << " "
<< ptr[i].phone << "\n";
}
}

inline void search(KNIGA *ptr, int k_abon)
{
char Slastname[20];
cout << "Vvedite familiyu\t";
cin >> Slastname;
for(int i = 0; i < 50; i++)
{
if(!strcmp(ptr[i].lastname, Slastname))
{
cout << "Telefon: " << ptr[i].phone << endl;
break;
}
}
} 
inline void searchB(KNIGA *ptr, int k_abon) // поиск всех абонентов по букве
{
	char Flastname;
cout << "Vvedite pervuyu bukvu\t";
cin >> Flastname;
for(int i = 0; i < k_abon; i++)
{
if(kniga[i].lastname[0] == Flastname)
cout << kniga[i].firstname << " "
<< kniga[i].lastname << " "
<< kniga[i].phone << " "
<< kniga[i].address << "\n";
}

}

Последний раз редактировалось virus8, 15-02-2012 в 20:41.


Отправлено: 16:15, 15-02-2012 | #10