原创 C++簡易版vector(動態機制實現)

#include<iostream> #include<vector> using namespace std; template<typename _Ty> class Vector { public: Vector(cons

原创 Learn OpenGL with Qt——顏色

如果你是中途開始學習本教程的,即使你對OpenGL已經非常熟悉,請至少了解以下幾個章節,因爲Qt中提供了OpenGL的很多便捷操作,熟悉這些操作可以讓我們在Qt中高效的使用OpenGL進行繪圖。 創建OpenGL窗口 着色器程序以及着色器

原创 PL0擴展一維數組array

PL0語言數組變量類型文法可定義爲: Var <數組變量名> ’(‘<下界>,<上界>’)’ 其中<下界>,<上界>是常量名或無符號數 引用格式可爲:C(1),c(a),C(a+b),C(b+C(1)) 頭文件修改: 1、增加冒號符號(增

原创 音樂可視化第二次演講PPT

說明: 第二次演講是在開學後第十週,在演講前幾天無意發現AE也可以製作頻譜,並且效果很炫酷!!我就在想我能不能也做一個類似的東西,況且我也有桌面顯示這個強大的優勢! 此次臨時變更軟件定位爲音樂播放器+頻譜設計器+桌面頻譜,但程序還沒來得及

原创 Learn OpenGL with Qt—— 簡介

筆者最近在通過learnopengl網站學習opengl,但這個系列的教程使用的是原生的openGL函數以及GLFW來管理窗口,而Qt對OpenGL有着很好的支持,可惜的是網絡上關於Qt 現代OpenGL的教程比較匱乏,因此筆者打算通過使

原创 Learn OpenGL with Qt——完美的Qt攝像機

如果你是中途開始學習本教程的,即使你對OpenGL已經非常熟悉,請至少了解以下幾個章節,因爲Qt中提供了OpenGL的很多便捷操作,熟悉這些操作可以讓我們在Qt中高效的使用OpenGL進行繪圖。 創建OpenGL窗口 着色器程序以及着色器

原创 PL0擴展for to語句

修改頭文件: 1、增加關鍵字個數( 第15行附近):增加2個 #define norw 16 /* 關鍵字個數 */ 2、增加forsym,tosym符號(第24行附近) enum symbol { nul,

原创 解決VS2017/2019 使用scanf、printf等函數【不安全報錯】問題

報錯原因: 使用scanf,printf讀寫字符串的時候,會出現越界的情況。 比如,你定義了一個char [5]的字符串,但你卻用scanf輸入了一個20長度的字符串, 依然能輸入成功,超出的部分就會越界覆蓋不屬於自己的數據。printf

原创 OpenGL——使用幾何着色器繪製平滑(bezier)曲線

效果圖: 頂點數據 float vertices[]={ -0.6f, -0.8f, 0.0f, //首尾填充 -0.6f, -0.8f, 0.0f, -0.4f

原创 金山辦公2020校招C++開發工程師筆試題(一)

鏈接:https://www.nowcoder.com/test/21499425/summary 11、框選線段 在二維平面座標系中,已知存在一條線段(圖中P1->p2)和一個矩形區域,編程計算得出線段被矩形區域裁剪的新起始點。 注意以

原创 深信服校園招聘c/c++軟件開發B卷

鏈接:https://www.nowcoder.com/test/23090664/summary 1、位對齊 編寫函數align_n,將size的低n位(即:0到n-1位)清零,如果清零前size的低n位不爲全零,則在第n位上加1。n滿

原创 深信服校園招聘c/c++軟件開發A卷

題目鏈接:https://www.nowcoder.com/test/23090658/summary 1、圍棋遍歷 函數calc計算圍棋中位置(x,y)處連成一片的棋子個數。所謂連成一片,即沿着棋盤橫豎線往任意方向遍歷,遍歷過程允許轉彎

原创 GPLT團體天梯賽 — 比賽技巧及知識點

編程環境: 比賽時使用的編譯器是Dev-C++,並沒有Visual Studio這樣的外掛,所以最好在比賽前使用一下Dev Dev的默認編譯環境與vs不同,需要手動設置Dev的C++標準,否則無法使用一些C++11的新特性,比如auto關

原创 水紋(漣漪)特效壁紙——程序+實現原理

可執行程序 藍奏雲網盤:https://italink.lanzous.com/ihqhQd9ntrg 效果 桌面壁紙——超真實水波紋效果 實現工具: Qt+OpenGL 實現功能 模擬水波:生成水面波形,完成水面的光照折射計算

原创 C/C++編程面試題——單鏈表功能實現

#include <iostream> using namespace std; template<typename _Ty> struct Node { Node* next; _Ty data; Node(_Ty value