大数据毕业设计选题推荐-污水处理大数据平台-Hadoop-Spark-Hive

作者主页:IT研究室✨
个人简介:曾从事计算机专业培训教学,擅长Java、Python、微信小程序、Golang、安卓Android等项目实战。接项目定制开发、代码讲解、答辩教学、文档编写、降重等。
☑文末获取源码☑
精彩专栏推荐⬇⬇⬇
Java项目
Python项目
安卓项目
微信小程序项目

文章目录

  • 一、前言
  • 二、开发环境
  • 三、系统界面展示
  • 四、代码参考
  • 五、论文参考
  • 六、系统视频
  • 结语

一、前言

随着工业化和城市化的快速发展,污水排放问题日益严重。为了管理和治理污水问题,建立基于大数据的污水处理大数据平台显得尤为重要。此平台可帮助我们实现对排放总量、行业污水排放量、行业氧化亚氮排放量、各行业氯苯排放量等关键指标的统计和分析,进而为污水处理和环境治理提供科学依据。

尽管目前已经有一些污水处理和排放统计的方法和技术,但它们往往存在一些问题。首先,许多方法仅能提供单一的排放量或处理量数据,无法对数据进行多种维度的分析。其次,这些方法往往缺乏实时性,无法及时反映污水处理和排放的实时情况。再次,很多方法无法对数据进行挖掘,无法揭示出隐藏在数据背后的规律和趋势。

本课题旨在建立一个基于大数据的污水处理大数据平台,以解决现有方法存在的问题。平台将实现对各类数据的采集、整合和分析,提供多种数据可视化工具,帮助研究人员和决策者更好地理解和处理污水问题。同时,该平台还将提供实时数据监测和预警功能,以便及时发现和处理污水排放和处理的异常情况。

本课题的研究意义在于推动大数据技术在污水处理领域的应用,提升污水处理和管理的效率和效果。通过建立基于大数据的污水处理大数据平台,我们将能够更好地理解和利用数据,为污水处理和环境治理提供科学依据,从而增进环境保护和可持续发展。同时,此研究还将为其他领域提供一种新的数据管理和分析模式,推动各行业的智能化和绿色化发展。

二、开发环境

  • 大数据技术:Hadoop、Spark、Hive
  • 开发技术:Python、Django框架、Vue、Echarts、机器学习
  • 软件工具:Pycharm、DataGrip、Anaconda、VM虚拟机

三、系统界面展示

  • 污水处理大数据平台界面展示:
    污水处理大数据平台
    污水处理大数据平台-排放构成
    污水处理大数据平台-各行业氧化亚氮排放量统计
    污水处理大数据平台-氯苯排放汇总表
    污水处理大数据平台-各行业氯苯排放量统计
    污水处理大数据平台-行业污水排放量统计

四、代码参考

  • 大数据项目实战代码参考:
