江服校园导游咨询系统-数据结构课程设计

2023-05-16

目录

  • 1 需求分析
    • 1.1 问题描述
    • 1.2 系统简介
    • 1.3 系统模块功能要求介绍
    • 1.4 系统开发环境及开发人员
    • 1.5 校园平面图
  • 2 概要设计
    • 2.1 算法设计及存储结构说明
    • 2.2 系统功能设计
  • 3 详细设计
    • 3.1 定义符号变量
    • 3.2 主程序模块给出函数声明
    • 3.3 主程序界面
    • 3.4 定义各顶点之间的距离
    • 3.5 界面菜单设计
    • 3.6 Dijkstra算法 计算起点各顶点间短路径
    • 3.7 用floyd算法求两个景点的最短路径
    • 3.8 查找景点信息
  • 4 测试分析
    • 4.1 主程序界面
    • 4.2 浏览校园全景
    • 4.3 查看所有游览线路
    • 4.4 确定两景点之间最短距离
    • 4.5 查看景点信息
  • 5 用户手册
  • 6 源程序下载

1 需求分析

1.1 问题描述

设计一个校园导游程序,为来访的客人提供各种信息查询服务。

1.设计江西服装学院的校园平面图。选取若干有代表性的景点抽象成一个无向带权图(无向网),所含景点不少于 6 个。

2.为来访客人提供图中任意景点相关信息的查询。

3.为来访客人提供图中任意景点的问路查询,即查询任意两个景点之间的一条最短的简单路径。

1.2 系统简介

1.设计江西服装学院的校园平面图。选取8个有代表性的景点抽象成一个无向带权图(无向网)。以图中顶点表示校内各景点,存放景点名称、编号、简介等信息;以边表示路径,边上的权值表示两景点之间的距离。

2.为用户提供图中任意景点相关信息的查询、图中任意景点的问路查询,即查询任意两个景点之间的一条最短的简单路径。

3.使用C语言,基于《数据结构》中图的相关算法开发了“江西服装学院校园咨询系统”。系统从实际出发,通过对校园平面图的分析,将其转化为数据并保存在系统中,系统提供的路径具有较大的可信性。

1.3 系统模块功能要求介绍

系统分为五大模块功能

1.浏览校园全景:输入即可查看校园全景点名称、编号、简介。

2.查看所有游览路线:用户在选择此功能模块后,按照屏幕上方提示的景点名称及其对应的编号,要求用户输入想要查询的景点的编号,回车后系统将在已存储的景点中进行匹配,若该景点信息尚未存储则将提示错误;若找到对应信息则系统将输出景点信息,显示于幕上方。

3.确定两景点之间最短距离:用户在选择此功能模块后,按照屏幕上方提示的景点名称及其对应的编号,要求用户输入起点和终点的编号,系统将在已存储的景点中进行匹配,若未找到所需查询的景点编号,系统将提示错误并要求用户再次输入。若输入信息合法,则回车后系统将给出最短路径,显示于屏幕上方。

4.查看景点信息:用户在选择此功能模块后,输入景点编号即可查看景点信息。

5.退出导游系统:用户在使用完本系统后,选择此功能模块后按任意键系统将自动退出。

1.4 系统开发环境及开发人员

开发语言: C语言
开发工具:Visual C++6.0
操作系统:Microsoft Windows 10
开发人员:Yeats_Liao

1.5 校园平面图

在这里插入图片描述

2 概要设计

2.1 算法设计及存储结构说明

2.1.1 主函数概要设计

调用初始化图函数InitGraph()函数创建一个图,再调用显示主界面函数显示一个可视化主界面,内容景点信息及操作编号的提示信息。当用户成功输入操作编号后,使用switch()函数,判断用户所需操作,匹配成功后,调用相关函数实现用户所需功能。

2.1.2 初始化图函数InitGraph()

InitGraph()函数使用MyGraph结构体声明一个用于存储图中信息的结构体,定义结构体中的景点数量以及路径数量,然后使用循环为景点信息和路径长度赋值。

2.1.3 显示主界面函数设计void Menu()

void Menu()函数主要用于显示主界面,界面提示了景点名称及其对应编号。主界面下方以列表方式提示用户系统可进行的操作及其对应编号,最后提示用户进行输入。

2.1.4 显示图中信息函数设计void Browser(MGraph *G)

