备战数学建模40-遗传算法优化bp神经网络(攻坚站4)

53 篇文章 207 订阅
订阅专栏

BP神经网络主要用于预测和分类,对于大样本的数据,BP神经网络的预测效果较佳,BP神经网络包括输入层、输出层和隐含层三层,通过划分训练集和测试集可以完成模型的训练和预测,由于其简单的结构,可调整的参数多,训练算法也多,而且可操作性好,BP神经网络获得了非常广泛的应用,但是也存在着一些缺陷,例如学习收敛速度太慢、不能保证收敛到全局最小点、网络结构不易确定。另外,网络结构、初始连接权值和阈值的选择对网络训练的影响很大,但是又无法准确获得,针对这些特点可以采用遗传算法或粒子群算法等对神经网络进行优化。
 

目录

一、遗传算法优化bp神经网络

1.1、遗传算法优化bp神经网络流程

1.2、数据集介绍

1.3、遗传算法的实现bp优化

1.4、传统bp和优化后的bp预测效果对比

1.5、小结


一、遗传算法优化bp神经网络

1.1、遗传算法优化bp神经网络流程

我们看一下下面的流程图,因为遗传算法优化参数是BP神经网络的初始权值和 阈值,只要网络结构已知,权值和阈值的个数就已知了。神经网络的权值和阈值一般是通过随机初始化为[-0.5,0.5]区间的随机数,网络的训练结果是一样的,引入遗传算法就是为了优化出最佳的初始权值和阈值。

对于GA优化BP的问题,本次有三点需要说明:

1.bp神经网络的层数一般3层效果较好,即只包含输入层、一层的隐藏层、输出层。
2.bp神经网络的隐藏层神经元个数一般为输入层神经元个数的2倍再加1,即n1=n0*2+1。
3.我们用的是遗传算法工具箱来解决的问题,即使用谢菲尔德gatbx工具箱。

1.2、数据集介绍

本文是利用bp神经网络进行分类,是分类问题,当然也可以理解为预测问题,一共采取的共12组数据,其中9组数据作为训练,3组数据作为测试,数据如下:所有数据已经进行完归一化操作。

训练集输入数据如下:其中15*9,一共15个输入,每一列表示一个个体,一共9个个体,每个个体包含15个输入。

 训练集的输出数据如下:一共9列,每一列代表一个类别。

测试集是三组,训练集是9组,这边就不放测试集的数据了。

1.3、遗传算法的实现bp优化

   遗传算法优化BP神经网络是用遗传算法来优化BP神经网络的初始权重值和阈值,使优化后的BP神经网络能够更好地进行样本预测。遗传算法优化BP神经网络的要素包括种群初始化、适应度函数,选择算子、交叉算子和变异算子。
(1)种群初始化
        个体编码使用二进制编码,每个个体均为一个二进制串,由输人层与隐含层连接权值、隐含层阈值、隐含层与输出层连接权值、输出层阈值四部分组成,每个权值和阈值使用M位的二进制编码,将所有权值和阈值的编码连接起来即为一个个体的编码。例如,本例的网络结构是15 - 31 - 3。
(2)适应度函数
        本案例是为了使BP网络在预测时,预测值与期望值的残差尽可能小,所以选择预测样本的预测值与期望值的误差矩阵的范数作为目标函数的输出。适应度函数采用排序的适应度分配函数:FitnV = ranking(obj),其中obj为目标函数的输出。
(3)选择算子
        选择算子采用随机遍历抽样(sus)。
(4)交叉算子
        交叉算子采用最简单的单点交叉算子。
(5)变异算子
        变异以一定概率产生变异基因数,用随机方法选出发生变异的基因。如果所选的基因的编码为1,则变为0;反之,则变为1。
 

我们输入层有15个神经元,隐藏层有31个神经元,输出层有3个(我们这里做的是3分类问题),那么w1就有31x15个,b1有31个;w2有15x3个,b2有3个,一共加起来有592个参数。其次是关于种群初始化:我们设定有40个种群,这40个种群中每个种群都含有592个变量,且都需要用2进制表示。所以初始化时,需要生成40*5920维度的矩阵。
 

GA优化BP的matlab代码如下:

clc; clear
close all

%% 加载神经网络的训练样本,测试样本每列一个样本,输入P,输出T
% 样本数据就是前面问题描述中列出的数据
load('data.mat')
% 初始隐含层神经元个数
hiddennum = 31;                 % 输入层个数*2 + 1
% 输入向量的最大值和最小值
threshold = [0 1;0 1;0 1;0 1;0 1;0 1;0 1;0 1;0 1;0 1;0 1;0 1;0 1;0 1;0 1];
inputnum = size(P, 1);                      % 输入层神经元个数
outputnum = size(T, 1);                     % 输出层神经元个数
w1num = inputnum * hiddennum;               % 输入层到隐含层的权值个数
w2num = outputnum * hiddennum;              % 隐含层到输出层的权值个数
N = w1num + hiddennum + w2num + outputnum;  % 待优化的变量个数

%% 定义遗传算法参数
NIND = 40;                      % 种群大小
MAXGEN = 50;                    % 最大遗传代数
PRECI = 10;                     % 个体长度
GGAP = 0.95;                    % 代沟
px = 0.7;                       % 交叉概率
pm = 0.01;                      % 变异概率
trace = zeros(N + 1, MAXGEN);   % 寻优结果的初始值
FieldD = [repmat(PRECI, 1, N); repmat([-0.5; 0.5], 1, N); repmat([1;0;1;1], 1, N)]; % 区域描述器
Chrom = crtbp(NIND, PRECI * N); % 创建任意离散随机种群
%% 优化
gen = 0;                                                % 代计数器
X = bs2rv(Chrom, FieldD); 
[M, ~] = size(X);
Obj = zeros(M, 1);
for i = 1 : M
    %所有个体预测样本预测误差的范数
    x = X(i, :) ;
    inputnum = size(P, 1);          % 输入层神经元个数
    outputnum = size(T, 1);         % 输出层神经元个数
    %% 新建BP网络
    net = feedforwardnet(hiddennum);
    net = configure(net, P, T);
    net.layers{2}.transferFcn = 'logsig';
    %% 设置网络参数:训练次数为1000次,训练目标为0.01,学习速率为0.1
    net.trainParam.epochs = 1000;
    net.trainParam.goal = 0.01;
    net.trainParam.lr = 0.1;
    net.trainParam.show = NaN;
    net.trainParam.showwindow = false;      % 使用高版本MATLAB不显示图形框
    %% 神经网络初始权值和阈值
    w1num = inputnum * hiddennum;           % 输入层到隐含层的权值个数
    w2num = outputnum * hiddennum;          % 隐含层到输出层的权值个数
    w1 = x(1 : w1num);                      % 初始输入层到隐含层的权值
    B1 = x(w1num + 1 : w1num + hiddennum);  % 隐含层神经元阈值
    w2 = x(w1num + hiddennum + 1 : w1num + hiddennum + w2num);  % 初始隐含层到输出层的权值
    B2 = x(w1num + hiddennum + w2num + 1 : w1num + hiddennum + w2num + outputnum);  % 输出层阈值
    net.iw{1, 1} = reshape(w1, hiddennum, inputnum);            % 输入层到隐含层的权值
    net.lw{2, 1} = reshape(w2, outputnum, hiddennum);           % 隐含层到输出层的权值
    net.b{1} = reshape(B1, hiddennum, 1);
    net.b{2} = reshape(B2, outputnum, 1);
    %% 训练网络
    net = train(net, P, T);
    %% 测试网络
    Y = sim(net, P_test);
    err = norm(Y - T_test);
    Obj(i) = err ;
