Napisali bomo program za kalkulator z več natančnim računanjem. Vsak kalkulator za svoje delovanje potrebuje operacije.
Naše operacije so:
Oglejmo si primer:
Za izdelavo kalkulatorja potrebujemo:
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include "../../code/Sklad/Skladi.h"
/* ------------------------------------------------------------- */
/* -------------------------------------[ glavni program ]------ */
/* ------------------------------------------------------------- */
int main( void ) {
Sklad<int> mojSklad;
int zacStev1, zacStev2;
char vrstica [250]; /* vrstica z morebitnimi parm. */
while ( !feof(stdin) ) { /* vsako vrstico obdelamo */
scanf("%s", vrstica);
switch (vrstica[0]) { /* prvi znak vrstice je ukaz */
case 'S': /* sestevanje stevil */
zacStev1 = mojSklad.Zlozi();
zacStev2 = mojSklad.Zlozi();
mojSklad.Nalozi(zacStev2+zacStev1);
break;
case 'O': /* odstevanje stevil */
zacStev1 = mojSklad.Zlozi();
zacStev2 = mojSklad.Zlozi();
mojSklad.Nalozi(zacStev2-zacStev1);
break;
case 'M': /* mnozenje stevil */
zacStev1 = mojSklad.Zlozi();
zacStev2 = mojSklad.Zlozi();
mojSklad.Nalozi(zacStev2*zacStev1);
break;
case 'D': /* deljenje stevil - ostanek */
zacStev1 = mojSklad.Zlozi();
zacStev2 = mojSklad.Zlozi();
mojSklad.Nalozi(zacStev2 % zacStev1);
break;
case 'K': /* deljenje stevil - kolicnik */
zacStev1 = mojSklad.Zlozi();
zacStev2 = mojSklad.Zlozi();
mojSklad.Nalozi(zacStev2 / zacStev1);
break;
case 'V': /* vpis novega stevila */
mojSklad.Nalozi(atoi (&(vrstica[1])));
break;
case 'I': /* izpisemo zadnje stevilo */
printf("%d\n", mojSklad.Zlozi());
break;
}; /* switch */
} /* while */
return 0;
} /* main */