PDA

Prikaži potpunu verziju : Meni u Turbo C-u...HITNO


duschan
15.2.2008, 22:00
Treba mi za skolu da napravim meni za moj program. Dodushe imam takvu profesoricu da je bash briga sta radimo na chasu, a kad je neko nesto pita ona odgovori samo "to je tako". E sad posto je njoj bitniji lepshi interfejs nego korisnost programa, meni programa ce najvishe uticati na nju.

Problem:
Meni treba da ima nekoliko opcija (3-4) koje ce biti ispisane na ekranu, ali one treba da se biraju pomocu strelica. I ona koja je trenutno selektovana da bude druge boje, i kad se stisne 'enter' onda da se udje u taj deo menija.
Ovo nikako ne kontam, jer ne znam kako da koristim strelice. :kreza:

Ako nije nekom problem da mi to napishe, i za opcije da koristi stringove, npr. a, b, c... da bih to mogao da koristim kao funkciju.

duschan
16.2.2008, 11:39
Ajte, nije valjda da niko ne zna.:icon_scra

Stevvan
16.2.2008, 12:20
Da moze u nekom drugom prog. jeziku da se uradi ne bi bio problem, ovako tesko...

voodoo_
16.2.2008, 13:00
Mrzi me sad da isprobavam da li je sintaksa ispravna, ali to bi trebalo da izgleda otprilike ovako (ako meni ima npr. 4 opcije), pa ti to "prevedi" na C i stavi odgovarajuæe funkcije iz conio.h koje sam promašio. Na enter se potvrðuje izbor, na 'A' i 'Z' se bira gore i dole.

#include <stdio.h>
#include <conio.h>

int meni() {
int trenutni_izbor = 1; // od 1 do 4
int key; // pritisnut taster

while (1) // odnosno "while true"
{
// ispisuje opcije
GotoXY(5, 5); printf(" Opcija 1");
GotoXY(5, 6); printf(" Opcija 2");
GotoXY(5, 7); printf(" Opcija 3");
GotoXY(5, 8); printf(" Opcija 4");

// ispisuje zvezdicu ispred izabranog izbora
switch (trenutni_izbor) {
case 1: GotoXY(5, 5); printf("*"); break;
case 1: GotoXY(5, 6); printf("*"); break;
case 1: GotoXY(5, 7); printf("*"); break;
case 1: GotoXY(5, 8); printf("*"); break;
}

key = getch();

if (key == 13) break; // ako je pritisnut enter, iskaèe iz petlje
if ((key == 'A') || (key == 'a')) { // ako nije, koriguje trenutni izbor i ide ponovo
if (trenutni_izbor == 1) trenutni_izbor = 4; else trenutni_izbor--;
}
if ((key == 'Z') || (key == 'z')) { // ako nije, koriguje trenutni izbor i ide ponovo
if (trenutni_izbor == 4) trenutni_izbor = 1; else trenutni_izbor++;
}
}

return trenutni_izbor;
}

Onda samo pozoveš funkciju meni iz programa, i èekaš da ti vrati neki rezultat koji je korisnik izabrao, od 1 do 4.

Ako hoæeš strelice umesto A i Z, naði njihove kodove u helpu Turbo C-a. Isto tako, ako hoæeš boju umesto ispisivanja zvezdice ispred izabrane opcije, podesi je pre ispisivanja konkretnog teksta preko funkcije SetColor ili tako nešto (zaboravio sam, nisam radio u Turbo C-u pet godina najmanje).

Crazy Shadow
16.2.2008, 15:44
Evo ti interfejs iz jednog mog programcica.
cout<<"\t\tÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»";
cout<<"\n\t\tº V I D E O K L U B M I L I C º";
cout<<"\n\t\tÌÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͹";
cout<<"\n\t\tº º";
cout<<"\n\t\tº º";
cout<<"\n\t\tº 1. CLANOVI º";
cout<<"\n\t\tº º";
cout<<"\n\t\tº º";
cout<<"\n\t\tº º";
cout<<"\n\t\tº 2. FILMOVI º";
cout<<"\n\t\tº º";
cout<<"\n\t\tº º";
cout<<"\n\t\tº º";
cout<<"\n\t\tº 3.About º";
cout<<"\n\t\tº º";
cout<<"\n\t\tº º";
cout<<"\n\t\tº º";
cout<<"\n\t\tºÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄĺ";
cout<<"\n\t\tº 4. KRAJ RADA º";
cout<<"\n\t\tºÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄĺ";
cout<<"\n\t\tÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ";
cout<<"\n";
cout<<"\n\t\tÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ";
cout<<"\n\t\t Operator:";cin>>a;

