begin process at 2012 02 12 10:21:11
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Application

 > PILES BASÉ SUR DES TABLEAUX

PILES BASÉ SUR DES TABLEAUX


 Information sur la source

Note :
7 / 10 - par 1 personne
7,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Application Classé sous :piles, gestion, dynamique, creation, suppression Niveau :Expert Date de création :12/06/2003 Date de mise à jour :12/06/2003 22:54:06 Vu :3 697

Auteur : dreamoudi

Ecrire un message privé
Commentaire sur cette source (1)
Ajouter un commentaire et/ou une note

 Description

Code trés fort pour bien gerer les piles, creation dynamique, effecement, avec bonne gestion de la memoire.

Source

  • // Program name : Stack Manager
  • // Description : Manage Stacks based on tables.
  • // Creator : By Mohamed K. Nasrallah
  • // Company : Dreamwood Studios - SmartScript Inc.
  • // Credits : All rights are reserved, (c) 2003 SmartScript Inc.
  • // Comment : Free of charge source code -dreamoudi@linuxmail.org
  • #include <iostream.h>
  • #define max 99
  • #define min 0
  • struct pile
  • {
  • int data[max+1];
  • int top;
  • };
  • pile*CreatPile(pile*loader)
  • {
  • loader = new pile;
  • loader->top = -1;
  • return loader;
  • }
  • int IsEmpty(pile*loader)
  • {
  • if(loader->top < min)
  • return 1;
  • else return 0;
  • }
  • void PrintPile(pile*loader)
  • {
  • if(loader && (IsEmpty(loader) == 0))
  • {
  • int i;
  • for(i = loader->top; i>=0 ; i--)
  • cout <<endl<<"["<<loader->data[i]<<"]"<<endl;
  • }
  • else
  • cout <<endl<<"Can't print, stack is empty"<<endl;
  • }
  • int PushData(pile*loader,int data)
  • {
  • if(loader && (loader->top < max))
  • {
  • loader->top++;
  • loader->data[loader->top] = data;
  • return 1;
  • }
  • else
  • {
  • return 0;
  • }
  • }
  • int PopData(pile*loader)
  • {
  • if(IsEmpty(loader))
  • {
  • return 0;
  • }
  • else
  • {
  • loader->top--;
  • return 1;
  • }
  • }
  • int PileFree(pile*loader)
  • {
  • if(IsEmpty(loader) == 0)
  • {
  • loader->top = -1;
  • return 1;
  • }
  • else return 0;
  • }
  • int SpyOnTop(pile*loader)
  • {
  • if(loader && (loader->top >= min))
  • {
  • int spyed = loader->data[loader->top];
  • return spyed;
  • }
  • else return NULL;
  • }
  • void main()
  • {
  • pile*loader = NULL;
  • double data;
  • int choice = 0;
  • int status;
  • while(choice!=6)
  • {
  • cout <<endl
  • <<"Choose an option "<<endl
  • <<" "<<endl
  • <<" 1- Push to stack "<<endl
  • <<" 2- Pop from stack "<<endl
  • <<" 3- Spy on top "<<endl
  • <<" 4- Clear stack "<<endl
  • <<" 5- Print Stack "<<endl
  • <<" 6- Exit "<<endl<<endl;
  • cout << "CHOICE\\>: ";
  • cin >> choice;
  • switch(choice)
  • {
  • case 1:
  • {
  • if(loader == NULL)
  • loader = CreatPile(loader);
  • cout <<endl<<endl<<"Enter a value: ";
  • cin >>data;
  • status = PushData(loader,data);
  • if (status == 1)
  • cout<<endl<<"Data was pushed succefully"<<endl;
  • else
  • cout<<endl<<"Stack is full"<<endl;
  • break;
  • }
  • case 2:
  • {
  • if(loader)
  • {
  • status = PopData(loader);
  • if(status == 1)
  • cout <<endl<<"Stack was been poped 1 time"<<endl;
  • else
  • cout <<endl<<"No data in stack"<<endl;
  • break;
  • }
  • else
  • cout <<endl<<"No stack"<<endl;
  • break;
  • }
  • case 3:
  • {
  • status = SpyOnTop(loader);
  • if(status != NULL)
  • cout <<endl<<"Top value is ["<<status<<"]"<<endl;
  • else
  • cout <<endl<<"Stack is empty, or no stack"<<endl;
  • break;
  • }
  • case 4:
  • {
  • if(loader)
  • {
  • status = PileFree(loader);
  • if(status == 1)
  • cout <<endl<<"Stack cleared"<<endl;
  • else
  • cout <<endl<<"Already cleared"<<endl;
  • }
  • else
  • cout <<endl<<"No stack to clear"<<endl;
  • break;
  • }
  • case 5:
  • {
  • PrintPile(loader);
  • break;
  • }
  • case 6:
  • {
  • break;
  • }
  • default:
  • {
  • cout <<endl<<"\aThis is an illegal choice, note that you must"<<endl
  • <<"read well the menu.\a"<<endl;
  • break;
  • }
  • }
  • }
  • delete loader;
  • }
// Program name         : Stack Manager
// Description	 : Manage Stacks based on tables.
// Creator		 : By Mohamed K. Nasrallah
// Company	 : Dreamwood Studios - SmartScript Inc.
// Credits		 : All rights are reserved, (c) 2003 SmartScript Inc.
// Comment	 : Free of charge source code -dreamoudi@linuxmail.org

#include <iostream.h>
#define max 99
#define min 0

struct pile
	{
   	int data[max+1];
      int top;
   };

pile*CreatPile(pile*loader)
	{
   	loader = new pile;
      loader->top = -1;
      return loader;
   }

int IsEmpty(pile*loader)
	{
   	if(loader->top < min)
      	return 1;
      else return 0;
   }

void PrintPile(pile*loader)
	{
   	if(loader && (IsEmpty(loader) == 0))
      	{
				int i;
            for(i = loader->top; i>=0 ; i--)
            cout  <<endl<<"["<<loader->data[i]<<"]"<<endl;
         }
      else
      	cout	<<endl<<"Can't print, stack is empty"<<endl;
   }

int PushData(pile*loader,int data)
	{
      if(loader && (loader->top < max))
      	{
					loader->top++;
               loader->data[loader->top] = data;
					return 1;
      	}
      else
      	{
      		return 0;
      	}
   }

int PopData(pile*loader)
	{
    			if(IsEmpty(loader))
      			{
               	return 0;
      		   }
            else
         		{
                  loader->top--;
                  return 1;
               }
   }

int PileFree(pile*loader)
	{
    			if(IsEmpty(loader) == 0)
      			{
						loader->top = -1;
               	return 1;
      		   }
            else return 0;
   }

int SpyOnTop(pile*loader)
	{
    			if(loader && (loader->top >= min))
         		{
                  int spyed = loader->data[loader->top];
                  return spyed;
               }
            else return NULL;
   }

void main()
	{
   	pile*loader = NULL;
      double data;
      int choice = 0;
      int status;

      	while(choice!=6)
				{
      			cout  <<endl
               		<<"Choose an option			"<<endl
      					<<"					 			"<<endl
            			<<"	1- Push to stack		"<<endl
         			   <<"	2- Pop from stack		"<<endl
     			      	<<"	3- Spy on top			"<<endl
            			<<"	4- Clear stack			"<<endl
                     <<"	5- Print Stack			"<<endl
                     <<"	6- Exit					"<<endl<<endl;
               cout	<< "CHOICE\\>: ";
               cin	>> choice;

            	switch(choice)
               	{
                  	case 1:
                     	{
                        	if(loader == NULL)
                           	loader = CreatPile(loader);
                           cout	<<endl<<endl<<"Enter a value: ";
                           cin	>>data;
                           status = PushData(loader,data);
                           	if (status == 1)
                              	cout<<endl<<"Data was pushed succefully"<<endl;
                              else
                              	cout<<endl<<"Stack is full"<<endl;
                           break;
                        }
                     case 2:
                     	{
                           if(loader)
                           	{
			                       	status = PopData(loader);
         	                  	if(status == 1)
            	                  	cout	<<endl<<"Stack was been poped 1 time"<<endl;
               	               else
                  	            	cout	<<endl<<"No data in stack"<<endl;
                     	         break;
                              }
                           else
                           	cout	<<endl<<"No stack"<<endl;
                           break;
                        }
                     case 3:
                     	{
                        	status = SpyOnTop(loader);
                           if(status != NULL)
                        		cout	<<endl<<"Top value is ["<<status<<"]"<<endl;
                           else
                           	cout	<<endl<<"Stack is empty, or no stack"<<endl;
                           break;
                        }
                     case 4:
                     	{
                           if(loader)
                           	{
	                        		status = PileFree(loader);
											if(status == 1)
												cout	<<endl<<"Stack cleared"<<endl;
											else
												cout	<<endl<<"Already cleared"<<endl;
										}
                           else
                           	cout	<<endl<<"No stack to clear"<<endl;

                           break;
                        }
                     case 5:
                     	{
                         	PrintPile(loader);
                           break;
                        }
                     case 6:
                     	{
									break;
                        }
                     default:
                     	{
                        	cout	<<endl<<"\aThis is an illegal choice, note that you must"<<endl
                           		<<"read well the menu.\a"<<endl;
                           break;
                        }
                  }
				}

	delete loader;
	}

 Conclusion

