两个问题:
1、把界面中输入的连接情况、计算数据、电源个数、变电站个数。这些输入数据依次传输到第二个文件的yigetu_list,xuesheng_shuju,dianyuandian_num,biandianzhan_num 。
2、把第二个py文件dafen()函数输出结果在一个界面文件本次得分显示结果
第一个界面文件
from PyQt5 import QtCore, QtGui, QtWidgets
from PyQt5.QtCore import pyqtSlot
from PyQt5.QtWidgets import QMainWindow
from MianUi import Ui_MainWindow
from DBDF import *
import os
import sys
class Project(QMainWindow,Ui_MainWindow):
def __init__(self):
super(Project, self).__init__()
self.setupUi(self)
self.mode =0
# self.date1=[]
self.tableWidget_1.setColumnCount(2)#列数
self.tableWidget_1.setHorizontalHeaderLabels(['连接数据1','连接数据2'])#表头
self.tableWidget_2.setColumnCount(13)
self.tableWidget_2.setHorizontalHeaderLabels(['连接','距离','容量','导线分裂数 n','载流量 I','导线计算截面 SG','导线计算截面 LG','导线标准截面对应的载流量 ZLG','故障情况下载流量满足情况 GZ','线路电阻 RL','线路电抗 XL','线路电纳 BL','线路 Q'])
# self.tableWidget_2.setHorizontalHeaderLabels(['连接','距离','容量'])
self.pushButton.clicked.connect(self.addinformation)#点确认添加与列表连接
self.pushButton_2.clicked.connect(self.tijiao)
# self.pushButton_2.clicked.connect(self.tijiao,)
# self.shengchnegshuju.clicked.connect(self.shengchnegshuju_)
def getshuju_prcoess(self):
table_d1 = {}
table_d2 = {}
if self.mode==0:
# 获取表格行数和列数
row_num = self.tableWidget_1.rowCount()
cols_num = self.tableWidget_1.columnCount()
# 存储表格数值
for i in range(0, row_num):
for j in range(0, cols_num):
# 获取指定单元格里的值
if (self.tableWidget_1.item(i, j) != None):
table_d1[str(i) + str(j)] = self.tableWidget_1.item(i, j).text()
else:
table_d1[str(i) + str(j)] = ""
# print(table_d1)
w = []
for i in table_d1:
w.append(table_d1[i])
# print(b)
step = 2
table_d11 = [w[i:i + step] for i in range(0, len(w), step)]
print((table_d11))
# 展示表格数值
# for (i, j) in table_d1:
# print(table_d1[str(i) + str(j)])
# self.date[] = table_d1
else:
# 获取表格行数和列数
row_num = self.tableWidget_2.rowCount()
cols_num = self.tableWidget_2.columnCount()
# print(row_num,cols_num)
# 存储表格数值
for i in range(0, row_num):
for j in range(0, cols_num):
# 获取指定单元格里的值
if (self.tableWidget_2.item(i, j) != None):
table_d2[str(i) + str(j)] = self.tableWidget_2.item(i, j).text()
else:
table_d2[str(i) + str(j)] = ""
# print(table_d2)
b = []
for i in table_d2:
b.append(table_d2[i])
# print(b)
step = 13
c = [b[i:i + step] for i in range(0, len(b), step)]
# print(c)
table_d22 = []
for i in range(len(c)):
x = []
for j in range(len(c[i])):
if j != 0 and j != 8:
z = float(c[i][j])
x.append(z)
else:
z = c[i][j]
x.append(z)
table_d22.append(x)
print(table_d22)
# # 展示表格数值
# for (i, j) in table_d2:
# print(table_d2[str(i) + str(j)])
def addinformation(self):
# coloum1 = int(self.tianbiandianzhangeshu.text())
# coloum2 = int(self.tiandianyuandiangeshu.text())
coloum = int(self.lineEdit.text())#设置添加数
self.tableWidget_1.setRowCount(coloum)#生成行数
self.tableWidget_2.setRowCount(coloum)#生成行数
def addinformation1(self):
coloum = float(self.xianshixueshengcengji.dafen()) # 设置添加数
def tijiao(self):
self.getshuju_prcoess()
self.mode =1
self.getshuju_prcoess()
self.mode =0
# Jisuan(date,date2)
#
# def shengchnegshuju_(self):
# os.system("python DBBDZ.py")
# gongshi()
if __name__ == '__main__':
app = QtWidgets.QApplication(sys.argv)
# MainWindow = QtWidgets.QMainWindow()
ui = Project()
ui.show()
sys.exit(app.exec_())
下面是第二个py文件
import copy
from itertools import combinations
import networkx as nx
import matplotlib.pyplot as plt
import pandas as pd
import numpy as np
from main import *
def shuru():
yigetu_list = [['1', '2'], ['1', '3'], ['2', 'A']] # 输入
q = copy.deepcopy(yigetu_list) # suo zhidianyuandian_num,yigetu_list
xuesheng_shuju = [['1-2', 23.6, 50, 1, 328, 275, 240, 700, '断线满足', 3, 9.2, 9.3, 5.4],
['1-3', 23.6, 50, 1, 328, 275, 240, 700, '断线不满足', 3, 9.2, 9.3, 5.4],
['2-A', 23.6, 50, 1, 328, 275, 240, 700, '断线不满足', 3, 9.2, 9.3, 5.4]]
dianyuandian_num = 1 # 输入
biandianzhan_num = 3
def dafen():
yigetu_list, q, xuesheng_shuju, dianyuandian_num, biandianzhan_num = shuru()
daochubiaozhun_shuju=tuku()
# print(len(daochubiaozhun_shuju))
data10 = pd.read_excel('变电站.xls', sheet_name='Sheet10')
data10 = np.array(data10)
fen = []
for i in range(len(xuesheng_shuju)):
fen1_ = []
fen2_ = []
fen3_ = []
fen4_ = []
fen5_ = []
fen6_ = []
fen7_ = []
fen8_ = []
fen9_ = []
fen10_ = []
fen11_ = []
fen12_ = []
for j in range(len(daochubiaozhun_shuju)):
if xuesheng_shuju[i][0] == daochubiaozhun_shuju[j][0]: # 下一步这个的J I是不是就是定死了?
if daochubiaozhun_shuju[j][1] == xuesheng_shuju[i][1]:
fen1 = 3
fen1_.append(fen1)
elif (daochubiaozhun_shuju[j][1] - 1) < (xuesheng_shuju[i][1]) < (daochubiaozhun_shuju[j][1] + 1):
fen1 = 2
fen1_.append(fen1)
else:
fen1 = 1
fen1_.append(fen1)
if daochubiaozhun_shuju[j][2] == xuesheng_shuju[i][2]:
fen2 = 3
fen2_.append(fen2)
elif daochubiaozhun_shuju[j][2] - 10 < xuesheng_shuju[i][2] < daochubiaozhun_shuju[j][2] + 10:
fen2 = 2
fen2_.append(fen2)
else:
fen2 = 1
fen2_.append(fen2)
if xuesheng_shuju[i][3] == daochubiaozhun_shuju[j][3]:
fen3 = 1
fen3_.append(fen3)
else:
fen3 = 0
fen3_.append(fen3)
if daochubiaozhun_shuju[j][4] == xuesheng_shuju[i][4]:
fen4 = 3
fen4_.append(fen4)
elif daochubiaozhun_shuju[j][4] - 10 < xuesheng_shuju[i][4] < daochubiaozhun_shuju[j][4] + 10:
fen4 = 2
fen4_.append(fen4)
else:
fen4 = 1
fen4_.append(fen4)
if daochubiaozhun_shuju[j][5] == xuesheng_shuju[i][5]:
fen5 = 3
fen5_.append(fen5)
elif daochubiaozhun_shuju[j][5] - 10 < xuesheng_shuju[i][5] < daochubiaozhun_shuju[j][5] + 10:
fen5 = 2
fen5_.append(fen5)
else:
fen5 = 1
fen5_.append(fen5)
if daochubiaozhun_shuju[j][6] == xuesheng_shuju[i][6]:
fen6 = 3
fen6_.append(fen6)
elif data10[np.where(data10[..., 0] == xuesheng_shuju[i][6])[0][0] + 1][0] < xuesheng_shuju[i][6] < \
data10[np.where(data10[..., 0] == xuesheng_shuju[i][6])[0][0] - 1][0]:
fen6 = 2
fen6_.append(fen6)
else:
fen6 = 1
fen6_.append(fen6)
if daochubiaozhun_shuju[j][7] == xuesheng_shuju[i][7]:
fen7 = 3
fen7_.append(fen7)
elif data10[np.where(data10[..., 6] == xuesheng_shuju[i][7])[0][0] + 1][6] < xuesheng_shuju[i][7] < \
data10[np.where(data10[..., 6] == xuesheng_shuju[i][7])[0][0] - 1][6]:
fen7 = 2
fen7_.append(fen7)
else:
fen7 = 1
fen7_.append(fen7)
if daochubiaozhun_shuju[j][8] == xuesheng_shuju[i][8]: # 有个BUG 这里如果学生提交的是不满足的情况,也按对的算
fen8 = 3
fen8_.append(fen8)
else:
fen8 = 0
fen8_.append(fen8)
if daochubiaozhun_shuju[j][9] == xuesheng_shuju[i][9]:
fen9 = 3
fen9_.append(fen9)
elif daochubiaozhun_shuju[j][9] - 1 < xuesheng_shuju[i][9] < daochubiaozhun_shuju[j][9] + 1:
fen9 = 2
fen9_.append(fen9)
else:
fen9 = 1
fen9_.append(fen9)
if daochubiaozhun_shuju[j][10] == xuesheng_shuju[i][10]:
fen10 = 3
fen10_.append(fen10)
elif daochubiaozhun_shuju[j][10] - 1 < xuesheng_shuju[i][10] < daochubiaozhun_shuju[j][10] + 1:
fen10 = 2
fen10_.append(fen10)
else:
fen10 = 1
fen10_.append(fen10)
if daochubiaozhun_shuju[j][11] == xuesheng_shuju[i][11]:
fen11 = 3
fen11_.append(fen11)
elif daochubiaozhun_shuju[j][11] - 1 < xuesheng_shuju[i][11] < daochubiaozhun_shuju[j][11] + 1:
fen11 = 2
fen11_.append(fen11)
else:
fen11 = 1
fen11_.append(fen11)
if daochubiaozhun_shuju[j][12] == xuesheng_shuju[i][12]:
fen12 = 3
fen12_.append(fen12)
elif daochubiaozhun_shuju[j][12] - 1 < xuesheng_shuju[i][12] < daochubiaozhun_shuju[j][12] + 1:
fen12 = 2
fen12_.append(fen12)
else:
fen12 = 1
fen12_.append(fen12)
fen.append(fen1_ + fen2_ + fen3_ + fen4_ + fen5_ + fen6_ + fen7_ + fen8_ + fen9_ + fen10_ + fen11_ + fen12_)
# print('本次成绩{}'.format(fen))
shiyan_chengji = []
for i in range(len(fen)):
shiyan_chengji1 = sum((fen[i]))
shiyan_chengji.append(shiyan_chengji1)
# print(shiyan_chengji)
defen = sum(shiyan_chengji)
print('本次成绩{}'.format(defen))
if __name__ == '__main__':
dafen()
#
#通过生成图找出库图对应数据