Автор Тема: Задача по с++  (Прочетена 4162 пъти)

Punkoff

  • Напреднали
  • *****
  • Публикации: 12
    • Профил
Re: Задача по с++
« Отговор #15 -: Apr 29, 2010, 11:56 »
http://www.kaldata.com/forums/index.php?showtopic=5612
Незнам дали мога да пост-вам линкове към други форуми ама гуугле така показа.
Втория пост има линк за учебници там някъде почети ако имаш време.
/off-topic
Колега на ООП на 08 ще ходиш ли?
Активен

Punkoff

  • Напреднали
  • *****
  • Публикации: 12
    • Профил
Re: Задача по с++
« Отговор #16 -: Apr 29, 2010, 12:06 »

А ако си като мен и не си много наясно с тези работи можеш да си чистиш буфера така

char p[100];

и след всяко cin>> което ползваш може да пишеш

cin.getline(p,100);

По-ламерски е ама върши работа :>
 
Активен

tyuio

  • Гост
Re: Задача по с++
« Отговор #17 -: Apr 29, 2010, 12:15 »
//офф
ами май на осми няма да мога, че нито съм подготвен, нито знам на какво е изпита а и на всичко отгоре съм зает. Имаш лично съобщение.
Активен

b2l

  • Напреднали
  • *****
  • Публикации: 4786
  • Distribution: MCC Interim
  • Window Manager: - // - // -
  • ...sometimes I feel like screaming... || RTFM!
    • Профил
    • WWW
Re: Задача по с++
« Отговор #18 -: Apr 29, 2010, 13:41 »
switch and case няма ли да ти свършат работа за менютата?
Активен

"Човекът е въже, опънато между звяра и свръхчовека, въже над пропаст. Човекът е нещо, което трябва да бъде превъзмогнато." - Фр. Ницше

tyuio

  • Гост
Re: Задача по с++
« Отговор #19 -: Apr 29, 2010, 14:18 »
За някой неща става, обаче така правя възможност да направиш няколко неща преди да излезеш и цикъла се завърта до момента в който не решиш че ти стига :)
Активен

gat3way

  • Напреднали
  • *****
  • Публикации: 6050
  • Relentless troll
    • Профил
    • WWW
Re: Задача по с++
« Отговор #20 -: Apr 29, 2010, 14:36 »
Ми то това какво те бърка - винаги можеш да си декларираш някакви променливи - флагове там според които да можеш или да не можеш да правиш разни неща.

Що се отнася до четенето на клавиш и да изглежда като хората в линукс:

Код
GeSHi (C):
  1. #include <termios.h>
  2. #include <unistd.h>
  3.  
  4. #define EXIT_OPT 'q' // kato natisnesh 'q' izlizash primerno
  5. ....
  6.  
  7. void main_loop(void)
  8. {
  9.   struct termios terminal;
  10.   unsigned char readKey=0;
  11.   ssize_t readbyte=1;
  12. ...
  13.  
  14.   while ((readbyte>0) && (readKey!=EXIT_OPT))
  15.   {
  16.      tcgetattr(0,&terminal);
  17.      terminal.c_lflag &= ~( ECHO|ICANON|ECHOE|ECHOK|ECHONL );
  18.      tcsetattr(0,TCSANOW,&terminal);
  19.      readbyte=read(0,&readKey,1);
  20.      terminal.c_lflag |= ( ECHO|ICANON|ECHOE|ECHOK|ECHONL );
  21.      tcsetattr(0,TCSANOW,&terminal);
  22.      if (readbyte >0)
  23.      {
  24.            switch (readKey) {
  25.               case '....
  26. ....
  27.  
  28.            }
  29.      }
  30. }
  31.  
  32.  


Нещо такова
Активен

"Knowledge is power" - France is Bacon

schemer

  • Напреднали
  • *****
  • Публикации: 49
  • Distribution: Debian
  • Window Manager: Gnome 2
    • Профил
Re: Задача по с++
« Отговор #21 -: Apr 29, 2010, 14:52 »
Предложение:

Цитат
"=========== PRODUCT #%d ===========\n"
"Article: %s\n"
"Manufacturer: %s\n"
"Production date: %s\n"
"Expiration date: %s\n"
"Quantity: %d\n"
"Code Number: %d\n"
"Price: %.2f\n\n"
Активен

tyuio

  • Гост
Re: Задача по с++
« Отговор #22 -: Apr 29, 2010, 15:02 »
Предложение:

Цитат
"=========== PRODUCT #%d ===========\n"
"Article: %s\n"
"Manufacturer: %s\n"
"Production date: %s\n"
"Expiration date: %s\n"
"Quantity: %d\n"
"Code Number: %d\n"
"Price: %.2f\n\n"

това що ми мяза на чисто С?

Благодаря гет3 ще го разгледам сега.
Активен

schemer

  • Напреднали
  • *****
  • Публикации: 49
  • Distribution: Debian
  • Window Manager: Gnome 2
    • Профил
Re: Задача по с++
« Отговор #23 -: Apr 29, 2010, 15:40 »
това що ми мяза на чисто С?

Благодаря гет3 ще го разгледам сега.

Предложих го като темплейт за визуализация на артикул или списък от артикули. Нали написа, че визуализацията те е притеснявала, мисля че дадох добър пример.

Иначе е чисто С, колкото и твоята структура :)
Активен

