Senin, 27 Mei 2013

Program Bahasa C : Stack

Diposting oleh Unknown di 01.51
Contoh Program :

#include <stdio.h>
#include <conio.h>
#include <string.h>
#define MAX 10            

struct Mahasiswa {
     char nim[10];
     char nama[25];       
     float nilai;
     };

struct tumpuk {                 
     Mahasiswa mhs[MAX];        
     int top;                   
     };

tumpuk t;       

void Belum_Ada_Data() {
     t.top = -1;                    
     }

int Penuh() {
     if(t.top == MAX-1)return 1;          
     else return 0;                           
     }

int Kosong() {
     if(t.top == -1)return 1;      
     else return 0;
     }

void Push(Mahasiswa m) {
     t.top++;                             
     strcpy(t.mhs[t.top].nim, m.nim);           
     strcpy(t.mhs[t.top].nama, m.nama);   
     t.mhs[t.top].nilai = m.nilai;
     }

void Pop() {                                              
     printf("\nMahasiswa dengan : \n");                        
     printf("NIM   : %s\n",t.mhs[t.top].nim);            
     printf("Nama  : %s\n",t.mhs[t.top].nama);            
     printf("Nilai : %0.2f\n\n",t.mhs[t.top].nilai);     
     t.top--;                                            
     }

void Hapus_Semua() {
     t.top=-1;            
     }

void Cetak() {
     for(int i=t.top; i>=0; i--) {
           printf("\nMahasiswa ke-%d\n",i+1);             
           printf("--------------\n");                          
           printf("NIM   : %s\n",t.mhs[i].nim);            
           printf("Nama  : %s\n",t.mhs[i].nama);
           printf("Nilai : %0.2f\n\n",t.mhs[i].nilai);
           }
     }
void main() {
     Belum_Ada_Data();
     int pilihan,banyak;
     do{
           printf("\n------------------\n");
           printf("1. Memasukkan Data\n");
           printf("2. Mengambil Data\n");
           printf("3. Cetak Data\n");                
           printf("4. Hapus Semua\n");                     
           printf("Pilihan : ");
           scanf("%d",&pilihan);
           printf("------------------\n");
          switch(pilihan) {
           case 1:{
                printf("\nMasukkan banyak mahasiswa yang akan diinput : ");
                scanf("%d",&banyak);
                Mahasiswa data;
                for(int i=0; i<banyak; i++) {
                     if(Penuh() == 1) {
                           printf("Maaf, data mahasiswa sudah penuh !\n");
                           }
                     else {
                           printf("\nInputkan Data Mahasiswa ke-%d\n",i+1);
                           printf("NIM   : ");scanf("%s",&data.nim);
                           printf("Nama  : ");scanf("%s",&data.nama);
                           printf("Nilai : ");scanf("%f",&data.nilai);
                           printf("\n");
                           Push(data);
                           }
                     }
                }                          
                break;
           case 2:
                if(Kosong() != 1) Pop();
                else printf("\nMasih kosong!\n");
                break;
           case 3:
                if(Kosong() != 1) Cetak();
                else printf("\nMasih kosong!\n");
                break;
           case 4:
                Hapus_Semua();
                printf("\nSudah kosong!\n");
                break;
           }
           getch();
     }
     while(pilihan != 5);
     getch();
}

Output Program :







0 komentar:

Posting Komentar

What the fuck ヾ(´^ω^)ノ♪

Diberdayakan oleh Blogger.
 

♥ Wentii's Blog ♥ Template by Ipietoon Blogger Template | Gift Idea