学期末要做微波技术课设,老师要求设计一个GUI,和Smith圆图有关

然后选用python里面的pyqt5设计出一个交互界面。

思路很简单就是先用qtdesigner搭建框架生成python代码,再把python代码改改就ok

画图本来想用matplotlib,但是这个库交互性没有pyqtgraph强,所以画图用了pyqtgraph。

pyqtgraph库里面的十字光标参考了https://zmister.com/archives/793.html

但是链接里面文章不能拿来直接跑:(这句话有问题)

if self.k_plt.sceneBoundingRect().contains(pos):

绘制Smith圆图也很简单,两个圆的方程用极坐标就ok了(还是有一些bug)

不多废话直接上代码

from PyQt5 import QtCore, QtGui, QtWidgets
from PyQt5.QtWidgets import QApplication,QMainWindow
import sys
import numpy as np
import pyqtgraph as pg
import mathclass Ui_MainWindow(object):def setupUi(self, MainWindow):MainWindow.setObjectName("MainWindow")MainWindow.resize(900, 700)MainWindow.setMinimumSize(QtCore.QSize(20, 20))self.centralwidget = QtWidgets.QWidget(MainWindow)self.centralwidget.setObjectName("centralwidget")self.verticalLayoutWidget = QtWidgets.QWidget(self.centralwidget)self.verticalLayoutWidget.setGeometry(QtCore.QRect(70, 50, 91, 80))self.verticalLayoutWidget.setObjectName("verticalLayoutWidget")self.verticalLayout = QtWidgets.QVBoxLayout(self.verticalLayoutWidget)self.verticalLayout.setContentsMargins(0, 0, 0, 0)self.verticalLayout.setObjectName("verticalLayout")self.comboBox = QtWidgets.QComboBox(self.verticalLayoutWidget)self.comboBox.setObjectName("comboBox")self.comboBox.addItem("")self.comboBox.addItem("")self.verticalLayout.addWidget(self.comboBox)self.comboBox_2 = QtWidgets.QComboBox(self.verticalLayoutWidget)self.comboBox_2.setObjectName("comboBox_2")self.comboBox_2.addItem("")self.comboBox_2.addItem("")self.verticalLayout.addWidget(self.comboBox_2)self.label = QtWidgets.QLabel(self.centralwidget)self.label.setGeometry(QtCore.QRect(70, 200, 91, 31))self.label.setObjectName("label")self.pushButton = QtWidgets.QPushButton(self.centralwidget)self.pushButton.setGeometry(QtCore.QRect(40, 260, 171, 23))self.pushButton.setObjectName("pushButton")self.pushButton.clicked.connect(self.plot_blue)self.pushButton_5 = QtWidgets.QPushButton(self.centralwidget)self.pushButton_5.setGeometry(QtCore.QRect(30, 620, 101, 23))self.pushButton_5.setObjectName("pushButton_5")self.lineEdit_7 = QtWidgets.QLineEdit(self.centralwidget)self.lineEdit_7.setGeometry(QtCore.QRect(140, 620, 111, 20))self.lineEdit_7.setObjectName("lineEdit_7")self.pushButton_6 = QtWidgets.QPushButton(self.centralwidget)self.pushButton_6.setGeometry(QtCore.QRect(280, 620, 101, 23))self.pushButton_6.setObjectName("pushButton_6")self.lineEdit_8 = QtWidgets.QLineEdit(self.centralwidget)self.lineEdit_8.setGeometry(QtCore.QRect(390, 620, 111, 20))self.lineEdit_8.setObjectName("lineEdit_8")self.pushButton_7 = QtWidgets.QPushButton(self.centralwidget)self.pushButton_7.setGeometry(QtCore.QRect(530, 620, 111, 23))self.pushButton_7.setObjectName("pushButton_7")self.lineEdit_9 = QtWidgets.QLineEdit(self.centralwidget)self.lineEdit_9.setGeometry(QtCore.QRect(650, 620, 111, 20))self.lineEdit_9.setObjectName("lineEdit_9")self.layoutWidget = QtWidgets.QWidget(self.centralwidget)self.layoutWidget.setGeometry(QtCore.QRect(30, 530, 752, 81))self.layoutWidget.setObjectName("layoutWidget")self.horizontalLayout_2 = QtWidgets.QHBoxLayout(self.layoutWidget)self.horizontalLayout_2.setContentsMargins(0, 0, 0, 0)self.horizontalLayout_2.setObjectName("horizontalLayout_2")self.gridLayout = QtWidgets.QGridLayout()self.gridLayout.setObjectName("gridLayout")self.label_2 = QtWidgets.QLabel(self.layoutWidget)self.label_2.setObjectName("label_2")self.gridLayout.addWidget(self.label_2, 0, 1, 1, 1)self.lineEdit = QtWidgets.QLineEdit(self.layoutWidget)self.lineEdit.setObjectName("lineEdit")self.gridLayout.addWidget(self.lineEdit, 0, 2, 1, 1)self.lineEdit_2 = QtWidgets.QLineEdit(self.layoutWidget)self.lineEdit_2.setObjectName("lineEdit_2")self.gridLayout.addWidget(self.lineEdit_2, 1, 2, 1, 1)spacerItem = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)self.gridLayout.addItem(spacerItem, 0, 3, 1, 1)self.pushButton_2 = QtWidgets.QPushButton(self.layoutWidget)sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.MinimumExpanding, QtWidgets.QSizePolicy.Fixed)sizePolicy.setHorizontalStretch(0)sizePolicy.setVerticalStretch(0)sizePolicy.setHeightForWidth(self.pushButton_2.sizePolicy().hasHeightForWidth())self.pushButton_2.setSizePolicy(sizePolicy)self.pushButton_2.setObjectName("pushButton_2")self.gridLayout.addWidget(self.pushButton_2, 0, 0, 2, 1)spacerItem1 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)self.gridLayout.addItem(spacerItem1, 1, 3, 1, 1)self.label_3 = QtWidgets.QLabel(self.layoutWidget)self.label_3.setObjectName("label_3")self.gridLayout.addWidget(self.label_3, 1, 1, 1, 1)self.horizontalLayout_2.addLayout(self.gridLayout)self.gridLayout_2 = QtWidgets.QGridLayout()self.gridLayout_2.setObjectName("gridLayout_2")self.lineEdit_3 = QtWidgets.QLineEdit(self.layoutWidget)self.lineEdit_3.setObjectName("lineEdit_3")self.gridLayout_2.addWidget(self.lineEdit_3, 0, 2, 1, 1)self.lineEdit_4 = QtWidgets.QLineEdit(self.layoutWidget)self.lineEdit_4.setObjectName("lineEdit_4")self.gridLayout_2.addWidget(self.lineEdit_4, 1, 2, 1, 1)spacerItem2 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)self.gridLayout_2.addItem(spacerItem2, 1, 3, 1, 1)self.pushButton_3 = QtWidgets.QPushButton(self.layoutWidget)self.pushButton_3.setObjectName("pushButton_3")self.gridLayout_2.addWidget(self.pushButton_3, 0, 0, 2, 1)self.label_5 = QtWidgets.QLabel(self.layoutWidget)self.label_5.setObjectName("label_5")self.gridLayout_2.addWidget(self.label_5, 1, 1, 1, 1)self.label_4 = QtWidgets.QLabel(self.layoutWidget)self.label_4.setObjectName("label_4")self.gridLayout_2.addWidget(self.label_4, 0, 1, 1, 1)spacerItem3 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)self.gridLayout_2.addItem(spacerItem3, 0, 3, 1, 1)self.horizontalLayout_2.addLayout(self.gridLayout_2)self.gridLayout_3 = QtWidgets.QGridLayout()self.gridLayout_3.setObjectName("gridLayout_3")self.lineEdit_6 = QtWidgets.QLineEdit(self.layoutWidget)self.lineEdit_6.setObjectName("lineEdit_6")self.gridLayout_3.addWidget(self.lineEdit_6, 1, 2, 1, 1)self.lineEdit_5 = QtWidgets.QLineEdit(self.layoutWidget)self.lineEdit_5.setObjectName("lineEdit_5")self.gridLayout_3.addWidget(self.lineEdit_5, 0, 2, 1, 1)self.label_6 = QtWidgets.QLabel(self.layoutWidget)self.label_6.setObjectName("label_6")self.gridLayout_3.addWidget(self.label_6, 0, 1, 1, 1)self.label_7 = QtWidgets.QLabel(self.layoutWidget)self.label_7.setObjectName("label_7")self.gridLayout_3.addWidget(self.label_7, 1, 1, 1, 1)self.pushButton_4 = QtWidgets.QPushButton(self.layoutWidget)self.pushButton_4.setObjectName("pushButton_4")self.gridLayout_3.addWidget(self.pushButton_4, 0, 0, 2, 1)spacerItem4 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)self.gridLayout_3.addItem(spacerItem4, 0, 3, 1, 1)spacerItem5 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)self.gridLayout_3.addItem(spacerItem5, 1, 3, 1, 1)self.horizontalLayout_2.addLayout(self.gridLayout_3)self.label_8 = QtWidgets.QLabel(self.centralwidget)self.label_8.setGeometry(QtCore.QRect(783, 200, 81, 31))self.label_8.setObjectName("label_8")self.label_9 = QtWidgets.QLabel(self.centralwidget)self.label_9.setGeometry(QtCore.QRect(770, 230, 111, 20))self.label_9.setObjectName("label_9")self.label_10 = QtWidgets.QLabel(self.centralwidget)self.label_10.setGeometry(QtCore.QRect(750, 260, 151, 16))self.label_10.setObjectName("label_10")self.label_11 = QtWidgets.QLabel(self.centralwidget)self.label_11.setGeometry(QtCore.QRect(750, 280, 151, 20))self.label_11.setObjectName("label_11")self.gridLayoutWidget = QtWidgets.QWidget(self.centralwidget)self.gridLayoutWidget.setGeometry(QtCore.QRect(219, 59, 463, 450))self.gridLayoutWidget.setObjectName("gridLayoutWidget")self.gridLayout_4 = QtWidgets.QGridLayout(self.gridLayoutWidget)self.gridLayout_4.setContentsMargins(0, 0, 0, 0)self.gridLayout_4.setObjectName("gridLayout_4")self.plot = pg.PlotWidget()self.plot_cricle()self.labela = pg.TextItem()  # 创建一个文本项self.plot.addItem(self.labela)self.vLine = pg.InfiniteLine(angle=90, movable=False, )  # 创建一个垂直线条self.hLine = pg.InfiniteLine(angle=0, movable=False, )  # 创建一个水平线条self.plot.addItem(self.vLine, ignoreBounds=True)  # 在图形部件中添加垂直线条self.plot.addItem(self.hLine, ignoreBounds=True)  # 在图形部件中添加水平线条self.gridLayout_4.addWidget(self.plot)self.move_slot = pg.SignalProxy(self.plot.scene().sigMouseMoved, rateLimit=60, slot=self.print_plot)self.click_slot = pg.SignalProxy(self.plot.scene().sigMouseClicked,rateLimit=60,slot = self.click_plot)MainWindow.setCentralWidget(self.centralwidget)self.statusbar = QtWidgets.QStatusBar(MainWindow)self.statusbar.setObjectName("statusbar")MainWindow.setStatusBar(self.statusbar)self.retranslateUi(MainWindow)QtCore.QMetaObject.connectSlotsByName(MainWindow)def retranslateUi(self, MainWindow):_translate = QtCore.QCoreApplication.translateMainWindow.setWindowTitle(_translate("MainWindow", "Smith圆图"))self.comboBox.setItemText(0, _translate("MainWindow", "作者"))self.comboBox.setItemText(1, _translate("MainWindow", "吴修文"))self.comboBox_2.setItemText(0, _translate("MainWindow", "时间"))self.comboBox_2.setItemText(1, _translate("MainWindow", "2019/12/25"))self.label.setText(_translate("MainWindow", "Smith圆图测试器"))self.pushButton.setText(_translate("MainWindow", "Get a point please (#^.^#)"))self.pushButton_5.setText(_translate("MainWindow", "驻波比"))self.pushButton_6.setText(_translate("MainWindow", "行波系数"))self.pushButton_7.setText(_translate("MainWindow", "波腹、波节点判断"))self.label_2.setText(_translate("MainWindow", "实部"))self.pushButton_2.setText(_translate("MainWindow", "阻抗值"))self.label_3.setText(_translate("MainWindow", "虚部"))self.pushButton_3.setText(_translate("MainWindow", "导纳值"))self.label_5.setText(_translate("MainWindow", "虚部"))self.label_4.setText(_translate("MainWindow", "实部"))self.label_6.setText(_translate("MainWindow", "实部"))self.label_7.setText(_translate("MainWindow", "虚部"))self.pushButton_4.setText(_translate("MainWindow", "反射系数"))self.label_8.setText(_translate("MainWindow", "黄色:单位圆"))self.label_9.setText(_translate("MainWindow", "红色:等反射系数圆"))self.label_10.setText(_translate("MainWindow", "绿色:阻抗或导纳实部圆"))self.label_11.setText(_translate("MainWindow", "蓝色:阻抗或导纳虚部圆"))def print_plot(self,event = None):if event is None:print("事件为空")else:pos = event[0]mousePoint = self.plot.plotItem.vb.mapSceneToView(pos)pos_x = mousePoint.x()pos_y = mousePoint.y()if (pos_x * pos_x + pos_y *pos_y) < 1 or (pos_x * pos_x + pos_y *pos_y) ==1 :x_p = mousePoint.x()y_p = mousePoint.y()rrrrr = (1 - x_p ** 2 - y_p ** 2) / ((1 - x_p) * (1 - x_p) + y_p**2)xxxxx = (2 * y_p) / ((1 - x_p) * (1 - x_p) + y_p**2)ppppp = rrrrr ** 2 + xxxxx ** 2ggggg = rrrrr / pppppbbbbb = -1 * xxxxx / pppppself.real_part = format(rrrrr, '.5g')self.imaginary_part = format(xxxxx, '.5f')self.g_real = format(ggggg, '.5f')self.g_imag = format(bbbbb, '.5f')self.f_real = format(x_p,'.5f')self.f_imag = format(y_p, '.5f')qqqqqq = math.sqrt(x_p **2 + y_p ** 2)vswr = (1+qqqqqq)/(1-qqqqqq)self.vswr = format(vswr,'.5f')self.k = format(1/vswr,'.5f')self.x = format(x_p,'.5f')self.y = format(y_p,'.5f')if (self.x == -1.0 and self.y == 0.0):self.string1 = '这是一个波节点'elif (self.x == 1.0 and self.y == 0.0):self.string1 = '这是一个波腹点'elif (self.x == 0.0 and self.y == 0.0):self.string1 = '这个一个阻抗匹配点'else:self.string1 = '这是一个普通点'self.labela.setHtml("<p style='color:white'><strong>阻抗值</strong></p><p style='color:white'>实部:{0}</p><p style='color:white'>虚部:{1}".format(self.real_part, self.imaginary_part))self.labela.setPos(mousePoint.x(), mousePoint.y())else :self.real_part = Noneself.imaginary_part = Noneself.g_real = Noneself.g_imag = Noneself.f_imag = Noneself.f_real = Noneself.labela.setHtml("<p style='color:white'><strong>阻抗值</strong></p><p style='color:white'>实部:{0}</p><p style='color:white'>虚部:{1}".format(None,None))self.labela.setPos(mousePoint.x(), mousePoint.y())self.vLine.setPos(mousePoint.x())self.hLine.setPos(mousePoint.y())def click_plot(self,event = None):if event is None:print('事件为空')else:aaa = self.real_partbbb = self.imaginary_partself.lineEdit.setText(str(aaa))self.lineEdit_2.setText(str(bbb))self.lineEdit_3.setText(str(self.g_real))self.lineEdit_4.setText(str(self.g_imag))self.lineEdit_5.setText(str(self.f_real))self.lineEdit_6.setText(str(self.f_imag))self.lineEdit_7.setText(str(self.vswr))self.lineEdit_8.setText(str(self.k))self.string1 = '这是一个普通点'self.lineEdit_9.setText(self.string1)def plot_cricle(self):r = np.array([0.0, 0.05, 0.1, 0.2, 0.3, 0.5, 1, 1.5, 2, 3, 10, 100, 150, 200], dtype=float)thrata = np.arange(0, 2 * np.pi, 0.01)x = np.zeros([r.shape[0], thrata.shape[0]])y = np.zeros([r.shape[0], thrata.shape[0]])b = 0.0k = 0for ii in r:a = ii / (1 + ii)R = 1 / (1 + ii)x[k, :] = a + R * np.cos(thrata)y[k, :] = b + R * np.sin(thrata)self.plot.plot(x[k, :], y[k, :], color='w')k = k + 1xx1 = np.arange(-5, 5.5, 0.2)np.delete(xx1, 10)for jj in xx1:RR = abs(1 / jj)b = 1 / jjxx = 1 + RR * np.cos(thrata)yy = b + RR * np.sin(thrata)ddx = []ddy = []for m, n in zip(xx, yy):if (n * n + m * m) < 1:ddx.append(m)ddy.append(n)self.plot.plot(ddx, ddy, color='w')xxx11 = np.cos(thrata)yyy11 = np.sin(thrata)self.plot.plot().setData(xxx11, yyy11, pen='y')def plot_blue(self):self.plot.clear()self.labela = pg.TextItem()  # 创建一个文本项self.plot.addItem(self.labela)self.vLine = pg.InfiniteLine(angle=90, movable=False, )  # 创建一个垂直线条self.hLine = pg.InfiniteLine(angle=0, movable=False, )  # 创建一个水平线条self.plot.addItem(self.vLine, ignoreBounds=True)  # 在图形部件中添加垂直线条self.plot.addItem(self.hLine, ignoreBounds=True)  # 在图形部件中添加水平线条self.plot_cricle()r = float(self.lineEdit.text())x = float(self.lineEdit_2.text())x_p = float(self.lineEdit_5.text())y_p = float(self.lineEdit_6.text())print(x_p)print(y_p)thrata = np.arange(0, 2 * np.pi, 0.01)a = r/(1+r)R = abs(1/(1+r))xx = a + R * np.cos(thrata)yy = R * np.sin(thrata)self.plot.plot(xx,yy, pen = 'g')RR = 1/xxxx = 1+ abs(RR)*np.cos(thrata)yyy = RR + abs(RR) * np.sin(thrata)ddx = []ddy = []for m, n in zip(xxx, yyy):if (n * n + m * m) < 1:ddx.append(m)ddy.append(n)self.plot.plot(ddx, ddy, pen='b')RRR = math.sqrt(x_p**2 + y_p **2)xxxx = RRR * np.cos(thrata)yyyy = RRR * np.sin(thrata)self.plot.plot().setData(xxxx,yyyy,pen = 'r')if x_p == 1 and y_p == 0:self.aa()self.string1 = '这是一个匹配点'if (x_p == -1.0 and y_p == 0.0):self.aa()self.string1 = '这是一个波节点'elif (x_p == 1.0 and y_p == 0.0):self.string1 = '这是一个波腹点'elif (x_p == 0.0 and y_p == 0.0):self.aa()self.string1 = '这个一个阻抗匹配点'else:self.string1 = '这是一个普通点'self.lineEdit_9.setText(self.string1)def aa(self):self.plot.clear()self.labela = pg.TextItem()  # 创建一个文本项self.plot.addItem(self.labela)self.vLine = pg.InfiniteLine(angle=90, movable=False, )  # 创建一个垂直线条self.hLine = pg.InfiniteLine(angle=0, movable=False, )  # 创建一个水平线条self.plot.addItem(self.vLine, ignoreBounds=True)  # 在图形部件中添加垂直线条self.plot.addItem(self.hLine, ignoreBounds=True)  # 在图形部件中添加水平线条self.plot_cricle()if __name__ == "__main__":app = QApplication(sys.argv)Mainwindow = QMainWindow()ui = Ui_MainWindow()ui.setupUi(Mainwindow)Mainwindow.show()sys.exit(app.exec_())

