How do I get back to the main menu in this program?

0

Good day, I'm doing a program where I print a type of sales invoice from a warehouse, I have everything done but I would like to know how to go back to the main menu to do the whole process again without closing and opening the program ... Here I leave the code, thank you for your help! Pd: The include of functionsdariend is a library of functions made by me where I have several saved functions to save space in the code, if you need me to put this file in the question they tell me to place it .. Thanks for everything

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <conio.h>
#include <funcionesdariend.h>
//variables globales y arrays
int n,totalDepto=0,totalT=0,diaMay,diaMen;
char sucursales[4][8]={"David","Baru","Alanje","Gualaca"};
char departamento[5][10]={"Damas","Caballeros","Ninos","Hogar","Tecnologia"};
char dias[6][9]={"Lunes","Martes","Wednesday","Jueves","Viernes","Sabado"};
float almacen[5][6][4];
//funcion para imprimir totales
void totales(float array[][6][4]){
    printf("VENTA TOTAL DE LA SUCURSAL DAVID: %.2f\n",sumaTotal(array,0));
    printf("VENTA TOTAL DE LA SUCURSAL BARU: %.2f\n",sumaTotal(array,1));
    printf("VENTA TOTAL DE LA SUCURSAL ALANJE: %.2f\n",sumaTotal(array,2));
printf("VENTA TOTAL DE LA SUCURSAL GUALACA: %.2f\n",sumaTotal(array,3));
printf("\nVENTA TOTAL DEL ALMACEN: %.2f\n",ventasAlmacen(array));
system("\nPause");
}
//funcion para imprimir reporte
void imprimirReporte(char c){
    for (int sucur = 0; sucur < 4; ++sucur) {
    for (int filas = 0; filas < 5; ++filas) {
        for (int columnas = 0; columnas < 6; ++columnas) {
            almacen[filas][columnas][sucur] = rand()%99;
        }
    }
}
int control=0,sucursalCiclo=0;
system("cls");
printf("                                             ALMACEN GASTE MENOS LLEVE MAS\n");
switch (c){
    case 'D':printf("                                                    SUCURSAL DAVID\n");sucursalCiclo=0; break;
    case 'B':printf("                                                    SUCURSAL BARU\n");sucursalCiclo=1;break;
    case 'A':printf("                                                    SUCURSAL ALANJE\n");sucursalCiclo=2;break;
    case 'G':printf("                                                    SUCURSAL GUALACA\n");sucursalCiclo=3;break;
    case 'N':break;
    default:break;
}
printf("                                               REPORTE SEMANAL DE VENTAS\n\n");
if(c!='N'){
printf("DEPARTAMENTO    LUNES              MARTES              MIERCOLES          JUEVES             VIERNES           SABADO        TOTAL DEPTO\n");
printf("-----------------------------------------------------------------------------------------------------------------------------------------\n");}
for (int i = 0; i < 5; ++i) {
    for (int j = control; j < control+1; ++j) {
        for (int k = 0; k < 10; ++k) {
            if(c!='N') {
                printf("%c", departamento[j][k]);
            }
        }
    }
    for (int filas = control; filas < control+1; ++filas) {
        for (int columnas = 0; columnas < 6; ++columnas) {
            if(c!='N') {
                printf("       %.1f        ", almacen[filas][columnas][sucursalCiclo]);
            }
            totalDepto+=almacen[filas][columnas][sucursalCiclo];
        }
    }
    if(c!='N') {
        printf("     %.1f", (double) totalDepto);
    }
    totalT+=totalDepto;
    totalDepto=0;
    if(c!='N') {
        printf("\n");
    }
    control++;
}
if(c!='N') {
    printf("-----------------------------------------------------------------------------------------------------------------------------------------\n");
    printf("TOTAL POR DIA   %.1f               %.1f             ", totalRow(almacen, 0, sucursalCiclo), totalRow(almacen, 1, sucursalCiclo));
    printf("%.1f              %.1f              ", totalRow(almacen, 2, sucursalCiclo), totalRow(almacen, 3, sucursalCiclo));
    printf("%.1f               %.1f             %i          \n", totalRow(almacen, 4, sucursalCiclo), totalRow(almacen, 5, sucursalCiclo), totalT);
    imprimirPie(dias, departamento, almacen, sucursalCiclo);
    printf("\nVENTA TOTAL DE LA SUCURSAL: %.2f\n", sumaTotal(almacen, sucursalCiclo));
    system("\nPause");
}
}
//funcion principal
void main() {
printf("                                              ALMACEN GASTE MENOS LLEVE MAS\n                                                REPORTE SEMANAL DE VENTAS\n");
printf("                                                 1. Sucursal de David\n                                                 2. Sucursal de Baru\n");
printf("                                                 3. Sucursal de Alanje\n                                                 4. Sucursal de Gualaca\n");
printf("                                                 5. Totales Finales\n                                                 6. Finalizar\n\n");
scanf("%d",&n);
srand((unsigned int) time(NULL));
if(n==1||n==2||n==3||n==4){
    imprimirReporte(sucursales[n-1][0]);
}
else if(n==5){
    imprimirReporte('N');
    totales(almacen);
}
else{
    printf("Ha finalizado");
}
}
    
asked by Dariend 10.10.2017 в 05:55
source

1 answer

1

If you want a part of the program to be repeated more than once you have to use loops, of course. In this case the loop must enclose the logic of the menu:

void main() {
  srand((unsigned int) time(NULL));

  do
  {
    printf("                                              ALMACEN GASTE MENOS LLEVE MAS\n                                                REPORTE SEMANAL DE VENTAS\n");
    printf("                                                 1. Sucursal de David\n                                                 2. Sucursal de Baru\n");
    printf("                                                 3. Sucursal de Alanje\n                                                 4. Sucursal de Gualaca\n");
    printf("                                                 5. Totales Finales\n                                                 6. Finalizar\n\n");
    scanf("%d",&n);
    if(n==1||n==2||n==3||n==4){
      imprimirReporte(sucursales[n-1][0]);
    }
    else if(n==5){
      imprimirReporte('N');
      totales(almacen);
    }
  } while( n != 6 );
  printf("Ha finalizado");
}
    
answered by 10.10.2017 в 07:37