我在Visual C中開發uni項目的這個階段時遇到了問題。我想知道如果你能幫我一個大忙併幫我解決它。
在這個階段,我們必須建立它的菜單包括這五個子菜單:編程簡單程序的菜單階段
- 繼續最後一場比賽...
- 單人
- 選項
- 現金
- 最高分
我們的導航政策:用向上和向下箭頭滾動瀏覽這5個項目(箭頭) 我們用enter鍵進入子菜單,當我們進入子菜單時,我們應該再次通過Enter回來 Esc幫助我們退出程序!
好的!我的問題是第二部分,我不能通過Enter回到子菜單! 這是我的代碼:
#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
int m1(int n);
int m2(int n);
int m3(int n);
int m4(int n);
int m5(int n);
int a(int n);
char c,x,y;
int i=1;
int main(){
K: printf("-->Continue last game...\nSingle player\nOptions\nCredits\nTop scores");
while(1){
c=getch();
if (c!=13&&c!=27&&c!=-32) {continue;}
if (c==13) {a(i); L:c=getch(); if (c==13) {system("cls");goto K;} else goto L;}
if (c==27) {system("cls");printf("Press eny key to Exit...");y=getch();break;}
x=getch();
if (c==-32&&x==72&&i!=1) (i--); else if (c==-32&&x==72&&i==1) i=5;
if (c==-32&&x==80&&i!=5) (i++); else if (c==-32&&x==80&&i==5) i=1;
switch (i){
case 1:
system("cls");
m1(i);
break;
case 2:
system("cls");
m2(i);
break;
case 3:
system("cls");
m3(i);
break;
case 4:
system("cls");
m4(i);
break;
case 5:
system("cls");
m5(i);
break;
}}
return 0;
}
int m1(int n){
printf("-->Continue last game...\nSingle player\nOptions\nCredits\nTop scores");
return i;
}
int m2(int n){
printf("Continue last game...\n-->Single player\nOptions\nCredits\nTop scores");
return i;
}
int m3(int n){
printf("Continue last game...\nSingle player\n-->Options\nCredits\nTop scores");
return i;
}
int m4(int n){
printf("Continue last game...\nSingle player\nOptions\n-->Credits\nTop scores");
return i;
}
int m5(int n){
printf("Continue last game...\nSingle player\nOptions\nCredits\n-->Top scores");
return i;
}
int a(int n){
switch (i){
case 1: {system("cls");printf("you've chosen \"Continue last game...\" \n\n\n\n\n\n\n\n press Enter to return to main menu");} break;
case 2: {system("cls");printf("you've chosen \"single player\" \n\n\n\n\n\n\n\n press Enter to return to main menu");}break;
case 3: {system("cls");printf("you've chosen \"Options\" \n\n\n\n\n\n\n\n press Enter to return to main menu");}break;
case 4:{system("cls");printf("you've chosen \"Options\" \n\n\n\n\n \tLord.Pooria Rajabzadeh (EiNsTEiN.co(class of 2000))\n\tProducer: Pooria on 15 dec 2011\n\n press Enter to return to main menu");}break;
case 5: {system("cls");printf("you've chosen \"Top scores\" \n\n\n\t Pooria 100\n\tAkbar 80\n\tAli 60\n\n\n press Enter to return to main menu");}break;
return i;}
}
一些#defines或枚舉將使這個更容易理解和使用,並且你有很多`i`s,看起來你應該有`n`s(反之亦然)。 – crashmstr 2011-12-15 19:36:42