前言:大学本科时光结束啦,几年的时光确实让我了解学习到了许多计算机相关知识,但真正的让我写出来,又好像觉得自己什么也没学到,没什么值得写的。那就写一下这个速成的毕设吧。
一、项目设计技术概述:注:项目采用前后端分离的模块化设计
项目主要技术:Springboot、Vue、MyBatis-Plus、Elasticsearch、Redis、MySQL、MongDB.
前端功能主要分为五个方面:
1、门户首页
2、用户相关
3、目的地相关
4、攻略相关
5、游记相关
后端功能主要分为四个方面:
1、目的地管理
2、攻略管理
3、游记管理
4、广告管理等
项目中的表大概有六类表,分别对应上面的主要功能。最多的当然是攻略与游记相关的表。
比如与攻略有关的部分表设计如下:
项目采用基于遗传算法的NSGA-II算法,解决了多目标优化问题。
package io.onclave.nsga.ii.algorithm;
import io.onclave.nsga.ii.api.*;
import io.onclave.nsga.ii.datastructure.Population;
import org.jfree.ui.RefineryUtilities;
import java.io.IOException;
public class Algorithm {
public static void main(String[] args) throws IOException {
Configuration.configure();
GraphPlot multiPlotGraph = new GraphPlot();
Reporter.reportInitialParentPopulationGeneration();
Reporter.reportGeneration(1);
Population parent = NSGAII.preparePopulation(Synthesis.syntesizePopulation());
Population child = Synthesis.synthesizeChild(parent);
Population combinedPopulation;
for(int generation = 1; generation <= Configuration.GENERATIONS; generation++) {
Reporter.reportGeneration(generation + 1);
combinedPopulation = NSGAII.preparePopulation(Synthesis.createCombinedPopulation(parent, child));
parent = NSGAII.getChildFromCombinedPopulation(combinedPopulation);
child = Synthesis.synthesizeChild(parent);
multiPlotGraph.prepareMultipleDataset(child, generation, "gen. " + generation);
}
Reporter.reportGraphPlotalert();
Reporter.render2DGraph(child);
multiPlotGraph.configureMultiplePlotter(Configuration.getXaxisTitle(), Configuration.getYaxisTitle(), "All Pareto");
multiPlotGraph.pack();
RefineryUtilities.centerframeOnScreen(multiPlotGraph);
multiPlotGraph.setVisible(true);
Reporter.reportAlgorithmEnd();
}
}