该函数首先定义了一个变量v(用于接收用户输入的查询编号),而后使用for循环,判断条件为v,以列表方式输出。

2.1.5 查询景点信息函数设计void Search(MGraph *G)

该函数首先定义了一个变量k(用于接收用户输入的查询编号)和一个标记位flag(初始值设为1),而后使用while()循环,判断条件为flag=1,当输入编号不合法时提示错误,当输入合法时标记位flag置为0,此时跳出循环,调用MyGraph结构体对应编号的景点信息,以列表方式输出。

2.1.6 弗洛伊德算法函数设计Floyd()

Floyd算法首先将两景点间路径长度数据存储于数组 D[v][w]中,然后使用一个三维数组用于存放最短路径所经过的顶点,接下来使用三重循环判断两景点之间直接路径是否大于间接路径,若大于,则将三维数组中存放的顶点信息更改为简介路径所经过的顶点信息。

以上部分完成后,当用于标记输入数据是否合法的flag=1时,输出错误信息,提示用户重新输入,当输入数据合法时,输出以上程序得到结果。

2.2 系统功能设计

2.2.1主程序界面

定义一个I,调用InitGraph()函数初始化图,再调用menu()函数,输入选择,利用switch开关语句,实现用户选择需求。

在这里插入图片描述

2.2.2 浏览景点信息

定义v;用for循环for(v=0;i<G.vexnum;v++)当条件成立的时候执行printf语句,直到循环不成立的时候输出结束。

2.2.3 查找所有游览线路

查找路径利用Dijkstra算法,该函数首先定义了一个变量v(用于接收用户输入的查询编号),而后使用for循环,判断条件为v,以列表方式输出。

2.3.4 确定两景点之间最短距离

利用多个for循环嵌套,计算出路径,计算出路径长度,当最外重循环不成立时循环结束.利用for循环输出。

3 详细设计

3.1 定义符号变量

#define INFINITY 1000//定义一个无穷大数
#define MAX_VERTEX_NUM   40//定义景点数据最大容量 
#define MAX 40 #include<stdlib.h> 
#include<stdio.h> 
#include<conio.h> 
#include<string.h> 
#include<stdlib.h>

typedef struct ArCell //邻接矩阵
{ 
	int adj;//存储路径长度  
}ArCell,AdjMatrix[MAX_VERTEX_NUM][MAX_VERTEX_NUM]; 

typedef struct//图顶点表示主要景点存放景点编号、名称、简介等信息 
{
	int num;
	char name[20]; 
	char introduction[50];//简介
}infotype; 

typedef struct//图中的边表示景点间的道路,存放路径长度等信息。 
{ 
infotype vexs[MAX_VERTEX_NUM];//顶点信息域 
AdjMatrix arcs; 
int vexnum,/*顶点数*/ arcnum;//边个数 
}MGraph; MGraph b;  

3.2 主程序模块给出函数声明

void cmd(void); 
MGraph InitGraph(void); //初始化图
void Menu(void);//菜单函数 
void Browser(MGraph *G); //浏览函数
void ShortestPath_DIJ(MGraph *G); 
void Floyd(MGraph *G); // 查询图中任意两个景点间的所有路径
void Search(MGraph *G); //查找函数 
int LocateVex(MGraph *G,char*v); // Dijkstra算法 计算起点各顶点间短路径
MGraph * CreatUDN(MGraph *G); //初始化图形,接受用户输入
void print(MGraph *G); //输出函数

3.3 主程序界面

void cmd(void) 
{  
	int i; 
	b=InitGraph();  //初始化校园地图 
	Menu();			//调用显示主界面函数 
	scanf("%d",&i); 
	
	while(i!=5)  
	{ 
	 switch(i)   
	 { 
	  case 1: system("cls");Browser(&b); Menu();break;//1.浏览校园全景 
	  case 2: ShortestPath_DIJ(&b); Menu();break;//2.查看所有游览路线   
	  case 3: Floyd(&b); Menu(); break;//3.确定两景点之间最短距离     
	  case 4: Search(&b); Menu();break;//4.查看景点信息  
	  case 5:exit(0);break;   
	  default:break;   
	 } 
	scanf("%d",&i);  
	} 
}

3.4 定义各顶点之间的距离

