Ejercicio: 3Eva_IIT2016_T1 Facturar llamadas telefónicas
Propuesta de solución en Python, El ejercicio tiene tarea por completar.
Para las pruebas, requiere el archivo clientes01.csv en el mismo directorio del archivo.py
Algoritmo en Python
# CCPG1001-Fundamentos de Programación - FIEC-ESPOL # 3Eva_IIT2016_T1 Facturar llamadas telefónicas # se incluye la estructura de diccionarios. # Tarea: Completar facturación y estadísticas def obtenerClientes(nombreArchivo): facturar = {} archivo = open(nombreArchivo,'r') linea = archivo.readline() while not(linea==''): linea =linea.strip('\n') partes = linea.split(',') ced = partes[0] num = partes[1] sec = partes[2] parm = partes[3].split('|') nac = float(parm[0]) ext = float(parm[1]) est = partes[4] if not(ced in facturar): facturar[ced] = {num:{ 'sector': sec, 'nacional': nac, 'internac': ext, 'estado': est }} else: facturar[ced][num] = { 'sector': sec, 'nacional': nac, 'internac': ext, 'estado': est } linea = archivo.readline() archivo.close() return(facturar) def generarFactura(tabla): # Lista de clientes cedulas = tabla.keys() cedulas = list(cedulas) n = len(cedulas) # Mostrar cada cliente i = 0 while not(i>=n): # Para pantalla # print(cedulas[i]) # Cada archivo narchivo = cedulas[i] + '.txt' archivo = open(narchivo, 'w') archivo.write('Empresa Telefonica de Guayaquil \n') archivo.write('cliente: ' + cedulas[i] + '\n') archivo.write('Detalle Deuda: \n') tablanumeros = tabla[cedulas[i]] # print(tablanumeros) numeros = tablanumeros.keys() numeros = list(numeros) # print(numeros) m = len(numeros) j = 0 while not(j>=m): datos = tablanumeros[numeros[j]] nac = tablanumeros[numeros[j]]['nacional'] costonac = nac * 0.03 archivo.write(numeros[j] + ' nac: '+str(costonac)+ '\n') j = j + 1 archivo.close() i = i + 1 return() # PROGRAMA # INGRESO narchivo = 'clientes.csv' # PROCEDIMIENTO tabla = obtenerClientes(narchivo) # SALIDA generarFactura(tabla) # ------- # Usado para explicación de uso de diccionarios ### Lista de clientes ##cedulas = tabla.keys() ##cedulas = list(cedulas) ##n = len(cedulas) ## ### Salida ##print('los clientes son: ', cedulas) ##print('los datos del cliente son:') ##for i in range(0,n,1): ## print(cedulas[i]) ## numeroscedula = tabla[cedulas[i]].keys() ## print(numeroscedula)