Pour qui aime avoir ce code ecrit en list chainee, envoyer une message.
Merci.


 Sources de la même categorie

Source avec Zip Source avec une capture CONTACTS MANAGER par eapaceinfo
Source avec Zip Source avec une capture CONTACTES BOOK par mature
Source avec Zip Source avec une capture [C++/QT] SLIDEALWAYS, RÉALISEZ DES SLIDES POUR VOTRE SITE AV... par doderic
Source avec Zip Source avec une capture MAILLAGE 3D (VTK + QT) par ammoun007
Source avec Zip Source avec une capture CONVHTML : UN UTILITAIRE DE CONVERSION POUR FICHIERS HTML par pgl10

 Sources en rapport avec celle ci

Source avec Zip Source avec une capture SHOP MANAGER CONSOLE SUR WINDOWS par antho974
Source avec Zip Source avec une capture GETIONNAIRE D'UNE BIBLIOTHÉQUE EN C par benzarabel
Source avec Zip Source avec une capture UN GESTIONNAIRE DU FICHIER par benzarabel
Source avec Zip Source avec une capture GESTION DE BIBLIOTHEQUE par moujahid88
Source avec Zip GESTIONNAIRE DE SERVER ET CLIENT DDE (DYNAMIC DATA EXCHANGE) par BaFM

Commentaires et avis

Commentaire de gillig le 13/06/2003 12:57:56

Pas mal, mais c'est typiquement le genre de code dont on peut faire une classe. Et pendant qu'on y est, avec template, histoire de pouvoir stocker autre chose que des int...

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

Creation logiciel Video/Gestion [ par lezabour55 ] Bonjour a tous,Je pense a developper un logiciel qui aura 3 missions, il me semble assez simple, mais a vous de me confirmer 1) Recuperation d'un fi creation dynamique [ par sheorogath ] bonjour a tous ,g reussi a developper un programme permetant la gestion des stock en mode console avec entre autre l'aide de ce forum . mais je voudra Creation d'objet dynamique (FORM) [ par katerson ] Salut à tous, Je travaille en ce moment sur Visual Studio et j'utilise les Forms pour mon application. Je viens de créer une arborescence (TreeView Gestion dynamique des controles (button, listbox, static text ....etc) [ par SaNcOdeR ] Bonjour, je recherche une classe de gestion dynamique des controles tel que les bouttons, les check box, les tree ...etc... afin de pouvoir g&#233;r&# [.net c++] gestion du port serie [ par stgi02 ] bonjour, j'ai une question sur la gestion du port s&#233;rie pouvez-vous m'expliquer ce que signifie SetCommTimeouts ,GetCommTimeouts , COMMTIMEOUTS s Creation d'une palette couleur [ par julienbornet ] Bonjour ben comme je dis dans le titre je souhaite creer un genre de palette couleur (genre celle de paint) mais un peu differente. En fait je veux av creation d'un chat; [ par loverjeckill ] Je voudrai cr&#233;er un chat pour une communaut&#233;; ce chat devrai disposer d'une liste de pseudo, ainsi que des petites fonctionnalit&#233; du ge gestion du volume avec FMOD [ par cowboybebop95 ] "Bonjour &#224; tous,Voila dans le cadre d'un projet de fin d'ann&#233;e je suis ammen&#233; a utiliser la librairie Fmod pour la gestion des audiosPo gestion des periphériques [ par mimiaka ] bsr bon voila je doi realisé un programme sous c ou c++ qui porte sur la gestion des periphériques et j'en ai aucune idée si quelqu'un pourai m'aidé j creation en projet [ par bonjour__ ] salut toutle monde;je suis debutant sur programmationmon question comment cree un projet sur visual c++ merci a tous


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,406 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales