ZIPpython链表实战制作学生管理系统(附带pyqt5的界面优化) 4.21KB

2302_80091643

资源文件列表:

学生系统.zip 大约有3个文件
  1. student.csv 499B
  2. student.ui 22.16KB
  3. students.py 4.97KB

资源介绍:

python链表实战制作学生管理系统(附带pyqt5的界面优化)
import csv from tkinter import messagebox from PyQt5.uic import loadUi from PyQt5.QtWidgets import QTreeWidgetItem,QTreeWidget,QApplication,QWidget,QPushButton,QFileDialog,QLineEdit class Node: def __init__(self,num,name,score_1,score_2,score_3): self.num=num self.name=name self.score=[score_1,score_2,score_3] if self.num is not None: self.score.append(score_1+score_2+score_3) self.next=None class linklist: def __init__(self): self.head=Node(None,None,None,None,None) def isempty(self): if self.head.next==None: return True else: return False def insert(self,num,name,score_1,score_2,score_3): new_node=Node(num,name,score_1,score_2,score_3) if self.isempty(): self.head.next=new_node else: new_node.next=self.head.next self.head.next=new_node def sort_score(self,i): i=i-2 p=self.head.next while p: q=p.next while q: if i>=0: if q.score[i]>p.score[i]: q.num,q.name,q.score,p.num,p.name,p.score=p.num,p.name,p.score,q.num,q.name,q.score elif i==-1: if q.name[0]<p.name[0]: q.num,q.name,q.score,p.num,p.name,p.score=p.num,p.name,p.score,q.num,q.name,q.score elif i==-2: if q.num<p.num: q.num,q.name,q.score,p.num,p.name,p.score=p.num,p.name,p.score,q.num,q.name,q.score q=q.next p=p.next def read_csv(self,filename): with open(filename,'r')as f: t=csv.reader(f) for i in t: self.insert(int(i[0]),i[1],int(i[-4]),int(i[-3]),int(i[-2])) def print_all(self): p=self.head.next while p: print(p.num,p.name,p.score) p=p.next class mywindow(QWidget): def __init__(self): super().__init__() loadUi('student.ui',self) self.treeWidget.setHeaderLabels(['学号','姓名','语文成绩','数学成绩','英语成绩','总成绩']) self.l=linklist() def add_new(self): name=self.lineEdit_2.text() num=self.lineEdit_3.text() chinese=self.lineEdit_4.text() math=self.lineEdit_5.text() english=self.lineEdit_6.text() self.l.insert(int(num),name,int(chinese),int(math),int(english)) messagebox.showinfo('','添加成功') def clear_all(self): self.lineEdit_2.clear() self.lineEdit_3.clear() self.lineEdit_4.clear() self.lineEdit_5.clear() self.lineEdit_6.clear() def duquwenjian(self): path,a=QFileDialog.getOpenFileName(self,'读取文件','','(*.csv)') self.lineEdit.setText(path) def querenduqu(self): filename=self.lineEdit.text() if filename=='': messagebox.showinfo('','请上传文件') return try: self.l.read_csv(filename) messagebox.showinfo('','读取成功') except FileNotFoundError: messagebox.showerror('','未找到文件') def tuichu(self): self.close() messagebox.showinfo('','成功退出') def querenpaixu(self): if self.l.isempty(): messagebox.showerror('','没有数据请输入或读取文件') return False i=int(self.comboBox.currentIndex()) self.l.sort_score(i) self.treeWidget.clear() p=self.l.head.next while p: self.treeWidget.addTopLevelItem(addItem(str(p.num), p.name, str(p.score[0]), str(p.score[1]), str(p.score[2]), str(p.score[3]))) p=p.next return True def delete(self): try: p,q=self.l.head,self.l.head.next while q: if q.num==int(self.treeWidget.currentItem().text(0)): p.next=q.next del q break else: p,q=p.next,q.next if self.querenpaixu(): messagebox.showinfo('','删除成功') except AttributeError: messagebox.showerror('','请选择要删除的信息') def addItem(student_id, name, chinese, math, english, total): # 创建一个新的QTreeWidgetItem item = QTreeWidgetItem() item.setText(0, student_id) # 设置学号 item.setText(1, name) # 设置姓名 item.setText(2, chinese) # 设置语文成绩 item.setText(3, math) # 设置数学成绩 item.setText(4, english) # 设置英语成绩 item.setText(5, total) # 设置总成绩 return item def main(): import sys app=QApplication(sys.argv) a=mywindow() a.show() app.exec_() if __name__=="__main__": main()
100+评论
captcha
    类型标题大小时间
    ZIP基于模型强化学习的离网微电网终身控制Python源代码,保证正确离网微网的终身控制问题包括两个任务,即对微网设备的状态进行估计33.55KB7月前
    ZIPLLC谐振参数计算实例,mathcad格式,列出完整计算公式,软件自动计算并绘出增益曲线,方便修改设计参数,本实例是实际产品的计547.18KB7月前
    ZIP基于NMPC(非线性模型预测控制算法)轨迹跟踪与避障控制算法研究仅供学习算法使用这段代码是一个用于无人车路径跟踪的程序 下面630.8KB7月前
    ZIPcode-04.zip3.97KB7月前
    ZIP基于MATLAB m编程的发动机最优工作曲线计算程序(OOL),在此工作曲线下,发动机燃油消耗最小 文件内含:1、发动机最优工1.53MB7月前
    ZIP灰狼优化算法GWO优化SVM支持向量机惩罚参数c和核函数参数g,有例子,易上手,简单粗暴,替换数据即可,分类问题 仅适应于wi248.21KB7月前
    ZIP《基于改进粒子群算法的混合储能系统容量优化》完全复现matlab 以全生命周期费用最低为目标函数,负荷缺电率作为风光互补发电681.77KB7月前
    ZIPstm32步进电机S型加减速程序源码与详细分析,146.86KB7月前