![]() |
Внимание, важное сообщение: Дорогие Друзья!
В ноябре далекого 2001 года мы решили создать сайт и форум, которые смогут помочь как начинающим, так и продвинутым пользователям разобраться в операционных системах. В 2004-2006г наш проект был одним из самых крупных ИТ ресурсов в рунете, на пике нас посещало более 300 000 человек в день! Наша документация по службам Windows и автоматической установке помогла огромному количеству пользователей и сисадминов. Мы с уверенностью можем сказать, что внесли большой вклад в развитие ИТ сообщества рунета. Но... время меняются, приоритеты тоже. И, к сожалению, пришло время сказать До встречи! После долгих дискуссий было принято решение закрыть наш проект. 1 августа форум переводится в режим Только чтение, а в начале сентября мы переведем рубильник в положение Выключен Огромное спасибо за эти 24 года, это было незабываемое приключение. Сказать спасибо и поделиться своей историей можно в данной теме. С уважением, ваш призрачный админ, BigMac... |
|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » Assm - Прикладная программа |
|
Assm - Прикладная программа
|
![]() Пользователь Сообщения: 134 |
Вот нашел интересный исходный код программы (это объяснение) а вот полный листинг программы. Вот только одна загвоздка то что написано в объяснении не совсем соответствует с полным листингом. Ну и черт с ним подумал я, а зря.
Скопировал я листинг в Dev-C++, меня зразу удивило как было написано код:много синтаксических ошибок, ну их легко исправить. Вот мой листинг после исправлений: #include <iostream> #include "stdio.h" #define Filename "CDfile" #define TEMPFILE "TEMP" #define MAX 20 using namespace std; int addcd(); int delcd(); int chcd(); int chloc(); int sort(); int plist(); int locate(); int showdisc(); int getslots(); FILE *fp, *tp,*printer; struct CD { char name[20]; char descriprion[40]; char category[12]; float cost; int number; } disc; int slots[MAX]; int count; int main() { char select; do { puts("Ìîÿ êîëëåêöèÿ êîìïàêò-äèñêîâ"); puts("1- Äîáàâèòü êàðòî÷êó"); puts("2- Óäàëèòü êàðòî÷êó"); puts("3- Ðåäàêòèðîâàòü ñîæåðæèìîå êàðòî÷êè"); puts("4- Èçìåíèòü íîìåð ÿ÷åéêè"); puts("5-Ñîðòèðîâêà êàðòî÷åê"); puts("6- íàéòè êàðòî÷êó"); puts("7- âûâåñòè íà ïå÷àòü"); puts("8- âûéòè èç ïðîãðàììû"); printf("Ïîæàëóéñòà, ââåäèòå ñâîé âûáîð"); select=getchar(); putchar('\n'); switch(select) { case '1': addcd(); break; case '2': delcd(); break; case '3': chcd(); break; case '4': chloc(); break; case '5': sort(); break; case '6': locate(); break; case '7': plist(); break; case '8': break; default: puts("Îøèáêà, ïîâòîðèòå ââîä\n\n"); } } while (select!='8'); return(0); } int addcd() { int pause; if( count >=MAX) { puts("Ê ñîæàëåíèþ ñâîáîäíûõ ÿ÷ååê íåò \n"); pause=getchar(); return(0); } if((fp=fopen(FILENAME,"a"))=NULL) { printf("Íåâîçìîæíî îòêðûòü ôàéë %s\n",FILENAME); exit(); } puts("\n"); printf("Ââåäèòå íàçâàíèå äèñêà: "); gets(disc.name); printf("Ââåäèòå îïèñàíèå:"); gets(disc.descriprion); printf("Ââåäèòå êàòåãîðèþ:"); gets(disc.category); printf("Ââåäèòå öèíó:"); scanf("%f",&disc.cost); int getslots(); fwrite(&disc,sizeof(disc),1,fp); fclose(fp); getslots(); return (0); } int delcd() { char delname[20]; char fflag; fflag='n'; openrw(); puts("Óäàëåíèå èíôîðìàöèè î äèñêå \n"); printf("Ââåäèòå íàçâàíèå äèñêà: "); gets(delname); while(fread(&disc,sizeof(disc),1,fp)==1) { if(strcmp(disc.name,delname)!=0) fwrite(&disc,sizeof(disc),1,tp); else fflag='y'; } fclose(fp); fclose(tp); if(fflag=='n'); // äîëæíî ñòîÿòü nofind() else { openwr(); while(fread(&disc,sizeof(disc),1,tp)==1) fwrite(&disc,sizeof(disc),1,fp); fclose(fp); fclose(tp); } int getslots(); return (0); } int chcd() { char chname[20]; char fflag; int pause; fflag='n'; openrw(); puts("Ðåäàêòèðîâàíèå ñâåäåíèé î äèñêå\n"); printf(" Ââåäèòå íàçâàíèå äèñêà: "); gets(chname); while(fread(&disc,sizeof(disc),1,fp)==1) { if(strcmp(disc.name,chname)!=0) fwrite(&disc,sizeof(disc),1,tp); else { fflag='y'; puts("Òåêóùàÿ èíôîðìàöèÿ \n"); showdisc(); puts("Íîâàÿ èíôîðìàöèÿ \n"); printf("Ââåäèòå íàçâàíèå äèñêà: "); gets(disc.name); printf("Ââåäèòå îïèñàíèå:"); gets(disc.descriprion); printf("Ââåäèòå êàòåãîðèþ :"); gets(disc.category); printf("Ââåäèòå öåíó: "); scanf("%f",&disc.cost); if(count>=MAX) { puts("Ê ñîæàëåíèþ ñâîáîäíûõ ÿ÷ååê íåò \n"); pause=getchar(); } else { int getslots(); } fwrite(&disc,sizeof(disc),1,tp); } } fclose(fp); fclose(tp); if(fflag=='n') //nofind(); else { openwr(); while(fread(&disc,sizeof(disc),1,tp)==1); fwrite(&disc,sizeof(disc),1,tp); fclose(fp); fclose(tp); } getslots(); return (0); } int chloc() { char chname[20]; char fflag; int pause; fflag='n'; if(count>>=MAX) { puts("Ê ñîæàëåíèþ ñâîáîäíûõ ÿ÷ååê íåò \n"); pause=getchar(); return (0); } openwr(); puts("Èçìåíåíèå íîìåðà ÿ÷åéêè \n"); printf("Ââåäèòå íàçâàíèå äèñêà: "); gets(chname); while(fread(&disc,sizeof(disc),1,fp)==1) { if(strcmp(disc.name,chname)!=0) fwrite(&disc,sizeof(disc),1,tp); else { fflag='y'; puts("Òåêóùàÿ èíôîðìàöèÿ \n"); int showdisc(); puts("\n Íîâûé íîìåð ÿ÷åéêè \n"); int getslots(); fwrite(&disc,sizeof(disc),1,tp); } } fclose(fp); fclose(tp); if(fflag=='n'); //nofind(); else { openwr(); while(fread(&disc,sizeof(disc),1,tp)==1) fwrite(&disc,sizeof(disc),1,tp); fclose(fp); fclose(tp); } int getslots(); return (0); } int locate() { char name[20]; char fflag,pause; fflag='n'; if((fp=fopen(FILENAME,"r"))=NULL); { printf("Íåâîçìîæíî îòêðûòü ôàéë %s\n",FILENAME); exit(); } puts("Ïîèñê äèñêà"); printf("ââåäèòå íàçâàíèå äèñêà:"); gets(name); while(fread(&disc,sizeof(disc),1,tp)==1) { if(strcmp(disc.name,name)==0) { fflag='y'; int showdisc(); printf("Äëÿ ïðîäîëæåíèÿ íàæìèòå ENTER"); pause=getchar(); putchar('\n'); } } fclose(fp); fclose(tp); if(fflag=='n'); //nofind(); return (0); } int plist() { if((fp=fopen(FILENAME,"r"))=NULL) { printf("Íåâîçìîæíî îòêðûòü ôàéë%s\n",FILENAME); int exit(); } if((printer=fopen("prn","w"))==NULL) { printf("Ïå÷àòàþùèå óñòðîéñâî íå ãîòîâî ê ðàáîòå\n"); fclose(fp); int exit(); } while(fread(&disc,sizeof(disc),1,tp)==1) { fprintf(printer,"Íàçâàíèå: %S\n",disc.name); fprintf(printer,"Îïèñàíèå: %S\n",disc.descriprion); fprintf(printer,"Êàòåãîðèÿ: %S\n",disc.category); fprintf(printer,"Öåíà %6,2f\n",disc.cost); fprintf(printer,"Íîìåð ï/ï: %d\n",disc.number); fprintf(printer,"\n\n"); fclose(printer); fclose(fp); return (0); } int sort(); { struct CD temp[MAX]; int index, loop1,loop2,endloop; loop1=0; loop2=0; endloop=0; index=0; if((fp=fopen(FILENAME,"r"))==NULL); { printf("Íåâîçìîæíî îòêðûòü ôàéë %s\n",FILENAME); int exit(); } while(fread(&disc,sizeof(disc),1,tp)==1) { temp[index]=disc; index++; } fclose(fp); if((fp=fopen(FILENAME,"w"))==NULL) { printf("Íåâîçìîæíî îòêðûòü ôàéë %s\n",FILENAME); exit(); } for (loop1 = 1; loop1 < MAX+1; loop1++); count++; slots[count]=disc.number; return (0); } int getslots(); { int index; index=0; count=0; if((fp=fopen(FILENAME,"r"))!=NULL) { while(fread(&disc,sizeof(disc),1,tp)==1) { slots[index]=disc.number; index++; count++; } fclose(fp); } } } Êîìïèëÿòîð: Default compiler Âûïîëíåíèå g++.exe... g++.exe "C:\UsersÀäìèíèñòðàòîð\DocumentsÁåçûìÿííûé1.cpp" -o "C:\UsersÀäìèíèñòðàòîð\DocumentsÁåçûìÿííûé1.exe" -I"C:\Dev-Cpp\lib\gcc\mingw32\3.4.2\include" -I"C:\Dev-Cpp\include\c++\3.4.2\backward" -I"C:\Dev-Cpp\include\c++\3.4.2\mingw32" -I"C:\Dev-Cpp\include\c++\3.4.2" -I"C:\Dev-Cpp\include" -L"C:\Dev-Cpp\lib" C:\UsersÀäìèíèñòðàòîð\DocumentsÁåçûìÿííûé1.cpp: In function `int addcd()': C:\UsersÀäìèíèñòðàòîð\DocumentsÁåçûìÿííûé1.cpp:82: error: `count' undeclared (first use this function) C:\UsersÀäìèíèñòðàòîð\DocumentsÁåçûìÿííûé1.cpp:82: error: (Each undeclared identifier is reported only once for each function it appears in.) C:\UsersÀäìèíèñòðàòîð\DocumentsÁåçûìÿííûé1.cpp:88: error: `FILENAME' undeclared (first use this function) C:/Dev-Cpp/include/stdlib.h:351: error: too few arguments to function `void exit(int)' C:\UsersÀäìèíèñòðàòîð\DocumentsÁåçûìÿííûé1.cpp:91: error: at this point in file C:\UsersÀäìèíèñòðàòîð\DocumentsÁåçûìÿííûé1.cpp: In function `int delcd()': C:\UsersÀäìèíèñòðàòîð\DocumentsÁåçûìÿííûé1.cpp:114: error: `openrw' undeclared (first use this function) C:\UsersÀäìèíèñòðàòîð\DocumentsÁåçûìÿííûé1.cpp:131: error: `openwr' undeclared (first use this function) C:\UsersÀäìèíèñòðàòîð\DocumentsÁåçûìÿííûé1.cpp: In function `int chcd()': C:\UsersÀäìèíèñòðàòîð\DocumentsÁåçûìÿííûé1.cpp:147: error: `openrw' undeclared (first use this function) C:\UsersÀäìèíèñòðàòîð\DocumentsÁåçûìÿííûé1.cpp:169: error: `count' undeclared (first use this function) C:\UsersÀäìèíèñòðàòîð\DocumentsÁåçûìÿííûé1.cpp:185: error: expected primary-expression before "else" C:\UsersÀäìèíèñòðàòîð\DocumentsÁåçûìÿííûé1.cpp:185: error: expected `;' before "else" C:\UsersÀäìèíèñòðàòîð\DocumentsÁåçûìÿííûé1.cpp: In function `int chloc()': C:\UsersÀäìèíèñòðàòîð\DocumentsÁåçûìÿííûé1.cpp:203: error: `count' undeclared (first use this function) C:\UsersÀäìèíèñòðàòîð\DocumentsÁåçûìÿííûé1.cpp:209: error: `openwr' undeclared (first use this function) C:\UsersÀäìèíèñòðàòîð\DocumentsÁåçûìÿííûé1.cpp: In function `int locate()': C:\UsersÀäìèíèñòðàòîð\DocumentsÁåçûìÿííûé1.cpp:248: error: `FILENAME' undeclared (first use this function) C:/Dev-Cpp/include/stdlib.h:351: error: too few arguments to function `void exit(int)' C:\UsersÀäìèíèñòðàòîð\DocumentsÁåçûìÿííûé1.cpp:251: error: at this point in file C:\UsersÀäìèíèñòðàòîð\DocumentsÁåçûìÿííûé1.cpp: In function `int plist()': C:\UsersÀäìèíèñòðàòîð\DocumentsÁåçûìÿííûé1.cpp:275: error: `FILENAME' undeclared (first use this function) C:/Dev-Cpp/include/stdlib.h:351: error: too few arguments to function `void exit(int)' C:\UsersÀäìèíèñòðàòîð\DocumentsÁåçûìÿííûé1.cpp:321: error: at this point in file C:\UsersÀäìèíèñòðàòîð\DocumentsÁåçûìÿííûé1.cpp:324: error: `count' undeclared (first use this function) Âûïîëíåíèå çàâåðøåíî |
|
Отправлено: 01:04, 10-03-2009 |
![]() Забанен Сообщения: 463
|
Походу компилятор вставляет функцию вместо его прототипа а прототип определен раньше переменной. Попробуй поменяй - мож получится
|
Отправлено: 19:16, 10-03-2009 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
![]() Ветеран Сообщения: 1180
|
Профиль | Отправить PM | Цитировать вот, что выдал bcc32:
строка 1: нафиг оно? компилеру после этого кажется что используешь шаблон std::count, который заявлен, но не определён. строка 4: FILENAME большими буквами строка 92: вместо =NULL надо ==NULL строка 95: для exit() нужно #include <process.h> строки 118, 124, 135, 151, 157: openrw функции нет (и не знаю, что это такое), для strcmp нужно #include <string.h> строка 245: зачем нужна pause, если не секрет? строка 279: опять пытаемся присвоить чёто результату функции (надо ==NULL) строка хз: endloop, loop2 - для чего переменные? функция plist(): где-то не хватает `}` функция sort(): что понимается под кострукцией `int exit();`? объявление прототипа функции exit()? и совет: ПОПЫТАЙСЯ ВНИКНУТЬ В КОД, по твоей ссылке всё грамотно разжёвано, сразу поймёшь, где чего не хватает |
Отправлено: 20:19, 10-03-2009 | #3 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Прикладная информатика в экономике | mxmstrnt | Флейм | 4 | 06-04-2009 20:33 | |
Нужна программа, определяющая, каким инсталлятором запакована программа | yaryar | Программное обеспечение Windows | 3 | 24-06-2008 10:56 | |
программа | Rustem | Вебмастеру | 7 | 07-05-2008 11:37 | |
программа на с++ | gh6 | Программирование и базы данных | 4 | 24-10-2006 20:43 | |
Программа spawn | ivank | Программное обеспечение Linux и FreeBSD | 13 | 11-09-2003 18:25 |
|