Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.86/7: Рейтинг темы: голосов - 7, средняя оценка - 4.86
Nika12
0 / 0 / 0
Регистрация: 14.05.2012
Сообщений: 67
1

Структуры. Очередь (вывести на экран фамилию человека,где номер телефона введен с клавиатуры)

27.02.2013, 14:21. Просмотров 1272. Ответов 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
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
#include <iostream>
#include <conio.h>
#include <stdio.h>
using namespace std;
// Описание структуры - динамического элемента        
struct Person //структура
{ 
char name[30]; //имя
int tel; //телефон
int birthday; //год рождения
   Person *next;};
 
// Ввод полей структуры 
void vvod (Person *tek)
{
cout<<"\nИнформация о человеке: ";
cout<<"\nВведите фамилию: ";
cin>>tek->name;
cout<<"\nВведите номер телефона: ";
cin>> tek->tel;
cout<<"\nВведите год рождения: ";
cin >> tek->birthday;  }
 
int main()
{
Person *nach, *kon, *tek, *old, *new_n; // Указатели на начало очереди, конец очереди,
                    // текущий элемент, старый элемент, новый элемент
char otvet='д';        // Признак продолжения ввода данных "д" - продолжить ввод,
                            // "н" - окончить ввод
nach=0;
kon=0;
setlocale(LC_ALL,"Russian");
do          // Создается очередь из динамических элементов
 {
 new_n=new Person;  // Выделяется память под новый динамический элемент,
            // адрес выделенной памяти записывается в new_n
 vvod (new_n);      // Вводится очередной динамический элемент
 new_n->next=0;     // Присваивается значение 0 указателю нового элемента
 if (nach)          // Если очередь не пуста, очередной элемент добавляется
                // в конец очереди
   {
   kon->next=new_n;
   kon=new_n;
    }
       else         // Если очередь пуста, начало и конец очереди будут указывать
            // на один и тот же элемент
       {
       nach=new_n;
       kon=new_n;
       }
   cout <<"\tБудете вводить данные ? (да=1)";
   cin>> otvet;
 }
 while (otvet=='1');
 
cout <<"\n Обработка очереди \t";
 tek=nach;
 while (tek)            // Пока очередь не пуста, выводим элементы на экран
                // и удаляем их из очереди
  {
      cout<<"\n\nИнформация очеловеке: ";
      cout<<"\nФамилия: "<<tek->name;
      cout<<"\nТелефон: "<<tek->tel;
      cout<<"\nГод рождения: "<<tek->birthday; 
old=tek;
   tek=tek->next;           // Переходим к следующему элементу очереди
   delete old;          // Очищаем память, которую занимал текущий элемент
   cout << "\n\t Обработан и удален";
  }
system("Pause");
getch();
}
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.02.2013, 14:21
Ответы с готовыми решениями:

Вывести на экран фамилию, имя и адрес учеников, у которых нет домашнего телефона
Известны данные о 25-ти учениках класса: фамилия, имя, отчество, адрес и домашний телефон, если он...

Вывести на экран информации о человеке, номер телефона которого введен с клавиатуры
Программа должна :Написать программу, выполняющую следующие действия: • ввод с клавиатуры данных в...

Структура: Вывод на экран информации о человеке, номер телефона которого введен с клавиатуры
1. Описать файл записей с именем note, содержащий следующие поля: фамилия, имя, номер телефона,...

Структуры: вывод на экран информации о поезде, номер которого введен с клавиатуры
Описать структуру с именем POEZD, содержащую следующие поля: название пункта назначения; номер...

Телефонный справочник: Получить информацию о владельце телефона, номер которого введен с клавиатуры
Имеется телефонный справочник, в котором записаны номер телефона, фамилия владельца и адрес....