class EMSAS():

    def __init__(self, window):
        self.window = window
        ''' 菜单栏初始化'''
        menu_root = tkinter.Menu(self.window)  # 创建根菜单
        self.window['menu'] = menu_root  # 顶级菜单关联根窗体

        menu1 = tkinter.Menu(menu_root, tearoff=False)  # 创建子菜单
        meun2 = tkinter.Menu(menu_root, tearoff=False)
        meun3 = tkinter.Menu(menu_root, tearoff=False)

        menu1.add_command(label='打开',command = self.openFileDialog)  # 子菜单栏
        menu1.add_command(label='保存')


        meun2.add_command(label='地表水标准', command=self.openGB3838)  # 子菜单栏
        meun2.add_command(label='地下水标准', command=self.openGB14848)

        meun3.add_command(label='地表水点位', command=self.openSites)  # 子菜单栏
        meun3.add_command(label='地下水点位', command=self.openSites)

        menu_root.add_cascade(label='文件', menu = menu1)  # 创建顶级菜单栏,并关联子菜单
        menu_root.add_cascade(label='标准配置', menu=meun2)
        menu_root.add_cascade(label='点位配置', menu=meun3)
        menu_root.add_cascade(label='关于')
        menu_root.add_command(label='退出', command = self.window.quit)



        self.frame_u = Frame(width=706, height=100, relief=RAISED,borderwidth=1)
        self.frame_l = Frame(width=350, height=300,  relief=RAISED,borderwidth=1)
        self.frame_r = Frame(width=350, height=300,   relief=RAISED,borderwidth=1)  #relief=RAISED,
        self.frame_b = Frame(width=706, height=270, relief=RAISED,bg='blue',  borderwidth=1)
        self.frame_u.grid(row=0, column=0, rowspan=1, columnspan=2, padx=2, pady=2)
        self.frame_l.grid(row=1, column=0, rowspan=1, columnspan=1, padx=2, pady=2)
        self.frame_r.grid(row=1, column=1, rowspan=1, columnspan=1, padx=2, pady=2)
        self.frame_b.grid(row=2, column=0, rowspan=1, columnspan=2, padx=2, pady=2)
        self.frame_u.grid_propagate(0)    #固定容器大小
        self.frame_l.grid_propagate(0)
        self.frame_r.grid_propagate(0)
        self.frame_b.grid_propagate(0)

        self.openfile_button = Button(self.frame_u, text="打开Excel文件",  # bg="lightblue",
                                      command=self.openFileDialog, pady=2, bd=5,relief=RAISED,font=(fontType_Arial, fontsize_M))  # 调用内部方法  加()为直接调用
        self.openfile_button.grid(row=0, column=0,columnspan = 2,sticky=W)
        self.filename_label = Label(self.frame_u, pady=1, text="")
        self.filename_label.grid(row=1, column=0,sticky=W)
        self.filename_out_label = Label(self.frame_u,pady=1, text="")
        self.filename_out_label.grid(row=2, column=0,sticky=W)

        self.surfaceW_label = Label(self.frame_l, text="地表水水质类别与超标情况判断", font=(fontType_Arial, fontsize_M))
        self.surfaceW_label.grid(row=1, column=1, rowspan=1, columnspan=5,pady=35)

        self.surfaceW_v = IntVar()
        self.surfaceW_site_rb = Radiobutton(self.frame_l, text='使用已配置点位信息', variable=self.surfaceW_v, value=1,font=(fontType_Arial, fontsize_M),
                                            command=self.changeselect)
        self.surfaceW_site_rb.grid(row=2, column=1, rowspan=1, columnspan=2,pady=5,sticky=E)
        self.surfaceW_v.set(1)  # 默认值为1,选中状态

        self.surfaceW_site_rb = Radiobutton(self.frame_l, text='河 流', variable=self.surfaceW_v, value=2,font=(fontType_Arial, fontsize_M),
                                            command=self.changeselect)
        self.surfaceW_site_rb.grid(row=3, column=1, rowspan=1, columnspan=1,pady=5 ,sticky=E)
        self.surfaceW_lk_rb = Radiobutton(self.frame_l, text='湖 库', variable=self.surfaceW_v, value=3,font=(fontType_Arial, fontsize_M),
                                            command=self.changeselect)
        self.surfaceW_lk_rb.grid(row=3, column=2, rowspan=1, columnspan=1,pady=5,sticky=W)

        self.SurEva_button = Button(self.frame_l, text="  GB3838判定类别与超标情况  ",  font=(fontType_Arial, fontsize_M),
                                      command=self.surfaceW_EVA, pady=1, bd=5)  # 调用内部方法  加()为直接调用
        self.SurEva_button.grid(row=4, column=1,rowspan=1, columnspan=5, pady=25)
        '''  frame right '''
        self.underW_label = Label(self.frame_r, text="地下水水质类别与超标情况判断", font=(fontType_Arial, fontsize_M))
        self.underW_label.grid(row=1, column=1, rowspan=1, columnspan=5,pady=35)
        self.underW_v = IntVar()
        self.underW_site_rb = Radiobutton(self.frame_r, text='使用已配置点位信息', variable=self.underW_v, value=1,
                                          font=(fontType_Arial, fontsize_M),
                                          command=self.changeselect)
        self.underW_site_rb.grid(row=2, column=1, rowspan=1, columnspan=2,pady=5)
        self.underW_v.set(1)  # 默认值为1,选中状态

        self.underW_site_rb = Radiobutton(self.frame_r, text='不使用已配置点位信息', variable=self.underW_v, value=2,
                                          font=(fontType_Arial, fontsize_M),
                                          command=self.changeselect)
        self.underW_site_rb.grid(row=3, column=1, rowspan=1, columnspan=2,pady=5)
        self.UnderEva_button = Button(self.frame_r, text="  GB/T14848判定类别与超标情况  ", font=(fontType_Arial, fontsize_M),
                                    command=self.underW_EVA, pady=1, bd=5)  # 调用内部方法  加()为直接调用
        self.UnderEva_button.grid(row=4, column=1,rowspan=1, columnspan=5, pady=25)

        '''  frame bottom '''
        self.log_data_Text = Text(self.frame_b,width=98,font=(fontType_Arial, fontsize_S)) 
        self.log_data_Text.grid(row=6, column=1,columnspan=1,sticky=tkinter.E+tkinter.W)  #, rowspan=1, columnspan=15, padx=1, pady=1)
        scroll = tkinter.Scrollbar(self.frame_b,width=20)
        # 放到窗口的右侧, 填充Y竖直方向
        scroll.grid(row=6, column=2, sticky=tkinter.N+tkinter.S)

        # 两个控件关联
        scroll.config(command=self.log_data_Text.yview)
        self.log_data_Text.config(yscrollcommand=scroll.set)

        self.write_log_to_Text("----注意事项-------\n1.请确保打开的Excel首行为标题行,第二行始为数据行.\n2.如果使用配置好的点位信息,请确保点位列使用 '监测点位、断面名称、点位名称、所属断面'之一'.\n3.生成的文件位于打开的文件同一目录.")

        self.write_log_to_Text(loadSiteGB)

        old = sys.stdout  # 将当前系统输出储存到一个临时变量中
        if log_to_file == '1':
            print(log_to_file)
            menu_root = open('.\\logs\\' + self.get_current_time2() + '.log', 'w')
            sys.stdout = menu_root  # 输出重定向到文件
        else:
            sys.stdout = old

            # 设置窗口
    def set_window(self):
        self.window.title("水环境质量评价软件(WEQAS)V1.0")  # 窗口名
        # self.window.geometry('320x160+10+10')                         #290 160为窗口大小,+10 +10 定义窗口弹出时的默认展示位置
        self.window.geometry('715x688+200+200')  # w*h+/-x+/-y
        # self.window.resizable(0, 0)
        # self.window["bg"] = "yellow"  # 窗口背景色,其他背景色见:blog.csdn.net/chl0000/article/details/7657887
        self.window.attributes("-alpha", 0.995)  # 虚化,值越小虚化程度越高


    # 功能函数
    def changeselect(self):
        pass

    def surfaceW_EVA(self):
        global filefrom_df,sitesInfo_df,GB3838_reg_df, GB3838_df,filenamefrom
        panit_surf = []
        if filenamefrom == '':
            return

        if (self.surfaceW_v.get() == 1):  # 用已配置点位信息表
            colNames = filefrom_df.columns.tolist()
            if '断面名称' in colNames:
                siteCol = '断面名称'
            elif '监测点位' in colNames:
                siteCol = '监测点位'
            elif '点位名称' in colNames:
                siteCol = '点位名称'
            elif '所属断面' in colNames:
                siteCol = '所属断面'
            else:
                self.write_log_to_Text('Error:' + "在您输入的Excel中未找到点位列,请确保点位列使用 '监测点位、断面名称、点位名称、所属断面'之一,并确保首行为标题行! ")
                return
            print('点位数量:'+str(filefrom_df.shape[0]))
            for i in range(filefrom_df.shape[0]):
                df_m_1l = filefrom_df.iloc[i, :]  # pd.Series
                siteName = df_m_1l[siteCol]

                # print('sitesInfo_df=',sitesInfo_df)
                if siteName in sitesInfo_df.index.tolist():
                    
                    targetClass = sitesInfo_df.loc[siteName, '考核级别']  # one行,a列
                    siteType = sitesInfo_df.loc[siteName, '断面类型']  # one行,a列
                    if siteType == '湖库':
                        lake = 1
                    else:
                        lake = 0

                    cls, overtimessites , cls_of_item, sucessedReg = siteEval(GB3838_reg_df, GB3838_df, siteName, 0, df_m_1l, int(typeCover(targetClass)), lake)
                    print('cls, overtimessites ', cls, overtimessites)
                    # print(df_sur_city.columns)

                    filefrom_df.loc[i, '水质类别'] = typeCover(cls)
                    filefrom_df.loc[i, '超标情况'] = overtimessites
                    [ClassPerIteminRow.append(i) for ClassPerIteminRow in cls_of_item]
                    panit_surf.extend(cls_of_item)
            print(sucessedReg)
            if len(eval(sucessedReg[sucessedReg.find('['):sucessedReg.find(']') + 1])) > 0:
                self.write_log_to_Text('Warning' + sucessedReg)
            elif len(eval(sucessedReg[sucessedReg.find('['):sucessedReg.find(']') + 1])) == 0:
                self.write_log_to_Text('INFO' + sucessedReg)

        elif (self.surfaceW_v.get() == 2):  # 不用已配置点位信息表,全部点位都是河流断面
            for i in range(filefrom_df.shape[0]):
                df_m_1l = filefrom_df.iloc[i, :]  # pd.Series
                cls, overtimessites, cls_of_item, sucessedReg = siteEval(GB3838_reg_df, GB3838_df, '', 0,df_m_1l,3, 0) # 默认类别为 targetClass = 3
                filefrom_df.loc[i, '水质类别'] = typeCover(cls)
                filefrom_df.loc[i, '超标情况'] = overtimessites
                [ClassPerIteminRow.append(i) for ClassPerIteminRow in cls_of_item]
                panit_surf.extend(cls_of_item)
            if len(eval(sucessedReg[sucessedReg.find('['):sucessedReg.find(']') + 1])) > 0:
                self.write_log_to_Text('Warning' + sucessedReg)
            elif len(eval(sucessedReg[sucessedReg.find('['):sucessedReg.find(']') + 1])) == 0:
                self.write_log_to_Text('INFO' + sucessedReg)

        elif (self.surfaceW_v.get() == 3):  # 不用已配置点位信息表,全部点位都是湖库
            for i in range(filefrom_df.shape[0]):
                df_m_1l = filefrom_df.iloc[i, :]  # pd.Series
                cls, overtimessites, cls_of_item, sucessedReg = siteEval(GB3838_reg_df, GB3838_df, '', 0, df_m_1l, 3,
                                                                         1)  # 默认类别为 targetClass = 3
                filefrom_df.loc[i, '水质类别'] = typeCover(cls)
                filefrom_df.loc[i, '超标情况'] = overtimessites
                [ClassPerIteminRow.append(i) for ClassPerIteminRow in cls_of_item]
                panit_surf.extend(cls_of_item)
            if len(eval(sucessedReg[sucessedReg.find('['):sucessedReg.find(']') + 1])) > 0:
                self.write_log_to_Text('Warning' + sucessedReg)
            elif len(eval(sucessedReg[sucessedReg.find('['):sucessedReg.find(']') + 1])) == 0:
                self.write_log_to_Text('INFO' + sucessedReg)

        filefrom_df.to_excel(filenamefrom[0:filenamefrom.find('.')] + '_Evaluated.xlsx', index=False)
        book = openpyxl.load_workbook(filenamefrom[0:filenamefrom.find('.')] + '_Evaluated.xlsx')
        sheets = book.sheetnames  # 获取全部sheet
        ws = book[sheets[0]]
        for item in panit_surf:  # openpyxl 读写单元格时,单元格的坐标位置起始值是(1,1),并且第一行为标题,故第一行数据加2
            ws.cell(item[2] + 2, item[0] + 1).fill = PatternFill(fill_type='solid', fgColor=getFgColor(item[1]))
        book.save(filenamefrom[0:filenamefrom.find('.')] + '_Evaluated.xlsx')
        self.filename_out_label.config(text="输出的文件:" + filenamefrom[0:filenamefrom.find('.')] + '_Evaluated.xlsx')

        try:
            os.startfile(r''+filenamefrom[0:filenamefrom.find('.')] + '_Evaluated.xlsx')  # windows下成功打开excel
        except:
            print('系统没有自动打开文件的工具')
            return


    def underW_EVA(self):
        global filefrom_df, sitesInfo_df, GBT14848_df, filenamefrom
        panit_surf = []
        if filenamefrom == '':
            return
        if (self.underW_v.get() == 1):  # 用已配置点位信息表
            colNames = filefrom_df.columns.tolist()
            if '断面名称' in colNames:
                siteCol = '断面名称'
            elif '监测点位' in colNames:
                siteCol = '监测点位'
            elif '点位名称' in colNames:
                siteCol = '点位名称'
            else:
                self.write_log_to_Text('Error:' + "在您输入的Excel中未找到点位列,请确保点位列使用 '断面名称'或'监测点位'或'点位名称'之一 ")
                return
            for i in range(filefrom_df.shape[0]):
                df_m_1l = filefrom_df.iloc[i, :]  # pd.Series

                siteName = df_m_1l[siteCol]  # 或者叫监测点位、点位名称

                # print('sitesInfo_df=', sitesInfo_df)

                if siteName in sitesInfo_df.index.tolist():
                    
                    targetClass = sitesInfo_df.loc[siteName, '考核级别']  # one行,a列
                    cls, overtimessites, cls_of_item,sucessedReg = siteEval_underwater(GBT14848_df[GBT14848_df['是否评价'] == 1], GBT14848_df, siteName, 0,
                                                                           df_m_1l, int(typeCover(targetClass)))
                    filefrom_df.loc[i, '水质类别'] = typeCover(cls)
                    filefrom_df.loc[i, '超标情况'] = overtimessites
                    [ClassPerIteminRow.append(i) for ClassPerIteminRow in cls_of_item]
                    panit_surf.extend(cls_of_item)
            if len(eval(sucessedReg[sucessedReg.find('['):sucessedReg.find(']') + 1])) > 0:
                self.write_log_to_Text('Warning' + sucessedReg)
            elif len(eval(sucessedReg[sucessedReg.find('['):sucessedReg.find(']') + 1])) == 0:
                self.write_log_to_Text('INFO' + sucessedReg)

        elif (self.underW_v.get() == 2):  # 不用已配置点位信息表
            for i in range(filefrom_df.shape[0]):
                df_m_1l = filefrom_df.iloc[i, :]  # pd.Series
                cls, overtimessites, cls_of_item, sucessedReg = siteEval_underwater(GBT14848_df[GBT14848_df['是否评价'] == 1], GBT14848_df, '', 0,
                                                                           df_m_1l, 3) # 默认类别为 targetClass = 3
                filefrom_df.loc[i, '水质类别'] = typeCover(cls)
                filefrom_df.loc[i, '超标情况'] = overtimessites
                [ClassPerIteminRow.append(i) for ClassPerIteminRow in cls_of_item]
                panit_surf.extend(cls_of_item)
            if len(eval(sucessedReg[sucessedReg.find('['):sucessedReg.find(']')+1]))>0:
                self.write_log_to_Text('Warning' + sucessedReg)
            elif len(eval(sucessedReg[sucessedReg.find('['):sucessedReg.find(']')+1]))==0:
                self.write_log_to_Text('INFO' + sucessedReg)

        filefrom_df.to_excel(filenamefrom[0:filenamefrom.find('.')] + '_Evaluated.xlsx', index=False)
        book = openpyxl.load_workbook(filenamefrom[0:filenamefrom.find('.')] + '_Evaluated.xlsx')
        sheets = book.sheetnames  # 获取全部sheet
        ws = book[sheets[0]]
        for item in panit_surf:  # openpyxl 读写单元格时,单元格的坐标位置起始值是(1,1),并且第一行为标题,故第一行数据加2
            ws.cell(item[2] + 2, item[0] + 1).fill = PatternFill(fill_type='solid', fgColor=getFgColor(item[1]))
        book.save(filenamefrom[0:filenamefrom.find('.')] + '_Evaluated.xlsx')
        self.filename_out_label.config(text="输出的文件:" + filenamefrom[0:filenamefrom.find('.')] + '_Evaluated.xlsx')
        try:
            os.startfile(r'' + filenamefrom[0:filenamefrom.find('.')] + '_Evaluated.xlsx')  # windows下成功打开excel
        except:
            print('----系统没有自动打开文件的工具----')
            return

    # 获取当前时间
    def get_current_time(self):
        current_time = time.strftime('%y-%m-%d %H:%M:%S', time.localtime(time.time()))
        return current_time
    def get_current_time2(self):
        current_time = time.strftime('%Y%m%d%H%M%S', time.localtime(time.time()))
        return current_time

    # 日志动态打印
    def write_log_to_Text(self, logmsg):
        global LOG_LINE_NUM
        current_time = self.get_current_time()
        if LOG_LINE_NUM == 0:
            logmsg_in = " " + str(logmsg) + "\n"  # 换行
        else: logmsg_in = str(current_time) + " " + str(logmsg) + "\n"  # 换行
        if LOG_LINE_NUM <= 50:
            self.log_data_Text.insert(END, logmsg_in)
            LOG_LINE_NUM = LOG_LINE_NUM + 1
        else:
            self.log_data_Text.delete(1.0, 2.0)
            self.log_data_Text.insert(END, logmsg_in)
        if logmsg.find('Error')>-1:
            messagebox.showerror('出错了',logmsg)
        elif logmsg.find('Warning')>-1:
            messagebox.showwarning('请注意', logmsg)

    def openFileDialog(self):
        "打开对话框,参数与保存对话框相同.略"
        global filefrom_df,filenamefrom
        self.filename = askopenfilename(filetypes=filetype)
        self.filename_label.config(text="打开的文件:" + self.filename)
        if self.filename:
            filefrom_df = pd.read_excel(self.filename, keep_default_na=False, header=0)
            filenamefrom = self.filename
        else:
            pass
        # print(self.filename)

    def openGB3838(self):
        try:
            filepath = os.path.join('./staticData', 'GB3838-2002-t1.xls')
            os.startfile(filepath)  # windows下打开地表水标准配置文件

        except:
            print('----未找到关于地表水标准的配置文件,请确认已经正确创建----')
            self.log_data_Text.insert(END, '未找到关于地表水标准的配置文件,请确认已经正确创建')
            return

    def openGB14848(self):
        try:

            filepath = os.path.join('./staticData', 'GBT14848-2017-t1.xls')
            os.startfile(filepath)  # windows下打开地下水标准配置文件

        except:
            print('----未找到关于地下水标准的配置文件,请确认已经正确创建----')
            self.log_data_Text.insert(END, '未找到关于地下水标准的配置文件,请确认已经正确创建')
            return

    def openSites(self):
        try:
            filepath = os.path.join('./staticData', 'sitesInfo.xls')
            os.startfile(filepath)  # windows下打开地表水标准配置文件
        except:
            print('----未找到关于地下水标准的配置文件,请确认已经正确创建----')
            self.log_data_Text.insert(END, '未找到关于地下水标准的配置文件,请确认已经正确创建')
            return


def gui_start():
    window = Tk()  # 实例化出一个父窗口
    ZMJ_PORTAL = EMSAS(window)
    # 设置根窗口默认属性
    ZMJ_PORTAL.set_window()

    window.mainloop()  # 父窗口进入事件循环,可以理解为保持窗口运行,否则界面不展示


if __name__ == "__main__":
    gui_start()

五、论文参考

  • 计算机毕业设计选题推荐-污水处理大数据平台论文参考:
    计算机毕业设计选题推荐-污水处理大数据平台论文参考

六、系统视频

污水处理大数据平台项目视频:

大数据毕业设计选题推荐-污水处理大数据平台-Hadoop

结语

大数据毕业设计选题推荐-污水处理大数据平台-Hadoop-Spark-Hive
大家可以帮忙点赞、收藏、关注、评论啦~
源码获取:私信我

精彩专栏推荐⬇⬇⬇
Java项目
Python项目
安卓项目
微信小程序项目

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/129345.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【数据结构】Lambda

⭐ 作者&#xff1a;小胡_不糊涂 &#x1f331; 作者主页&#xff1a;小胡_不糊涂的个人主页 &#x1f4c0; 收录专栏&#xff1a;浅谈数据结构 &#x1f496; 持续更文&#xff0c;关注博主少走弯路&#xff0c;谢谢大家支持 &#x1f496; Lambda表达式 1. 背景1.1 语法1.2 函…

【C++优先队列使用】问题总结

说明&#xff1a; 文章内容为关于priority_queue的使用总结&#xff0c;在C中要包含头文件<queue>文章内容为个人的学习整理&#xff0c;如有错误&#xff0c;欢迎指正。 文章目录 1. 优先队列默认是大根堆2. 关于优先队列和sort的比较逻辑2.1 sort的比较逻辑2.2 优先队…

python操作链接数据库和Mysql中的事务在python的处理

python操作数据库 pymysql模块: pip install pymysql作用:可以实现使用python程序链接mysql数据库&#xff0c;且可以直接在python中执行sql语句 添加操作 import pymysql #1.创建链接对象c conn pymysql.Connect(host127.0.0.1,#数据库服务器主机地址port3306, #mysql的端口…

一篇文章让你了解Java中的继承

目录 继承一.什么是继承二.为什么要使用继承三.继承的语法四.继承中有重复怎么办&#xff1f;1.**访问原则** 五.super和this1.**this**2.**super**3.**super注意事项**4.**super和this异同点**六.构造方法的引入1.父类不带参数的构造方法2.父类带有参数的构造方法 七.继承中的…

【二叉树】如何构建一个包含大量随机数节点的二叉树测试用例

【二叉树】如何构建一个包含大量随机数节点的二叉树测试用例 前言一、案例准备二、自动生成随机二叉树工具类&#xff08;TreegenerateUtils&#xff09;三、如何调用随机二叉树工具类&#xff08;TreegenerateUtils&#xff09;&#xff1f; 前言 今天笔者在测试有关二叉树的…

Leetcode-206 反转链表

迭代法&#xff1a;将指针方向依次改变&#xff0c;定义两个指针pre和cur /*** Definition for singly-linked list.* public class ListNode {* int val;* ListNode next;* ListNode() {}* ListNode(int val) { this.val val; }* ListNode(int val, Lis…

Bengio担任一作,联手一众图灵奖得主,预防AI失控,扛起AI监管大旗

图灵奖得主最近都在关心些什么呢&#xff1f;Yoshua Bengio&#xff0c;深度学习的奠基人之一&#xff0c;前几天他担任一作&#xff0c;联合多位大佬&#xff0c;发文探讨了如何在人工智能&#xff08;AI&#xff09;快速发展的时代管控相关风险&#xff0c;共同寻求当下生成式…

Flink SQL -- 命令行的使用

1、启动Flink SQL 首先启动Flink的集群&#xff0c;选择独立集群模式或者是session的模式。此处选择是时session的模式&#xff1a;yarn-session.sh -d 在启动Flink SQL的client&#xff1a; sql-client.sh 2、kafka SQL 连接器 在使用kafka作为数据源的时候需要上传jar包到…

python+requests接口自动化测试

原来的web页面功能测试转变成接口测试&#xff0c;之前大多都是手工进行&#xff0c;利用postman和jmeter进行的接口测试&#xff0c;后来&#xff0c;组内有人讲原先web自动化的测试框架移驾成接口的自动化框架&#xff0c;使用的是java语言&#xff0c;但对于一个学java&…

Linux学习之进程三

目录 进程控制 fork函数 什么是写时拷贝 进程终止 mian函数的返回值 退出码 错误码 exit() 进程等待 1.什么是进程等待&#xff1f; 2.为什么要进行进程等待&#xff1f; 3.如何进程进程等待&#xff1f; wait&#xff0c;waitpid&#xff1a; waitpid 进程替换 …

Lua更多语法与使用

文章目录 目的错误处理元表和元方法垃圾回收协程模块面向对象总结 目的 在前一篇文章&#xff1a; 《Lua入门使用与基础语法》 中介绍了一些基础的内容。这里将继续介绍Lua一些更多的内容。 同样的本文参考自官方手册&#xff1a; https://www.lua.org/manual/ 错误处理 下…

node插件MongoDB(四)—— 库mongoose 操作文档使用(新增、删除、更新、查看文档)(二)

文章目录 前言&#xff08;1&#xff09;问题&#xff1a;安装的mongoose 库版本不应该过高导致的问题&#xff08;2&#xff09;重新安装低版本 一、插入文档1. 代码2. node终端效果3. 使用mongo.exe查询数据库的内容 二、删除文档1. 删除一条2. 批量删除3. 代码 三、修改文档…

Go基础知识全面总结

文章目录 go基本数据类型bool类型数值型字符字符串 数据类型的转换运算符和表达式1. 算数运算符2.关系运算符3. 逻辑运算符4. 位运算符5. 赋值运算符6. 其他运算符运算符优先级转义符 go基本数据类型 bool类型 布尔型的值只可以是常量 true 或者 false。⼀个简单的例⼦&#…