for(i=0;i<G.vexnum;i++)   
	 for(j=0;j<G.vexnum;j++)    
	 G.arcs[i][j].adj=INFINITY;   
	 G.arcs[0][1].adj=150; 
	 G.arcs[0][2].adj=200;   
	 G.arcs[0][8].adj=600;   
	 G.arcs[1][2].adj=50;  
	 G.arcs[1][4].adj=70;   
	 G.arcs[1][5].adj=100;  
	 G.arcs[2][3].adj=70;  
	 G.arcs[2][5].adj=100;  
	 G.arcs[3][5].adj=250;  
	 G.arcs[3][6].adj=240;   
	 G.arcs[4][5].adj=50;  
	 G.arcs[5][6].adj=50;
	 G.arcs[5][7].adj=200;   
	 G.arcs[5][8].adj=300; 
	 G.arcs[6][7].adj=170;
	 G.arcs[6][8].adj=250;  
	 G.arcs[7][8].adj=200;   
	 for(i=0;i<G.vexnum;i++)   
		 for(j=0;j<G.vexnum;j++) 
   G.arcs[j][i].adj=G.arcs[i][j].adj; //无向图相反方向路径相同  
		 return G; 
}

3.5 界面菜单设计

void Menu()
{  
 printf("\n                                   江西服装学院导游图\n"); 
 printf("                           ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓\n"); 
 printf("                           ┃   1.浏览校园全景              ┃\n"); 
 printf("                           ┃   2.查看所有游览路线          ┃\n"); 
 printf("                           ┃   3.确定两景点之间最短距离    ┃\n");  
 printf("                           ┃   4.查看景点信息              ┃\n"); 
 printf("                           ┃   5.退出导游系统              ┃\n"); 
 printf("                           ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛\n"); 
 printf("请输入选择编号:"); 
} 
/******************************************************/ 

void Browser(MGraph *G)//介绍景点
{ 
 int v; 
 printf("┏━━━━┳━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓\n"); 
 printf("┃编号┃景点名称            ┃简介																					 \n"); 
 
 for(v=0;v<G->vexnum;v++)  
	 printf("┃%-4d┃%-20s┃%-60s  \n",G->vexs[v].num,G->vexs[v].name,G->vexs[v].introduction); 
 printf("┗━━━━┻━━━━━━━━━━━━━━━━━━━━┻━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛\n"); 
}

3.6 Dijkstra算法 计算起点各顶点间短路径

void ShortestPath_DIJ(MGraph * G) 
{ 
 int v,w,i,min,t=0,x,flag=1,v0; 
    int final[20], D[20], p[20][20];  
	while(flag)  
	{ 
		printf("请输入景点编号:");   
		scanf("%d",&v0); 
		if(v0<0||v0>G->vexnum)   
		{ 
			printf("景点编号不存在!请重新输入景点编号:");      
			scanf("%d",&v0);   
		} 
		if(v0>=0&&v0<G->vexnum)   
			flag=0;  
	}  
	for(v=0;v<G->vexnum;v++)  
	{   
		final[v]=0;   
		D[v]=G->arcs[v0][v].adj;//存储起始v0-末尾v之间权值 
		for(w=0;w<G->vexnum;w++)   
			p[v][w]=0;  
		if(D[v]<INFINITY) 
		{   
			p[v][v0]=1;p[v][v]=1;   
		}  
	} 
	D[v0]=0;final[v0]=1; 
	for(i=1;i<G->vexnum;i++)  
	{   
		min=INFINITY;   
		for(w=0;w<G->vexnum;w++)    
			if(!final[w])     
				if(D[w]<min){v=w;min=D[w];}     
				final[v]=1;     
				for(w=0;w<G->vexnum;w++)     
					if(!final[w]&&(min+G->arcs[v][w].adj<D[w]))      
					{       D[w]=min+G->arcs[v][w].adj;      
					for(x=0;x<G->vexnum;x++)      
						p[w][x]=p[v][x];      
					p[w][w]=1;      
					}  
 } 
	for(v=0;v<G->vexnum;v++)  
	{   
		if(v0!=v) 
			printf("%s",G->vexs[v0].name);   
		for(w=0;w<G->vexnum;w++)   
		{    
			if(p[v][w]&&w!=v0)     
				printf("-->%s",G->vexs[w].name);    
			t++;   
		}   
		if(t>G->vexnum&&v0!=v)printf(" 总路线%dm\n\n",D[v]);  
	} 
}

3.7 用floyd算法求两个景点的最短路径

