C ile Bilet Dağıtma Programı

tarihinde yayınlandıMekatronik içinde yayınlandı

Bu kod aşağıdaki başlıkların örneğini içermektedir;

  • Random fonksiyonu
  • İç içe döngüler
  • İç içe do-while döngüsü

Program insanlara feribot bileti dağıtmaktadır.

menu

Programda ilk önce 4 seçenekli yönlendirme menüsü karşımıza çıkmaktadır. bunlar bilet(ler) sat, son oturma pozisyonu, Programdan çık ve bütün biletleri sildir. Anlıyacağınız üzere “sell ticket(s)” seçeneginde bilet satılır. “Last sitiation” seçeneğinde satılmış biletlerin yerleri gösterilir.”Cancal all tickets” seçeneğide satılan bütün biletleri siler ve son olarakda “exit” seçeneği programın kapanmasını sağlar.

sell_tickets

“The sell tickets” seçeneği ile biletleri random fonksiyonu ile rasgele satmış bulunmaktayız.

empty_seats     not_empty_seats

 

Bu resimlerde ise oturma planını görüyorsunuz. Soldaki resim boş oturma planı sağdaki resim ise bilet satıldıktan sonraki oturma planı.

Kod;

//—LIBRARIES—
#include< stdio.h>
#include< stdlib.h>
#include< time.h>
#include< conio.h>

//—PROTOTIPES—
void emptyposition();
void sellticket();
void showtable();

//—GLOBAL-VERAIBLES—
char sekil[11][17];
int counter=0;
main(){

//—LOCAL-VERAIBLES—
char choice,choice1;

//—CREATING-SEAT-MAP—
emptyposition();
srand(time(0));

//—MENU—
do{
printf(“\nPlease enter an option :\n”);
printf(” 1 – Sell ticket(s)\n”);
printf(” 2 – Last sitiation\n”);
printf(” 3 – Exit\n”);
printf(” 4 – Cancel all tickets\n”);
printf(“Option :”);
choice = getch();printf(“%c \n”,choice);
switch(choice){
case ‘1’: sellticket(); break;
case ‘2’: showtable(); printf(“\nPress any key to return the menu…\n”);choice1 = getch(); break;
case ‘3’: printf(“\nHave a nice day…\n\n”); break;
case ‘4’: emptyposition(); printf(“\nTicket list is erased!\n”); break;
default: printf(“\nInvalid number!\n”);
}
}while(choice!=’3′);
system(“pause”);
}
void sellticket(){

//—VERAIBLES—
int quantity,i,j,k=0,wrongplace=0,wrongseat=0,wronggender=0;char gender;
if(counter< 50){

do{
printf(“How many tickets you will sell? :”);scanf(“%d”,&quantity);
if(quantity>50-counter){printf(“\nThere is only %d seats. Please enter less than %d.\n\n”,50-counter,51-counter);}
}while(quantity>50-counter);

for(k=1;k<=quantity;k++){

//—TAKING GENDER—
do{
printf(“Enter gender of passenger %d (M:man W:woman) :”,k);
fflush(stdin);
gender = getch();printf(“%c \n”,gender);

do{

//RANDOM FUNCTION CREATES NUMBER
i=rand()%11;
j=rand()%17;

//IF THE SEAT İS WRONG PLACE THAN RANDOM FUNCTION CREATS NEW NUMBER TILL FIND THE EMPTY SEAT
if(j%2==1||i==0||j==0||j==6||j==12||(i==3&&j==8)||(i==3&&j==10)||(i==6&&j==10)||(i==6&&j==8)
||(i==5&&j==10)||(i==5&&j==8)||(i==3&&j==14)||(i==3&&j==16)||(i==4&&j==10)||(i==4&&j==8))

{wrongplace=0;}
else if(sekil[i][j]==’W’||sekil[i][j]==’M’)
{ wrongplace=0;}
else if(gender==’m’||gender==’M’)
{ sekil[i][j]=’M’; wrongplace=1;wronggender=1;}
else if(gender==’W’||gender==’w’)
{ sekil[i][j]=’W’; wrongplace=1;wronggender=1;}
else if(gender!=’m’||gender!=’M’||gender!=’w’||gender!=’W’)
{ printf(“\nInvalid gender!\n\n”); wrongplace=1;wronggender=0;}

}while(wrongplace!=1);
}while(wronggender!=1);

//—SHOWS THE CUSTUMER BUYED SEAT
switch(i){
case 1: printf(“Seat is A – %d\n”,j/2); break;
case 2: printf(“Seat is B – %d\n”,j/2); break;
case 3: printf(“Seat is C – %d\n”,j/2); break;
case 4: printf(“Seat is D – %d\n”,j/2); break;
case 5: printf(“Seat is E – %d\n”,j/2); break;
case 6: printf(“Seat is F – %d\n”,j/2); break;
case 7: printf(“Seat is G – %d\n”,j/2); break;
case 8: printf(“Seat is H – %d\n”,j/2); break;
case 9: printf(“Seat is I – %d\n”,j/2); break;
case 10: printf(“Seat is J – %d\n”,j/2);break;
}counter++;
}
}else {printf(“\nThere is no seat!\n”);}

}

//—PRESSING THE ARRAY ‘SEKIL’
void showtable(){
int i,j;
for(i=0;i< 11;i++){
for(j=0;j< 17;j++){
printf(“%c”,sekil[i][j]);
}
printf(“\n”);
}
}

//—CRAETING ARRAY ‘SEKIL’ WHİCH MEAN CREATING SEAT MAP—
void emptyposition(){
int i,j;
for(i=0;i< 11;i++){for(j=0;j< 17;j++){sekil[i][j]=’-‘;}}

sekil[0][0]=’ ‘;;sekil[0][2]=’1′;sekil[0][4]=’2′;
sekil[0][8]=’4′;sekil[0][10]=’5′;sekil[0][14]=’7′;sekil[0][16]=’8′;

sekil[1][0]=’A’;sekil[2][0]=’B’;sekil[3][0]=’C’;sekil[4][0]=’D’;
sekil[5][0]=’E’;sekil[6][0]=’F’;sekil[7][0]=’G’;sekil[8][0]=’H’;
sekil[9][0]=’I’;sekil[10][0]=’J’;

for(i=0;i< 11;i++){for(j=1;j< 17;j+=2){sekil[i][j]=’ ‘;}}

for(i=0;i< 11;i++){sekil[i][6]=177;sekil[i][12]=177;}sekil[0][6]=’ ‘;sekil[0][12]=’ ‘;

sekil[3][8]=177;sekil[3][10]=177;sekil[3][14]=177;sekil[3][16]=177;
sekil[6][8]=177;sekil[6][10]=177;sekil[4][8]=201;sekil[4][10]=187;
sekil[5][8]=200;sekil[5][10]=188;
}

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir