Está en la página 1de 7

TECNOLÓGICO NACIONAL DE MÉXICO

INSTITUTO TECNOLÓGICO SUPERIOR DEL SUR DEL


ESTADO DE YUCATÁN
Organismo Descentralizado del Gobierno del Estado de Yucatán

INGENIERÍA SISTEMAS COMPUTACIONALES

9° “A”

Asignatura:
Procesos Personales para el Desarrollo de Software

Docente:
MEE. César Zenet López Cruz

Trabajo:
Ejercicio 1_PSP 0

Alumno:
Dzul González Marcos Adalberto

Ciclo Escolar:
2023- A
Fecha de entrega:
29 DE AGOSTO DEL 2023
PLANEACION INICIAL
DISEÑO

CODIFICACIÓN
from PyQt5.uic import loadUi
from PyQt5.QtWidgets import QApplication, QMainWindow, QFileDialog
from statistics import mean, median, mode, StatisticsError
from PyQt5.QtCore import *
from PyQt5.QtWidgets import QApplication, QMainWindow, QFileDialog,
QMessageBox
from PyQt5.QtGui import QFont
import sys

class ObjectScreen(QMainWindow):
    def __init__(self):
        super(ObjectScreen, self).__init__()
        loadUi("gui_mtcc.ui", self)
        self.archivo.clicked.connect(self.cargar_archivo)
        self.clear.clicked.connect(self.limpiar)
       
    def cargar_archivo(self):
        archivo, _ = QFileDialog.getOpenFileName(self, "Cargar archivo de
números", "", "Archivos de texto (*.txt)")
        if archivo:
            self.numeros = self.leer_numeros_desde_archivo(archivo)
            if self.numeros:
                media = self.calcular_media()
                mediana = self.calcular_mediana()
                moda = self.calcular_moda()
                self.label_media.setText(str(media))
                self.label_mediana.setText(str(mediana))
                self.label_moda.setText(str(moda))
            else:
                self.label_mensaje.setText("No se pudieron leer números
del archivo.")
    def limpiar(self):
        self.label_media.clear()
        self.label_mediana.clear()
        self.label_moda.clear()
        self.label_mensaje.clear()

    def leer_numeros_desde_archivo(self, nombre_archivo):


        try:
            with open(nombre_archivo, 'r') as archivo:
               numeros = [int(linea.strip()) for linea in archivo if
linea.strip()]
            return numeros
        except FileNotFoundError:
        # Create a QMessageBox instance and display an error message
            error_message = "Archivo no encontrado:
{}".format(nombre_archivo)
            QMessageBox.critical(self, "Error", error_message)
            return []
        except ValueError:
        # Create a QMessageBox instance and display an error message
            error_message = "El archivo contiene valores no numéricos."
            QMessageBox.critical(self, "Error", error_message)
            return []

       
   
    def calcular_media(self):
        return mean(self.numeros)
   
    def calcular_mediana(self):
        return median(self.numeros)
   
    def calcular_moda(self):
        try:
            return mode(self.numeros)
        except StatisticsError:
            return "No hay moda"

def main():
    app = QApplication(sys.argv)
    welcome = ObjectScreen()
    welcome.show()
    sys.exit(app.exec_())

if __name__ == '__main__':
    main()

BITÁCORA DE TIEMPO
BITÁCORA DE DEFECTOS
PLANEACIÓN FINAL

También podría gustarte