void Floyd(MGraph *G)
{ 
 int v,u,i,w,k,j,flag=1,p[20][20][20],D[20][20];  
	for(v=0;v<G->vexnum;v++)   
		for(w=0;w<G->vexnum;w++)   
		{ 
			D[v][w]=G->arcs[v][w].adj;     
			for(u=0;u<G->vexnum;u++)     
				p[v][w][u]=0; 
			if(D[v][w]<INFINITY)    
			{ 
				p[v][w][v]=1;p[v][w][w]=1;    
			}   
		} 
		for(u=0;u<G->vexnum;u++)   
			for(v=0;v<G->vexnum;v++)   
				for(w=0;w<G->vexnum;w++)     
					if(D[v][u]+D[u][w]<D[v][w])     
					{   D[v][w]=D[v][u]+D[u][w];   
					for(i=0;i<G->vexnum;i++)   
						p[v][w][i]=p[v][u][i]||p[u][w][i];  
}  
		 while(flag)  
		 {   
			 printf("请输入出发地编号:");   
			 scanf("%d",&k);   
			 if(k<0||k>G->vexnum)   
			 {    
				 printf("景点编号不存在!\n请输入出发地编号:");    
				 scanf("%d",&k);   
			 }   

			 printf("请输入目的地编号:");   
			 scanf("%d",&j);   
			 if(j<0||j>G->vexnum)  
			 {    
				 printf("景点编号不存在!\n请输入目的地编号:");    
				 scanf("%d",&j);  
			 }   
			 if(k>=0&&k<G->vexnum&&j>=0&&j<G->vexnum)    
				 flag=0;  
		 } 
		 printf("\n");  
		 printf("%s",G->vexs[k].name);  
		 for(u=0;u<G->vexnum;u++)   
			 if(p[k][j][u]&&k!=u&&j!=u)   
				 printf("-->%s",G->vexs[u].name);  
			 printf("---->%s",G->vexs[j].name);   
			 printf(" 总路线%dm\n",D[k][j]); }

3.8 查找景点信息

void Search(MGraph *G)
{  
	int k,flag=1;  
	while(flag)  
	{ 
		printf("请输入要查询景点编号:");  
		scanf("%d",&k); 
		if(k<0||k>G->vexnum)   
		{ 
			printf("景点编号不存在! 请重新输入:");      
			scanf("%d",&k);  
		} 
		if(k>=0&&k<G->vexnum)    
			flag=0; 
	} 
	printf("┏━━━━┳━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓\n"); 
	printf("┃编号┃景点名称            ┃简介																					 \n"); 
	printf("┃%-4d┃%-17s   ┃%-60s\n",G->vexs[k].num,G->vexs[k].name,G->vexs[k].introduction); 
	printf("┗━━━━┻━━━━━━━━━━━━━━━━━━━━┻━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛\n"); 
}

4 测试分析

4.1 主程序界面

主程序从void main()开始运行,景点信息的赋值初始化无向邻接图b=InitGraph(); 调用menu菜单函数打印菜单,提示用户输入选择功能。
在这里插入图片描述

4.2 浏览校园全景

把原景点信息利用for循环输出,int v=0;v小于最多的景点个数输出景点信息,依次输出。

在这里插入图片描述

4.3 查看所有游览线路

查看所有路线是使用void ShortestPath_DIJ(MGraph * G)// Dijkstra算法 计算起点各顶点间短路径,然后利用for循环输出计算的结果。输入景点不正确时会输出景点不存在重新输入。

在这里插入图片描述

4.4 确定两景点之间最短距离

利用void Floyd(MGraph *G)算法以及利用循环嵌套,查询图中存在的任意两个景点间的最短路径再利用循环输出,输入景点不正确时会输出景点不存在重新输入。

在这里插入图片描述

4.5 查看景点信息

利用void Search(MGraph *G)函数,查看景点信息和查找景点编号,当输入景点编号不在范围时输出“景点编号不存在请重新输入编号:”输入正确时输出景点信息。

在这里插入图片描述

5 用户手册

1.本程序为校园导游程序,为来访的客人提供各种信息查询服务。

