Четверг, 09.01.2025, 10:31
Главная Регистрация RSS поиск
Приветствую Вас, Гость
Меню сайта
Категории раздела
HTML [44]
Visual C++ и MFC [21]
c++ [78]
php [19]
Javascript [15]
C# [51]
загрузки [0]
XNA [10]
создание игр с помощью xna
Наш опрос
Каким языком программирования вы увлекаетесь
Всего ответов: 2420
Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0
Реклама
Главная » Статьи » c++

Пример #1 на использование структур

Создайте структуру которая содержала бы следующую информацию о студентах: Фамилия, Имя, Возраст, Адрес, Телефон (если телефон отсутствует, то значение ноль). Организуйте ввод данных о 7 студентах и вывод фамилии и имени всех студентов у которых телефон начинается с 5.

Проведем анализ условия задачи. Необходимо организовать ввод информации о нескольких человеках (следовательно будем использовать массив для хранения данных о нескольких человеках), произвести поиск в массиве по заданому критерию (Телефон начинается с 5). Чтобы не усложнять самим себе задачу, для Телефона будем использовать символьный массив.

Таким образом, нам необходимо реализовать в программе следующие этапы: ввод данных в массив, поиск по критерию, вывод результата.

Ниже приведена реализация сказанного выше на С++ с дополнительными комментариями по ходу программы.

#include <iostream.h>

void main()
{
 const int col=3; //количество студентов можно изменять здесь
 struct {
 char lastname[20], firstname[15], phone[7];
 int age;
 } students[col]; 

/*создали структуру и тут же объявили массив, каждый 
элемент которого представляет собою описанную выше структуру*/
 cout << "\nEnter data\n"; /*сообщаем пользователю, что 
 он должен ввести данные */

 for (int i=0; i < col; i++)
 { //производим ввод данных
 cout << "Surname is "; 
 cin >> students[i].lastname;
 
 cout << "Name is "; 
 cin>>students[i].firstname;
 
 cout << "Age is "; 
 cin >> students[i].age;

 cout << "Phone is "; 
 cin >> students[i].phone;
 cout << endl;
 }

 cout << "PC had found next records...\n";
 //были найдены следующие записи
 for (i=0; i < col; i++)
 {
 if (students[i].phone[0]=='5') /* действительно ли 
 телефон начинается с 5? */
 {
 cout << "\nSurname: " 
 << students[i].lastname; //таки да, такая запись есть

 cout << "\nName: " << students[i].firstname 
 << "\n"; //значит выведем ее
 };
 }
}

Протокол выполнения программы
Enter data

Surname is Petrov
Name is Ivan
Age is 15
Phone is 515252

Surname is Ivanov
Name is Petr
Age is 16
Phone is 242424

Surname is Pronin
Name is Roman
Age is 21
Phone is 515151

PC had found next records...

Surname: Petrov
Name: Ivan

Surname: Pronin
Name is Roman

Замечание к задаче: Как Вы думаете, что и почему произойдет, если заменить

cout << "\nSurname: " << students[i].lastname; 

на 

cout << "\nSurname: " << students[i];
Категория: c++ | Добавил: slava (30.05.2011)
Просмотров: 3828 | Рейтинг: 5.0/1
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]