Sziasztok!
Az alabbi kod egy sorszamozott menut hoz letre. Viszont
a menupontok sorszamat nem jol irja ki, es ez a hiba csak
az 1-es menupont eseten fordul elo, a tobbi jol irodik ki...
Szoval igy jelenik meg a menu:
0. Dolgozok felvitele
0. Kiiratas kepernyore
2. File-ba
3. harom
4. negy
5. ot
6. Kilepes
Mi a hiba oka? En a programban nem talaltam okat...
Elore is nagyon koszonom a segitseget!
Otto
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <string.h>
#include <ctype.h>
const X=1,Y=2,MENUK_SZAMA=7;
struct TMenupont{
char felirat[20];
int index;
int x_koord;
int y_koord;
void kiiratas(){
gotoxy(x_koord, y_koord);
cprintf("%d. %s", index, felirat);
}
};
class TMenusor{
public: TMenupont menupontok[MENUK_SZAMA];
};
TMenusor menu;
void menu_init(){
for(int i=0;i<=MENUK_SZAMA-1;i++){
menu.menupontok[i].index=i;
menu.menupontok[i].x_koord=X;
menu.menupontok[i].y_koord=Y+i;
}
strcpy(menu.menupontok[0].felirat, "Dolgozok felvitele\n");
strcpy(menu.menupontok[1].felirat, "Kiiratas kepernyore\n");
strcpy(menu.menupontok[2].felirat, "File-ba\n");
strcpy(menu.menupontok[3].felirat, "harom");
strcpy(menu.menupontok[4].felirat, "negy");
strcpy(menu.menupontok[5].felirat, "ot");
strcpy(menu.menupontok[6].felirat, "Kilepes");
}
void menu_kiiratas(){
for(int i=0;i<=MENUK_SZAMA-1;i++){
menu.menupontok[i].kiiratas();
}
}
int main()
{
clrscr();
menu_init();
char ch;
while (1){
menu_kiiratas();
ch = getch();
switch (ch-48){
case MENUK_SZAMA-1: exit(0);
}
getch();
clrscr();
}
return 0;
}
|