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

Не выводит список введенный с клавиатуры - C++

Восстановить пароль Регистрация
 
Valera1984
1 / 1 / 0
Регистрация: 02.02.2014
Сообщений: 104
25.02.2014, 11:57     Не выводит список введенный с клавиатуры #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
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
#include"stdafx.h"
#include"iostream"
#include"conio.h"
 
using namespace std;
 
struct Data         
    {
        unsigned day;       
        unsigned month;     
        unsigned year;
    };
 
struct T_sport
    {
        char fio[40];
        Data d_birth;
        unsigned v_CSKA ;
        char MestoVkomande [20];
        char Sostav [20];
        
}; 
 
 
class sport
{
private: 
   T_sport list [100];
public:
    sport()
    {
        T_sport a ={"Ivanov I. I.",3,1,1984,2000,"Defender","Reserve"}; 
        list[0]=a;
        T_sport b ={"Petrov A.A.",8,12,1987,2002, "Forward","Main"};
        list[1]=b;
        
        
    
    }
    T_sport vvod_struc(int i)
    //void vvod_struc(int i) 
   {
    T_sport a; 
    char c;
    cout<<endl<<"Enter data "<< i+1 <<" person\n";
    cout<<" fio ";
    cin.getline(a.fio,40);
    cout<<endl<<"Enter date of birthday: \n";
    cout<<" day (1-31) ";
    cin>>a.d_birth.day;
    cin.get(c);
    cout<<" month (1-12)";
    cin>>a.d_birth.month;
    cin.get(c);
    cout<<" year ";
    cin>>a.d_birth.year;
    cin.get(c);
    cout<<" v_CSKA ";
    cin>>a.v_CSKA;
    cin.get(c);
    cout<<" MestoVkomande ";
    cin.getline(a.MestoVkomande,20);
    cout<<" Sostav ";
    cin.getline(a.Sostav,20);
    //list[i] = a;
 
    return a;
   }
    void wr_struc (int i )
    {
        printf("%20s ! %2d.%2d.%4d ! %4d ! %15s ! %15s\n",list[i].fio,list[i].d_birth.day,list[i].d_birth.month,list[i].d_birth.year,list[i].v_CSKA,list[i].MestoVkomande,list[i].Sostav);
    }
 
 
    void find_fav()
  {
    char osn_sostav[20] = "Main";
    char attack[20] = "Forward";
    cout<<"Osnovnoii Sostav: "<<endl;
    for(int i = 0; i< 5; i++)
      
      {
 
 
          
    if (!strcmp(list[i].Sostav,osn_sostav) && !strcmp(list[i].MestoVkomande,attack) )
        
    printf("%20s!%2d.%2d.%4d \n",list[i].fio,list[i].d_birth.day,list[i].d_birth.month,list[i].d_birth.year);
    
      }
  
    }
 
};
 
