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 */