Python-Informationsverwaltungssystem für die Notenverwaltung von Studenten (objektorientiert) (Notenverwaltung)

Missionsdetails

Das Projektteam erhielt ein neues Projekt zur Entwicklung eines „Schülerinformationsmanagementsystems“ für eine bestimmte Schule. Nach der Kommunikation mit dem Kunden wurden die Hauptfunktionen des Systems festgelegt, wie in der folgenden Abbildung dargestellt.

Das gesamte Studenteninformationsmanagementsystem umfasst hauptsächlich zwei Module: Basisinformationsmanagement und Studentenleistungsmanagement.

Zu den Hauptfunktionen des Basismoduls zur Informationsverwaltung gehören das Hinzufügen, Löschen, Ändern, Anzeigen von Schülerinformationen sowie das Importieren und Exportieren von Schülerdaten.

Zu den Hauptfunktionen des Moduls „Studentenleistungsmanagement“ gehören die höchste Punktzahl, die niedrigste Punktzahl und die durchschnittliche Punktzahl des Statistikkurses.

Im vorherigen Artikel haben wir das Funktionsmodul des Studenteninformationsmanagements abgeschlossen.

Python-Informationsmanagementsystem für Schülerleistungsmanagement (objektorientiert) (Schülerinformationen)_Das Blog-CSDN-Blogprojektteam von Li Weiweiwiwi erhielt ein neues Projekt zur Entwicklung eines „Schülerinformationsmanagementsystems“ für eine Schule. Nach der Kommunikation mit dem Kunden Kommunizieren und bestimmen Sie die Hauptfunktionen des Systems, wie in der folgenden Abbildung dargestellt. Das gesamte Studenteninformationsmanagementsystem umfasst hauptsächlich zwei Module: Basisinformationsmanagement und Studentenleistungsmanagement. Zu den Hauptfunktionen des Basisinformationsverwaltungsmoduls gehören das Hinzufügen, Löschen, Ändern und Anzeigen von Schülerinformationen sowie das Importieren und Exportieren von Schülerdaten. Zu den Hauptfunktionen des Schülerleistungsverwaltungsmoduls gehören die höchste Punktzahl, die niedrigste Punktzahl und die durchschnittliche Punktzahl der Statistiken Kurs. https://blog.csdn.net/agelee/article/details/126664530

Als Nächstes werden wir zunächst die Funktion zur Verwaltung von Schülerinformationen verbessern, die Funktion zum Dateiimport und -export von Lerninformationen hinzufügen und außerdem die Funktion des Untermenüs zur Verwaltung der Schülerleistung hinzufügen.

Dateiimport und -export

StudentListFügen Sie weiterhin zwei Funktionen für den Dateiimport und -export unter der Klasse „Studenteninformationsverwaltung“ hinzu:

class StudentList:
    def __init__(self):
        self.stulist = []
	...
    #以下增加导入和导出学生信息功能
    def load(self,fn):
        #导入学生信息
        if os.path.exists(fn):
            try:
                with open(fn,'r',encoding = 'utf-8') as fp:
                    while True:
                        fs = fp.readline().strip('\n')
                        if not fs:
                            break
                        else:
                            stu = Student(*fs.split(','))
                            if self.__exists(stu.no):
                                print('该学号已存在')
                            else:
                                self.stulist.append(stu)
                print('导入完毕')
            except:
                print('error...') #要导入的文件不是utf-8编码,或是字段数不匹配等
        else:
            print('要导入的文件不存在')
        

    def save(self,fn):
        #导出学生信息
        with open(fn,'w',encoding = 'utf-8') as fp:
            for stu in self.stulist:
                fp.write(stu.no + ',')
                fp.write(stu.name + ',')
                fp.write(str(stu.chinese) + ',')
                fp.write(str(stu.math) + ',')                    
                fp.write(str(stu.english) + '\n')                    
            print("导出完毕")

Wir erstellen eine neue csv-Datei und geben folgenden Inhalt ein:

005,TEST02,87,65,99

006,TEST03,90,85,85

Führen Sie dann das Programm aus und importieren Sie diese Dateidaten über das folgende Menü

Nachdem der Import abgeschlossen ist, geben Sie den Befehl show ein und wir können die relevanten importierten Daten sehen:

Dann geben wir den Speicherbefehl ein, um die Datei zu exportieren:

Öffnen Sie das Dokument wie folgt:

Modul „Studentenleistungsmanagement“.

Entsprechend unserer Gesamtsystemarchitektur modifizieren wir zunächst das Hauptmenü und fügen scoredem Menü Funktionen hinzu, die der Schülerstatistik entsprechen.

scoreprocess():

    def main(self):
        #主控函数               
        while True:
            print('学生信息管理系统V1.0'.center(24,'='))
            print('info  -------学生基本信息管理')
            print('score -------学生成绩统计')
            print('exit  -------退出系统')
            print(''.center(32,'='))
            s = input('main>').strip().lower()
            if s == 'info':
                self.infoprocess()
            elif s == 'score':
                self.scoreprocess()
            elif s == 'exit':
                break
            else:
                print('输入错误')   

Dann definieren wir eine Funktion scoreprocess()für die Leistungsstatistik von Schülern:

 def scoreprocess(self):
        #学生成绩统计
        print('学生成绩统计'.center(24,'='))
        print('avg    --------课程平均分')
        print('max    --------课程最高分')
        print('min    --------课程最低分')        
        print('return --------返回')
        print(''.center(30,'='))
        while True:
            s = input('score>').strip().lower()
            if s == 'avg':                
                self.scoreavg()
            elif s == 'max':                
                self.scoremax()
            elif s == 'min':                
                self.scoremin()
            elif s == 'return':
                break
            else:
                print('输入错误')

Definieren Sie abschließend drei Funktionen für den statistischen Durchschnitt, die höchsten und niedrigsten Werte:

 def scoreavg(self):
        #求课程平均分
        length = len(self.stulist)
        if length > 0:
            chinese_avg = sum([stu.chinese for stu in self.stulist])/length
            math_avg = sum([stu.math for stu in self.stulist])/length
            english_avg = sum([stu.english for stu in self.stulist])/length
            print('语文成绩平均分是:%.2f'%chinese_avg)
            print('数学成绩平均分是:%.2f'%math_avg)
            print('英语成绩平均分是:%.2f'%english_avg)
        else:
            print('尚没有学生成绩...')

    def scoremax(self):
        #求课程最高分
        if len(self.stulist) > 0:
            chinese_max = max([stu.chinese for stu in self.stulist])
            math_max = max([stu.math for stu in self.stulist])
            english_max = max([stu.english for stu in self.stulist])
            print('语文成绩最高分是:%d'%chinese_max)
            print('数学成绩最高分是:%d'%math_max)
            print('英语成绩最高分是:%d'%english_max)
        else:
            print('尚没有学生成绩...')

    def scoremin(self):
        #求课程最低分
        if len(self.stulist) > 0:
            chinese_min = min([stu.chinese for stu in self.stulist])
            math_min = min([stu.math for stu in self.stulist])
            english_min = min([stu.english for stu in self.stulist])
            print('语文成绩最低分是:%d'%chinese_min)
            print('数学成绩最低分是:%d'%math_min)
            print('英语成绩最低分是:%d'%english_min)
        else:
            print('尚没有学生成绩...')

Führen Sie das Programm aus:

Punktzahl eingeben:

Die durchschnittliche Punktzahl:

höchste Minute

Niedrigste Punktzahl

Supongo que te gusta

Origin blog.csdn.net/agelee/article/details/126725221
Recomendado
Clasificación