MIPSsim模拟器 使用说明

&#xff08;一&#xff09; 启动模拟器 双击MIPSsim.exe&#xff0c;即可启动该模拟器。模拟器启动时&#xff0c;自动将自己初始化为默认状态。所设置的默认值为&#xff1a; u所有通用寄存器和浮点寄存器为全0&#xff1b; u内存清零&#xff1b; u流水寄存器为全0&#xff…

C++结构体定义 创建 赋值 结构体数组 结构体指针 结构体嵌套结构体

结构体是什么&#xff1f; struct是自定义数据类型&#xff0c;是一些类型集合组成的一个类型。结构体的定义方式 #include<iostream> using namespace std;struct Student {string name;int age;int score; };创建结构体变量并赋值 方式一&#xff0c;先创建结构体变…

基于springboot+vue开发的教师工作量管理系

教师工作量管理系 springboot31 源码合集&#xff1a;www.yuque.com/mick-hanyi/javaweb 源码下载&#xff1a;博主私 摘要 随着信息技术在管理上越来越深入而广泛的应用&#xff0c;管理信息系统的实施在技术上已逐步成熟。本文介绍了教师工作量管理系统的开发全过程。通过…

人工智能技术的高速发展,普通人如何借助AI实现弯道超车?

人工智能技术的高速发展&#xff0c;普通人如何借助AI实现弯道超车&#xff1f; 随着互联网信息传播的爆炸&#xff0c;人类科技文明的快速发展“人工智能”成为新的话题&#xff0c;科技的进步也让普通人觉得自己与社会脱节&#xff0c;找工作越来越难&#xff0c;创业越来越难…

Python使用Numba装饰器进行加速

Python使用Numba装饰器进行加速 前言前提条件相关介绍实验环境Numba装饰器进行加速未加速的代码输出结果 numba.jit加速的代码输出结果 前言 由于本人水平有限&#xff0c;难免出现错漏&#xff0c;敬请批评改正。更多精彩内容&#xff0c;可点击进入Python日常小操作专栏、Ope…

Aspose.OCR for .NET 2023Crack

Aspose.OCR for .NET 2023Crack 为.NET在图片上播放OCR使所有用户和程序员都可以从特定的图像片段中提取文本和相关的细节&#xff0c;如字体、设计以及书写位置。这一特定属性为OCR的性能及其在扫描遵循排列的记录时的功能提供了动力。OCR的库使用一条线甚至几条线来处理这些特…

什么是证书管理

在自带设备和物联网文化的推动下&#xff0c;数字化使连接到互联网的设备数量空前加速。在企业网络环境中&#xff0c;每个在线运行的设备都需要一个数字证书来证明其合法性和安全运行。这些数字证书&#xff08;通常称为 X.509 证书&#xff09;要么来自称为证书颁发机构 &…