int main()
{
 
    sport f;
    for(int i = 2; i < 5; i++)
    {   
        f.vvod_struc(i);
    };
    cout<<"\nlist of structs\n!      fio           !  year of birth    !  in command     !  Mesto v Komande  !\n";
    for(int i = 0; i < 2; i++)
    {
        f.wr_struc(i);
    }
    f.find_fav();
    _getch();
 
    return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.02.2014, 11:57     Не выводит список введенный с клавиатуры
Посмотрите здесь:

C++ Программа добавляет введенный массив 5*5 в стек и выводит полученный стек двумя столбцами
Проверить, является ли введенный с клавиатуры символ знаком препинания C++
C++ Определить количество элементов последова-тельности, не попадающих во введенный с клавиатуры интервал
C++ подскажите, как правильно составить алгоритм (многострочный текст, введенный с клавиатуры, преобразовать следующим образом:)
Дан одномерный массив,введенный с клавиатуры C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Тамика
Котовчанин
 Аватар для Тамика
859 / 439 / 129
Регистрация: 16.02.2010
Сообщений: 2,538
Записей в блоге: 27
25.02.2014, 14:19     Не выводит список введенный с клавиатуры #2
Могу ошибаться, но ведь Вы и говорите программе выводить "первых двух игроков".
C++
1
2
3
4
    for(int i = 0; i < 2; i++)
    {
        f.wr_struc(i);
    }
Valera1984
1 / 1 / 0
Регистрация: 02.02.2014
Сообщений: 104
25.02.2014, 14:54  [ТС]     Не выводит список введенный с клавиатуры #3
Тамика, Нет я с начало говорю вывести
C++
1
2
3
4
for(int i = 2; i < 5; i++)
    {   
        f.vvod_struc(i);
    };
Тамика
Котовчанин
 Аватар для Тамика
859 / 439 / 129
Регистрация: 16.02.2010
Сообщений: 2,538
Записей в блоге: 27
25.02.2014, 15:24     Не выводит список введенный с клавиатуры #4
А где в функции vvod Вы листу значения присваиваете?
Valera1984
1 / 1 / 0
Регистрация: 02.02.2014
Сообщений: 104
25.02.2014, 15:33  [ТС]     Не выводит список введенный с клавиатуры #5
Тамика, А как его присвоить?
Тамика
Котовчанин
 Аватар для Тамика
859 / 439 / 129
Регистрация: 16.02.2010
Сообщений: 2,538
Записей в блоге: 27
25.02.2014, 15:49     Не выводит список введенный с клавиатуры #6
Попробуйте расскомментировать строку list[i] = a;
И сделать функцию воидной.
Valera1984
1 / 1 / 0
Регистрация: 02.02.2014
Сообщений: 104
25.02.2014, 16:00  [ТС]     Не выводит список введенный с клавиатуры #7
Тамика, Так дела...

Добавлено через 4 минуты
Тамика, Все получилось нашел ошибку вывода...
Тамика
Котовчанин
 Аватар для Тамика
859 / 439 / 129
Регистрация: 16.02.2010
Сообщений: 2,538
Записей в блоге: 27
25.02.2014, 16:16     Не выводит список введенный с клавиатуры #8
И какая?
Valera1984
1 / 1 / 0
Регистрация: 02.02.2014
Сообщений: 104
25.02.2014, 16:19  [ТС]     Не выводит список введенный с клавиатуры #9
Тамика, Во первых вот эта
C++
1
2
3
4
for(int i = 0; i < 2; i++)
    {
        f.wr_struc(i);
    }
во вторых
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
void vvod_struc(int i) 
   {
    T_sport a; 
    char c;
    cout<<endl<<"Enter data "<< i+1 <<" person\n";
    cout<<" fio ";
    cin.getline(a.fio,40);
    cout<<endl<<"Enter date of birthday: \n";
    cout<<" day (1-31) ";
    cin>>a.d_birth.day;
    cin.get(c);
    cout<<" month (1-12)";
    cin>>a.d_birth.month;
    cin.get(c);
    cout<<" year ";
    cin>>a.d_birth.year;
    cin.get(c);
    cout<<" v_CSKA ";
    cin>>a.v_CSKA;
    cin.get(c);
    cout<<" MestoVkomande ";
    cin.getline(a.MestoVkomande,20);
    cout<<" Sostav ";
    cin.getline(a.Sostav,20);
    list[i] = a;
 
    //return a;
   }
Тамика
Котовчанин
 Аватар для Тамика
859 / 439 / 129
Регистрация: 16.02.2010
Сообщений: 2,538
Записей в блоге: 27
25.02.2014, 16:24     Не выводит список введенный с клавиатуры #10
Цитата Сообщение от Valera1984 Посмотреть сообщение
for(int i = 0; i < 2; i++)
* * {
* * * * f.wr_struc(i);
* * }
А что здесь изменилось?о_О

Добавлено через 39 секунд
А, я еще и не заметила Вашу точку с запятой после for. )))))))
Valera1984
1 / 1 / 0
Регистрация: 02.02.2014
Сообщений: 104
25.02.2014, 16:31  [ТС]     Не выводит список введенный с клавиатуры #11
Тамика, Точнее вот так а, на точку с запятой компилятор не ругался .... все выводил...
C++
1
2
3
4
for(int i = 0; i < 5; i++)
    {
        f.wr_struc(i);
    }
Тамика
Котовчанин
 Аватар для Тамика
859 / 439 / 129
Регистрация: 16.02.2010
Сообщений: 2,538
Записей в блоге: 27
25.02.2014, 16:33     Не выводит список введенный с клавиатуры #12
Цитата Сообщение от Valera1984 Посмотреть сообщение
Тамика, Точнее вот так а, на точку с запятой компилятор не ругался .... все выводил...

Советую сменить компилятор.
Valera1984
1 / 1 / 0
Регистрация: 02.02.2014
Сообщений: 104
25.02.2014, 16:36  [ТС]     Не выводит список введенный с клавиатуры #13
Тамика, А как записать условие в принципе то же самое только используя не классы а списки

