下载资源后端资源详情
学生系统.zip
大小:4.21KB
价格:20积分
下载量:0
评分:
5.0
上传者:2302_80091643
更新日期:2024-09-16

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

资源文件列表(大概)

文件名
大小
student.csv
499B
student.ui
22.16KB
students.py
4.97KB

资源内容介绍

python链表实战制作学生管理系统(附带pyqt5的界面优化)
import csvfrom tkinter import messageboxfrom PyQt5.uic import loadUifrom PyQt5.QtWidgets import QTreeWidgetItem,QTreeWidget,QApplication,QWidget,QPushButton,QFileDialog,QLineEditclass 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=Noneclass 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.nextclass 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 itemdef main(): import sys app=QApplication(sys.argv) a=mywindow() a.show() app.exec_()if __name__=="__main__": main()

用户评论 (0)

发表评论

captcha

相关资源

基于模型强化学习的离网微电网终身控制Python源代码,保证正确离网微网的终身控制问题包括两个任务,即对微网设备的状态进行估计

基于模型强化学习的离网微电网终身控制Python源代码,保证正确离网微网的终身控制问题包括两个任务,即对微网设备的状态进行估计和通过预测未来消费量和可再生产量来考虑不确定性的运行规划。有效控制的主要挑战来自于随时间发生的各种变化。提出了一个用于农村电气化离网微电网建模的开源强化框架。将孤立微电网的终身控制问题归结为马尔可夫决策过程。我们对渐进式和突然性的变化进行分类。提出了一种新的基于模型的强化学习算法,能够解决这两种类型的变化。特别地,所提出的算法在快速变化的系统动态中表现出了泛化特性、传输能力和较好的鲁棒性。将该算法与基于规则的策略和带有前瞻功能的模型预测控制器进行了比较。

33.55KB27积分

LLC谐振参数计算实例,mathcad格式,列出完整计算公式,软件自动计算并绘出增益曲线,方便修改设计参数,本实例是实际产品的计

LLC谐振参数计算实例,mathcad格式,列出完整计算公式,软件自动计算并绘出增益曲线,方便修改设计参数,本实例是实际产品的计算,已验证其正确性。送LLC原理详解和设计步骤文档PDF

547.18KB36积分

基于NMPC(非线性模型预测控制算法)轨迹跟踪与避障控制算法研究仅供学习算法使用这段代码是一个用于无人车路径跟踪的程序 下面

基于NMPC(非线性模型预测控制算法)轨迹跟踪与避障控制算法研究仅供学习算法使用这段代码是一个用于无人车路径跟踪的程序。下面我将对程序进行详细的分析。首先,代码的前几行是一些初始化设置,包括清除变量、关闭警告、添加路径等。然后定义了一些模拟参数,如模拟时间、预测步数、时间步长等。接下来,定义了一个地图的结构体`Map`,其中包含了一系列的点坐标,用于描述路径。然后调用了`waypoint`函数对地图进行处理。然后,程序初始化了一些状态参数,并定义了一些权重矩阵`W`和`WN`,用于优化控制问题。接下来,程序进入主循环,直到模拟时间达到设定的时间长度。在每次循环中,程序首先更新当前位置,并判断是否到达目标点。然后计算参考轨迹和障碍物代价,并解决非线性模型预测控制(NMPC)最优控制问题。在NMPC求解过程中,程序使用了一个while循环来迭代求解,直到满足收敛条件或达到最大迭代次数。在每次迭代中,程序计算控制输入,并更新状态。最后,程序进行可视化展示,包括绘制地图、轨迹、参考轨迹等。总的来说,这段代码实现了一个无人车路径跟踪的功能,通过优化控制问题来实现车

630.8KB34积分

code-04.zip

code-04.zip

3.97KB28积分