diff --git a/DataStructure/.vscode/c_cpp_properties.json b/DataStructure/.vscode/c_cpp_properties.json index df5a377..444992b 100644 --- a/DataStructure/.vscode/c_cpp_properties.json +++ b/DataStructure/.vscode/c_cpp_properties.json @@ -1,22 +1,19 @@ { "configurations": [ { - "name": "MinGW", - "intelliSenseMode": "clang-x64", - "compilerPath": "C:/Program Files/LLVM/bin/gcc.exe", + "name": "Win32", "includePath": [ - "${workspaceFolder}" + "${workspaceFolder}/**" ], - "defines": [], - "browse": { - "path": [ - "${workspaceFolder}" - ], - "limitSymbolsToIncludedHeaders": true, - "databaseFilename": "" - }, - "cStandard": "c11", - "cppStandard": "c++17" + "defines": [ + "_DEBUG", + "UNICODE", + "_UNICODE" + ], + "compilerPath": "C:/Program Files/LLVM/bin/clang.exe", + "cStandard": "c17", + "cppStandard": "c++17", + "intelliSenseMode": "windows-clang-x64" } ], "version": 4 diff --git a/DataStructure/.vscode/launch.json b/DataStructure/.vscode/launch.json index b4b192d..d8ab2f2 100644 --- a/DataStructure/.vscode/launch.json +++ b/DataStructure/.vscode/launch.json @@ -1,26 +1,34 @@ { + // 使用 IntelliSense 了解相关属性。 + // 悬停以查看现有属性的描述。 + // 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387 "version": "0.2.0", "configurations": [ { - "name": "g++.exe", + "name": "clang++.exe - 生成和调试活动文件", "type": "cppdbg", "request": "launch", "program": "${fileDirname}\\${fileBasenameNoExtension}.exe", "args": [], - "stopAtEntry": false, - "cwd": "C:/Project/mingw64/bin",//自己的编译器路径,自行修改 + "stopAtEntry": true, + "cwd": "C:/Program Files/LLVM/bin", "environment": [], - "externalConsole": false, + "externalConsole": true, "MIMode": "gdb", - "miDebuggerPath": "C:\\Project\\mingw64\\bin\\gdb.exe",//自己的gdb路径,自行修改 + "miDebuggerPath": "C:\\Program Files\\LLVM\\bin\\gdb.exe", "setupCommands": [ { - "description": "gdb", + "description": "为 gdb 启用整齐打印", "text": "-enable-pretty-printing", "ignoreFailures": true + }, + { + "description": "将反汇编风格设置为 Intel", + "text": "-gdb-set disassembly-flavor intel", + "ignoreFailures": true } ], - "preLaunchTask": "Compile"//可以随意更改,保证与tasks.json的label相同 + "preLaunchTask": "Compile" } ] } \ No newline at end of file diff --git a/DataStructure/.vscode/settings.json b/DataStructure/.vscode/settings.json index 3c823ba..bb94bbd 100644 --- a/DataStructure/.vscode/settings.json +++ b/DataStructure/.vscode/settings.json @@ -5,11 +5,8 @@ "code-runner.runInTerminal": true, // 设置成false会在“输出”中输出,无法输入 "code-runner.executorMap": { - "c": "cd $dir && gcc *.c -fexec-charset=gb2312 -o $fileNameWithoutExt.exe && $dir$fileNameWithoutExt.exe", - "cpp": "cd $dir && g++ *.cpp -fexec-charset=gb2312 -o $fileNameWithoutExt.exe && $dir$fileNameWithoutExt.exe" - // "c": "cd $dir && clang $fileName -o $fileNameWithoutExt.exe -Wall -g -Og -static-libgcc -fcolor-diagnostics --target=x86_64-w64-mingw -std=c11 && $dir$fileNameWithoutExt", - // "cpp": "cd $dir && clang++ *.cpp -o $fileNameWithoutExt.exe -Wall -g -Og -static-libgcc -fcolor-diagnostics --target=x86_64-w64-mingw-g++ -std=c++17 && $dir$fileNameWithoutExt" - // "cpp": "cd $dir && clang++ *.cpp -o $fileNameWithoutExt.exe -Wall -g -Og -static-libgcc -fcolor-diagnostics --target=x86_64-w64-mingw -std=c++14 && $dir$fileNameWithoutExt" + "c": "cd $dir && clang $fileName -o $fileNameWithoutExt.exe -Wall -g -Og -static-libgcc -fcolor-diagnostics --target=x86_64-w64-mingw -std=c11 && $dir$fileNameWithoutExt", + "cpp": "cd $dir && clang++ *.cpp -o $fileNameWithoutExt.exe -Wall -g -Og -static-libgcc -fcolor-diagnostics --target=x86_64-w64-mingw-g++ -std=c++17 && $dir$fileNameWithoutExt" }, // 设置code runner的命令行 "code-runner.saveFileBeforeRun": true, // run code前保存 "code-runner.preserveFocus": true, // 若为false,run code后光标会聚焦到终端上。如果需要频繁输入数据可设为false @@ -20,47 +17,15 @@ "C_Cpp.errorSquiggles": "Disabled", // 因为有clang的lint,所以关掉 "C_Cpp.autocomplete": "Disabled", // 因为有clang的补全,所以关掉 - - "clang.completion.enable": true, - "files.associations": { - "iostream": "cpp", - "string": "cpp", - "array": "cpp", - "atomic": "cpp", - "*.tcc": "cpp", - "cctype": "cpp", - "clocale": "cpp", - "cmath": "cpp", - "cstdarg": "cpp", - "cstddef": "cpp", - "cstdint": "cpp", - "cstdio": "cpp", - "cstdlib": "cpp", - "cwchar": "cpp", - "cwctype": "cpp", - "deque": "cpp", - "unordered_map": "cpp", - "vector": "cpp", - "exception": "cpp", - "algorithm": "cpp", - "memory": "cpp", - "memory_resource": "cpp", - "optional": "cpp", - "string_view": "cpp", - "system_error": "cpp", - "tuple": "cpp", - "type_traits": "cpp", - "utility": "cpp", - "fstream": "cpp", - "initializer_list": "cpp", - "iosfwd": "cpp", - "istream": "cpp", - "limits": "cpp", - "new": "cpp", - "ostream": "cpp", - "sstream": "cpp", - "stdexcept": "cpp", - "streambuf": "cpp", - "typeinfo": "cpp" - } // 效果效果比cpptools要好 + "clang.cflags": [ // 控制c语言静态检测的参数 + "--target=x86_64-w64-mingw", + "-std=c11", + "-Wall" + ], + "clang.cxxflags": [ // 控制c++静态检测时的参数 + "--target=x86_64-w64-mingw", + "-std=c++17", + "-Wall" + ], + "clang.completion.enable":true // 效果效果比cpptools要好 } diff --git a/DataStructure/.vscode/tasks.json b/DataStructure/.vscode/tasks.json index 8146f19..5ddc66e 100644 --- a/DataStructure/.vscode/tasks.json +++ b/DataStructure/.vscode/tasks.json @@ -1,24 +1,33 @@ +// https://code.visualstudio.com/docs/editor/tasks { + "version": "2.0.0", "tasks": [ { - "type": "cppbuild", - "label": "Compile",//可以随意更改,保证与launch.json的preLaunchTask相同 - "command": "g++", + "label": "Compile", // 任务名称,与launch.json的preLaunchTask相对应 + "command": "clang++", // 要使用的编译器 "args": [ - "${fileDirname}\\*.cpp",//编译所有文件,根据自己需要更改 - "-g",//一定要加这个参数,不然没法加断点 - "-o", - "${fileDirname}\\${fileBasenameNoExtension}.exe" - ], - "options": { - "cwd": "C:/Project/mingw64/bin"//自己的编译器路径,自行修改 + "${file}", + "-o", // 指定输出文件名,不加该参数则默认输出a.exe + "${fileDirname}/${fileBasenameNoExtension}.exe", + "-g", // 生成和调试有关的信息 + "-Wall", // 开启额外警告 + "-static-libgcc", // 静态链接 + "-fcolor-diagnostics", + "--target=x86_64-w64-mingw", // 默认target为msvc,不加这一条就会找不到头文件 + "-std=c++17" // C语言最新标准为c11,或根据自己的需要进行修改 + ], // 编译命令参数 + "type": "shell", + "group": { + "kind": "build", + "isDefault": true // 设为false可做到一个tasks.json配置多个编译指令,需要自己修改本文件,我这里不多提 }, - "problemMatcher": [ - "$gcc" - ], - "group": "build", - "detail": "编译器: C:/Project/mingw64/bin/g++.exe" + "presentation": { + "echo": true, + "reveal": "always", // 在“终端”中显示编译信息的策略,可以为always,silent,never。具体参见VSC的文档 + "focus": false, // 设为true后可以使执行task时焦点聚集在终端,但对编译c和c++来说,设为true没有意义 + "panel": "shared" // 不同的文件的编译信息共享一个终端面板 + } + // "problemMatcher":"$gcc" // 如果你不使用clang,去掉前面的注释符,并在上一条之后加个逗号。照着我的教程做的不需要改(也可以把这行删去) } - ], - "version": "2.0.0" -} \ No newline at end of file + ] +} diff --git a/SoftwareDesign/.vscode/c_cpp_properties.json b/SoftwareDesign/.vscode/c_cpp_properties.json new file mode 100644 index 0000000..444992b --- /dev/null +++ b/SoftwareDesign/.vscode/c_cpp_properties.json @@ -0,0 +1,20 @@ +{ + "configurations": [ + { + "name": "Win32", + "includePath": [ + "${workspaceFolder}/**" + ], + "defines": [ + "_DEBUG", + "UNICODE", + "_UNICODE" + ], + "compilerPath": "C:/Program Files/LLVM/bin/clang.exe", + "cStandard": "c17", + "cppStandard": "c++17", + "intelliSenseMode": "windows-clang-x64" + } + ], + "version": 4 +} \ No newline at end of file diff --git a/SoftwareDesign/.vscode/launch.json b/SoftwareDesign/.vscode/launch.json new file mode 100644 index 0000000..d8ab2f2 --- /dev/null +++ b/SoftwareDesign/.vscode/launch.json @@ -0,0 +1,34 @@ +{ + // 使用 IntelliSense 了解相关属性。 + // 悬停以查看现有属性的描述。 + // 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387 + "version": "0.2.0", + "configurations": [ + { + "name": "clang++.exe - 生成和调试活动文件", + "type": "cppdbg", + "request": "launch", + "program": "${fileDirname}\\${fileBasenameNoExtension}.exe", + "args": [], + "stopAtEntry": true, + "cwd": "C:/Program Files/LLVM/bin", + "environment": [], + "externalConsole": true, + "MIMode": "gdb", + "miDebuggerPath": "C:\\Program Files\\LLVM\\bin\\gdb.exe", + "setupCommands": [ + { + "description": "为 gdb 启用整齐打印", + "text": "-enable-pretty-printing", + "ignoreFailures": true + }, + { + "description": "将反汇编风格设置为 Intel", + "text": "-gdb-set disassembly-flavor intel", + "ignoreFailures": true + } + ], + "preLaunchTask": "Compile" + } + ] +} \ No newline at end of file diff --git a/SoftwareDesign/.vscode/settings.json b/SoftwareDesign/.vscode/settings.json new file mode 100644 index 0000000..bb94bbd --- /dev/null +++ b/SoftwareDesign/.vscode/settings.json @@ -0,0 +1,31 @@ +{ + "files.defaultLanguage": "cpp", // ctrl+N新建文件后默认的语言 + "editor.formatOnType": true, // 输入时就进行格式化,默认触发字符较少,分号可以触发 + "editor.snippetSuggestions": "top", // snippets代码优先显示补全 + + "code-runner.runInTerminal": true, // 设置成false会在“输出”中输出,无法输入 + "code-runner.executorMap": { + "c": "cd $dir && clang $fileName -o $fileNameWithoutExt.exe -Wall -g -Og -static-libgcc -fcolor-diagnostics --target=x86_64-w64-mingw -std=c11 && $dir$fileNameWithoutExt", + "cpp": "cd $dir && clang++ *.cpp -o $fileNameWithoutExt.exe -Wall -g -Og -static-libgcc -fcolor-diagnostics --target=x86_64-w64-mingw-g++ -std=c++17 && $dir$fileNameWithoutExt" + }, // 设置code runner的命令行 + "code-runner.saveFileBeforeRun": true, // run code前保存 + "code-runner.preserveFocus": true, // 若为false,run code后光标会聚焦到终端上。如果需要频繁输入数据可设为false + "code-runner.clearPreviousOutput": false, // 每次run code前清空属于code runner的终端消息 + + "C_Cpp.clang_format_sortIncludes": true, // 格式化时调整include的顺序(按字母排序) + "C_Cpp.intelliSenseEngine": "Default", // 可以为Default或Tag Parser,后者较老,功能较简单。具体差别参考cpptools扩展文档 + "C_Cpp.errorSquiggles": "Disabled", // 因为有clang的lint,所以关掉 + "C_Cpp.autocomplete": "Disabled", // 因为有clang的补全,所以关掉 + + "clang.cflags": [ // 控制c语言静态检测的参数 + "--target=x86_64-w64-mingw", + "-std=c11", + "-Wall" + ], + "clang.cxxflags": [ // 控制c++静态检测时的参数 + "--target=x86_64-w64-mingw", + "-std=c++17", + "-Wall" + ], + "clang.completion.enable":true // 效果效果比cpptools要好 +} diff --git a/SoftwareDesign/.vscode/tasks.json b/SoftwareDesign/.vscode/tasks.json new file mode 100644 index 0000000..5ddc66e --- /dev/null +++ b/SoftwareDesign/.vscode/tasks.json @@ -0,0 +1,33 @@ +// https://code.visualstudio.com/docs/editor/tasks +{ + "version": "2.0.0", + "tasks": [ + { + "label": "Compile", // 任务名称,与launch.json的preLaunchTask相对应 + "command": "clang++", // 要使用的编译器 + "args": [ + "${file}", + "-o", // 指定输出文件名,不加该参数则默认输出a.exe + "${fileDirname}/${fileBasenameNoExtension}.exe", + "-g", // 生成和调试有关的信息 + "-Wall", // 开启额外警告 + "-static-libgcc", // 静态链接 + "-fcolor-diagnostics", + "--target=x86_64-w64-mingw", // 默认target为msvc,不加这一条就会找不到头文件 + "-std=c++17" // C语言最新标准为c11,或根据自己的需要进行修改 + ], // 编译命令参数 + "type": "shell", + "group": { + "kind": "build", + "isDefault": true // 设为false可做到一个tasks.json配置多个编译指令,需要自己修改本文件,我这里不多提 + }, + "presentation": { + "echo": true, + "reveal": "always", // 在“终端”中显示编译信息的策略,可以为always,silent,never。具体参见VSC的文档 + "focus": false, // 设为true后可以使执行task时焦点聚集在终端,但对编译c和c++来说,设为true没有意义 + "panel": "shared" // 不同的文件的编译信息共享一个终端面板 + } + // "problemMatcher":"$gcc" // 如果你不使用clang,去掉前面的注释符,并在上一条之后加个逗号。照着我的教程做的不需要改(也可以把这行删去) + } + ] +} diff --git a/SoftwareDesign/Code/ex01/main.cpp b/SoftwareDesign/Code/ex01/main.cpp new file mode 100644 index 0000000..8e9d5f2 --- /dev/null +++ b/SoftwareDesign/Code/ex01/main.cpp @@ -0,0 +1,6 @@ +#include +int main() +{ + printf("hello world"); + return 0; +} \ No newline at end of file diff --git a/SoftwareDesign/README.md b/SoftwareDesign/README.md new file mode 100644 index 0000000..e90e8e2 --- /dev/null +++ b/SoftwareDesign/README.md @@ -0,0 +1 @@ +# 软件设计综合实验 课程作业 diff --git a/SoftwareDesign/workspace.code-workspace b/SoftwareDesign/workspace.code-workspace new file mode 100644 index 0000000..3a7c375 --- /dev/null +++ b/SoftwareDesign/workspace.code-workspace @@ -0,0 +1,53 @@ +{ + "folders": [ + { + "path": "." + } + ], + "settings": { + "files.associations": { + "iostream": "cpp", + "*.tcc": "cpp", + "string": "cpp", + "string_view": "cpp", + "sstream": "cpp", + "stdexcept": "cpp", + "streambuf": "cpp", + "istream": "cpp", + "array": "cpp", + "atomic": "cpp", + "cctype": "cpp", + "clocale": "cpp", + "cmath": "cpp", + "cstdarg": "cpp", + "cstddef": "cpp", + "cstdint": "cpp", + "cstdio": "cpp", + "cstdlib": "cpp", + "cwchar": "cpp", + "cwctype": "cpp", + "deque": "cpp", + "unordered_map": "cpp", + "vector": "cpp", + "exception": "cpp", + "algorithm": "cpp", + "memory": "cpp", + "memory_resource": "cpp", + "optional": "cpp", + "system_error": "cpp", + "tuple": "cpp", + "type_traits": "cpp", + "utility": "cpp", + "fstream": "cpp", + "initializer_list": "cpp", + "iosfwd": "cpp", + "limits": "cpp", + "new": "cpp", + "ostream": "cpp", + "typeinfo": "cpp", + "ctime": "cpp", + "iomanip": "cpp" + }, + "commentTranslate.hover.enabled": true + } +} \ No newline at end of file