- 博客(41)
- 收藏
- 关注
原创 课程设计-交通咨询系统
设计一个交通咨询系统,能让旅客咨询从任一个城市到达另外一个城市的最短路径问题。(1)以图中顶点表示某一个省(例如湖北省)各市(至少包括10个以上的城市),存放城市的编号、名称、简介等信息;(4)请大家灵活设计不同的城市,不能出现完全一样的,至少10以上城市,各城市之间的距离估算即可。(3)为用户提供指定城市的交通查询,即查询指定城市到其他城市之间的最短距离。(5)如果网络公司省内铺设电缆连通所有的城市,请推荐一个成本最低的设计方案。(4)为用户提供任意城市的交通查询,即查询任意两个城市之间的一条最短路径。
2023-10-17 13:01:57 518
原创 Spring的BeanFactory与ApplicationContext
Spring的BeanFactory与ApplicationContext到底有什么关系。
2023-02-14 22:07:45 389
原创 Java[NIO] 简单的客户端与服务器模型
客户端与服务器连接流程图解服务端代码:```javapackage com.yadong.netty.study;import java.io.IOException;import java.net.InetSocketAddress;import java.nio.ByteBuffer;import java.nio.channels.SelectionKey;import java.nio.channels.Selector;import java.nio.channels.Se
2022-04-08 18:25:21 1177
原创 JDBC-如何连接数据库
使用JDBC,我们能够利用不同的数据库驱动来创建于数据库的连接,进而实现数据库的各种操作。本文共列举了四种方式,四种方法逐渐完善前一种的缺点,所以第四种是最好的也是最常用创建连接方式。方式一使用Driver获取一个实例对象。使用 Driver 的 connect() 方法 返回一个Connection的实例对象,有这个实例对象就创建了连接.**connect()的参数需要一个url和info,url是数据库的目标,info是一个properties对象,需要有user和password两
2021-09-12 21:11:11 160
原创 Java多线程的使用
Java多线程的使用基本概念程序(program):数据结构+算法,是为了某种特定的任务,用某种语言编写的一组指令的集合,即指一段静态的代码,静态对象.进程(process):是程序的一次执行过程,或是正在运行的一个程序.线程(thread):进程可进一步细分为线程,是一个程序内部的一条执行路径,一个进程可同时拥有多个线程,则为多线程.线程作为调度和执行的单位,每个线程拥有独立的运行栈和程序计数器.Thread中的常用方法start():启动当前线程;调用当前线程的run().run(
2021-09-01 00:30:03 1577
原创 cocos2d-x 瓦片地图
一、加载瓦片地图以及确定对象精灵添加监听/* 瓦片地图 *///一、在代码中使用地图//1 创建地图对象map = TMXTiledMap::create("Map\\map1.tmx");//2 添加节点this->addChild(map);//3 设置位置map->setPosition(0, 0);// 二、根据地图对象层添加精灵player = Sprite::create("Map\\player.png");this->addChild(player,
2021-07-18 21:36:33 392 2
原创 cocos2d-x 游戏背景音乐与音效
一Cocos2D-X中的音频文件1.音频文件简介无损格式/有损格式1>.WAV是目前最流行的一种无损压缩格式,但是比较大,不适合内存比较小的设备使用2>,MP3是非常流行的格式,但是是有损压缩格式,会去掉一部分人耳无法听到的声音,使用MPEG Audio Layer 3 技术压缩,可达到1:10的压缩率.3>.WMA微软发布的格式,有损压缩,在某些情况下比MP3要更好一点.4>.CAFF苹果发布的一种无压缩格式5>.AIFF专业音频格式,用于IOS系统
2021-07-18 00:54:39 740 1
原创 cocos2d-x 用户事件
1.点击事件/*鼠标事件*/ EventListenerTouchOneByOne *touchOneByOne = EventListenerTouchOneByOne::create(); touchOneByOne->onTouchBegan = [&](Touch *onTouch, Event *event) { CCLOG("\nLambda: onTouchBegan"); return true; }; touchOneByOne->onTouchMo
2021-07-17 02:09:10 245
原创 C++_String类的简单实现
第一次实现一个String类,没有iterator迭代器或者内存分配器等等,只是实现了简单的字符串操作并把它们写入到一个类中,重载了常见运算符提供了最简单的功能,但我认为,如果你能实现下面功能,其他功能的实现都能做到,以下代码仅供参考,可能不是最优化写法,但能跑就行…#include <iostream>using namespace std;namespace yadong{ class MyString { private: char *_str; size_t
2021-07-12 11:14:05 216
原创 深入C++(4)
深入C++(4)1.局部域变量覆盖 局部域内的变量名解析过程是 从内向外 的,从当前域开始查找该变量的声明,如果找到了就会解析该变量名,如果找不到,就会进入包含当前域的域中去寻找这个变量名. 因此,如果在全局域中定义了一个变量,而又在某个局部域定义了一个与之变量名相同的变量,那么根据变量名的解析过程,在当前局部域找到了这个变量的声明定义,然后就会按照局部域的定义来解析这个变量,而全局域中的变量被抛弃,当作不存在.因此在这个局部域中,会形成变量覆盖.2. 数组的动态分配 2.1 用new分配一
2021-07-11 17:32:33 101
原创 深入C++(3) - 函数指针
深入C++(3)函数指针1.1 初始化与赋值. 只有当赋值操作符左边指针的参数表和返回类型与右边函数或指针的参数表和返回类型完全匹配时,初始化和赋值才正确; 如下面操作可获得一个pFun的函数指针:int testFun(const int&a, const int &b);int(*pFun)(const int&, const int &) = testFun; 使用这个函数指针与普通调用函数名方法一致:pFun(1,2);1.2 使用type
2021-07-10 22:43:32 118 5
原创 深入C++ (2)
深入C++ (2)1.const引用 const引用可以用不同类型的对象初始化(只要能从一种类型转换到另一种类型即可),也可以是不可寻址的值,如文字常量.例如:double a = 9.9;const int &b = a;cout << "b = " << b << endl; 最后运行结果会是 b = 9, 当将一个引用初始化为一个const对象的地址时,此时使用非const引用定义是非法的,将导致编译时刻错误,如下面:const in
2021-07-08 23:49:18 118 3
原创 深入C++ (1)
深入C++本文主要细数C++中常常容易让人忽略的或者说十分有用的东西.1. int a = a 不可行! 理论上,在对象的定义中,当对象的标识符在定义中出现后,对象名马上就是可见的,因此用对象初始化它自己是合法.然而,在vs2013上测试了一下,直接报错a未初始化…2. 指针与内存 指针的类型可以指示编译器怎样解释特定地址上内存的内容,以及该内存区域应该跨越多少内存单元.3. 同时定义多个指针 float *var1, var2 var1是float*指针变量,而var2只是一个fl
2021-07-07 12:41:24 175
原创 Cocos2D-X 动画与特效
1.动画1.先实例化一个动画类2.向这个动画类添加帧图片3.设置这个动画类的属性4.将动画转换为动作5.运行动作代码示例:Animation* Animation_1 = Animation::create();for (size_t i = 0; i <= 15; i++){ char str[128]; sprintf_s(str, "WuGui\\wugui_%d.png", i); Animation_1->addSpriteFrameWithFileName(
2021-07-03 20:40:50 361 3
原创 UE4-移动和导入资产
一、转移指定资产内容1.找到需要的资产2.这里显示的是这个静态网格还有一些其他相关的东西,全部勾选一起移动3.选择项目,完成迁移二、转移当前关卡全部内容1.获取当前关卡的名字2.在Content中搜索到要的关卡3.右键Migrate移动到需要项目三、从当前项目导入外部内容1.方法一,直接拖入2.方法二,点击图示位置导入...
2021-06-10 14:03:00 3717
原创 Cocos2d-x 创建一个新场景方法
创建一个新场景方法首先在src中添加对应的头文件和cpp文件,这里以MyGame.h和MyGame.cpp为例,在这里实现新场景的创建一、MyGame.h:#pragma once#include "cocos2d.h"using namespace cocos2d;class MyGame:public Layer{public: MyGame(); ~MyGame();public: static Scene* createScene(); //创建场景函数 virtual
2021-06-08 22:11:37 607 1
原创 Cocos2D-X 创建菜单选项
一、图片类菜单1.创建一个图片菜单选项,回调函数要一个参"cocos2d::Ref* pSender"MenuItemImage *quitItem = MenuItemImage::create("Buttons/quitButton.png", "Buttons/quitButtonSelect.png", CC_CALLBACK_1(HelloWorld::QuitItemCallback, this));2.用这个图片菜单选项创建一个菜单Menu *menu_6 = Menu::creat
2021-06-03 21:15:35 192 1
原创 C++写贪吃蛇源代码
源码如下:#include <iostream>#include <conio.h>#include <vector>#include <Windows.h>#include <time.h>#include <easyx.h>using namespace std;//节点的数据struct node{ int x, y, r;};char dir = 's';//方向vector<node>
2021-06-02 23:59:09 1538 7
原创 C++用类封装动态数组
动态数组是一个在数组增加元素,而数组空间大小又不足够时自动开辟新的更大的内存空间,然后将原来的内存拷贝过去的一种比较聪明的数组.在这里使用一个MyArr类来创建我们所需要的动态数组,存的数组我们自定义一个Student类.1.创建要存的数据类型Student类1.声明一个学生类作为实例,类中存一个id和一个name:class Student{ int id; string name; }2.在Student类中直接声明并定义设置id,name的函数:public: void setSt
2021-06-02 23:55:39 699
原创 Cocos2D-X Label类标签的使用
1.LabelTTFLabelTTF是使用系统中的字体的一种标签,它是最简单的标签类.食用方法:1.在一个层中创建并初始化LabelTTF label_ttf = LabelTTF::create(“LabelTTF”,“fronts\arial.ttf”, 32);2.作为子节点添加到父节点中(当前层this)this->addChild(label_ttf);3.设置它的位置label_ttf->setPosition(Vec2(200,600));2.LabelAtlas
2021-06-02 23:42:12 1006
原创 静态友元常量成员
静态友元常量成员一、静态成员1、知识点介绍 1、静态成员,指的是在C++类中声明成员时,可以加上static关键字,这样声明的成员叫静态成员,静态成员分为静态数据成员和静态函数成员两种2、静态数据成员定义class node{ public: static int id;//静态数据成员定义}int node::id=10;//静态数据成员类外初始化3、静态数据成员的特点 1、类中静态数据成员,所有对象都共享该数据,只有一份内存在内存中 2、类中的静态数据成员,必须要在类
2021-06-02 22:52:18 159
原创 cocos2D-X Size类详解
0.新建一个项目新建一个新的项目,打开后,可以在AppDelegate.cpp中看到:首先就定义了4个Size类的静态变量,那么Size到底是什么样的类?1.注释说明直接转到Size类的定义,可以看到上来就是一大段注释:/****************************************************************************Copyright (c) 2010-2012 cocos2d-x.orgCopyright (c) 2013-2014
2021-06-01 12:32:25 569 3
原创 cocos2D-X Vec2类详解
cocos2D-X Vec2类详解:一、类中基本数据成员1.首先转到Vec2类的定义,在类定义上有一小段注释,翻译一下就是 : 定义一个2维的浮点坐标向量2.看了全部源码后,发现该类只要public成员,没有private私有成员,类中只定义了两个float变量x,y用来表示向量坐标,接下来慢慢看类中的这些函数声明.二、构造析构函数Vec2()构造函数; 没有任何的函数体,注释的意思是,构造一个新的坐标,且初始化成全为0的值Vect(const float* array)构造函
2021-06-01 11:35:59 2305
原创 JAVA进阶之内部类详解
内部类1.内部类对外围类的访问非静态的内部类默认地持有一个外围类的对象的引用,这使得内部类可以随意的访问外围类的所有成员的访问权(包括private).这是源于当某个外围类的对象创建了一个内部类对象时,此内部类对象必定会秘密地捕获一个指向那个外围类对象的引用,然后,在你访问这个外围类的成员时,就是用那个引用来选择外围类的成员.但这一切都是编译器帮我们默默实现的,我们只需要直接使用就可以了. 例如下面这个例子中,在SequenceSelector这个内部类中使用了外围类中的private属性的item
2021-05-29 09:35:25 137
原创 cocos2dx第1节之src中源码解读
HelloWorld.hclass HelloWorld : public cocos2d::Layer(继承自层(Layer)){1.创建场景 static cocs2d::Scene* createScene();2.这个类的初始化函数 virtual bool init();3.一个选择器的回调函数 void menuCloseCallback(…)4.可手动实现static creater()方法 CREATE_FUN(HelloWorld);}1.创建场景Scene* He
2021-05-29 09:32:52 181
原创 C++深度优先搜索及可视化实现代码实现
#include <iostream>#include <stack>#include <easyx.h>#include <time.h>using namespace std;#define MAP_ROW 20#define MAP_COL 25#define SIZE 20enum PathDir {p_up,p_down,p_left,p_right};struct Point{ int row; int col;}
2021-05-27 23:58:20 496
原创 Java进阶之接口详解
接口1.接口中方法属性在接口中可以显式的将方法声明为public,但即使不这么做,它们也是public的,否则,它们将只能得到默认的包访问权限,这样在方法被继承的过程中,其可访问权限就被降低了,这是Java编译器所不允许的.2.策略设计模式这类方法包含所要执行的算法中固定不变的部分,而"策略"包含变化的部分.策略就是传进去的参数它包含所要执行的代码.在下面这个例子中,Processor对象就是一个策略,在main()中可以看到有三种不同类型的策略应用到了String类型的s对象上:package
2021-05-26 22:21:04 136
原创 C++面向对象-类
C++面向对象-类1.知识点介绍:1.面向对象的特点 1.面向对象将数据和行为结合在一起,共同来表达一个数据. 2.在面向过程中,数据和行为是分开的,当问题比较复杂或者设计多开发,那么会导致拓展和维护很困难,而面向对象能解决这个问题,问题会被分解为一个个的对象,每一个对象有独立的数据和行为,修改或拓展某一个对象时并不会影响到其他对象. 3.面向对象的封装性、继承及多态. ①封装:封装就是将属性(数据)私有化,提供公有的访问(行为)访问私有属性.通过封装可以对对象属性进行存取限制,提高了
2021-05-23 13:56:06 137
原创 C到C++基础
C到C++基础1.new和delete (1)new的作用类似于C语言中malloc的申请内存,delete等价于C语言free. 如:int *p = new int; //申请一个内存*p = 100;printf("%d\n",*p);delete p; //释放一个内存 (2)用new申请一个内存时,可以初始化,多个内存不可以. 如:int *p = new int(10);printf("%d\n",*p);delete p;(3)内存申请失败的时候
2021-05-23 12:17:39 242
原创 Java进阶之初始化与清理
初始化与清理1.自动初始化在创建一个类时,若类中包含有未初始化的类对象的引用,则该引用会被java初始化成null,基本类型被初始化为0.例:package day10;class C1{ String str; int num;}public class Test3 { public static void main(String[] args) { C1 c1 = new C1(); if (c1.str == null &
2021-05-23 01:14:26 120
原创 Java进阶之操作符
操作符1."=="与equals在进行两个字符串直接赋值并用"“进行比较时是相等的,但通过new方式创建字符串对象即使字符串内容一样,直接用”"进行比较结果也是false.这是因为**"=="表示判断两个变量或者实例是否指向同一个内存地址**.而.对于String这个类而言equals就比较的是字符串的内容.不同的类equals比较的东西也是不同的.对于没有重写equals的类,都是比较内存地址.( JAVA当中所有的类都是继承于Object这个基类的,在Object中的基类中定义了一个equal
2021-05-21 20:48:05 76
原创 数据结构-栈和队列
C语言数据结构-栈和队列栈是什么栈是一种先入后出后入先出的数据结构,其原理可以理解成从羽毛球桶的一端依次取出羽毛球或放入羽毛球,而且你只能从这端取,参考下面这个动图:
2021-05-21 01:56:53 378
原创 JAVAFX基础组件的几个例子
1.JAVAFX模板package day09;import javafx.application.*;import javafx.scene.*;import javafx.stage.*;import javafx.scene.layout.*;//1.继承Application,必须是它的子类public class JavaFXSkel extends Application { //2.进入主函数 public static void main(String[]
2021-04-26 10:43:24 844 1
原创 数据结构与算法之排序算法(上)
数据结构与算法之十大常见排序算法(上)文章目录数据结构与算法之十大常见排序算法(上)前言一、排序算法是什么?二、算法:1.冒泡排序2.选择排序:3.插入排序:4.希尔排序:5.快速排序三、完整代码前言本篇文章主要是对算法中常见的五种排序算法的总结和归纳,采用的语言为Java下面正文:一、排序算法是什么?根据百度百科介绍:所谓排序,就是使一串记录,按照其中的某个或某些关键字的大小,递增或递减的排列起来的操作。排序算法,就是如何使得记录按照要求排列的方法。排序算法在很多领域得到相当地重视,尤
2021-04-18 02:10:32 291
原创 C语言链表的增删查改(利用指针传递实现)
链表链表的运用非常广泛,而对于一个链表的创建,常见的方法有头插法和尾插法,而对于链表的增删改查的函数又可以以直接接受数据为主和接受节点指针为主,上一篇文章中我就接受数据为主做了一个尾插法的链表完整源代码,这次就利用传递节点的指针为主,重新构建一个能实现链表的四个操作的函数.(本人作为一个初学者,此篇文章主要以记录学习过程为主,不足之处或有错误的地方往大佬下手轻点).首先创建结构体typedef struct link{ int a; struct link* next;}link;创建头
2020-09-30 20:15:29 1168
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人