|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » C/C++ - Помогите с блок-схемой |
|
C/C++ - Помогите с блок-схемой
|
Новый участник Сообщения: 1 |
Профиль | Отправить PM | Цитировать
Здравствуйте, очень нужна помощь, в блок-схемой. Программа уже написана. Суть программы: написать базу данных, и чтоб можно было её редактировать, сортировать и тд.
Проблема с блок схемой как рас в функции сортировке Вот текст самой функции 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; } } В общем у меня проблема в понимании операторов while, if, когда они когда их много подряд начинаю путаться, что куда. С оператором break тож не всё понятно в итоге. Буду рад любой подсказке. |
|
Отправлено: 21:34, 11-12-2011 |
Необычный Сообщения: 4463
|
Профиль | Сайт | Отправить PM | Цитировать rscream, говорю честно - копаться в твоем некомментированном коде - откровенно лень. Многа букаф.
Блок схему пишешь русскими словами(подчеркиваю) по сути решения (тоже подчеркиваю). Т.е. пишешь как: по русски, описываешь что: суть. Вся остальная муть типа циклы и условные переходы, до тех пор, пока ты не поймешь ихнего назначения никому не интересны. Судя по комментарию "// непонятно что должен делать break, после него нужно в начало while идти или куда?" принцип работы алгоритма тебе не ясен. Возьми путный редактор Notepad++ в крайнем случае. Он позволит расставить тебе табуляцию, подсветить парные скобки, "свернуть" функции. Кстати удобная вещь. Суть работы мне уже ясна.И в чем проблема? Смотри на вещи чуть более глобально. Например "проверка данных" и выдача ошибки в случае чего. Сортировку я пока не увидел, в основном из-за названий типа tk, z, nk, pk и т.д. - что это вообще все означает?! Что за бред в названиях переменных? Итого: В word'е я рисовать категорически отказываюсь. В лучшем случае блок схема от руки в со сканированием Никаких операторов и конструкций языка программирования в блок-схеме быть не должно. Блок-схема должна пояснять суть работы алгоритма, а не быть его повторением. Т.е. Блок-схема ---> алгоритм. Только так. |
------- Отправлено: 23:56, 11-12-2011 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Помогите выбрать блок питания. Часть 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 |
|