1
Mysterion777
49 / 49 / 13
Регистрация: 11.01.2013
Сообщений: 198
27.02.2013, 14:43 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
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
#include <iostream>
 #include <conio.h>
 #include <stdio.h>
 using namespace std;
 // Îïèñàíèå ñòðóêòóðû - äèíàìè÷åñêîãî ýëåìåíòà 
 struct Person //ñòðóêòóðà
 { 
 char name[30]; //èìÿ
 int tel; //òåëåôîí
 int birthday; //ãîä ðîæäåíèÿ
 Person *next;};
 
 // Ââîä ïîëåé ñòðóêòóðû 
 void vvod (Person *tek)
 {
 cout<<"\nÈíôîðìàöèÿ î ÷åëîâåêå: ";
 cout<<"\nÂâåäèòå ôàìèëèþ: ";
 cin>>tek->name;
 cout<<"\nÂâåäèòå íîìåð òåëåôîíà: ";
 cin>> tek->tel;
 cout<<"\nÂâåäèòå ãîä ðîæäåíèÿ: ";
 cin >> tek->birthday; }
 
 void vivod (Person *nach,Person *tek,int a){
      tek=nach;int k=0;
      while (tek) // Ïîêà î÷åðåäü íå ïóñòà, âûâîäèì ýëåìåíòû íà ýêðàí
 // è óäàëÿåì èõ èç î÷åðåäè
 {
 
 if(tek->tel==a){
 cout<<"\nÔàìèëèÿ c òàêèì íîìåðîì òåëåôîíà íàéäåíà: "<<tek->name;
 k=1;}
 tek=tek->next; // Ïåðåõîäèì ê ñëåäóþùåìó ýëåìåíòó î÷åðåäè
 
 }
  if(k==0)  cout<<"\nÔàìèëèÿ c òàêèì íîìåðîì òåëåôîíà íå íàéäåíà"; 
      }
 int main()
 {
 Person *nach, *kon, *tek, *old, *new_n; // Óêàçàòåëè íà íà÷àëî î÷åðåäè, êîíåö î÷åðåäè,
 // òåêóùèé ýëåìåíò, ñòàðûé ýëåìåíò, íîâûé ýëåìåíò
 char otvet='ä'; // Ïðèçíàê ïðîäîëæåíèÿ ââîäà äàííûõ "ä" - ïðîäîëæèòü ââîä,
 // "í" - îêîí÷èòü ââîä
 nach=0;
 kon=0;
 setlocale(LC_ALL,"Russian");
 do // Ñîçäàåòñÿ î÷åðåäü èç äèíàìè÷åñêèõ ýëåìåíòîâ
 {
 new_n=new Person; // Âûäåëÿåòñÿ ïàìÿòü ïîä íîâûé äèíàìè÷åñêèé ýëåìåíò,
 // àäðåñ âûäåëåííîé ïàìÿòè çàïèñûâàåòñÿ â new_n
 vvod (new_n); // Ââîäèòñÿ î÷åðåäíîé äèíàìè÷åñêèé ýëåìåíò
 new_n->next=0; // Ïðèñâàèâàåòñÿ çíà÷åíèå 0 óêàçàòåëþ íîâîãî ýëåìåíòà
 if (nach) // Åñëè î÷åðåäü íå ïóñòà, î÷åðåäíîé ýëåìåíò äîáàâëÿåòñÿ
 // â êîíåö î÷åðåäè
 {
 kon->next=new_n;
 kon=new_n;
 }
 else // Åñëè î÷åðåäü ïóñòà, íà÷àëî è êîíåö î÷åðåäè áóäóò óêàçûâàòü
 // íà îäèí è òîò æå ýëåìåíò
 {
 nach=new_n;
 kon=new_n;
 }
 cout <<"\tÁóäåòå ââîäèòü äàííûå? (äà=1)";
 cin>> otvet;
 }
 while (otvet=='1');
 
 cout <<"\n Îáðàáîòêà î÷åðåäè \t";
 tek=nach;
 while (tek) // Ïîêà î÷åðåäü íå ïóñòà, âûâîäèì ýëåìåíòû íà ýêðàí
 // è óäàëÿåì èõ èç î÷åðåäè
 {
 cout<<"\n\nÈíôîðìàöèÿ î÷åëîâåêå: ";
 cout<<"\nÔàìèëèÿ: "<<tek->name;
 cout<<"\nÒåëåôîí: "<<tek->tel;
 cout<<"\nÃîä ðîæäåíèÿ: "<<tek->birthday; 
 //old=tek;
 tek=tek->next; // Ïåðåõîäèì ê ñëåäóþùåìó ýëåìåíòó î÷åðåäè
 //delete old; // Î÷èùàåì ïàìÿòü, êîòîðóþ çàíèìàë òåêóùèé ýëåìåíò
 //cout << "\n\t Îáðàáîòàí è óäàëåí";
 }
 
{
  cout <<"\nÕîòèòå âåñòè ïîèñê ïî íîìåðó òåëåôîíà? (äà=1)";
  cin>> otvet;
              if(otvet=='1'){
             cout <<"\nÂâåäèòå íîìåð òåëåôîíà";
             int a;
             cin >> a;
             vivod(nach,tek,a);}
            } while(otvet=='1');
 system("Pause");
 getch();
 }
2
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.02.2013, 14:43

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Нужно заменить фамилию Sidorov на Popov, где номер телефона начинается с цифры 7
Дано задание - нужно заменить фамилию Sidorov на Popov, где номер телефона начинается с цифры 7....

Вывести элемент списка номер которого введен с клавиатуры
Вывести элемент списка номер которого введен с клавиатуры

Вывести на экран фамилию, имя и адрес учеников у которых нет телефона
известны данные о двадцати пяти учениках класса - фамилия,имя,отчество,адрес и домашний телефое...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.