fork download
  1. /* package whatever; // don't place package name! */
  2.  
  3. import java.util.*;
  4. import java.lang.*;
  5. import java.io.*;
  6.  
  7. /* Name of the class has to be "Main" only if the class is public. */
  8. class Ideone
  9. {
  10. public static void main (String[] args) throws java.lang.Exception
  11. {
  12. // your code goes here
  13. }
  14. }
Success #stdin #stdout 0.09s 54636KB
stdin
import pandas as pd
from datetime import datetime
from decimal import Decimal
from tabulate import tabulate

# Creamos una lista donde se estarán guardando todos los movimientos
lst_diccionarios = []

while True:
    try:
        print("-- MENU PRINCIPAL --")
        print("1 - Agregar un egreso.")
        print("2 - Agregar un ingreso.")
        print("3 - Mostrar tabla de todos los ingresos y egresos.")
        print("4 - Exportar presupuesto a CSV o Excel.")
        print("5 - Salir.")

        opcion = int(input("Elija una opción: "))

        if opcion == 1:
            print("-- LISTA DE EGRESOS --")
            print("1 - Transporte.")
            print("2 - Pago de examenes.")
            print("3 - GYM.")
            print("4 - Diversión, recreación y salidas.")
            print("5 - Libros o fotocopias.")
            print("6 - Regresar a Menu Principal.")

            opcion_egreso = Decimal(input("Elija una opción: "))

            if opcion_egreso == 6:
                break

            cantidad = float(input("Cantidad: "))
            dt = datetime.now()
            formato = "%Y-%m-%d %H:%M"
            fecha_actual = dt.strftime(formato)

            conceptos_egreso = [
                'Transporte',
                'Pago de examenes',
                'GYM',
                'Diversión, recreación y salidas',
                'Libros o fotocopias'
            ]

            egreso = {
                'Concepto': conceptos_egreso[int(opcion_egreso) - 1],
                'Cantidad': cantidad,
                'Fecha': fecha_actual,
                'Tipo_Movimiento': 'EGRESO'
            }

            lst_diccionarios.append(egreso)
            df = pd.DataFrame(lst_diccionarios)

            print("¡NUEVO EGRESO GUARDADO CON ÉXITO!")
            print(df)

        elif opcion == 2:
            print("-- LISTA DE INGRESOS --")
            print("1 - Sueldo.")
            print("2 - Aportación de papás.")
            print("3 - Venta de comida.")
            print("4 - Trabajo de medio tiempo.")
            print("5 - Dar tutorías.")
            print("6 - Regresar a Menu Principal.")

            opcion_ingreso = int(input("Elija una opción: "))

            if opcion_ingreso == 6:
                break

            cantidad = float(input("Cantidad: "))
            dt = datetime.now()
            formato = "%Y-%m-%d %H:%M"
            fecha_actual = dt.strftime(formato)

            conceptos_ingreso = [
                'Sueldo',
                'Aportación de papás',
                'Venta de comida',
                'Trabajo de medio tiempo',
                'Dar tutorías'
            ]

            ingreso = {
                'Concepto': conceptos_ingreso[opcion_ingreso - 1],
                'Cantidad': cantidad,
                'Fecha': fecha_actual,
                'Tipo_Movimiento': 'INGRESO'
            }

            lst_diccionarios.append(ingreso)
            df = pd.DataFrame(lst_diccionarios)

            print("¡NUEVO INGRESO GUARDADO CON ÉXITO!")
            print(df)

        elif opcion == 3:
            cantidad_elementos = len(lst_diccionarios)
            if cantidad_elementos == 0:
                print("Actualmente no se ha agregado ningún movimiento para visualizar.")
            else:
                df = pd.DataFrame(lst_diccionarios)
                tabla_centralizada = tabulate(df, headers='keys', tablefmt='pretty', showindex=False)
                print(tabla_centralizada)

        elif opcion == 4:
            cantidad_elementos = len(lst_diccionarios)
            if cantidad_elementos == 0:
                print("Actualmente no se ha agregado ningún movimiento para exportar.")
            else:
                while True:
                    print("1 - Exportar a CSV")
                    print("2 - Exportar a Excel")
                    print("3 - Regresar a Menu Principal.")

                    opcion_exportar = int(input("Elija una opción: "))

                    if opcion_exportar == 1:
                        print("Ingresa la ruta donde desea exportar tu archivo")
                        print("Ejemplo: C:/Users/User/Desktop/Folder")
                        ruta = input("Ruta: ")
                        archivo_csv = "archivo_csv.csv"
                        try:
                            df.to_csv(ruta + "/" + archivo_csv, index=False)
                            print(f'¡Archivo exportado exitosamente a {ruta}/{archivo_csv}!')
                        except Exception as e:
                            print(f'Error al exportar el archivo: {e}')
                        break

                    elif opcion_exportar == 2:
                        print("Ingresa la ruta donde desea exportar tu archivo")
                        print("Ejemplo: C:/Users/User/Desktop/Folder")
                        ruta = input("Ruta: ")
                        archivo_excel = "archivo_excel.xlsx"
                        try:
                            df.to_excel(ruta + "/" + archivo_excel, index=False)
                            print(f'¡Archivo exportado exitosamente a {ruta}/{archivo_excel}!')
                        except Exception as e:
                            print(f'Error al exportar el archivo: {e}')
                        break

                    elif opcion_exportar == 3:
                        break

                    else:
                        print("Opción no válida. Por favor, elija una opción del 1 al 3.")

        elif opcion == 5:
            break

        else:
            print("Opción no válida. Por favor, elija una opción del 1 al 5.")

    except ValueError:
        print("Error: Ingrese un valor numérico válido.")
    except Exception as e:
        print(f"Error: {e}")
stdout
Standard output is empty