end% 计算初始种群的十进制转换
ObjV = Obj;      % 计算目标函数值,即遗传算法的适应度函数
while gen < MAXGEN
    fprintf('%d\n', gen)
    FitnV = ranking(ObjV);                              % 分配适应度值
    SelCh = select('sus', Chrom, FitnV, GGAP);          % 选择
    SelCh = recombin('xovsp', SelCh, px);               % 重组
    SelCh = mut(SelCh, pm);                             % 变异
    X = bs2rv(SelCh, FieldD);                           % 子代个体的二进制到十进制转换
    ObjVSel = Objfun(X, P, T, hiddennum, P_test, T_test);       % 计算子代的目标函数值
    [Chrom, ObjV] = reins(Chrom, SelCh, 1, 1, ObjV, ObjVSel);   % 将子代重插入到父代,得到新种群
    X = bs2rv(Chrom, FieldD);
    gen = gen + 1;                                      % 代计数器增加
    % 获取每代的最优解及其序号,Y为最优解,I为个体的序号
    [Y, I] = min(ObjV);
    trace(1: N, gen) = X(I, :);                         % 记下每代的最优值
    trace(end, gen) = Y;                                % 记下每代的最优值
end
%% 画进化图
figure(1);
plot(1: MAXGEN, trace(end, :));
grid on
xlabel('遗传代数')
ylabel('误差的变化')
title('进化过程')
bestX = trace(1: end - 1, end);
bestErr = trace(end, end);
fprintf(['最优初始权值和阈值:\nX=', num2str(bestX'), '\n最小误差 err = ', num2str(bestErr), '\n'])

我们可以看到每代的最优值,即适应度函数的最小值,即误差的最小值。随着代数的增加误差不端减小,由此我们可以找出初始化的权值和阈值。

1.4、传统bp和优化后的bp预测效果对比

我们使用未优化的权值和阈值作为bp的参数去预测,同时将上面遗传算法优化后的权值和阈值代入bp神经网络进行预测,对预测误差进行对比,明显发现GA对bp的优化起到了效果。

%% 新建BP网络
hiddennum = 31 ;
net = feedforwardnet(hiddennum);
net = configure(net, P, T);
net.layers{2}.transferFcn = 'logsig';
%% 设置网络参数:训练次数为1000次,训练目标为0.01,学习速率为0.1
net.trainParam.epochs = 1000;
net.trainParam.goal = 0.01;
net.trainParam.lr = 0.1;
%% 训练网络
net = train(net, P, T);
%% 测试网络
disp('1.使用随机权值和阈值')
disp('测试样本预测结果:')
Y1 = sim(net, P_test)
err1 = norm(Y1 - T_test);                       % 测试样本的仿真误差
err11 = norm(sim(net, P) - T);                  % 训练样本的仿真误差
disp(['测试样本的仿真误差:', num2str(err1)])
disp(['训练样本的仿真误差:', num2str(err11)])
%% 使用优化后的权值和阈值
inputnum = size(P, 1);                          % 输入层神经元个数
outputnum = size(T, 1);                         % 输出层神经元个数
%% 新建BP网络
net = feedforwardnet(hiddennum);
net = configure(net, P, T);
net.layers{2}.transferFcn = 'logsig';
%% 设置网络参数:训练次数为1000次,训练目标为0.01,学习速率为0.1
net.trainParam.epochs = 1000;
net.trainParam.goal = 0.01;
net.trainParam.lr = 0.1;
%% BP神经网络初始化权值和阈值
w1num = inputnum * hiddennum;           % 输入层到隐含层的权值个数
w2num = outputnum * hiddennum;          % 隐含层到输出层的权值个数
w1 = bestX(1 : w1num);                      % 初始输入层到隐含层的权值
B1 = bestX(w1num + 1 : w1num + hiddennum);  % 隐含层神经元阈值
w2 = bestX(w1num + hiddennum + 1 : w1num + hiddennum + w2num);  % 初始隐含层到输出层的权值
B2 = bestX(w1num + hiddennum + w2num + 1 : w1num + hiddennum + w2num + outputnum);  % 输出层阈值
net.iw{1, 1} = reshape(w1, hiddennum, inputnum);            % 输入层到隐含层的权值
net.lw{2, 1} = reshape(w2, outputnum, hiddennum);           %隐 含层到输出层的权值
net.b{1} = reshape(B1, hiddennum, 1);
net.b{2} = reshape(B2, outputnum, 1);
%% 训练网络
net = train(net, P, T);
%% 测试网络
disp('2.使用优化后的权值和阈值')
disp('测试样本预测结果:')
Y2 = sim(net, P_test)
err2 = norm(Y2 - T_test);
err21 = norm(sim(net, P) - T);
disp(['测试样本的仿真误差:', num2str(err2)])
disp(['训练样本的仿真误差:', num2str(err21)])

运行的结果如下,由下图我们可以发现,通过GA优化后的bp神经网络的预测效果更佳,无论是训练集还是测试集,GA对bp的优化均更好。

1.5、小结

       遗传算法优化BP神经网络的目的是通过遗传算法得到更好的网络初始权值和阈值,其基本思想就是用个体代表网络的初始权值和阈值,把预测样本的BP神经网络的测试误差的范数作为目标函数的输出,进而计算该个体的适应度值,通过选择、交叉、变异操作寻找最优个体,即最优的BP神经网络初始权值和阈值,然后通过BP神经网络进行预测,除了遗传算法之外,还可以采用粒子群算法、蚁群算法等优化BP神经网络初始权值和阈值。

2023年 国赛 数学建模C 基于遗传算法神经网络的销量定价模型
Zhonexixi的博客
09-15 1321
刚刚做完比赛,对这段经历和对问题的处理方法进行下记录。
遗传算法粒子群算法优化BP神经网络,实现机器学习预测,MATLAB实现
mXcqjBEZu的博客
04-11 181
然而,传统的BP神经网络存在训练速度慢、容易陷入局部最优等问题,而遗传算法粒子群算法则可以通过优化BP神经网络的参数,提高其预测性能。因此,对于面临预测任务的机器学习研究者和开发者来说,掌握这些算法和工具的应用,将能够更有效地进行预测任务的实现和优化。在优化BP神经网络中,遗传算法可以用于优化网络的权重和偏置,从而提高网络的预测性能。MATLAB提供了丰富的工具箱和函数,可以方便地实现遗传算法粒子群算法优化过程,同时也提供了BP神经网络的相关函数和工具,便于进行网络的训练和预测。
基于遗传算法GA算法优化BP神经网络(Python代码实现)
最新发布
weixin_46039719的博客
06-07 973
BP-GA算法的设计︰基于遗传算法BP神经网络算法(以下简称BP-GA)就是在BP神经网络的学习过程中,将权重和阀值描述为染色体,并选取适宜的适应函数,然后进行GA迭代,直到某种意义上的收敛.与普通BP学习算法相比,算法 BP一GA的优势在于可以处理一些传统方法不能处理的例子,例如不可导的特性函数(传递函数)或者没有梯度信息存在的节点.该算法涉及到两个关键问题,分别是染色体位串与权系值的编码映射和评价函数。
matlab基于遗传算法BP神经网络优化算法(附代码)
M-博客
03-28 8868
神经网络概述 BP网络是一类多层的前馈神经网络。它的名字源于在网络训练的过程中,调整网络的权值的算法是误差的反向传播的学习算法,即为BP学习算法。BP算法是 Rumelhart等人在1986年提出来的。由于它的结构简单,可调整的参数多,训练算法也多,而且可操作性好,BP神经网络获得了非常广泛的应用。据统计,有80%~90%的神经网络模型都是采用了BP网络或者是它的变形。BP网络是前向网络的核心部分,是神经网络中最精华、最完美的部分。 BP神经网络虽然是人工神经网络中应用最广泛的算法,但是也存在着一些缺陷,例
遗传算法优化BP神经网络
dingyahui的博客
06-02 6万+
遗传算法GA—模拟自然界遗传机制和生物进化论而成的一种并行随机搜索最优化方法。(具有“生存+检测”的迭代过程的搜索算法)基于自然界“优胜劣汰,适者生存”的生物进化原理引入优化参数形成的编码串联群体中,按照所选择的适应度函数并通过遗传中的选择、交叉和变异对个体进行筛选,使适应度值好的个体被保留,适应度差的个体被淘汰,新的群体既继承了上一代的信息,又优于上一代。反复循环,直至满足条件。  种群中的每
基于遗传算法优化BP神经网络预测和分类MATLAB实现-附代码
热门推荐
CJ-leaf的博客
12-08 9万+
基于遗传算法GA优化BP神经网络预测和分类(含优化前对比) 文章目录基于遗传算法GA优化BP神经网络预测和分类(含优化前对比)1. BP神经网络预测原理简介2. 遗传算法GA优化BP神经网络原理3. GA-BP模型建立3.1 模型与数据介绍3.2 GA与BP参数设置3.3 遗传算法优化BP的设计4. 测试结果5. MATLAB代码与数据下载地址 1. BP神经网络预测原理简介 BP 神经网络是一种多层前馈神经网络,常用的为输入层-单隐含层-输出层的三层结构,如下图所示。 BP神经网络训练的主要思想:输
BP神经网络优化 | MATLAB基于遗传算法优化BP神经网络(GA-BP)的预测模型(含完整代码)
weixin_45581954的博客
02-03 9595
遗传算法(GA)优化BP神经网络进行预测,包含完整代码,适合新手入门使用。本模型可以结合自己的数据集进行预测,需要自行修改的地方均会使用【】进行标注。使用前需要安装一下遗传算法工具箱。
备战2021“华为杯”研究生数学建模竞赛.zip
09-25
【华为杯研究生数学建模竞赛】是中国高校中的一项重要赛事,旨在推动研究生群体对数学建模算法应用的深入理解与实践。每年的比赛都吸引了众多学子参与,通过解决实际问题来提升自己的科研能力和团队协作精神。2021...
优化类赛题——遗传算法.rar
07-31
优化类赛题——遗传算法》是一份针对数学建模竞赛的重要参考资料,它全面涵盖了遗传算法的理论基础、实现步骤以及应用实例。遗传算法是一种基于自然选择和遗传机制的全局优化方法,它在解决复杂优化问题时表现出...
评价类赛题——神经网络算法.rar
07-31
在本压缩包“评价类赛题——神经网络算法.rar”中,主要涵盖了数学建模算法体系及相关的备战资料。这是一份针对数学建模竞赛,尤其是涉及到神经网络算法的资源集合,旨在帮助参赛者深入理解和应用神经网络进行问题...
竞赛资料源码-备战2021“华为杯”研究生数学建模竞赛.zip
01-25
数学建模、全国电子设计大赛、全国大学生智能汽车竞赛、蓝桥杯、集成电路创新创业大赛、光电设计竞赛、挑战杯、大创项目、互联网+、三创赛、计算机设计竞赛、创新创业大赛、ACM-ICPC国际大学生程序设计竞赛、全国...
备战中国研究生数学建模竞赛提供一些常用资料.zip
04-15
数学建模备赛、学习资料 数学建模大赛赛题、解决方案资料,供备赛者学习参考!数学建模大赛赛题、解决方案资料,供备赛者学习参考!数学建模大赛赛题、解决方案资料,供备赛者学习参考!数学建模大赛赛题、解决...
遗传算法优化BP神经网络
柳小葱的博客
03-11 1万+
GA算法优化BP神经网络(matlab) 这里我首先要介绍一下BP神经网络的一些特点,因为在以下的编程中,我将把这些特点运用在其中,防止大家不知道为什么这样做。 1.bp神经网络的层数一般3层效果较好,即只包含输入层、一层的隐藏层、输出层。 2.bp神经网络的隐藏层神经元个数一般为输入层神经元个数的2倍再加1,即hiddennum=inputnum*2+1。 3.我们用的是遗传算法工具箱来解决的问题 1.GA算法优化神经网络的参数介绍 本遗传算法优化的部分是输入层与隐藏层的权值w1和偏置b1;隐藏层与输出层
第三章 基于遗传算法BP神经网络优化算法(一)
qq_43336475的博客
10-11 4783
3.1理论基础 3.1.1 BP神经网络概述 来源 BP神经网络:即back propagation神经网络,名字源于在网络训练的过程当中,调整网络权值的算法是 误差的反向传播(back propagation)的学习算法。 地位 BP网络是前向网络的核心部分,是人工神经网络中应用最广泛的算法,但同时也存在着一些缺陷,例如学习收敛速度太慢、不能保证收敛倒全局最小点,网络结构不易确定。另外,网络结构、初始连接权值和阈值的选择对网络训练的影响很大,但是又无法准确获得,针对这些特点利用采用遗传算法神经网络进行优
GA-BP神经网络——遗传算法优化BP神经网络Python实现
x_8efengfan的博客
03-06 6310
使用遗传算法(GA)优化BP神经网络
基于遗传算法优化BP神经网络的非线性函数拟合(一维高斯函数)研究-含Matlab代码
m0_70745318的博客
11-11 2021
BP( Back Propagation,BP)神经网络在生活中的应用处处可见,如数字识别系统的设计、 PID 参数的整定值、函数逼近以及模式识别的应用,都可以基于 BP 神经网络展开。 BP算法具有精确性高等优点,但是也存在收敛速度慢、易陷入局部极小问题的缺点。遗传算法(Genetic Algorithm, GA)作为生物智能算法的一种,基于生物进化理论基础发展而来,是一种自适应性的算法,能够对一个数据空间进行全局部优,而且在收敛性方面也有一定的优越。本博文将遗传算法与 BP 神经网络算法巧妙地结合在一起
基于Matlab的遗传算法优化BP神经网络算法实现(附算法介绍与代码详解)
DigitalGeo的博客
04-26 8789
在地学领域中,不同岩性的岩石识别通常是通过人工来实现,但这样比较耗费精力和时间。那我们就来看看机器学习会给岩石图片识别带来怎样的变化。 因此,今天笔者想要分享的是基于遗传算法优化BP神经网络在岩石图片识别中的应用与代码实现。
遗传算法优化bp神经网络
05-31
遗传算法可以用于优化bp神经网络的参数,以提高神经网络的性能和精度。具体来说,可以按照以下步骤进行: 1. 定义适应度函数:适应度函数用于评估神经网络的性能,可以使用均方误差、交叉熵等指标来评估。 2. 初始化种群:初始化一组随机的神经网络参数,包括权重、偏置等。 3. 评估适应度:对于每个个体(即神经网络参数组合),使用适应度函数评估其性能。 4. 选择操作:根据适应度值选择一些个体进行进化,可以使用轮盘赌选择、锦标赛选择等方法。 5. 交叉操作:对于被选择的个体,使用交叉操作对其神经网络参数进行交叉,生成新的个体。 6. 变异操作:对于新生成的个体,使用变异操作对其神经网络参数进行变异,生成更多的新个体。 7. 使用新个体替换原来的个体,重复3-6步,直到达到预设的停止准则(例如达到最大迭代次数或适应度达到一定阈值)。 最终,选择适应度最高的个体对应的神经网络参数作为优化结果,即优化后的bp神经网络。 需要注意的是,在使用遗传算法优化bp神经网络时,可以将优化问题看作一个黑盒子,不需要知道神经网络的具体结构和算法,只需要定义适应度函数即可。同时,由于遗传算法是一种全局优化算法,其优化结果可能更优,但也需要更多的计算资源和时间。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
写文章

热门文章

  • 联想小新没有wifi解决方案 28940
  • 微信小程序点餐系统需求分析与建模 24608
  • AndroidStudio开发中出现标红(Cannot resolve symbol ‘ ‘ 问题)解决方案 23066
  • 备战数学建模35-时间序列预测模型 22436
  • 学生学籍信息管理系统(Java + SQL) 22431

分类专栏

  • 设计模式 6篇
  • Redis 1篇
  • MySQL数据库 25篇
  • 算法与数据结构 176篇
  • Vue+React等前端框架 3篇
  • python+shell脚本 10篇
  • Matlab+Lingo+SPSS+SAS+stata 53篇
  • 测开面试题 18篇
  • Java面试题篇 15篇
  • 计算机技术问题解决方案 5篇
  • SpringCloud等微服务技术栈 6篇
  • SpringBoot框架 23篇
  • SSM框架整合 45篇
  • Maven+Git 3篇
  • Javaweb整理 23篇
  • JavaSE 41篇
  • ElasticSearch
  • 机器学习与推荐算法 12篇
  • SQLServer 9篇
  • Linux 10篇
  • MongoDB+pgSQL+Oracle
  • netty
  • Kubernetes 2篇
  • jQuery 1篇
  • BootStrap 2篇
  • HTML+CSS+JavaScript 9篇
  • zookeeper+nginx+tomcat
  • 测试框架与工具 1篇
  • dubbo框架
  • 消息队列(RabbitMQ+Kafka+RocketMQ)
  • JVM原理篇-JUC 4篇
  • Docker
  • svn 2篇
  • Android开发 14篇

最新评论

  • 备战数学建模46-小波神经网络WNN(攻坚站11)

    joke_00: 为什么换了数据就是一条直线表情包

  • Leetcode刷题-(41~45)-Java

    2401_86045073: 大佬求解题

  • Python接口自动化测试-篇1(postman+requests+pytest+allure)

    weixin_34595994: 大佬您好 感谢您的分享 请问可以转载一些您的文章吗 会标明作者和出处的哦表情包

  • 学生学籍信息管理系统(Java + SQL)

    故里•: 你的成绩表1没有乃块和数据库链接不上,我用的完整代码,这个bug实在不会改了,其他的bug改了一些

  • 学生学籍信息管理系统(Java + SQL)

    故里•: 因为他发的代码不全

大家在看

  • 光热熔盐储能
  • Vue3 计算属性 797
  • Apache Spark:Spark高级特性:DataFrame与Dataset
  • 变频压缩机变频调节特点

最新文章

  • leetcode刷题(61-65)
  • leetcode刷题(51-60)
  • leetcode刷题(46-50)
2024年26篇
2023年45篇
2022年150篇
2021年245篇
2020年64篇

目录

目录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

nuist__NJUPT

给个鼓励吧,谢谢你

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或 充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值

PHP网站源码石岩网站建设设计罗湖网站排名优化双龙百度网站优化南山网站制作南山网页设计龙岗营销型网站建设西乡百度爱采购布吉网站开发布吉seo网站推广坑梓网站优化推广坂田网站定制坪地网页制作西乡网站设计模板惠州模板制作丹竹头至尊标王宝安高端网站设计龙岗SEO按天扣费吉祥标王东莞百搜标王盐田模板推广石岩SEO按天收费广州网站设计南澳企业网站改版松岗网站建设设计丹竹头seo网站推广民治SEO按天收费大芬网站优化按天计费广州模板推广龙华如何制作网站龙岗seo网站推广歼20紧急升空逼退外机英媒称团队夜以继日筹划王妃复出草木蔓发 春山在望成都发生巨响 当地回应60岁老人炒菠菜未焯水致肾病恶化男子涉嫌走私被判11年却一天牢没坐劳斯莱斯右转逼停直行车网传落水者说“没让你救”系谣言广东通报13岁男孩性侵女童不予立案贵州小伙回应在美国卖三蹦子火了淀粉肠小王子日销售额涨超10倍有个姐真把千机伞做出来了近3万元金手镯仅含足金十克呼北高速交通事故已致14人死亡杨洋拄拐现身医院国产伟哥去年销售近13亿男子给前妻转账 现任妻子起诉要回新基金只募集到26元还是员工自购男孩疑遭霸凌 家长讨说法被踢出群充个话费竟沦为间接洗钱工具新的一天从800个哈欠开始单亲妈妈陷入热恋 14岁儿子报警#春分立蛋大挑战#中国投资客涌入日本东京买房两大学生合买彩票中奖一人不认账新加坡主帅:唯一目标击败中国队月嫂回应掌掴婴儿是在赶虫子19岁小伙救下5人后溺亡 多方发声清明节放假3天调休1天张家界的山上“长”满了韩国人?开封王婆为何火了主播靠辱骂母亲走红被批捕封号代拍被何赛飞拿着魔杖追着打阿根廷将发行1万与2万面值的纸币库克现身上海为江西彩礼“减负”的“试婚人”因自嘲式简历走红的教授更新简介殡仪馆花卉高于市场价3倍还重复用网友称在豆瓣酱里吃出老鼠头315晚会后胖东来又人满为患了网友建议重庆地铁不准乘客携带菜筐特朗普谈“凯特王妃P图照”罗斯否认插足凯特王妃婚姻青海通报栏杆断裂小学生跌落住进ICU恒大被罚41.75亿到底怎么缴湖南一县政协主席疑涉刑案被控制茶百道就改标签日期致歉王树国3次鞠躬告别西交大师生张立群任西安交通大学校长杨倩无缘巴黎奥运

PHP网站源码 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化