voodoo_
16.2.2008, 16:30
Nisi ga najbolje razumeo... njemu treba interaktivni meni, kao npr. na mobilnom telefonu ili igrama na konzolama.

bvitnik
16.2.2008, 17:20
-> duschan, Borland-ov C kompajler dolazi sa gotovim vizuelnim kontrolama za 16-bitne DOS programe pod nazivom Turbo Vision. Te kontrole omoguæavaju da se prave programi kakav je recimo stari Borland C IDE (BC.EXE) sa sve menijima, prozorima, dugmiæima... i sve to u konzoli pomoæu miša. E sad, problem je što ne znam da li Turbo C dolazi sa ovim kontrolama. Za one koji ne znaju, Turbo C je osakaæena (akademska) verzija Borland C kompajlera i IDE-a. Ako imaš punu verziju Borland C kompajlera sa instaliranim svime što dolazi uz njega, onda potraži primere koji dolaze uz njega jer tamo ima Turbo Vision primera. Neka stara pre Windows verzija Borland C-a, tipa 3.11 ili 4.0, bi ti najbolje došla.

Drugi naèin je da ruèno napraviš nešto pomoæu stvari koje nudi "conio.h", kao u voodoo-ovom primeru.

Treæi naèin je da u asembleru napišeš svoje rutine za baratanje sa konzolskim izlazom.

duschan
17.2.2008, 1:56
-> duschan, Borland-ov C kompajler dolazi sa gotovim vizuelnim kontrolama za 16-bitne DOS programe pod nazivom Turbo Vision. Te kontrole omoguæavaju da se prave programi kakav je recimo stari Borland C IDE (BC.EXE) sa sve menijima, prozorima, dugmiæima... i sve to u konzoli pomoæu miša. E sad, problem je što ne znam da li Turbo C dolazi sa ovim kontrolama. Za one koji ne znaju, Turbo C je osakaæena (akademska) verzija Borland C kompajlera i IDE-a. Ako imaš punu verziju Borland C kompajlera sa instaliranim svime što dolazi uz njega, onda potraži primere koji dolaze uz njega jer tamo ima Turbo Vision primera. Neka stara pre Windows verzija Borland C-a, tipa 3.11 ili 4.0, bi ti najbolje došla.

Drugi naèin je da ruèno napraviš nešto pomoæu stvari koje nudi "conio.h", kao u voodoo-ovom primeru.

Treæi naèin je da u asembleru napišeš svoje rutine za baratanje sa konzolskim izlazom.

U TC-u nema Turbo Visiona.

@vodoo
E to mi je trebalo. Napravicu to da menja boje, i to je to. A sto se strelica tiche nema veze, i to cu lako (valjda) napraviti. Hvala josh jednom.

Kratko pitanje:
Kako da me na primer iz sredine programa izbaci na kraj. jel se za to koristi naredba exit(1); ili shta.

Kratko pitanje 2:
Treba da na kraju programa otshtampam ovo:
http://img02.picoodle.com/img/img02/4/2/16/t_kravicam_942e9ae.jpg (http://www.picoodle.com/view.php?img=/4/2/16/f_kravicam_942e9ae.jpg&srv=img02)
Kako da otshtampam znak ".
Konto sam da bih mogao chitavu kravu da stavim u jedan string i da ga onda shtampam red po red, ali jel ima lakshi nachin, ili mora ovako kako sam ja zamislio, i da li to uopste moze da se uradi kako sam ja zamislio.

MG-RAY
17.2.2008, 12:42
" -> \"

Ako ti je lakse, "kravu" uvek mozes da drzis u eksternom tekstualnom fajlu ciji bi sadrzaj jednostavno ispisao na konzoli, cisto da ti kod ne bi bio nepregledan.