ALpMontana
КЯaL´da TaNıMaM КuяaL´da
Dos ortaminda hazirlamayi dusundugunuz programlariniza menu eklemek ister misiniz ?
/**************************************
Programme : Menu
Compiler : Turbo C++ 3.0
File Name : menu.c
Pogrammer : Deniz TURKAN
**************************************/
/* Kutuphane tanimlari */
#include <stdio.h>
#include <conio.h>
#include <string.h>
#include <stdlib.h>
/* Menu secenekleri ve eleman sayisi */
#define eleman 7
const char *secenek[eleman] = {"° 1.Secenek °",
"° 2.Secenek °",
"° 3.Secenek °",
"° 4.Secenek °",
"° 5.Secenek °",
"° 6.Secenek °",
"° CIKIS °"
};
/* Menu de kullanilan tuslar tanimlaniyor */
#define cikis 27
#define asagi 80
#define yukari 72
#define enter 13
/* Herhangi bir ozelligi yok sadece deneme icin */
void deneme(void)
{
window(1,1,80,25);textbackground(0);clrscr();
gotoxy(30,12);
printf(" Bu Bir Denemedir !!!");
getch();
}
/* Istenilen koordinata istenilen renkte mesaj yaz */
void yaz(char x , char y , char renk , char *mesaj)
{
textcolor(renk);
gotoxy(x,y);
cprintf("%s",mesaj);
}
/* Menu islemleri */
void menu(unsigned char x, unsigned char y)
{
const char *mesaj1 = "Programmer : Deniz Turkan";
const char *mesaj2 = "Menu.c";
const char *mesaj3 = "e-mail : [email protected]";
unsigned char sayac;
char tus;
/* Etiket tanimlaniyor */
baslangic :
/* Ekran modunu 80 x 25 olarak ayarla */
textmode(C80);
window(1,1,80,25);textbackground(0);clrscr();
yaz(80 - strlen(mesaj2) ,1 ,7 ,(char *)mesaj2);
yaz(1 ,24 ,7 ,(char *)mesaj1);
yaz(1 ,25 ,7 ,(char *)mesaj3);
window(x , y , x + strlen((char *)secenek[0]) , y + (eleman - 1));
textbackground(0);clrscr();
/* Butun menu ekrana yaziliyor */
for(sayac = 0; sayac < eleman; sayac++)
yaz(1 , 1 + sayac , 7 , (char *)secenek[sayac]);
/* Menu'nun birinci elemani aktif hale getiriliyor */
sayac = 0;
window(x , y + sayac , x + strlen((char *)secenek[sayac]) , y + sayac + 1);
textbackground(4);
yaz(x , y + sayac , 15 , (char *)secenek[sayac]);
do
{
tus = getch();
window(x , y + sayac , x + strlen((char *)secenek[sayac]) , y + sayac + 1);
textbackground(0);
yaz(x , y + sayac , 7 , (char *)secenek[sayac]);
if ((tus == yukari)&&(sayac > 0)) sayac -= 1;
if ((tus == asagi) &&(sayac < eleman - 1)) sayac += 1;
if (tus == enter)
switch (sayac)
{
case 0: {deneme(); goto baslangic; }
case 1: { /* fonksiyon yaz */ goto baslangic; }
case 2: { /* fonksiyon yaz */ goto baslangic; }
case 3: { /* fonksiyon yaz */ goto baslangic; }
case 4: { /* fonksiyon yaz */ goto baslangic; }
case 5: { /* fonksiyon yaz */ goto baslangic; }
case 6: exit(0);
}
window(x , y + sayac , x + strlen((char *)secenek[sayac]) , y + sayac + 1);
textbackground(4);
yaz(x , y + sayac , 15 , (char *)secenek[sayac]);
}while(tus != cikis);
}
/* Ana program blogu */
int main(void)
{
/* Menu'nun ekrana ortalanmis olarak cikip aktif olmasini sagla*/
menu((80/2)-(strlen((char *)secenek[0])/2),10);
return 0;
}
/**************************************
Programme : Menu
Compiler : Turbo C++ 3.0
File Name : menu.c
Pogrammer : Deniz TURKAN
**************************************/
/* Kutuphane tanimlari */
#include <stdio.h>
#include <conio.h>
#include <string.h>
#include <stdlib.h>
/* Menu secenekleri ve eleman sayisi */
#define eleman 7
const char *secenek[eleman] = {"° 1.Secenek °",
"° 2.Secenek °",
"° 3.Secenek °",
"° 4.Secenek °",
"° 5.Secenek °",
"° 6.Secenek °",
"° CIKIS °"
};
/* Menu de kullanilan tuslar tanimlaniyor */
#define cikis 27
#define asagi 80
#define yukari 72
#define enter 13
/* Herhangi bir ozelligi yok sadece deneme icin */
void deneme(void)
{
window(1,1,80,25);textbackground(0);clrscr();
gotoxy(30,12);
printf(" Bu Bir Denemedir !!!");
getch();
}
/* Istenilen koordinata istenilen renkte mesaj yaz */
void yaz(char x , char y , char renk , char *mesaj)
{
textcolor(renk);
gotoxy(x,y);
cprintf("%s",mesaj);
}
/* Menu islemleri */
void menu(unsigned char x, unsigned char y)
{
const char *mesaj1 = "Programmer : Deniz Turkan";
const char *mesaj2 = "Menu.c";
const char *mesaj3 = "e-mail : [email protected]";
unsigned char sayac;
char tus;
/* Etiket tanimlaniyor */
baslangic :
/* Ekran modunu 80 x 25 olarak ayarla */
textmode(C80);
window(1,1,80,25);textbackground(0);clrscr();
yaz(80 - strlen(mesaj2) ,1 ,7 ,(char *)mesaj2);
yaz(1 ,24 ,7 ,(char *)mesaj1);
yaz(1 ,25 ,7 ,(char *)mesaj3);
window(x , y , x + strlen((char *)secenek[0]) , y + (eleman - 1));
textbackground(0);clrscr();
/* Butun menu ekrana yaziliyor */
for(sayac = 0; sayac < eleman; sayac++)
yaz(1 , 1 + sayac , 7 , (char *)secenek[sayac]);
/* Menu'nun birinci elemani aktif hale getiriliyor */
sayac = 0;
window(x , y + sayac , x + strlen((char *)secenek[sayac]) , y + sayac + 1);
textbackground(4);
yaz(x , y + sayac , 15 , (char *)secenek[sayac]);
do
{
tus = getch();
window(x , y + sayac , x + strlen((char *)secenek[sayac]) , y + sayac + 1);
textbackground(0);
yaz(x , y + sayac , 7 , (char *)secenek[sayac]);
if ((tus == yukari)&&(sayac > 0)) sayac -= 1;
if ((tus == asagi) &&(sayac < eleman - 1)) sayac += 1;
if (tus == enter)
switch (sayac)
{
case 0: {deneme(); goto baslangic; }
case 1: { /* fonksiyon yaz */ goto baslangic; }
case 2: { /* fonksiyon yaz */ goto baslangic; }
case 3: { /* fonksiyon yaz */ goto baslangic; }
case 4: { /* fonksiyon yaz */ goto baslangic; }
case 5: { /* fonksiyon yaz */ goto baslangic; }
case 6: exit(0);
}
window(x , y + sayac , x + strlen((char *)secenek[sayac]) , y + sayac + 1);
textbackground(4);
yaz(x , y + sayac , 15 , (char *)secenek[sayac]);
}while(tus != cikis);
}
/* Ana program blogu */
int main(void)
{
/* Menu'nun ekrana ortalanmis olarak cikip aktif olmasini sagla*/
menu((80/2)-(strlen((char *)secenek[0])/2),10);
return 0;
}