Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 07.06.2010, 15:29   #1
Krabby)
Новичок
Джуниор
 
Аватар для Krabby)
 
Регистрация: 07.06.2010
Сообщений: 1
По умолчанию Нерабочая структура(

Код:
#include <iostream>
#include <math.h>
#include <locale.h>
#include <stdio.h>
#include <string.h>
#include <conio.h>
#include <time.h>
#include <stdlib.h>
#include <iomanip>
#include <ctype.h>
#define number 8
using namespace std;
struct  znzd{
	char fio[20];
	char zn[10];
	int data[3];
		}znak[number];
    void poryadok(znzd*dop,int col);
	void info(znzd*dop,int col);
	void chet(znzd*dop,int col);
	int dop,min,j,i,a,kolznaka;
void main()
{
    int menu;
	setlocale(LC_ALL,"Russian_Russia.1251");
	int i=0;
	int col=0;
	int a=0;
	int j=0;
    int kolznaka=0;
	{
	int min,i,j;
	znzd znak[number];
	cout<<"Введите Фамилию Имя Отчество ";
    fflush(stdin);
	while(cin.getline(znak[col].fio,20))
		if(strcmp(znak[col].fio,"#")!=0 && col<number)
		{			
				cout<<"  Введите знак зодиака   ";
				cin>>znak[col].zn;
				cout<<"  Введите дату рождения  ";
				cin>> znak[col].data[0];
				cin>>znak[col].data[1];
				cin>>znak[col].data[2];
			cout<<"Введите Фамилию Имя Отчество ";
			col++;fflush(stdin);
			}else break;
	}
    while(1)
	{
		cout<<"\n\t\t\t"<<"Меню \n";
		cout<<"1.Упорядоченность по датам рождения \n";
        cout<<"2.Вывод на экран информации о человеке, чья фамилия введена с клавиатуры \n";
        cout<<"3.Подсчитать количество людей, принадлежащих каждому знаку Зодиака\n";
		cout<<"4.exit \n";
		cout<<"\n  Выберите пункт -> ";
		cin>>menu;
		switch (menu)
		{
		case 1:poryadok(znak, col);break;
		case 2:info(znak, col);break;
		case 3:chet(znak, col);break;
		case 4:exit(0);
       default:cout<<"\n\t Введите еще раз"<<"\n";
		}

     }
}

	// для порядка
    void poryadok(znzd*dop,int col)
	{ 
	int min;
	cout<<"\n\t\tУпорядоченность по дате рождения \n";
	for (i=0;i<col;i++)
	{
		min=i;
		for (j=i+1;j<col;j++)
		{
			if (znak[j].data[2] < znak[min].data[2])
			    min=j;
			else if(znak[j].data[1]<znak[min].data[1])
				min=j;
			else if (znak[j].data[0]<znak[min].data[0])
				min=j;
			znzd dop=znak[i];
			znak[i]=znak[min];
			znak[min]=dop;
		}
	}
    cout<<"\tФамилия "<<"\tЗнак Зодиака"<<"\t Дата рождения"<<endl;
	cout<<"__________________________________________________________"<<endl;
	for (i=0;i<col;i++)
	{	
		cout<<"\t"<<znak[i].fio<<"\t\t"<<znak[i].zn<<"\t\t"<<znak[i].data[0]<<"."<<znak[i].data[1]<<"."<<znak[i].data[2]<<"\n"<<endl;
	}
	}
	// для инфо
    void info(znzd*dop,int col)
	{
    a=0;
	i=0;
		int min,i,j;
	znzd znak[number];
	cout<<"Введите Фамилию Имя Отчество ";
    fflush(stdin);
	while(cin.getline(znak[col].fio,20))
		if(strcmp(znak[col].fio,"#")!=0 && col<number)
		{			
				cout<<"  Введите знак зодиака   ";
				cin>>znak[col].zn;
				cout<<"  Введите дату рождения  ";
				cin>> znak[col].data[0];
				cin>>znak[col].data[1];
				cin>>znak[col].data[2];
			cout<<"Введите Фамилию Имя Отчество ";
			col++;fflush(stdin);
			}else break;
    char familia[20];
	cout<<" Введите фамилию человека,о котором хотите получить -> ";cin>>familia;
	for (i=0;i<col;i++)
	{
		if (strstr(znak[i].fio,familia))
		{
			cout<<znak[i].fio<<" Знак зодиака: "<<znak[i].zn<<"  Дата рождения: "<<znak[i].data[0]<<"."<<znak[i].data[1]<<"."<<znak[i].data[2]<<"\n";
			a=1;
		}
	}
	if (a==0) 
		cout<<"Такого человека нет"<<endl;
	}

	// для счета
	void chet(znzd*dop,int col)
	{ 
	   char znaki[10];
       cout<<"\n\tПодсчет количества людей,принадлежащих каждому знаку Зодиака "<<endl;
	   j=0;
	   do
	   {
       kolznaka=0;
       cout<<"Введите знак и вы получите количество людей,принадлежащих этому знаку  ";
	   cin>>znaki;
	   for (int i=0;i<col;i++)
	   {
            if (strstr(znak[i].zn,znaki))
			kolznaka++;
		   }
	   cout<<"Количество людей этого знака: "<<kolznaka<<"\n";
	   if(kolznaka==0) break;
	   } while(j<col);
	}
Не понимаю,почему не исполняет программы в функциях poryadok,info,
chet.Объясните ,пожалуйста,чего не хватает.
Krabby) вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Структура Telec Помощь студентам 2 20.01.2010 12:46
C++. Структура. bpystep Помощь студентам 12 24.11.2009 00:28
Структура IF в С++ lebrosha Помощь студентам 3 22.05.2009 00:09
структура cr1mson Общие вопросы C/C++ 3 14.01.2009 18:08
Нерабочая процедура Foky Паскаль, Turbo Pascal, PascalABC.NET 14 07.11.2008 15:08