2.进入系统之后,随即显示系统主菜单界面。用户可在该界面下输入各子菜单前对应的数字并按下回车键,执行相应子菜单命令。

  • 操作指令’1’:进入’浏览校园全景’模块。
  • 操作指令’2’:进入’查看所有浏览路线’模块,选择0-8中一个编号输入即可查看。
  • 操作指令’3’:进入’查找两景点之间最短距离’模块,选择0-8中两个个编号输入即可查找。
  • 操作指令’4’:进入’查看景点信息’模块,选择0-8中一个编号输入即可查看。
  • 操作指令’5’:进入’退出系统模块’后,按回车退出系统。

6 源程序下载

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

江服校园导游咨询系统-数据结构课程设计 的相关文章

  • docker容器的时间和宿主机时间不一致相差8小时

    目录 问题分析前提条件方法一 xff1a 启动时进行映射方法二 xff1a 复制时区信息到容器 96 SpringBoot项目通过docker run映射时区无效 xff0c 需要通过如下代码设定 96 问题分析 在docker容器和系统时
  • STC51单片机-双机串口通讯-物联网应用系统设计

    目录 一 说明二 重点三 实现四 下载 此项目是作为单片机应用系统设计 xff0c 通过STC单片机实验开发装置的结构 原理电路 以及其所能实现的功能和应用 xff0c 建立单片机实现多功能综合应用系统的整体概念 xff0c 打下实际工程项
  • STC51单片机-实验开发装置仿真-物联网应用系统设计

    目录 一 说明二 重点三 实现四 下载 此项目是作为单片机应用系统设计 xff0c 通过STC单片机实验开发装置的结构 原理电路 以及其所能实现的功能和应用 xff0c 建立单片机实现多功能综合应用系统的整体概念 xff0c 打下实际工程项
  • PCB设计及制作-数字钟-物联网应用系统设计项目开发

    目录 一 说明二 重点三 实现四 下载 一 说明 用Altium Designer软件绘制数字钟的原理图 xff0c 加载元器件对于元件库中没有的器件和封装 xff0c 能够通过网络资源找到器件手册并自行绘制根据原理图绘制PCB图 xff0
  • Java软件工程师职位分析

    目录 一 职业岗位分析二 行业背景分析三 环境分析四 职业发展路径五 职业规划分析 一 职业岗位分析 Java属于编程语言的核心语言 xff0c 很多公司都在用Java xff0c Java语言开发优势显著稳定性好 xff0c 在服务器端J
  • Tomcat SEVERE: Failed to initialize end point associated with ProtocolHandler [“http-bio-8080“] 异常处理

    目录 一 异常错误二 原因三 解决方法 一 异常错误 Maven启动tomcat run时 xff0c 出现 SEVERE Failed to initialize end point associated with ProtocolHan
  • Gradle ERROR: JAVA_HOME is set to an invalid directory: D:\Software\Java\JDK9.0.4;异常处理

    目录 一 异常错误二 原因三 解决方法 一 异常错误 配置gradle环境 xff0c 验证gradle并显示版本时出错 ERROR JAVA HOME is span class token builtin class name set
  • Eclipse IDE for Java Developers没有Server选项 问题处理

    目录 一 出现问题二 原因三 解决方法1 可安装自带 Server 选项的Eclipse Java EE 版本2 或者通过Eclipse Java 版本安装插件 一 出现问题 当Eclipse需要打开Runtime Environment配
  • XML语言的基本语法-Java Web

    目录 一 说明二 理解三 实现 一 说明 XML xff08 eXtended Markup Language xff0c 可扩展的标记性语言 xff09 被设计用来定义结构 传输和存储数据 xff0c 不用于表现和展示数据 xff0c 目
  • 实现一个进程管理子系统-Linux课程设计

    目录 1 项目概述1 1 项目介绍1 2 项目目的1 3 项目开发环境 2 需求分析2 1 系统需求分析2 2 可行性分析2 3 项目实施安排 3 系统设计3 1 系统结构设计3 2 系统功能模块设计3 3 进程总体设计3 4 数据结构3
  • LeetCode 14. 最长公共前缀

    题目 编写一个函数来查找字符串数组中的最长公共前缀 如果不存在公共前缀 xff0c 返回空字符串 详见 xff1a 14 最长公共前缀 思路 依次遍历字符串数组中的每个字符串 xff0c 将每个单词和第一个单词作比较 xff0c 对于每个遍
  • 删除对象里的一个字段的方法

    原数据 34 current 34 1 34 pageSize 34 10 34 pageNum 34 1 34 labLocationId 34 undefined 删除labLocationId字段的方法 if params labLo
  • LeetCode 912. 排序数组

    题目 给你一个整数数组 nums xff0c 请你将该数组升序排列 详见 xff1a 912 排序数组 思路 排序是计算机内经常进行的一种操作 xff0c 其目的是将一组 无序 的记录序列调整为 有序 的记录序列 分内部排序和外部排序 xf
  • LeetCode 190. 颠倒二进制位

    题目 颠倒给定的 32 位无符号整数的二进制位 提示 xff1a 请注意 xff0c 在某些语言 xff08 如 Java xff09 中 xff0c 没有无符号整数类型 在这种情况下 xff0c 输入和输出都将被指定为有符号整数类型 xf
  • LeetCode 387. 字符串中的第一个唯一字符

    题目 给定一个字符串 s xff0c 找到 它的第一个不重复的字符 xff0c 并返回它的索引 如果不存在 xff0c 则返回 1 详见 xff1a 387 字符串中的第一个唯一字符 思路 哈希存储出现次数 xff0c 第一次遍历字符串 x
  • LeetCode 26. 删除有序数组中的重复项

    题目 给你一个 升序排列 的数组 nums xff0c 请你 原地 删除重复出现的元素 xff0c 使每个元素 只出现一次 xff0c 返回删除后数组的新长度 元素的 相对顺序 应该保持 一致 由于在某些语言中不能改变数组的长度 xff0c
  • LeetCode 19. 删除链表的倒数第 N 个结点

    题目 给你一个链表 xff0c 删除链表的倒数第 n 个结点 xff0c 并且返回链表的头结点 输入 xff1a head 61 1 2 3 4 5 n 61 2 输出 xff1a 1 2 3 5 详见 xff1a 19 删除链表的倒数第
  • LeetCode 剑指 Offer 58 - II. 左旋转字符串

    题目 字符串的左旋转操作是把字符串前面的若干个字符转移到字符串的尾部 请定义一个函数实现字符串左旋转操作的功能 比如 xff0c 输入字符串 34 abcdefg 34 和数字2 xff0c 该函数将返回左旋转两位得到的结果 34 cdef
  • LeetCode 1550. 存在连续三个奇数的数组

    题目 给你一个整数数组 arr xff0c 请你判断数组中是否存在连续三个元素都是奇数的情况 xff1a 如果存在 xff0c 请返回 true xff1b 否则 xff0c 返回 false 输入 xff1a arr 61 2 6 4 1

