偷个懒,先挂代码,之后有空再来补上讲解
预览
中南大学加权平均分验算程序下载
虽然使用应该很方便,但是似乎不同的电脑,复制这个网页,粘贴到txt文档中的格式可能不同,我只针对我电脑的情况做了适配,如果想试试这个程序的同学,认真阅读下面的使用要求
使用要求:两行之间不能一空格,一门成绩需要排成一行,txt必须是utf-8编码,编码转换方式为“另存为”,然后选择编码,保存
实现功能的函数代码
# -*- coding: utf-8 -*-
"""
Created on Wed May 20 01:44:54 2020
@author: 全栈-听风起
"""
import sys
from PyQt5.QtWidgets import QApplication, QMainWindow, QFileDialog
from PyQt5 import QtCore
import scorecheck
import codecs
from functools import partial
def check(ui):
fileName=ui.lineEdit.text()
f = codecs.open(fileName, mode='r', encoding='utf-8') # 打开txt文件,以‘utf-8’编码读取
line = f.readline() # 以行的形式进行读取文件
list1 = [] #两列数据
list2 = [] #乘积
list3 = [] #学分
while line:
a = line.split()
b = a[5:7] # 这是选取需要读取的位数
list1.append(b) # 将其添加在列表之中
line = f.readline()
f.close()
# list1=numpy.array(list1)
for i in range(len(list1)):
if list1[i][0]=="通过":
ii=i
del list1[ii]
for i in range(len(list1)):
if list1[i][0]=="良":
list1[i][0]=85.0
list1[i][1]=float(list1[i][1])
list2.append(list1[i][0]*list1[i][1])
list3.append(list1[i][1])
elif list1[i][0]=="优":
list1[i][0]=95.0
list1[i][1]=float(list1[i][1])
list2.append(list1[i][0]*list1[i][1])
list3.append(list1[i][1])
elif list1[i][0]=="中":
list1[i][0]=75.0
list1[i][1]=float(list1[i][1])
list2.append(list1[i][0]*list1[i][1])
list3.append(list1[i][1])
elif list1[i][0]=="及格":
list1[i][0]=60.0
list1[i][1]=float(list1[i][1])
list2.append(list1[i][0]*list1[i][1])
list3.append(list1[i][1])
else:
list1[i][0]=float(list1[i][0])
list1[i][1]=float(list1[i][1])
list2.append(list1[i][0]*list1[i][1])
list3.append(list1[i][1])
ui.textBrowser.setText(str(sum(list2)/sum(list3)))
def Import(ui):
default_dir = r"文件路径"
fileName = QFileDialog.getOpenFileNames()
ui.lineEdit.setText(str(fileName[0][0]))
if __name__ == '__main__':
QtCore.QCoreApplication.setAttribute(QtCore.Qt.AA_EnableHighDpiScaling)
app = QApplication(sys.argv)
MainWindow = QMainWindow()
ui = scorecheck.Ui_MainWindow()
ui.setupUi(MainWindow)
MainWindow.show()
ui.pushButton.clicked.connect(partial(check, ui))
ui.pushButton_2.clicked.connect(partial(Import, ui))
sys.exit(app.exec_())