Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » C/C++ - Помогите с блок-схемой

Ответить
Настройки темы
C/C++ - Помогите с блок-схемой

Новый участник


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

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


Изменения
Автор: Drongo
Дата: 12-12-2011
Описание: Тег код - [code] -#
Вложения
Тип файла: doc sort12111.doc
(137.5 Kb, 6 просмотров)
Здравствуйте, очень нужна помощь, в блок-схемой. Программа уже написана. Суть программы: написать базу данных, и чтоб можно было её редактировать, сортировать и тд.
Проблема с блок схемой как рас в функции сортировке
Вот текст самой функции
Код: Выделить весь код
 DREVO *aadd_der (MUZZ s)
{
	DREVO *pk;
	VET *pv;
	pk = new DREVO;
	pv = new VET;
	         if (pk==NULL||pv==NULL)
	        {
	         cerr<<"error  \n";
	         exit(1);
	          }
  strcpy(pk->formf,s.formf);
  pk->adk=NULL;
  pk->adv=pv;

  strcpy(pv->firm, s.firm);
  strcpy(pv->countre, s.countre);
  strcpy(pv->mat, s.mat);
  pv->price=s.price;
  pv->nomer=s.nomer;
   pv->avv=NULL;
   return pk;
   }

//===============
DREVO * sozdrevo()
	{
	MUZZ z;
	ifstream fr ("MUZZ.txt", ios::in);
	

                  if(!fr)
	       {
	        cerr<<"error  \n";
	        exit(1);
	        }
     DREVO *nk, *pk, *tk;
     VET *pv, *rv;
     int flag;
     nk=NULL;

   while(fr)
    {
      fr>>z;
            if(strlen(z.firm)<=0)
            break;                                     // непонятно что должен делать break, после него нужно в начало while идти или куда?
                 if(nk==NULL)
                {
                nk=aadd_der(z);
                pk=nk;
               }
               else
                       {
                      tk=nk;
                     flag=0;

                   while(tk)
                           if(strcmp(z.formf,tk->formf)==0)
                          {
                            flag=1;
                             break;
                            }
    
             	  else
		   tk=tk->adk;

   	   if(flag==0)
     	 {
     	  pk->adk=aadd_der(z);
    	  pk=pk->adk;
      	   }
      	else
      	{
     	 pv=tk->adv;
while (pv->avv!=NULL)
      		 pv=pv->avv;
     	 rv=new VET;

 if(rv==NULL)
       {
       cerr<<"error  \n";
       exit(1);       }
         strcpy(rv->firm,z.firm);
         strcpy(rv->countre,z.countre);
         strcpy(rv->mat,z.mat);
        rv->price=z.price;
        rv->nomer=z.nomer;
         rv->avv=NULL;
         pv->avv=rv;
                   }
                }
      }
	 fr.close();
	 return(nk);
}

//===================
void outdrevo (DREVO *nk)
{
VET *pv;
            if(nk==NULL)
	{
	cout<<"Древо пустое \n";
	return;
	}

 while(nk)
{
cout<<"spisok firm po forme \n:  "<< nk->formf<<endl;
pv=nk->adv;
	cout<<"_____________________________________________\n";
	cout<<"|   FIRMA       |  Countre | Material | -Price-  | -Nomer-  |\n";
	cout<<"|____________________________________________|\n";

  while(pv)
       {
        cout<<"|"<<setw(FIRM)<<pv->firm<<"|"<<
        setw(COUNTRE)<<pv->countre<<"|"<<
        setw(MAT)<<pv->mat<<"|"<<
        setw(5)<<pv->nomer<<"|"<<
         setw(5)<<pv->price<<"|\n";
           pv=pv->avv;
         }
   cout<<"|___________________________________________________|\n";
   cout<<"prodolgenie - enter \n";
   cin.seekg(0L,ios::end);
   cin.get();
   nk=nk->adk;
      }   }
Всё что у меня пока получилось в прикреплённом .doc файле

В общем у меня проблема в понимании операторов while, if, когда они когда их много подряд начинаю путаться, что куда. С оператором break тож не всё понятно в итоге.
Буду рад любой подсказке.

Отправлено: 21:34, 11-12-2011

 

Аватара для lxa85

Необычный


Contributor


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

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


rscream, говорю честно - копаться в твоем некомментированном коде - откровенно лень. Многа букаф.
Блок схему пишешь русскими словами(подчеркиваю) по сути решения (тоже подчеркиваю).
Т.е. пишешь как: по русски, описываешь что: суть.
Вся остальная муть типа циклы и условные переходы, до тех пор, пока ты не поймешь ихнего назначения никому не интересны.
Судя по комментарию "// непонятно что должен делать break, после него нужно в начало while идти или куда?" принцип работы алгоритма тебе не ясен.
Возьми путный редактор Notepad++ в крайнем случае. Он позволит расставить тебе табуляцию, подсветить парные скобки, "свернуть" функции.
Кстати удобная вещь. Суть работы мне уже ясна.И в чем проблема?
Смотри на вещи чуть более глобально. Например "проверка данных" и выдача ошибки в случае чего.
Сортировку я пока не увидел, в основном из-за названий типа tk, z, nk, pk и т.д. - что это вообще все означает?! Что за бред в названиях переменных?
Итого: В word'е я рисовать категорически отказываюсь. В лучшем случае блок схема от руки в со сканированием
Никаких операторов и конструкций языка программирования в блок-схеме быть не должно. Блок-схема должна пояснять суть работы алгоритма, а не быть его повторением. Т.е. Блок-схема ---> алгоритм. Только так.

-------
- Я не разрешаю тебе быть плохой! Потому что плохие люди совершают плохие поступки. А это нехорошо!
(Из наставлений 5 летней девочки своей младшей сестре)


Отправлено: 23:56, 11-12-2011 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » C/C++ - Помогите с блок-схемой

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Помогите выбрать блок питания. Часть I ShaddyR Выбор отдельных компонентов компьютера и конфигурации в целом 3582 15-12-2015 02:47
[решено] Помогите собрать системный блок Mancoffee Выбор отдельных компонентов компьютера и конфигурации в целом 8 16-10-2011 21:50
[решено] Помогите собрать системный блок PLATON Выбор отдельных компонентов компьютера и конфигурации в целом 6 11-04-2011 20:15
Помогите собрать системный блок whitevs282 Выбор отдельных компонентов компьютера и конфигурации в целом 2 05-01-2010 23:52
Помогите собрать системный блок PoPiN Выбор отдельных компонентов компьютера и конфигурации в целом 3 26-08-2009 15:39




 
Переход