随机推荐

  • LeetCode 922. 按奇偶排序数组 II

    题目 给定一个非负整数数组 nums xff0c nums 中一半整数是 奇数 xff0c 一半整数是 偶数 对数组进行排序 xff0c 以便当 nums i 为奇数时 xff0c i 也是 奇数 xff1b 当 nums i 为偶数时 x
  • 【CSDN竞赛第五期】编程竞赛体验感受

    建议以及感受 比赛当天网站直接崩溃 xff0c 体验极差 xff0c 直到中午才修好有些题意的输入输出并不明确在线IDE不完善也不好用 xff0c 很多bug详见竞赛讨论贴完赛没有官方题解 xff0c 或者说讨论题解的人很少领取奖励还需要撰
  • 猿创征文|我是怎么学习编程的?

    目录 一 xff0e 学习场景以及障碍1 xff0e 学习场景分两种人2 xff0e 过入门槛三大障碍 二 xff0e 入门以后需要做什么1 xff0e 找方向2 xff0e 学习3 xff0e 聚焦 我是怎么学习编程的 xff1f 每一位
  • 卸载与安装numpy

    一 卸载 pip uninstall numpy 二 安装 找到目录 D python Lib site packages pip install numpy 1 15 4 43 mkl cp35 cp35m win amd64 whl
  • Windows Update MiniTool 20.12.2016 控制Window更新下载及使用教程

    目录 一 下载教程1 wumt官网下载2 网盘下载 二 Windows更新配置1 检查更新2 下载或安装更新3 隐藏更新4 卸载更新5 禁用自动更新 Windows Update MiniTool 是由俄罗斯人编写的第三方Windows更新
  • 1:Web开发入门-Java Web

    目录 1 1 什么是Web应用程序1 2 B S架构1 3 静态Web与动态Web1 4 Java EE介绍1 5 Java EE架构与组件1 6 Java EE中的容器1 7 XML介绍1 8 XML与HTML的区别1 9 XML的实现
  • 华为开源自研AI框架昇思MindSpore CPU-Ubuntu版本 Pip自动安装教程

    目录 一 介绍二 获取命令1 进入MindSpore官网2 选择安装版本3 获取命令 三 自动安装1 确保为Ubuntu系统2 下载自动安装脚本3 执行自动安装脚本4 验证安装 本教程是在CPU Ubuntu上安装MindSpore1 8
  • 2:开发环境搭建-Java Web

    目录 2 1 Web服务器的作用2 2 Tomcat简介2 3 Tomcat服务器安装与使用2 4 Tomcat目录结构2 5 Tomcat配置文件2 6 修改Tomcat默认端口 2 1 Web服务器的作用 Web服务器也称为WWW WO
  • 3:Tomcat部署Web项目-Java Web

    目录 3 1 Web 应用程序3 2 部署Web项目3 3 配置虚拟目录3 4 配置Web项目的首页 3 1 Web 应用程序 一个 web 应用程序是由一组 Servlet xff0c HTML 页面 xff0c 类 xff0c 以及其它
  • 1:Spring框架核心-Java Spring

    CSDN话题挑战赛第2期 参赛话题 xff1a 学习笔记 目录 1 1 软件模块化1 2 Spring框架介绍1 3 Spring框架的配置1 4 Servlet1 5 Spring容器1 6 Spring Bean对象的注解1 7 控制反
  • 2:Maven-Java Spring

    目录 2 1 Maven介绍2 2 标准目录结构2 3 POM2 4 Maven生命周期2 5 Maven插件 2 1 Maven介绍 Maven是Apache 下的一个纯 Java 开发的开源项目 基于项目对象模型 xff08 缩写 xf
  • 3:SpringBoot-Java Spring

    目录 3 1 SpringBoot介绍3 2 Spring和SpringBoot的区别3 3 系统要求3 4 SpringBootApplication 3 1 SpringBoot介绍 SpringBoot的本质是SpringFramew
  • 4:SpringBoot-Starter-Java Spring

    目录 4 1 SpringBoot Starter介绍4 1 Starter原理4 3 Starter依赖引入4 4 Starter配置 4 1 SpringBoot Starter介绍 Starter是SpringBoot的一种服务 xf
  • 5:SpringBoot-Actuator-Java Spring

    目录 5 1 SpringBoot Actuator介绍5 2 Endpoints 介绍5 3 Actuator原理5 4 Actuator依赖引入 5 1 SpringBoot Actuator介绍 Actuator是Spring Boo
  • Ubuntu 20.04 VNC 安装与设置

    原链接 VNC是一个远程桌面协议 按照本文的说明进行操作可以实现用VNC对Ubuntu 20 04进行远程控制 一般的VNC安装方式在主机没有插显示器的时候是无法使用的 下面的操作可以在主机有显示器和没有显示器时都能够正常工作 首先安装x1
  • 6:RestFul API-Java Spring

    目录 6 1 RestFul API介绍6 2 URL构成6 3 RestFul API原理6 4 RestFul API映射注解6 5 RestFul API操作 6 1 RestFul API介绍 Rest表示性状态转移 xff08 R
  • 7:JSON-Java Spring

    目录 7 1 JSON介绍7 2 JSON和XML的区别7 3 JSON的构成7 4 JSON的语法7 5 JSON parse 7 6 JSON stringify 7 1 JSON介绍 JSON即JavaScript 对象标记法 xff
  • 8:Spring MVC-Java Spring

    目录 8 1 WEB开发模式一8 2 WEB开发模式二8 3 Spring MVC介绍8 4 Spring MVC主要组件8 5 Spring MVC处理流程8 6 Spring MVC的HTTP请求方法 在Web开发中有两种主要的结构 x
  • 9:参数校验-Java Spring

    目录 9 1 参数校验介绍9 2 JSR3039 3 Hibernate Validator9 4 参数校验依赖引入 9 1 参数校验介绍 参数校验即保证数据的合法性 xff0c JCP组织定义了一个标准来规范化这个任务操作 xff0c 即
  • 江服校园导游咨询系统-数据结构课程设计

    目录 1 需求分析1 1 问题描述1 2 系统简介1 3 系统模块功能要求介绍1 4 系统开发环境及开发人员1 5 校园平面图 2 概要设计2 1 算法设计及存储结构说明2 2 系统功能设计 3 详细设计3 1 定义符号变量3 2 主程序模