gat3way

  • Напреднали
  • *****
  • Публикации: 6050
  • Relentless troll
    • Профил
    • WWW
Re: Задача по с++
« Отговор #24 -: Apr 29, 2010, 15:42 »
c++ е за лигльовци :)
Активен

"Knowledge is power" - France is Bacon

remotex

  • Напреднали
  • *****
  • Публикации: 344
    • Профил
Re: Задача по с++
« Отговор #25 -: Apr 30, 2010, 09:01 »
Мисля че в заглавието пише задача на С++... та какви масиви, какви са тези char p[100] пък после std::cin ?!?
Като ще е С++ да е С++
1.  Като ще е С++ ползвай си там от stl  каквото ти душа сака :-) - или смени заглавието на "задача на С". Ето едно предложение на С++:
 По-принцип с/лед getline() няма нужда от ignore() - но напр. след cin << age; може и да има нужда от едно:
Код:
std::cin.ignore(std::numeric_limits<streamsize>::max(),'\n');

Код
GeSHi (C++):
  1.      # include <iostream>
  2.      # include <string>
  3.      using namespace std;
  4.  
  5.      int main(void) {
  6.            string full_name;
  7.            cout<<"Enter your name: ";
  8.            getline(cin,full_name);
  9.            cout<<"Hi !"<<full_name<<endl;
  10.            cin.get();
  11.  
  12.            return 0;
  13.      }
2.  За конзолни менюта може да позлваш ncurses. За уиндоус не се сещам нещо с отворен код ама Гугъл знае предполагам .../интересно не знаех че има порт и за уиндоус/

П.П. Инак... и на мен ми мяза на чисто С!
Активен

tyuio

  • Гост
Re: Задача по с++
« Отговор #26 -: Apr 30, 2010, 12:43 »
Ще си почета урочетата които дадохте :D  Тя за дачата за курсовата се оказва като на изпита за влизане, така и не разбрах защо е така !
Обаче аз много съм се занемарил и прости неща не мога да се сетя и си намирам задачки  дето да си решавам, че да вляза малко, от малко в час.
Благодаря ви на всички!
Активен

remotex

  • Напреднали
  • *****
  • Публикации: 344
    • Профил
