วันอาทิตย์ที่ 10 กุมภาพันธ์ พ.ศ. 2551

เมนู DOS-style

สมัยก่อน โปรแกรมที่ใช้ DOS จะนิยมเขียนเป็นเมนู
เลยทดลองสร้างดู

รหัสโปรแกรม main.c


/*
by Chakkree Tiyawongsuwan
10 Feb 2008
*/

include
include

include "menu.h"

int main(){
int i , num_munu;
MENU_ITEM Main_menu[] = {
{1,"Add"},
{2,"Delete"},
{3,"Edit"},
{0,"Exit"}
};

num_munu = sizeof(Main_menu) / sizeof(MENU_ITEM);
i = ChooseMenu(Main_menu, "Main Menu" , num_munu);

printf("\n\nyou choose menu no. %d \n" , i);

system("PAUSE");
return 0;
}



รหัสโปรแกรม menu.h


/*
by Chakkree Tiyawongsuwan
10 Feb 2008
*/

#ifndef _MENU_
#define _MENU_

#define FALSE 0
#define TRUE 1

typedef struct menu {
int id;
char name[10];
} MENU_ITEM;

int ChooseMenu(MENU_ITEM Menu[], char *msg ,int n);

#endif




รหัสโปรแกรม menu.c


/*
by Chakkree Tiyawongsuwan
10 Feb 2008
*/
#include "menu.h"

int ChooseMenu(MENU_ITEM Menu[], char *msg ,int n){
int i ,ch , done;
MENU_ITEM *myMenu;

done = FALSE;
//num_munu = sizeof(Menu) / sizeof(MENU_ITEM);

do{
system("CLS");
printf("===================\n");
printf(" %s\n", msg);
printf("===================\n");

myMenu = Menu;
for (i= 0; i < n; i++){
printf("%5d %-10s\n",myMenu->id , myMenu->name);
myMenu++;
}
printf("\n Select : ");

myMenu = Menu;
for (i= 0; i < n; i++) {
printf("%d " ,myMenu->id );
myMenu++;
}
printf(" : ");
scanf("%d", &ch);

myMenu = Menu;
for (i= 0; i < n; i++) {
if (ch==myMenu->id) {
done = (ch==myMenu->id);
myMenu++;
break;
}
myMenu++;
}
} while(!done);

return ch;
}



ไม่มีความคิดเห็น: