当前位置: 首页 > wzjs >正文

网站建设的原则有哪些内容杭州seo百度关键词排名推广

网站建设的原则有哪些内容,杭州seo百度关键词排名推广,做标记网站,网络营销专业就业先从 Microsoft C Build Tools - Visual Studio 下载 1.73GB 安装 "Microsoft C Build Tools“ 下载:midifile 项目 , 将 midifile-master.zip 解压到 D:\Music-soft 参阅: cmake超详细入门教程 CMake是一个跨平台的自动化建构系统,它使用一个名为 CMakeLi…

先从 Microsoft C++ Build Tools - Visual Studio

下载 1.73GB 安装 "Microsoft C++ Build Tools“

下载:midifile 项目 , 将 midifile-master.zip 解压到 D:\Music-soft

参阅: cmake超详细入门教程

CMake是一个跨平台的自动化建构系统,它使用一个名为 CMakeLists.txt 的文件来描述构建过程。CMake可以运行在Windows和Linux环境下,根据配置的编译器不同,生成符合所在操作系统的 Makefile 文件,在Windows下可以生成VS的工程文件系统。
将 CMake/bin 目录加入到 系统环境变量Path 中

这是一个将开放式基金数据转换为 MIDI音乐的 C++ 程序示例。该程序将基金净值映射为 MIDI音符的音高

/funds/data/660008.csv 文件开头:
date,jz,ljjz
2016-01-04,1.1141,1.1141
2016-01-05,1.1161,1.1161
2016-01-06,1.1350,1.1350

1. midifile 项目--目录结构

2025/03/31  21:18    <DIR>          .
2025/03/31  21:18    <DIR>          ..
2025/03/18  00:31               185 .gitignore
2025/03/18  00:31             1,566 .travis.yml
2025/03/18  00:31             1,268 appveyor.yml
2025/03/31  21:42    <DIR>          bin
2025/03/31  22:15    <DIR>          build
2025/03/31  22:15             7,446 CMakeLists.txt
2025/03/18  00:31    <DIR>          include
2025/03/31  21:40    <DIR>          lib
2025/03/18  00:31             1,287 LICENSE.txt
2025/03/31  21:51             2,727 Makefile
2025/03/18  00:31             5,731 Makefile.library
2025/03/18  00:31             5,270 Makefile.programs
2025/03/31  21:22    <DIR>          obj
2025/03/18  00:31            80,092 README.md
2025/03/31  21:40    <DIR>          src
2025/03/31  21:57    <DIR>          tools
2025/03/18  00:31    <DIR>          visual-studio

2.编写 tools/fund2mid.cpp 程序,如下

#include <iostream>
#include <fstream>
#include <vector>
#include <string>
#include <cstring>
#include <algorithm>
#include <sstream>
#include "MidiFile.h"using namespace std;
using namespace smf;// CSV 数据结构/
struct FundData {string date;double jz;
};// 解析 CSV 文件(适配三列格式)
vector<FundData> readCSV(const string& filename) {vector<FundData> data;ifstream file(filename);string line;// 跳过标题行getline(file, line);while (getline(file, line)) {// 使用字符串流分割三列stringstream ss(line);string date, jzStr, ljjzStr;// 按逗号分割字段getline(ss, date, ',');getline(ss, jzStr, ',');getline(ss, ljjzStr); // 第三列不需要使用if (date > "2024-01-01") {try {double jz = stod(jzStr);data.push_back({date, jz});} catch (const exception& e) {cerr << "解析错误: " << line << endl;}}}return data;
}// 生成 MIDI 文件
void generateMIDI(const vector<double>& prices, const string& fcode) {MidiFile midiFile;midiFile.addTrack();midiFile.setTicksPerQuarterNote(480);// PPQ 需与 addNoteOff 参数一致// 计算价格范围auto [minIt, maxIt] = minmax_element(prices.begin(), prices.end());double minPrice = *minIt;double maxPrice = *maxIt;double priceRange = maxPrice - minPrice;// 音符范围配置int minNote = 48; // C3int maxNote = 84; // C5if (maxPrice / minPrice < 84.0/48.0) {maxNote = static_cast<int>(50 * (maxPrice / minPrice));}if (maxNote % 2 != 0) maxNote++;// 添加音符事件int track = 0;int channel = 0;int velocity = 80;int timeCounter = 0;int PPQ = 480; // 音符持续时间为 1个四分音符(480 ticks)for (double price : prices) {int pitch = (priceRange < 0.001) ? (maxNote + minNote) / 2 : minNote + static_cast<int>((price - minPrice) / priceRange * (maxNote - minNote));midiFile.addNoteOn(track, timeCounter, channel, pitch, velocity);midiFile.addNoteOff(track, timeCounter + PPQ, channel, pitch);timeCounter += PPQ; // ms 间隔1拍, 单位:毫秒 }// 保存文件string outputFile = "melo_" + fcode + ".mid";midiFile.write(outputFile);cout << "生成成功: " << outputFile << endl;
}int main(int argc, char** argv) {if (argc != 2 || strlen(argv[1]) != 6) {cerr << "用法: " << argv[0] << " <6位基金代码>" << endl;return 1;}string fcode = argv[1];string csvFile = "/funds/data/" + fcode + ".csv";try {auto data = readCSV(csvFile);if (data.size() < 20) {cerr << "数据不足: " << data.size() << " < 20" << endl;return 2;}vector<double> prices;for (auto& entry : data) {prices.push_back(entry.jz);}generateMIDI(prices, fcode);} catch (const exception& e) {cerr << "错误: " << e.what() << endl;return 3;}return 0;
}

3.修改后的 CMakeLists.txt 关键部分

# 在 "Programs:" 部分添加你的可执行文件(大约第 66 行附近)
if(NOT BUILD_MIDILIBRARY_ONLY)# 已有的工具列表...add_executable(textmidi tools/textmidi.cpp)add_executable(toascii tools/toascii.cpp)add_executable(tobin tools/tobin.cpp)# 添加你的自定义程序add_executable(fund2mid tools/fund2mid.cpp)  # 新增行# 继续原有工具列表...add_executable(tobinary tools/tobinary.cpp)add_executable(todec tools/todec.cpp)# ...# 在链接库部分添加(大约第 136 行附近)target_link_libraries(textmidi midifile)target_link_libraries(toascii midifile)target_link_libraries(tobin midifile)target_link_libraries(fund2mid midifile)  # 新增行target_link_libraries(tobinary midifile)target_link_libraries(todec midifile)

  4.完整修改说明

  1. 文件结构要求

    midifile/
    ├── CMakeLists.txt
    ├── include/
    ├── src/
    └── tools/├── fund2mid.cpp      # 你的程序源码├── createmidifile.cpp└── ...其他工具源码

    必要修改点

  2. 在 add_executable 列表中添加:
    add_executable(fund2mid tools/fund2mid.cpp)
    在 target_link_libraries 部分添加:
    target_link_libraries(fund2mid midifile)

  3. 编译验证

    # 生成构建系统
    mkdir build
    cd build
    cmake ..# 编译项目(Windows)
    cmake --build . --config Release
    

 适配注意事项

  1. C++ 标准要求
    # 建议升级到 C++17(修改第 4 行)
    set(CMAKE_CXX_STANDARD 17)

  2. 附件:完整的 CMakeLists.txt

  3. 运行 cmake --build . --config Release

    D:\Music-soft\midifile-master\build> cmake --build . --config Release
    适用于 .NET Framework MSBuild 版本 17.9.8+b34f75857midifile.vcxproj -> D:\Music-soft\midifile-master\build\Release\midifile.lib80off.vcxproj -> D:\Music-soft\midifile-master\build\Release\80off.exeasciimidi.vcxproj -> D:\Music-soft\midifile-master\build\Release\asciimidi.exebase642midi.vcxproj -> D:\Music-soft\midifile-master\build\Release\base642midi.exebinasc.vcxproj -> D:\Music-soft\midifile-master\build\Release\binasc.exechaninfo.vcxproj -> D:\Music-soft\midifile-master\build\Release\chaninfo.execreatemidifile.vcxproj -> D:\Music-soft\midifile-master\build\Release\createmidifile.execreatemidifile2.vcxproj -> D:\Music-soft\midifile-master\build\Release\createmidifile2.exedeltatimes.vcxproj -> D:\Music-soft\midifile-master\build\Release\deltatimes.exedrumtab.vcxproj -> D:\Music-soft\midifile-master\build\Release\drumtab.exedurations.vcxproj -> D:\Music-soft\midifile-master\build\Release\durations.exeextractlyrics.vcxproj -> D:\Music-soft\midifile-master\build\Release\extractlyrics.exefund2mid.cpp
    D:\Music-soft\midifile-master\tools\fund2mid.cpp(42,39): warning C4101: “e”: 未引用的局部变量 [D:\Music-soft\midifile-master\bu
    ild\fund2mid.vcxproj]fund2mid.vcxproj -> D:\Music-soft\midifile-master\build\Release\fund2mid.exemaxtick.vcxproj -> D:\Music-soft\midifile-master\build\Release\maxtick.exemid2hex.vcxproj -> D:\Music-soft\midifile-master\build\Release\mid2hex.exemid2mat.vcxproj -> D:\Music-soft\midifile-master\build\Release\mid2mat.exemid2mtb.vcxproj -> D:\Music-soft\midifile-master\build\Release\mid2mtb.exemid2svg.vcxproj -> D:\Music-soft\midifile-master\build\Release\mid2svg.exemidi2base64.vcxproj -> D:\Music-soft\midifile-master\build\Release\midi2base64.exemidi2binasc.vcxproj -> D:\Music-soft\midifile-master\build\Release\midi2binasc.exemidi2chords.vcxproj -> D:\Music-soft\midifile-master\build\Release\midi2chords.exemidi2melody.vcxproj -> D:\Music-soft\midifile-master\build\Release\midi2melody.exemidi2notes.vcxproj -> D:\Music-soft\midifile-master\build\Release\midi2notes.exemidi2skini.vcxproj -> D:\Music-soft\midifile-master\build\Release\midi2skini.exemidi2text.vcxproj -> D:\Music-soft\midifile-master\build\Release\midi2text.exemidicat.vcxproj -> D:\Music-soft\midifile-master\build\Release\midicat.exemididiss.vcxproj -> D:\Music-soft\midifile-master\build\Release\mididiss.exemidimean.vcxproj -> D:\Music-soft\midifile-master\build\Release\midimean.exemidimixup.vcxproj -> D:\Music-soft\midifile-master\build\Release\midimixup.exemidirange.vcxproj -> D:\Music-soft\midifile-master\build\Release\midirange.exemidireg.vcxproj -> D:\Music-soft\midifile-master\build\Release\midireg.exemiditime.vcxproj -> D:\Music-soft\midifile-master\build\Release\miditime.exemidiuniq.vcxproj -> D:\Music-soft\midifile-master\build\Release\midiuniq.exemts-type2.vcxproj -> D:\Music-soft\midifile-master\build\Release\mts-type2.exemts-type9.vcxproj -> D:\Music-soft\midifile-master\build\Release\mts-type9.exeperfid.vcxproj -> D:\Music-soft\midifile-master\build\Release\perfid.exereadstatus.vcxproj -> D:\Music-soft\midifile-master\build\Release\readstatus.exeredexpress.vcxproj -> D:\Music-soft\midifile-master\build\Release\redexpress.exeremovenote.vcxproj -> D:\Music-soft\midifile-master\build\Release\removenote.exeretick.vcxproj -> D:\Music-soft\midifile-master\build\Release\retick.exeshutak.vcxproj -> D:\Music-soft\midifile-master\build\Release\shutak.exesmfdur.vcxproj -> D:\Music-soft\midifile-master\build\Release\smfdur.exestretch.vcxproj -> D:\Music-soft\midifile-master\build\Release\stretch.exesysextest.vcxproj -> D:\Music-soft\midifile-master\build\Release\sysextest.exetemper.vcxproj -> D:\Music-soft\midifile-master\build\Release\temper.exetext2midi.vcxproj -> D:\Music-soft\midifile-master\build\Release\text2midi.exetextmidi.vcxproj -> D:\Music-soft\midifile-master\build\Release\textmidi.exetoascii.vcxproj -> D:\Music-soft\midifile-master\build\Release\toascii.exetobin.vcxproj -> D:\Music-soft\midifile-master\build\Release\tobin.exetobinary.vcxproj -> D:\Music-soft\midifile-master\build\Release\tobinary.exetodec.vcxproj -> D:\Music-soft\midifile-master\build\Release\todec.exetohex.vcxproj -> D:\Music-soft\midifile-master\build\Release\tohex.exetype0.vcxproj -> D:\Music-soft\midifile-master\build\Release\type0.exevlv.vcxproj -> D:\Music-soft\midifile-master\build\Release\vlv.exe
    

    cd D:\Music-soft\midifile-master\build\Release
    fund2mid.exe 660008
    生成成功: melo_660008.mid

\python\mido_msg.py melo_660008.mid
\python\play_mid.py  melo_660008.mid 


 

http://www.dtcms.com/wzjs/387964.html

相关文章:

  • wordpress 网站教程西安seo哪家好
  • 二次开发是什么意思南京seo网站管理
  • 给别人做的网站涉及到违法品牌软文营销案例
  • wordpress如何从网站登录后台qq群推广链接
  • 乌海网站开发关键词挖掘ppt
  • b2b网站代表及网站网址是什么企业网站多少钱一年
  • 怎么做王者荣耀网站怎样策划一个营销型网站
  • 转业做网站的工具百度营销是什么
  • 皖住房建设厅网站外包seo服务收费标准
  • wordpress时间设置seo服务公司怎么收费
  • 江苏州 网站制作活动推广宣传方案
  • 合肥网络推广平台谷歌排名优化
  • 商城网站管理系统seo发包排名软件
  • 视频直播网站开发 设计吴中seo网站优化软件
  • wordpress网站搭建教程免费二级域名申请网站
  • 做一级域名网站多少钱win10系统优化工具
  • 毕业设计做的网站代码会查重网络推广优化seo
  • wordpress 作者调用济南做seo排名
  • 企业网站建设报价方案平台怎样推广
  • 动态网站开发期末考试题百度快照怎么删除
  • 那些网站做网批做互联网项目怎么推广
  • h5商城网站怎么做的爱站网seo查询
  • 大悟网站建设电脑培训班零基础网课
  • wordpress 网站播放器广州网络科技有限公司
  • 网站开发后台数据怎么来做网页多少钱一个页面
  • 常州知名网站公司58同城推广效果怎么样
  • 上海知名网站建设关于进一步优化
  • 漳州网站建设点击博大选静态网页设计与制作
  • 麻将app软件开发百度seo点击
  • 设计网站建设方案网络推广渠道分类