2017-02-24 5 views
3

私は新しいコンピューター科学の学生です。私は現在スーパーショップ管理システムに関する大学プロジェクトに取り組んでいます。cの簡単メニュー

そのためには、メニューシステムが必要です。私はスイッチケースを使ってみました。
しかし、私が1を押すと、プログラムは私によって定義された別の関数に行きます。

しかし、メインメニューの機能が上部に表示されます。
私は数字を押すメニューが欲しく、プログラムは以前使用したコマンドをクリアする特定の機能に進むでしょう。

ご協力いただければ幸いです。ありがとうございました。

(私はスイッチケースを使用してみました。そして、私は初心者ですし、ファイル操作とかのようなものについては何も知らない)

#include<stdio.h> 
#include<math.h> 
#include<stdlib.h> 


//User defined function declaration 

int main_menu(); 
int products(); 
double payment(); 
int customer(); 

//User defined sub menus 



//under products 

int home_products(); 
int electronics(); 

int add_products(); 
int remove_products(); 
int products_quantity(); 

//Under payment 

double billing(); 

//under customer menu() 

int customer_inf(); 
int edit_customer(); 




int main() 
{ 
int input; 

printf("        Hello ADMIN\n       SHIRONAMHIN Super Shop\n================================================================================"); 
printf("        -Products\n        -Payment/Billing\n        -Customer information\n"); 
printf("\n"); 
printf(" Press One for Products \n Press two for Billing \n Press Three for Customer information \n Press 0 to terminate program"); 
scanf("\n%d", &input); 
if(input==0) 
{ 
    return 0; //Program will be terminated if 0 is pressed 
} 
switch(input) 
{ 
case 1: 
    if(input==1) 
    { 
     products(); 
    } 
    break; 
case 2: 
    if(input==2) 
    { 
     payment(); 
    } 
    break; 
case 3: 
    if(input==3) 
    { 
     customer(); 
    } 
    break; 

default: 
    printf("Enter a valid number"); 
    break; 
} 
} 


    int products() 

    { 
    int input; 
printf("\n        -Home products\n        -Electronics\n\n Press any key rather than 1 and 2 two return to main menu"); 

scanf("%d", &input); 

switch (input) 
{ 
case 1: 
    if(input == 1) 
     home_products(); 
    break; 

case 2: 
    if(input == 2) 
     electronics(); 
    break; 

default: 
    main(); 
    break; 
} 

    } 

    int home_products() 
    { 
     int input; 
     printf("Code yet to be written\n\n return to main menu by pressing 1 on the keyboard"); 
    scanf("%d", &input); 
     if(input == 1) 
     { 
     return main(); 
    } 


     } 

    int electronics() 
     { 
     printf("Code yet to be written"); 
     } 

     double payment() 
     { 

     return main(); 

     } 

     int customer() 
      { 
    printf("Code yet to be written"); 

     return main(); 
      } 
+4

ここにコードを掲載しないと、コードが機能しない理由についてお手伝いできません。あなたの仕事を始めることができない場合は、インストラクターに相談してください。 –

+1

これまでに試したコードを投稿できますか? –

+0

@JosephSibleコードが追加されました –

答えて

3

あなたはこのAnswerを見てみることができます。私はWindows上でテストしました。

基本的には

のWindows(CMD.EXE)、Linuxの(バッシュとzshの)とOS X(zshの)上でテスト回避策を次のように述べています

あなたはこの

のように機能を持たせることができます
void clrscr() 
{ 
    system("cls||clear"); 
} 

は、基本的にはsystem("cls")(Windowsの上で動作します)の問題、それは、ポータブルおよびsystem("clear")する(Linux上で動作)のために行くと同じではないということです。

上記の機能は両方で動作します。

あなたはこの

case 1: 
    if(input==1) 
    { 
     clrscr(); 
     products(); 
    } 

のようにそれを持つことができますので、input == 1場合は、最初のclrscr()が呼び出され、コンソールがクリアされ、その後、products()が呼び出されます。あなたは他のすべての関数と同じことができますが、上記の関数clrscr()の定義を含めることを忘れないでください。

また、この質問をご覧になることを強くお勧めします。How do you clear the console screen in C?このトピックの詳細については、こちらをご覧ください。

+0

ありがとうございます。それは助けになった。 –

+0

@AdibHasibあなたはようこそ、他の質問もお読みくださいhttp://stackoverflow.com/questions/2347770/how-do-you-clear-console-screen-in-c –

+0

@AdibHasibまた、これは私が参照しているものです:http://stackoverflow.com/a/33450696/5473170 –

関連する問題