Re: Задача по с++
« Отговор #27 -: May 03, 2010, 08:30 »
Ако това ти е "задачата за курсовата" защо ли не ме учудва че е същата "като на изпита за влизане" и защо там пише С++ а не С - тука така - обик. се преподават неща които не се разбират (от преподавателите - иначе съм срещал доста хора които разбират, но не преподават за съжаление) затова... ако искаш да научиш нещо.. С++.. Вземи попрочети нещо различно от това дето ви преподават -  то по принцип С е 26 оператора (аз като почвах да го уча вече бяха 27) сега са малко повече, С++ е с още няколко отгоре (но са едноцифрено число), но като ги научиш наизуст - това не значи че вече знаеш езика - тогава са наред библиотеките glibc за С, stl, boost, etc. за С++
Всъщност когато те питат знаеш ли един език имат предвид какво можеш даправиш с него а това опира най-вече до какви библиотеки можеш да позлваш от него (а не за ония 26-30 оператора дето са научават наизуст за 1 ден)

Сега по темата: още не мога да разбера задачата ти чисто С ли е или С++. Не виждам да се бориш с класове (но може би тях ги знаеш).
Всъщност С++ най-общо казано е С  с класове, без класовете си е за С задачката. то е като Object Pascal ама без обекти - ми чист Паскал си е ;-) а разликата е съществена.
Според мен започни с една книжка по С без да задълбаваш и за обща култура ако щеш я прочети като вестник. После прочети нещо за С++: класове, наследяване, полиморфизъм, шаблони и едва тогава (вече ще ти е станало ясно предполагам) ще решиш накъде да се насочиш т.е. кои стандартни библиотеки ще ти вършат работа  тях да почнеш да разучаваш: boost или stl или други...
Активен

gat3way

  • Напреднали
  • *****
  • Публикации: 6050
  • Relentless troll
    • Профил
    • WWW
Re: Задача по с++
« Отговор #28 -: May 03, 2010, 10:02 »
Абе вие C++ програмистите сте малко странни животни - какво значи това "мяза ми на чисто C"? Щом се компилира и работи, не виждам никакъв проблем. Най-лошото е че хората дето учат C++ в университета, им набиват в главата, че трябва да правят всякакви глупости само и само това да угодят на преподавателя, който е решил че това е висше благо и 200-редова програма трябва задължително да илюстрира класове, частни и публични членове, наследяване, собствени конструктори и деструктори, предефинирани оператори за присвояване и тем подобни работи.

Докато бях в университета, цял семестър един чичко преповтаряше какво благо били всички тези неща, накрая трябваше да правя курсова задача много подобна на горната - с някаква видеотека, заглавия и цени. Та написах я и отивам да я предавам. Първоначалната му идея беше да ми пише 4 заради това че съм декларирал една структура вместо клас при положение, че членовете и бяха само int и char [] стойности и нямаше ама грам нужда да го оформям като клас и да инстанцирам обекти. Тъй като завързахме един малък спор за смисъла от тези неща, той се убеди че в конкретния случай нямало особен смисъл...и ми писа 5, защото не съм си декларирал собствен оператор за присвояване на един клас. Тоя път опитите да го убедя, че няма нещо, което го налага, защото в случая няма никакви особености и всеки нормален компилатор ще го направи коректно, не помогнаха. Завърши с "това не е каноничния вид на един клас" (wtf) и толкова.

И после как да не мразя тия глупости, това C++ е като някакво състезание как максимално много да се ползват ненужни конструкции.
« Последна редакция: May 03, 2010, 10:05 от gat3way »
Активен

"Knowledge is power" - France is Bacon

tyuio

  • Гост
Re: Задача по с++
« Отговор #29 -: May 03, 2010, 10:27 »
Ааааа, никакво ООП всичко до структури без ползване даже на файлове (щото не сме ги били взели) на очни не съм ходил та не знам. Обаче да си е процедурен код с нещата на С++ не на С. Последния път ме питаха k'ъв е тоя scatf() тука? Освен това някой неща са си кофти ся трябва да ходя да инсталирам на уиндоус и да компилирам за да стане ехе файл. Квода на правя че всички примерни задачи дето уж даскали са ги писали ми плючт камараа грешки под gcc и аз си играя да видя аджаба къде е грешката, без понятие да си има от библиотеките и какво има в тях (както каза прежде говорящия) Троблемът си е мой разбира се ама да се оплача :)
Активен