界面:

点击会在下面出现这个点对应的数值:

下面如果有数值时候点击get a point please 就会绘制这点的等反射系数圆、阻抗实部圆、阻抗虚部圆:

微波课设 基于pyqt5+pyqtgraph的Smith圆图GUI程序设计相关推荐

  1. 记大学计网课设——基于B/S架构的视频点播系统设计

    中南大学 计算机网络课程设计报告 题    目 基于WEB的视频点播系统设计 学生姓名 指导教师 学    院 信息科学与工程学院 专业班级 二○一七 年 九 月 目录 一.需求分析...5 1.题目 ...

  2. 嵌入式课设-基于GPS模块的校园定位程序

    文章目录 前言 一.环境与设备配置 二.使用步骤 1.使用QT编写相关程序 2.运行 在这里插入图片描述 总结 前言 一个简单的基于GPS模块的校园定位程序的嵌入式课设. 一.环境与设备配置 首先下载 ...

  3. imut FPGA课设 基于FPGA的VGA弹球游戏设计 *秋昊

    写在前面的话: 本文主要呈现了一篇IMUT的FPGA课设报告. 课设报告内容(word版),视频演示,程序源码,专业创新实践简介,专业创新实践指导书均已放入下面的百度云链接中,也不大,总共不到20MB ...

  4. [NUAA]数据库课设-基于OpenGauss的简易网络小说平台

    文章目录 前言 一.课设题目要求及分析 二.小说平台实现效果 1.合理的角色功能划分 2. 表结构的设计 3.Python如何与服务器进行连接 4.flask框架的应用 4.1 前端页面如何传递信息给 ...

  5. 单片机课设基于51单片机的波形发生器(公开资源)(四种波形)(同时输出两种波形)

    单片机课设-波形发生器 前言 一.课设任务是什么? 二.如何解决这几个任务? 三.仿真原理图 四.代码 4.1 LCD1602代码 4.2 波形输出以及8*8点阵显示代码 4.3 波形选择 五.仿真源 ...

  6. matlab关于噪声课设,基于matlab的有噪声的语音信号处理的课程设计.doc

    基于matlab的有噪声的语音信号处理的课程设计.doc DSP实验课程设计实验报告DSP实验课程设计实验报告姓名学号班级1课程设计题目基于MATLAB的有噪声的语音信号处理的课程设计.2课程设计的目 ...

  7. 大二课设-基于Tcp的c/s模式的网络聊天室(c#)

    设计一个网络聊天室,能够显示有关该系统基本信息的描述,如:客户端的实例信息.在线等,具体要求如下: (1)聊天室服务器端的创建 (2)聊天室客户端的创建 (3)实现客户与服务器的连接通讯 (4)实现客 ...

  8. [网络安全课设]基于JAVA的系统端口扫描软件设计实现(java代码+IDEA+UI图形界面+实验报告)

    链接::l基于JAVA的系统端口扫描软件设计实现(java代码+IDEA+UI图形界面+实验报告) 系统端口扫描软件设计实现 设计目的和任务 参照superscan.nmap等端口扫描软件的运行情况, ...

  9. java管理系统课设,基于Java的学生考勤管理系统设计毕业设计

    基于Java的学生考勤管理系统设计毕业设计 本科生毕业论文(设计)本科生毕业论文(设计) 基于基于 JavaJava 的学生考勤管理的学生考勤管理系统设计系统设计 Design of Student ...

最新文章

  1. Java连载2-Java特性
  2. 装运点确认失败的排查
  3. html中插人视频教程,HTML中插入视频并兼容所有浏览器
  4. Flex 3 和PHP连接mysql数据库
  5. 13. OD-内嵌补丁,过期的软件DVD Menu Studio破解,switch函数,break等于KillTimer
  6. 论文 | 多传感器数据深度图的融合:最近基于深度学习的方法(上)
  7. eclipse反编译
  8. 测试Python的poplib模块读取邮箱信息
  9. 【spark】RDD数据源
  10. 【GMS认证】关于XTS命令总结
  11. 太阳能热水器两芯液位温度检测
  12. 清醒吧拭心!自满的程序员是最菜的!
  13. python3爬取淘女郎图片
  14. PMI-ACP敏捷认证练习题(六)英文版
  15. 使用toad做一张逻辑回归贷前评分卡
  16. macbook历代_苹果Mac历代重大变革
  17. 字典攻击是什么意思?底层原理是什么?
  18. COMSOL本周六开课/FDTD时域有限差分/RSoft光电器件仿真设计专题线上通知
  19. 全世界游客访问最多的城市,重庆以5.9亿游客量排名第一
  20. 南方的才子北方的将,陕西的黄土埋皇上

热门文章

  1. 面试太紧张 不善表达怎么办?
  2. 手机sd卡中的图片误删?Mac数码相机中的照片丢失?
  3. NTC10k20k转0-5v热电阻温度变送器
  4. python 3标准库道格_《PYTHON 3标准库 [美] 道格·赫尔曼》[美] 道格·赫尔曼(Doug Hellmann)著【摘要 书评 在线阅读】-苏宁易购图书...
  5. rollback mysql_MySQL事务-ROLLBACK,COMMIT用法详解
  6. IDEA的菱形断点是什么意思
  7. noip模拟 2018 10 17
  8. 大数据Kylin(二):Kylin安装使用
  9. springboot2+mybatisplus+redis+generator代码生成器环境搭建
  10. html 弹出固定大小的页面,html弹出固定大小的窗口(HTML pops up a fixed size window).doc...