Код
if (!strcmp(list[i].Sostav,osn_sostav) && !strcmp(list[i].MestoVkomande,attack) )
Код программы
Код
#include"stdafx.h"
#include"iostream"
#include"conio.h"

using namespace std;

struct Data 		
	{
		unsigned day; 		
		unsigned month;		
		unsigned year;
	};

struct T_sport
	{
		char fio[40];
		Data d_birth;
		unsigned v_CSKA ;
		char MestoVkomande [20];
		char Sostav [20];
		
}; 

struct List
{
	T_sport sport;
	List *next;
};

class main_n
{
private:
	List *head;
public:
	main_n()
	{
		head = NULL;
		List *node1 = new List;
		T_sport a ={"Ivanov I. I.",3,1,1984,2000,"Defender","Reserve"}; 
		node1->sport = a;
		node1->next = head;
		head = node1;
		List *node2 = new List;
		T_sport b ={"Petrov A.A.",8,12,1987,2002, "Forward","Main"};
		node2->sport = b;
		node2->next = head;
		head = node2;
	}

	void insert_before()
	{
		T_sport a; 
	char c;
	cout<<endl<<"Enter data person\n";
	cout<<" fio ";
	cin.getline(a.fio,40);
	cout<<endl<<"Enter date of birthday: \n";
	cout<<" day (1-31) ";
	cin>>a.d_birth.day;
	cin.get(c);
	cout<<" month (1-12)";
	cin>>a.d_birth.month;
	cin.get(c);
	cout<<" year ";
	cin>>a.d_birth.year;
	cin.get(c);
	cout<<" v_CSKA ";
	cin>>a.v_CSKA;
	cin.get(c);
	cout<<" MestoVkomande ";
	cin.getline(a.MestoVkomande,20);
	cout<<" Sostav ";
	cin.getline(a.Sostav,20);


		List *node = new List;
		node->sport = a;
		node->next = head;
		head = node;
	}

	void print_list()
	{
		printf("[ ");
		List *node = head;
		while(node != NULL)
		{
		 printf("%20s ! %2d.%2d.%4d ! %4d ! %15s ! %15s\n",node->sport.fio,node->sport.d_birth.day,node->sport.d_birth.month,node->sport.d_birth.year,node->sport.v_CSKA,node->sport.MestoVkomande,node->sport.Sostav);
		 node = node->next;
		}

		printf("]\n");
	}

	void find_fav()
	{
		List *node = head->next;
		List *current_node = head;
		

		while(node != NULL)
		{
			//if (node->sport.Sostav == current_node && node->sport.MestoVkomande=="Forward") 
       if (!strcmp(node->sport.Sostav,current_node))// && !strcmp(list[i].MestoVkomande,attack) )
			
		    printf("%20s!%2d.%2d.%4d \n",current_node->sport.fio,current_node->sport.d_birth.day,current_node->sport.d_birth.month,current_node->sport.d_birth.year);
			//current_node = node;
			node = node->next;
			
			
		}
		
      

		
	}
};

int main()
{
	
	main_n f;
	for(int i = 2; i < 5; i++)
	{ 	
		f.insert_before();
	};
	cout <<"\nlist of structs\n!      fio           !  facul\'tet !  kurs   !\n";
	f.print_list();
	f.find_fav();
	_getch();

	return 0;
}
Тамика
Котовчанин
 Аватар для Тамика
859 / 439 / 129
Регистрация: 16.02.2010
Сообщений: 2,538
Записей в блоге: 27
25.02.2014, 16:41     Не выводит список введенный с клавиатуры #14
Пресвятые угодники и Тесла, моя студия тоже, оказывается, скомпилировала фор с точкой и запятой. о_О
Моя жизнь более не будет прежней...
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.02.2014, 16:45     Не выводит список введенный с клавиатуры
Еще ссылки по теме:

C++ Написать программу которая проверяет введенный с клавиатуры массив имеющий возрастающую последовательность
C++ Отсортировать массив, введенный с клавиатуры
C++ Ввести с клавиатуры символ (в переменную char) и определить, соответствует ли введенный символ 'Q' или 'q'

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

Или воспользуйтесь поиском по форуму:
Valera1984
1 / 1 / 0
Регистрация: 02.02.2014
Сообщений: 104
25.02.2014, 16:45  [ТС]     Не выводит список введенный с клавиатуры #15
Тамика, И у меня тоже студия...
Yandex
Объявления
25.02.2014, 16:45     Не выводит список введенный с клавиатуры
Ответ Создать тему
Опции темы

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