diff --git a/add/A/.vs/A/v16/.suo b/add/A/.vs/A/v16/.suo deleted file mode 100644 index a0b874f..0000000 Binary files a/add/A/.vs/A/v16/.suo and /dev/null differ diff --git a/add/A/A.sln b/add/A/A.sln deleted file mode 100644 index 9df3311..0000000 --- a/add/A/A.sln +++ /dev/null @@ -1,41 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio Version 16 -VisualStudioVersion = 16.0.30804.86 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "A", "A\A.vcxproj", "{53093C19-B40F-47A8-9392-A223E414830E}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "UnitTest1", "UnitTest1\UnitTest1.vcxproj", "{F2E902DE-0C36-42A7-BF5D-2325F9D270C8}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|x64 = Debug|x64 - Debug|x86 = Debug|x86 - Release|x64 = Release|x64 - Release|x86 = Release|x86 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {53093C19-B40F-47A8-9392-A223E414830E}.Debug|x64.ActiveCfg = Debug|x64 - {53093C19-B40F-47A8-9392-A223E414830E}.Debug|x64.Build.0 = Debug|x64 - {53093C19-B40F-47A8-9392-A223E414830E}.Debug|x86.ActiveCfg = Debug|Win32 - {53093C19-B40F-47A8-9392-A223E414830E}.Debug|x86.Build.0 = Debug|Win32 - {53093C19-B40F-47A8-9392-A223E414830E}.Release|x64.ActiveCfg = Release|x64 - {53093C19-B40F-47A8-9392-A223E414830E}.Release|x64.Build.0 = Release|x64 - {53093C19-B40F-47A8-9392-A223E414830E}.Release|x86.ActiveCfg = Release|Win32 - {53093C19-B40F-47A8-9392-A223E414830E}.Release|x86.Build.0 = Release|Win32 - {F2E902DE-0C36-42A7-BF5D-2325F9D270C8}.Debug|x64.ActiveCfg = Debug|x64 - {F2E902DE-0C36-42A7-BF5D-2325F9D270C8}.Debug|x64.Build.0 = Debug|x64 - {F2E902DE-0C36-42A7-BF5D-2325F9D270C8}.Debug|x86.ActiveCfg = Debug|Win32 - {F2E902DE-0C36-42A7-BF5D-2325F9D270C8}.Debug|x86.Build.0 = Debug|Win32 - {F2E902DE-0C36-42A7-BF5D-2325F9D270C8}.Release|x64.ActiveCfg = Release|x64 - {F2E902DE-0C36-42A7-BF5D-2325F9D270C8}.Release|x64.Build.0 = Release|x64 - {F2E902DE-0C36-42A7-BF5D-2325F9D270C8}.Release|x86.ActiveCfg = Release|Win32 - {F2E902DE-0C36-42A7-BF5D-2325F9D270C8}.Release|x86.Build.0 = Release|Win32 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection - GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {B7DA30AA-170D-4E63-A28E-AD3D6C3C05C2} - EndGlobalSection -EndGlobal diff --git a/add/A/A/A.vcxproj b/add/A/A/A.vcxproj deleted file mode 100644 index 4ed6f6b..0000000 --- a/add/A/A/A.vcxproj +++ /dev/null @@ -1,150 +0,0 @@ - - - - - Debug - Win32 - - - Release - Win32 - - - Debug - x64 - - - Release - x64 - - - - 16.0 - Win32Proj - {53093c19-b40f-47a8-9392-a223e414830e} - A - 10.0 - - - - StaticLibrary - true - v142 - Unicode - - - Application - false - v142 - true - Unicode - - - Application - true - v142 - Unicode - - - Application - false - v142 - true - Unicode - - - - - - - - - - - - - - - - - - - - - true - - - false - - - true - - - false - - - - Level3 - true - WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions) - true - - - Console - true - - - - - Level3 - true - true - true - WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions) - true - - - Console - true - true - true - - - - - Level3 - true - _DEBUG;_CONSOLE;%(PreprocessorDefinitions) - true - - - Console - true - - - - - Level3 - true - true - true - NDEBUG;_CONSOLE;%(PreprocessorDefinitions) - true - - - Console - true - true - true - - - - - - - - - - - - \ No newline at end of file diff --git a/add/A/A/A.vcxproj.filters b/add/A/A/A.vcxproj.filters deleted file mode 100644 index f8947b4..0000000 --- a/add/A/A/A.vcxproj.filters +++ /dev/null @@ -1,27 +0,0 @@ - - - - - {4FC737F1-C7A5-4376-A066-2A32D752A2FF} - cpp;c;cc;cxx;c++;cppm;ixx;def;odl;idl;hpj;bat;asm;asmx - - - {93995380-89BD-4b04-88EB-625FBE52EBFB} - h;hh;hpp;hxx;h++;hm;inl;inc;ipp;xsd - - - {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} - rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms - - - - - 头文件 - - - - - 源文件 - - - \ No newline at end of file diff --git a/add/A/A/A.vcxproj.user b/add/A/A/A.vcxproj.user deleted file mode 100644 index 88a5509..0000000 --- a/add/A/A/A.vcxproj.user +++ /dev/null @@ -1,4 +0,0 @@ - - - - \ No newline at end of file diff --git a/add/A/A/add.cpp b/add/A/A/add.cpp deleted file mode 100644 index 225ad69..0000000 --- a/add/A/A/add.cpp +++ /dev/null @@ -1,5 +0,0 @@ -#include "add.h" -long long add(int x, int y) -{ - return (long long)x + (long long)y; -} diff --git a/add/A/A/add.h b/add/A/A/add.h deleted file mode 100644 index 4a005b2..0000000 --- a/add/A/A/add.h +++ /dev/null @@ -1,3 +0,0 @@ -#pragma once -#include - long long add(int x, int y); \ No newline at end of file diff --git a/add/A/UnitTest1/UnitTest1.cpp b/add/A/UnitTest1/UnitTest1.cpp deleted file mode 100644 index c779508..0000000 --- a/add/A/UnitTest1/UnitTest1.cpp +++ /dev/null @@ -1,33 +0,0 @@ -#include "pch.h" -#include "CppUnitTest.h" -#include -#include -#include"../A/add.h" -#define FilePath "..//ex1.ini" -using namespace Microsoft::VisualStudio::CppUnitTestFramework; - -namespace UnitTest1 -{ - TEST_CLASS(UnitTest1) - { - public: - int j = 0; - char str[50][10] = { 0 };//iniļ ڵ - int count = CalcCount(50, str);//iniļ ڵĸ - unsigned short i; - TEST_METHOD(TestMethode1) - { - int nReal;// - CString na, nb, nExpect; //b治ͬļֵ - for (j = 0; j < count; j++) - { - GetPrivateProfileString(str[j], "na", " ", na.GetBuffer(20), 20, FilePath); - GetPrivateProfileString(str[j], "nb", " ", nb.GetBuffer(20), 20, FilePath); - GetPrivateProfileString(str[j], "nExpect", " ", nExpect.GetBuffer(20), 20, FilePath); - nReal = add(_ttoi(na), _ttoi(nb)); //_ttoiCStringתΪ - Assert::AreEqual(nReal, _ttoi(nExpect)); - } - - } - }; -} diff --git a/add/A/UnitTest1/UnitTest1.vcxproj b/add/A/UnitTest1/UnitTest1.vcxproj deleted file mode 100644 index a2408b7..0000000 --- a/add/A/UnitTest1/UnitTest1.vcxproj +++ /dev/null @@ -1,180 +0,0 @@ - - - - - Debug - Win32 - - - Release - Win32 - - - Debug - x64 - - - Release - x64 - - - - 16.0 - {F2E902DE-0C36-42A7-BF5D-2325F9D270C8} - Win32Proj - UnitTest1 - 10.0 - NativeUnitTestProject - - - - DynamicLibrary - true - v142 - MultiByte - false - - - DynamicLibrary - false - v142 - true - Unicode - false - - - DynamicLibrary - true - v142 - Unicode - false - - - DynamicLibrary - false - v142 - true - Unicode - false - - - - - - - - - - - - - - - - - - - - - true - - - true - - - false - - - false - - - - Use - Level3 - true - $(VCInstallDir)UnitTest\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;%(PreprocessorDefinitions) - true - pch.h - - - Windows - $(VCInstallDir)UnitTest\lib;%(AdditionalLibraryDirectories) - ..\A\Debug\add.obj;%(AdditionalDependencies) - DebugFull - - - - - Use - Level3 - true - $(VCInstallDir)UnitTest\include;%(AdditionalIncludeDirectories) - _DEBUG;%(PreprocessorDefinitions) - true - pch.h - - - Windows - $(VCInstallDir)UnitTest\lib;%(AdditionalLibraryDirectories) - - - - - Use - Level3 - true - true - true - $(VCInstallDir)UnitTest\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;%(PreprocessorDefinitions) - true - pch.h - - - Windows - true - true - $(VCInstallDir)UnitTest\lib;%(AdditionalLibraryDirectories) - - - - - Use - Level3 - true - true - true - $(VCInstallDir)UnitTest\include;%(AdditionalIncludeDirectories) - NDEBUG;%(PreprocessorDefinitions) - true - pch.h - - - Windows - true - true - $(VCInstallDir)UnitTest\lib;%(AdditionalLibraryDirectories) - - - - - Create - Create - Create - Create - - - - - - - - - {53093c19-b40f-47a8-9392-a223e414830e} - - - - - - \ No newline at end of file diff --git a/add/A/UnitTest1/UnitTest1.vcxproj.filters b/add/A/UnitTest1/UnitTest1.vcxproj.filters deleted file mode 100644 index 83a287b..0000000 --- a/add/A/UnitTest1/UnitTest1.vcxproj.filters +++ /dev/null @@ -1,30 +0,0 @@ - - - - - {4FC737F1-C7A5-4376-A066-2A32D752A2FF} - cpp;c;cc;cxx;c++;cppm;ixx;def;odl;idl;hpj;bat;asm;asmx - - - {93995380-89BD-4b04-88EB-625FBE52EBFB} - h;hh;hpp;hxx;h++;hm;inl;inc;ipp;xsd - - - {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} - rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms - - - - - 源文件 - - - 源文件 - - - - - 头文件 - - - \ No newline at end of file diff --git a/add/A/UnitTest1/UnitTest1.vcxproj.user b/add/A/UnitTest1/UnitTest1.vcxproj.user deleted file mode 100644 index 88a5509..0000000 --- a/add/A/UnitTest1/UnitTest1.vcxproj.user +++ /dev/null @@ -1,4 +0,0 @@ - - - - \ No newline at end of file diff --git a/add/A/UnitTest1/pch.cpp b/add/A/UnitTest1/pch.cpp deleted file mode 100644 index d2bdc54..0000000 --- a/add/A/UnitTest1/pch.cpp +++ /dev/null @@ -1,45 +0,0 @@ -// pch.cpp: 与预编译标头对应的源文件 - -#include "pch.h" -#include -#include -int CalcCount(int n, char(*str)[10]) -{ - TCHAR chSectionNames[2048] = { 0 };//定义一个数组,保存读取节的名字 - char* pSectionName; //保存找到的某个节名字符串的首地址 - int i = 0; //i指向数组chSectionNames的某个位置,从0开始,顺序后移 - int j = 0; //j用来保存下一个节名字符串的首地址相对于当前i的位置偏移量 - int k = 0; //临时变量,用于给str数组赋值 - int m = 0; //临时变量,用于给str数组赋值 - int count = 0; //统计节的个数 - GetPrivateProfileSectionNames(chSectionNames, 2048, "..//ex1.ini");//获取文件中的节名,每个节名以"\0"分割,保存在chSectionNames中 - //要加头文件 - for (i = 0; i < 2048; i++, j++)//对chSectionName中保存的内容进行拆分 - { - if (chSectionNames[0] == '\0')//如果第一个字符就是0,则说明ini中一个节也没有, - { - break; - } - if (chSectionNames[i] == '\0') - { - count++; - pSectionName = &chSectionNames[i - j]; //找到一个0,则说明从这个字符往前,减掉j个偏移量, - //就是一个节名的首地址 - j = -1; //找到一个节名后,j的值要还原,以统计下一个节名地址的偏移量 - //赋成-1是因为节名字符串的最后一个字符0是终止符,不能作为节名 - for (m = 0; m <= strlen(pSectionName); m++)//把找到的节名保存到str中 - { - str[k][m] = *(pSectionName + m); - } - //str[k][++m] = '\0';//手动给节名加上\0,表示这个节名结束 - k++;//变量自加,用来保存下一个节名 - //在获取节名的时候可以获取该节中键的值,前提是我们知道该节中有哪些键。 - if (chSectionNames[i + 1] == 0) - { - break; //当两个相邻的字符都是0时,则所有的节名都已找到,循环终止 - } - } - } - return count;//返回节名的个数 -} -// 当使用预编译的头时,需要使用此源文件,编译才能成功。 diff --git a/add/A/UnitTest1/pch.h b/add/A/UnitTest1/pch.h deleted file mode 100644 index 90cc566..0000000 --- a/add/A/UnitTest1/pch.h +++ /dev/null @@ -1,12 +0,0 @@ -// pch.h: 这是预编译标头文件。 -// 下方列出的文件仅编译一次,提高了将来生成的生成性能。 -// 这还将影响 IntelliSense 性能,包括代码完成和许多代码浏览功能。 -// 但是,如果此处列出的文件中的任何一个在生成之间有更新,它们全部都将被重新编译。 -// 请勿在此处添加要频繁更新的文件,这将使得性能优势无效。 - -#ifndef PCH_H -#define PCH_H -int CalcCount(int n, char(*str)[10]); -// 添加要在此处预编译的标头 - -#endif //PCH_H diff --git a/add/A/ex1.ini b/add/A/ex1.ini deleted file mode 100644 index b4d33b5..0000000 --- a/add/A/ex1.ini +++ /dev/null @@ -1,9 +0,0 @@ -[TestMethod1] -na=12 -nb=4 -nExpect=16 -[TestMethod2] -na=3 -nb=7 -nExpect=10 - diff --git a/add/add函数及其单元测试说明.md b/add/add函数及其单元测试说明.md deleted file mode 100644 index aeccd63..0000000 --- a/add/add函数及其单元测试说明.md +++ /dev/null @@ -1,122 +0,0 @@ -# add函数说明文档 -## 一、工程说明 -- 本工程的配置类型是一个静态库文件,目的是生成一个可被其他工程调用的静态库,静态库的函数功能是:输入两个int类型的数,返回两数之和。 -## 二、头文件 add.h ,放的是add函数的声明 -```C -#pragma once -#include -/* -**函数名: add -**参数:int ,int -**返回值:long long -**函数功能:传入两个int类型的参数,对其进行加法运算并返回一个 long long类型的数值,目的是防止两个int类型相加的和超过int的范围,所以这里返回值不用int。 -*/ - long long add(int x, int y); -``` -## 三、源文件 add.cpp ,放的是add函数的定义 -```C -#include "add.h" -long long add(int x, int y) -{ - return (long long)x + (long long)y;//在运算前进行强转 -} -``` -## 四、单元测试 -- 手动创建ini文件并添加测试样例,之后在单元测试的源文件里对ini文件进行读取解析 ,完成以后获取单元测试的结果,保证代码覆盖率在80%以上。其中对ini文件的读取另封装了函数,见下面的源码。 -1. ini文件内容 exl.ini - ``` - [TestMethod1] #测试样例1 - na=12 #函数第一个入数 - nb=4 #函数第二个入参 - nExpect=16 #两个入参相加的正确结果 - [TestMethod2] - na=3 - nb=7 - nExpect=10 - ``` - 2. 读取ini文件的函数 int CalcCount(int n, char(*str)[10]) -```C -/* -**函数功能:获取一个ini文件里有多少个节,并通过二维指针数组将节名带出来。 -* 函数名:CalcCount() -* 入参:int n --------节的个数 -* char (*str)[10] --------二维数组指针,10是节名的长度,可以根据需求修改 -*返回值:int --------返回节的个数 -*/ -int CalcCount(int n, char(*str)[10]) -int CalcCount(int n, char(*str)[10]) -{ - TCHAR chSectionNames[2048] = { 0 };//定义一个数组,保存读取节的名字 - char* pSectionName; //保存找到的某个节名字符串的首地址 - int i = 0; //i指向数组chSectionNames的某个位置,从0开始,顺序后移 - int j = 0; //j用来保存下一个节名字符串的首地址相对于当前i的位置偏移量 - int k = 0; //临时变量,用于给str数组赋值 - int m = 0; //临时变量,用于给str数组赋值 - int count = 0; //统计节的个数 - GetPrivateProfileSectionNames(chSectionNames, 2048, "..//ex1.ini");//获取文件中的节名,每个节名以"\0"分割,保存在chSectionNames中 - //要加头文件 - for (i = 0; i < 2048; i++, j++)//对chSectionName中保存的内容进行拆分 - { - if (chSectionNames[0] == '\0')//如果第一个字符就是0,则说明ini中一个节也没有, - { - break; - } - if (chSectionNames[i] == '\0') - { - count++; - pSectionName = &chSectionNames[i - j]; //找到一个0,则说明从这个字符往前,减掉j个偏移量, - //就是一个节名的首地址 - j = -1; //找到一个节名后,j的值要还原,以统计下一个节名地址的偏移量 - //赋成-1是因为节名字符串的最后一个字符0是终止符,不能作为节名 - for (m = 0; m <= strlen(pSectionName); m++)//把找到的节名保存到str中 - { - str[k][m] = *(pSectionName + m); - } - k++;//变量自加,用来保存下一个节名 - //在获取节名的时候可以获取该节中键的值,前提是我们知道该节中有哪些键。 - if (chSectionNames[i + 1] == 0) - { - break; //当两个相邻的字符都是0时,则所有的节名都已找到,循环终止 - } - } - } - return count;//返回节名的个数 -} -``` -3. 单元测试源码 UNITest1.cpp -```C -#include "pch.h" -#include "CppUnitTest.h" -#include -#include -#include"../A/add.h" -#define FilePath "../ex1.ini" -using namespace Microsoft::VisualStudio::CppUnitTestFramework; - -namespace UnitTest1 -{ - TEST_CLASS(UnitTest1) - { - public: - int j = 0;//循环变量,用来访问ini文件中的 节 - char str[50][10] = { 0 };//存放ini文件里 节的名字 - int count = CalcCount(50, str);//保存ini文件里 节的个数 - TEST_METHOD(TestMethode1) - { - int nReal;//保存运算结果 - CString na, nb, nExpect; //保存测试样例中的键值 - for (j = 0; j < count; j++)//遍历读取测试样例 - { - GetPrivateProfileString(str[j], "na", " ", na.GetBuffer(20), 20, FilePath);//读取第一个参数,保存在na里 - GetPrivateProfileString(str[j], "nb", " ", nb.GetBuffer(20), 20, FilePath);//读取第二个参数,保存在nb里 - GetPrivateProfileString(str[j], "nExpect", " ", nExpect.GetBuffer(20), 20, FilePath);//读取正确的值,保存在nExpect里 - nReal = add(_ttoi(na), _ttoi(nb)); //_ttoi是CString转为整型,把运算结果给nReal - Assert::AreEqual(nReal, _ttoi(nExpect));\\对比运算结果和正确结果 - } - - } - }; -} -``` -4. 附加测试结果 -![](./pic/add.jpg) diff --git a/add/pic/add.jpg b/add/pic/add.jpg deleted file mode 100644 index 29c9f87..0000000 Binary files a/add/pic/add.jpg and /dev/null differ diff --git a/div/FourOperator/.vs/FourOperator/v16/.suo b/div/FourOperator/.vs/FourOperator/v16/.suo deleted file mode 100644 index cbb3f55..0000000 Binary files a/div/FourOperator/.vs/FourOperator/v16/.suo and /dev/null differ diff --git a/div/FourOperator/FourOperator.sln b/div/FourOperator/FourOperator.sln deleted file mode 100644 index cab817b..0000000 --- a/div/FourOperator/FourOperator.sln +++ /dev/null @@ -1,41 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio Version 16 -VisualStudioVersion = 16.0.30804.86 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "FourOperator", "FourOperator\FourOperator.vcxproj", "{84D3E0B3-C22A-4F07-9329-8220A2F2EABD}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "UnitTest1", "UnitTest1\UnitTest1.vcxproj", "{B68018EC-3312-470A-898A-89F46F36C582}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|x64 = Debug|x64 - Debug|x86 = Debug|x86 - Release|x64 = Release|x64 - Release|x86 = Release|x86 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {84D3E0B3-C22A-4F07-9329-8220A2F2EABD}.Debug|x64.ActiveCfg = Debug|x64 - {84D3E0B3-C22A-4F07-9329-8220A2F2EABD}.Debug|x64.Build.0 = Debug|x64 - {84D3E0B3-C22A-4F07-9329-8220A2F2EABD}.Debug|x86.ActiveCfg = Debug|Win32 - {84D3E0B3-C22A-4F07-9329-8220A2F2EABD}.Debug|x86.Build.0 = Debug|Win32 - {84D3E0B3-C22A-4F07-9329-8220A2F2EABD}.Release|x64.ActiveCfg = Release|x64 - {84D3E0B3-C22A-4F07-9329-8220A2F2EABD}.Release|x64.Build.0 = Release|x64 - {84D3E0B3-C22A-4F07-9329-8220A2F2EABD}.Release|x86.ActiveCfg = Release|Win32 - {84D3E0B3-C22A-4F07-9329-8220A2F2EABD}.Release|x86.Build.0 = Release|Win32 - {B68018EC-3312-470A-898A-89F46F36C582}.Debug|x64.ActiveCfg = Debug|x64 - {B68018EC-3312-470A-898A-89F46F36C582}.Debug|x64.Build.0 = Debug|x64 - {B68018EC-3312-470A-898A-89F46F36C582}.Debug|x86.ActiveCfg = Debug|Win32 - {B68018EC-3312-470A-898A-89F46F36C582}.Debug|x86.Build.0 = Debug|Win32 - {B68018EC-3312-470A-898A-89F46F36C582}.Release|x64.ActiveCfg = Release|x64 - {B68018EC-3312-470A-898A-89F46F36C582}.Release|x64.Build.0 = Release|x64 - {B68018EC-3312-470A-898A-89F46F36C582}.Release|x86.ActiveCfg = Release|Win32 - {B68018EC-3312-470A-898A-89F46F36C582}.Release|x86.Build.0 = Release|Win32 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection - GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {D74B31F8-B3E0-4D9E-8BFC-F0959A7F9337} - EndGlobalSection -EndGlobal diff --git a/div/FourOperator/FourOperator/B.dll b/div/FourOperator/FourOperator/B.dll deleted file mode 100644 index 53f1a40..0000000 Binary files a/div/FourOperator/FourOperator/B.dll and /dev/null differ diff --git a/div/FourOperator/FourOperator/B.lib b/div/FourOperator/FourOperator/B.lib deleted file mode 100644 index ead5fd4..0000000 Binary files a/div/FourOperator/FourOperator/B.lib and /dev/null differ diff --git a/div/FourOperator/FourOperator/FourOperator.vcxproj b/div/FourOperator/FourOperator/FourOperator.vcxproj deleted file mode 100644 index 4eba2a2..0000000 --- a/div/FourOperator/FourOperator/FourOperator.vcxproj +++ /dev/null @@ -1,156 +0,0 @@ - - - - - Debug - Win32 - - - Release - Win32 - - - Debug - x64 - - - Release - x64 - - - - 16.0 - Win32Proj - {84d3e0b3-c22a-4f07-9329-8220a2f2eabd} - FourOperator - 10.0 - - - - Application - true - v142 - MultiByte - - - Application - false - v142 - true - Unicode - - - Application - true - v142 - Unicode - - - Application - false - v142 - true - Unicode - - - - - - - - - - - - - - - - - - - - - true - - - false - - - true - - - false - - - - Level3 - true - WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions) - true - ..\..\add\A\A;%(AdditionalIncludeDirectories) - - - Console - true - ..\..\..\add\A\Debug - A.lib;%(AdditionalDependencies) - - - - - Level3 - true - true - true - WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions) - true - - - Console - true - true - true - - - - - Level3 - true - _DEBUG;_CONSOLE;%(PreprocessorDefinitions) - true - - - Console - true - - - - - Level3 - true - true - true - NDEBUG;_CONSOLE;%(PreprocessorDefinitions) - true - - - Console - true - true - true - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/div/FourOperator/FourOperator/FourOperator.vcxproj.filters b/div/FourOperator/FourOperator/FourOperator.vcxproj.filters deleted file mode 100644 index a283846..0000000 --- a/div/FourOperator/FourOperator/FourOperator.vcxproj.filters +++ /dev/null @@ -1,36 +0,0 @@ - - - - - {4FC737F1-C7A5-4376-A066-2A32D752A2FF} - cpp;c;cc;cxx;c++;cppm;ixx;def;odl;idl;hpj;bat;asm;asmx - - - {93995380-89BD-4b04-88EB-625FBE52EBFB} - h;hh;hpp;hxx;h++;hm;inl;inc;ipp;xsd - - - {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} - rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms - - - - - 头文件 - - - 头文件 - - - - - 源文件 - - - 源文件 - - - 源文件 - - - \ No newline at end of file diff --git a/div/FourOperator/FourOperator/FourOperator.vcxproj.user b/div/FourOperator/FourOperator/FourOperator.vcxproj.user deleted file mode 100644 index 88a5509..0000000 --- a/div/FourOperator/FourOperator/FourOperator.vcxproj.user +++ /dev/null @@ -1,4 +0,0 @@ - - - - \ No newline at end of file diff --git a/div/FourOperator/FourOperator/Opera_api.cpp b/div/FourOperator/FourOperator/Opera_api.cpp deleted file mode 100644 index d0dce44..0000000 --- a/div/FourOperator/FourOperator/Opera_api.cpp +++ /dev/null @@ -1,35 +0,0 @@ -#pragma once -#include "Opera_api.h" -#include"../../../add/A/A/add.h" -//װļӷ -long long add_api(int x, int y) -{ - long long res = add(x, y); - printf("%d + %d = %lld\n", x, y, res); - return res; -} -//.װļ -int sub_api(int x, int y) -{ - printf("%d - %d = %d\n", x, y, x - y); - return x - y; -} -//װij˷ -long long mul_api(int x, int y) -{ - long long res; - HMODULE hdll = LoadLibrary("../../../mul/C/Debug/C.dll"); - if (hdll != NULL) - { - MulFunc MUL1 = (MulFunc)GetProcAddress(hdll, (char*)(1)); - if (MUL1 != NULL) - { - res = MUL1(x,y); - return res; - } - FreeLibrary(hdll); - } -} - - - diff --git a/div/FourOperator/FourOperator/Opera_api.h b/div/FourOperator/FourOperator/Opera_api.h deleted file mode 100644 index 1ee6a20..0000000 --- a/div/FourOperator/FourOperator/Opera_api.h +++ /dev/null @@ -1,10 +0,0 @@ -#pragma once -#include"sub.h" -#include -#include -#pragma comment(lib,"./B.lib") - -typedef int(WINAPI* MulFunc)(int x, int y); -long long mul_api(int x, int y); -int sub_api(int x, int y); -long long add_api(int x, int y); diff --git a/div/FourOperator/FourOperator/dev.cpp b/div/FourOperator/FourOperator/dev.cpp deleted file mode 100644 index c939cd1..0000000 --- a/div/FourOperator/FourOperator/dev.cpp +++ /dev/null @@ -1,15 +0,0 @@ -#include "dev.h" -//װij -int dev(int x, int y) -{ - if (y == 0) - { - printf("Ϊ0\n"); - return 0; - } - else - { - printf("%d / %d = %d\n", x, y, x / y); - return x / y; - } -} \ No newline at end of file diff --git a/div/FourOperator/FourOperator/dev.h b/div/FourOperator/FourOperator/dev.h deleted file mode 100644 index 0041e13..0000000 --- a/div/FourOperator/FourOperator/dev.h +++ /dev/null @@ -1,7 +0,0 @@ -#pragma once -#pragma once -#include"sub.h" -#include -#include - -int dev(int x, int y); \ No newline at end of file diff --git a/div/FourOperator/FourOperator/main.cpp b/div/FourOperator/FourOperator/main.cpp deleted file mode 100644 index 6660ca1..0000000 --- a/div/FourOperator/FourOperator/main.cpp +++ /dev/null @@ -1,13 +0,0 @@ - -#include "Opera_api.h" -#include "dev.h" -int main() -{ - int a = 2147483647, b = 2; - add_api(a, b);// ӷӿadd_api - sub_api(a, b);// ӿsub_api - mul_api(a, b); // ˷ӿmul_api - dev(a, b);// ӿdev_api - - return 0; -} \ No newline at end of file diff --git a/div/FourOperator/FourOperator/sub.h b/div/FourOperator/FourOperator/sub.h deleted file mode 100644 index 67e32fb..0000000 --- a/div/FourOperator/FourOperator/sub.h +++ /dev/null @@ -1,13 +0,0 @@ -#ifndef _SUB_H_ -#define _SUB_H_ - -#ifdef sub_EXPORTS -#define sub_EXPORTS _declspec(dllexport) -#else -#define sub_EXPORTS _declspec(dllimport) -#endif - -sub_EXPORTS int sub(int x, int y); - -#endif - diff --git a/div/FourOperator/UnitTest1/UnitTest1.cpp b/div/FourOperator/UnitTest1/UnitTest1.cpp deleted file mode 100644 index 3f7221a..0000000 --- a/div/FourOperator/UnitTest1/UnitTest1.cpp +++ /dev/null @@ -1,140 +0,0 @@ -#pragma once -#include "pch.h" -#include "CppUnitTest.h" -#include"../FourOperator/dev.h" -#include -#include -#include - -#define FilePath "..//ex1.ini" -using namespace Microsoft::VisualStudio::CppUnitTestFramework; - -namespace UnitTest1 -{ - TEST_CLASS(UnitTest1) - { - public: - -#if 1 - int j = 0; - char str[50][10] = { 0 };//iniļ ڵ - int count = CalcCount(50, str);//iniļ ڵĸ - unsigned short i; - TEST_METHOD(TestMethode1) - { - int nReal;// - CString na, nb, nExpect; //b治ͬļֵ - for (j = 0; j < count; j++) - { - GetPrivateProfileString(str[j], "na", " ", na.GetBuffer(20), 20, FilePath); - GetPrivateProfileString(str[j], "nb", " ", nb.GetBuffer(20), 20, FilePath); - GetPrivateProfileString(str[j], "nExpect", " ", nExpect.GetBuffer(20), 20, FilePath); - nReal = dev(_ttoi(na), _ttoi(nb)); //_ttoiCStringתΪ - Assert::AreEqual(nReal, _ttoi(nExpect)); - } - - } - - }; -} - -#endif - - - - - - - - - - - - - - - - - - - -#if 0 - TEST_METHOD(a) - { - int nReal; - CString na, nb, nExpect; - //һγ ex1.ini ļд - //WritePrivateProfileString(_T("a"), _T("na"), _T("6"), _T("../ex1.ini")); - //WritePrivateProfileString(_T("a"), _T("nb"), _T("2"), _T("../ex1.ini")); - //WritePrivateProfileString(_T("a"), _T("QExpect"), _T("3"), _T("../ex1.ini")); - //һγǴ ex1.ini ļȡ - GetPrivateProfileString(_T("a"), _T("na"), _T(" "), na.GetBuffer(20), 20, _T(FilePath)); - GetPrivateProfileString(_T("a"), _T("nb"), _T(" "), nb.GetBuffer(20), 20, _T(FilePath)); - GetPrivateProfileString(_T("a"), _T("nExpect"), _T(" "), nExpect.GetBuffer(20), 20, _T(FilePath)); - nReal = dev(_ttoi(na), _ttoi(nb)); - Assert::AreEqual(nReal, _ttoi(nExpect)); - } - TEST_METHOD(b) - { - int nReal; - CString na, nb, nExpect; - - GetPrivateProfileString(_T("b"), _T("na"), _T(" "), na.GetBuffer(20), 20, _T(FilePath)); - GetPrivateProfileString(_T("b"), _T("nb"), _T(" "), nb.GetBuffer(20), 20, _T(FilePath)); - GetPrivateProfileString(_T("b"), _T("nExpect"), _T(" "), nExpect.GetBuffer(20), 20, _T(FilePath)); - nReal = dev(_ttoi(na), _ttoi(nb)); - Assert::AreEqual(nReal, _ttoi(nExpect)); - } - TEST_METHOD(c) - { - int nReal; - CString na, nb, nExpect; - - GetPrivateProfileString(_T("c"), _T("na"), _T(" "), na.GetBuffer(20), 20, _T(FilePath)); - GetPrivateProfileString(_T("c"), _T("nb"), _T(" "), nb.GetBuffer(20), 20, _T(FilePath)); - GetPrivateProfileString(_T("c"), _T("nExpect"), _T(" "), nExpect.GetBuffer(20), 20, _T(FilePath)); - nReal = dev(_ttoi(na), _ttoi(nb)); - Assert::AreEqual(nReal, _ttoi(nExpect)); - } - TEST_METHOD(TestMethod3) - { - int nReal; - CString na, nb, nExpect; - - GetPrivateProfileString("d", "na", " ", na.GetBuffer(20), 20, FilePath); - GetPrivateProfileString("d", "nb", " ", nb.GetBuffer(20), 20, FilePath); - GetPrivateProfileString("d", "nExpect", " ", nExpect.GetBuffer(20), 20, FilePath); - nReal = dev(_ttoi(na), _ttoi(nb)); - Assert::AreEqual(nReal, _ttoi(nExpect)); - } -#endif - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/div/FourOperator/UnitTest1/UnitTest1.vcxproj b/div/FourOperator/UnitTest1/UnitTest1.vcxproj deleted file mode 100644 index f349363..0000000 --- a/div/FourOperator/UnitTest1/UnitTest1.vcxproj +++ /dev/null @@ -1,174 +0,0 @@ - - - - - Debug - Win32 - - - Release - Win32 - - - Debug - x64 - - - Release - x64 - - - - 16.0 - {B68018EC-3312-470A-898A-89F46F36C582} - Win32Proj - UnitTest1 - 10.0 - NativeUnitTestProject - - - - DynamicLibrary - true - v142 - false - MultiByte - - - DynamicLibrary - false - v142 - true - Unicode - false - - - DynamicLibrary - true - v142 - Unicode - false - - - DynamicLibrary - false - v142 - true - Unicode - false - - - - - - - - - - - - - - - - - - - - - true - - - true - - - false - - - false - - - - Use - Level3 - true - $(VCInstallDir)UnitTest\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) - true - pch.h - - - Windows - DebugFull - ..\FourOperator\Debug\dev.obj - - - - - Use - Level3 - true - $(VCInstallDir)UnitTest\include;%(AdditionalIncludeDirectories) - _DEBUG;%(PreprocessorDefinitions) - true - pch.h - - - Windows - $(VCInstallDir)UnitTest\lib;%(AdditionalLibraryDirectories) - - - - - Use - Level3 - true - true - true - $(VCInstallDir)UnitTest\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;%(PreprocessorDefinitions) - true - pch.h - - - Windows - true - true - $(VCInstallDir)UnitTest\lib;%(AdditionalLibraryDirectories) - - - - - Use - Level3 - true - true - true - $(VCInstallDir)UnitTest\include;%(AdditionalIncludeDirectories) - NDEBUG;%(PreprocessorDefinitions) - true - pch.h - - - Windows - true - true - $(VCInstallDir)UnitTest\lib;%(AdditionalLibraryDirectories) - - - - - Create - Create - Create - Create - - - - - - - - - - \ No newline at end of file diff --git a/div/FourOperator/UnitTest1/UnitTest1.vcxproj.filters b/div/FourOperator/UnitTest1/UnitTest1.vcxproj.filters deleted file mode 100644 index 83a287b..0000000 --- a/div/FourOperator/UnitTest1/UnitTest1.vcxproj.filters +++ /dev/null @@ -1,30 +0,0 @@ - - - - - {4FC737F1-C7A5-4376-A066-2A32D752A2FF} - cpp;c;cc;cxx;c++;cppm;ixx;def;odl;idl;hpj;bat;asm;asmx - - - {93995380-89BD-4b04-88EB-625FBE52EBFB} - h;hh;hpp;hxx;h++;hm;inl;inc;ipp;xsd - - - {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} - rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms - - - - - 源文件 - - - 源文件 - - - - - 头文件 - - - \ No newline at end of file diff --git a/div/FourOperator/UnitTest1/UnitTest1.vcxproj.user b/div/FourOperator/UnitTest1/UnitTest1.vcxproj.user deleted file mode 100644 index 88a5509..0000000 --- a/div/FourOperator/UnitTest1/UnitTest1.vcxproj.user +++ /dev/null @@ -1,4 +0,0 @@ - - - - \ No newline at end of file diff --git a/div/FourOperator/UnitTest1/pch.cpp b/div/FourOperator/UnitTest1/pch.cpp deleted file mode 100644 index 96ad9c7..0000000 --- a/div/FourOperator/UnitTest1/pch.cpp +++ /dev/null @@ -1,44 +0,0 @@ -// pch.cpp: 与预编译标头对应的源文件 -#pragma once -#include "pch.h" -int CalcCount(int n, char(*str)[10]) -{ - TCHAR chSectionNames[2048] = { 0 };//定义一个数组,保存读取节的名字 - char* pSectionName; //保存找到的某个节名字符串的首地址 - int i = 0; //i指向数组chSectionNames的某个位置,从0开始,顺序后移 - int j = 0; //j用来保存下一个节名字符串的首地址相对于当前i的位置偏移量 - int k = 0; //临时变量,用于给str数组赋值 - int m = 0; //临时变量,用于给str数组赋值 - int count = 0; //统计节的个数 - GetPrivateProfileSectionNames(chSectionNames, 2048, "..//ex1.ini");//获取文件中的节名,每个节名以"\0"分割,保存在chSectionNames中 - //要加头文件 - for (i = 0; i < 2048; i++, j++)//对chSectionName中保存的内容进行拆分 - { - if (chSectionNames[0] == '\0')//如果第一个字符就是0,则说明ini中一个节也没有, - { - break; - } - if (chSectionNames[i] == '\0') - { - count++; - pSectionName = &chSectionNames[i - j]; //找到一个0,则说明从这个字符往前,减掉j个偏移量, - //就是一个节名的首地址 - j = -1; //找到一个节名后,j的值要还原,以统计下一个节名地址的偏移量 - //赋成-1是因为节名字符串的最后一个字符0是终止符,不能作为节名 - for (m = 0; m <= strlen(pSectionName); m++)//把找到的节名保存到str中 - { - str[k][m] = *(pSectionName + m); - } - //str[k][++m] = '\0';//手动给节名加上\0,表示这个节名结束 - k++;//变量自加,用来保存下一个节名 - //在获取节名的时候可以获取该节中键的值,前提是我们知道该节中有哪些键。 - if (chSectionNames[i + 1] == 0) - { - break; //当两个相邻的字符都是0时,则所有的节名都已找到,循环终止 - } - } - } - return count;//返回节名的个数 -} - -// 当使用预编译的头时,需要使用此源文件,编译才能成功。 diff --git a/div/FourOperator/UnitTest1/pch.h b/div/FourOperator/UnitTest1/pch.h deleted file mode 100644 index f455103..0000000 --- a/div/FourOperator/UnitTest1/pch.h +++ /dev/null @@ -1,14 +0,0 @@ -// pch.h: 这是预编译标头文件。 -// 下方列出的文件仅编译一次,提高了将来生成的生成性能。 -// 这还将影响 IntelliSense 性能,包括代码完成和许多代码浏览功能。 -// 但是,如果此处列出的文件中的任何一个在生成之间有更新,它们全部都将被重新编译。 -// 请勿在此处添加要频繁更新的文件,这将使得性能优势无效。 - -#ifndef PCH_H -#define PCH_H -#include - -#include -// 添加要在此处预编译的标头 -int CalcCount(int n, char(*str)[10]); -#endif //PCH_H diff --git a/div/FourOperator/ex1.ini b/div/FourOperator/ex1.ini deleted file mode 100644 index ad56483..0000000 --- a/div/FourOperator/ex1.ini +++ /dev/null @@ -1,21 +0,0 @@ -[a] -na=6 -nb=2 -nExpect=3 -[b] -na=4 -nb=2 -nExpect=2 -[c] -na=3 -nb=0 -nExpect=0 -[d] -na=100 -nb=10 -nExpect=10 -[e] -na=100 -nb=10 -nExpect=10 - diff --git a/div/dev函数及其单元测试说明.md b/div/dev函数及其单元测试说明.md deleted file mode 100644 index 9c183fc..0000000 --- a/div/dev函数及其单元测试说明.md +++ /dev/null @@ -1,229 +0,0 @@ -# dev函数说明文档 -## 一、工程说明 -- 本工程的配置类型是一个exe可执行文件,工程内存在四个函数接口,分别为加、减、乘、除。加法函数接口是调用add静态库实现;减法函数接口是采用在工程中配置加载sub动态库的方式实现;乘法接口以运行时加载动态库mul的方式实现;除法接口调用本身函数的方式实现。 -## 二、工程文件 -1. 除法函数 - - 头文件 dev.h ,放的是dev的声明 - ```C - #pragma once - #include - #include - /* - **函数名: dev - **参数:int ,int - **返回值:int - **函数功能:传入两个int类型的参数,对其进行除法运算并返回两数之商。 - */ - int dev(int x, int y); - ``` - - 源文件 dev.cpp ,放的是dev函数的定义 - ```C - #include "dev.h" - int dev(int x, int y) - { - if (y == 0) - { - printf("除数不能为0!\n"); - return 0; - } - else - { - printf("%d / %d = %d\n", x, y, x / y); - return x / y; - } - } - ``` -2. 加、减、乘、接口 -- 头文件 Oper_api.h ,放的是add_api,sub_api,mul_api接口声明 - ```C - #pragma once - #include"sub.h" - #include - #include - #pragma comment(lib,"./B.lib") - typedef int(WINAPI* MulFunc)(int x, int y); - - /* - **函数名: add_api - **参数:int ,int - **返回值:long long - **函数功能:传入两个int类型的参数,调用静态库add函数的方式实现。 - */ - long long add_api(int x, int y); - - /* - **函数名: sub_api - **参数:int ,int - **返回值:int - **函数功能:传入两个int类型的参数,调用动态库sub函数的方式实现。 - */ - int sub_api(int x, int y); - - /* - **函数名: mul_api - **参数:int ,int - **返回值:long long - **函数功能:传入两个int类型的参数,运行时加载动态库mul,实现乘法运算。 - */ - void mul_api(int x, int y); - ``` -- 源文件 Oper_api.cpp ,放的是add_api,sub_api,mul_api接口定义 - ```C - #pragma once - #include "Opera_api.h" - #include"add.h" - - //函数接口add_api的实现 - long long add_api(int x, int y) - { - long long res = add(x, y); - printf("%d + %d = %lld\n", x, y, res); - return res; - } - - //函数接口sub_api的实现 - int sub_api(int x, int y) - { - printf("%d - %d = %d\n", x, y, x - y); - return x - y; - } - - //函数接口mul_api的实现 - long long mul_api(int x, int y) - { - HMODULE hdll = LoadLibrary("../../C/Debug/C.dll"); - if (hdll != NULL) - { - MulFunc MUL1 = (MulFunc)GetProcAddress(hdll, (char*)(1)); - if (MUL1 != NULL) - { - printf("%d * %d = %lld\n", x, y, MUL1(x, y)); - return MUL1(x, y); - } - FreeLibrary(hdll); - } - } - ``` - 3. 调用函数 main.c ,对接口进行调用 - ```C - #include "Opera_api.h" - #include "dev.h" - int main() - { - int a = 2147483647, b = 2; - add_api(a, b);//调用 加法接口add_api - sub_api(a, b);//调用 减法接口sub_api - mul_api(a, b); //调用 乘法接口mul_api - dev(a, b);//调用 除法接口dev_api - - - return 0; - } - - ``` - 4. 运行结果如下: - ![](./pic/main.jpg) - ## 三、单元测试 - - 手动创建ini文件并添加测试样例,之后在单元测试的源文件里对ini文件进行读取解析 ,完成以后获取单元测试的结果,保证代码覆盖率在80%以上。其中对ini文件的读取另封装了函数,见下面的源码。 -1. ini文件内容 exl.ini - ``` - [TestMethod1] #测试样例1 - na=10 #函数第一个入数 - nb=2 #函数第二个入参 - nExpect=5 #两个入参相除的正确结果 - [TestMethod2] - na=12 - nb=3 - nExpect=4 - [TestMethod3] - na=90 - nb=3 - nExpect=30 - ``` -2. 读取ini文件的函数 int CalcCount(int n, char(*str)[10]) -```C -/* -**函数功能:获取一个ini文件里有多少个节,并通过二维指针数组将节名带出来。 -* 函数名:CalcCount() -* 入参:int n --------节的个数 -* char (*str)[10] --------二维数组指针,10是节名的长度,可以根据需求修改 -*返回值:int --------返回节的个数 -*/ -int CalcCount(int n, char(*str)[10]) -int CalcCount(int n, char(*str)[10]) -{ - TCHAR chSectionNames[2048] = { 0 };//定义一个数组,保存读取节的名字 - char* pSectionName; //保存找到的某个节名字符串的首地址 - int i = 0; //i指向数组chSectionNames的某个位置,从0开始,顺序后移 - int j = 0; //j用来保存下一个节名字符串的首地址相对于当前i的位置偏移量 - int k = 0; //临时变量,用于给str数组赋值 - int m = 0; //临时变量,用于给str数组赋值 - int count = 0; //统计节的个数 - GetPrivateProfileSectionNames(chSectionNames, 2048, "..//ex1.ini");//获取文件中的节名,每个节名以"\0"分割,保存在chSectionNames中 - //要加头文件 - for (i = 0; i < 2048; i++, j++)//对chSectionName中保存的内容进行拆分 - { - if (chSectionNames[0] == '\0')//如果第一个字符就是0,则说明ini中一个节也没有, - { - break; - } - if (chSectionNames[i] == '\0') - { - count++; - pSectionName = &chSectionNames[i - j]; //找到一个0,则说明从这个字符往前,减掉j个偏移量, - //就是一个节名的首地址 - j = -1; //找到一个节名后,j的值要还原,以统计下一个节名地址的偏移量 - //赋成-1是因为节名字符串的最后一个字符0是终止符,不能作为节名 - for (m = 0; m <= strlen(pSectionName); m++)//把找到的节名保存到str中 - { - str[k][m] = *(pSectionName + m); - } - k++;//变量自加,用来保存下一个节名 - //在获取节名的时候可以获取该节中键的值,前提是我们知道该节中有哪些键。 - if (chSectionNames[i + 1] == 0) - { - break; //当两个相邻的字符都是0时,则所有的节名都已找到,循环终止 - } - } - } - return count;//返回节名的个数 -} -``` -3. 单元测试源码 UNITest1.cpp -```C -#include "pch.h" -#include "CppUnitTest.h" -#include -#include -#include"../FourOperator/dev.h" -#define FilePath "../ex1.ini" -using namespace Microsoft::VisualStudio::CppUnitTestFramework; - -namespace UnitTest1 -{ - TEST_CLASS(UnitTest1) - { - public: - int j = 0;//循环变量,用来访问ini文件中的 节 - char str[50][10] = { 0 };//存放ini文件里 节的名字 - int count = CalcCount(50, str);//保存ini文件里 节的个数 - TEST_METHOD(TestMethode1) - { - int nReal;//保存运算结果 - CString na, nb, nExpect; //保存测试样例中的键值 - for (j = 0; j < count; j++)//遍历读取测试样例 - { - GetPrivateProfileString(str[j], "na", " ", na.GetBuffer(20), 20, FilePath);//读取第一个参数,保存在na里 - GetPrivateProfileString(str[j], "nb", " ", nb.GetBuffer(20), 20, FilePath);//读取第二个参数,保存在nb里 - GetPrivateProfileString(str[j], "nExpect", " ", nExpect.GetBuffer(20), 20, FilePath);//读取正确的值,保存在nExpect里 - nReal = dev(_ttoi(na), _ttoi(nb)); //_ttoi是CString转为整型,把运算结果给nReal - Assert::AreEqual(nReal, _ttoi(nExpect));//对比运算结果和正确结果 - } - - } - }; -} -``` -4. 附加测试结果 -![](./pic/dev.jpg) - diff --git a/div/pic/dev.jpg b/div/pic/dev.jpg deleted file mode 100644 index 4eaa0bf..0000000 Binary files a/div/pic/dev.jpg and /dev/null differ diff --git a/div/pic/main.jpg b/div/pic/main.jpg deleted file mode 100644 index ce10fee..0000000 Binary files a/div/pic/main.jpg and /dev/null differ diff --git a/mul/C/.vs/C/v16/.suo b/mul/C/.vs/C/v16/.suo deleted file mode 100644 index 74699cd..0000000 Binary files a/mul/C/.vs/C/v16/.suo and /dev/null differ diff --git a/mul/C/C.sln b/mul/C/C.sln deleted file mode 100644 index 3dc2ad4..0000000 --- a/mul/C/C.sln +++ /dev/null @@ -1,41 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio Version 16 -VisualStudioVersion = 16.0.30804.86 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "C", "C\C.vcxproj", "{00D1AA82-D340-4FF6-86FF-FFA68354D442}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "UnitTest1", "UnitTest1\UnitTest1.vcxproj", "{888C6BC4-668C-4C89-97CE-8108E4583F92}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|x64 = Debug|x64 - Debug|x86 = Debug|x86 - Release|x64 = Release|x64 - Release|x86 = Release|x86 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {00D1AA82-D340-4FF6-86FF-FFA68354D442}.Debug|x64.ActiveCfg = Debug|x64 - {00D1AA82-D340-4FF6-86FF-FFA68354D442}.Debug|x64.Build.0 = Debug|x64 - {00D1AA82-D340-4FF6-86FF-FFA68354D442}.Debug|x86.ActiveCfg = Debug|Win32 - {00D1AA82-D340-4FF6-86FF-FFA68354D442}.Debug|x86.Build.0 = Debug|Win32 - {00D1AA82-D340-4FF6-86FF-FFA68354D442}.Release|x64.ActiveCfg = Release|x64 - {00D1AA82-D340-4FF6-86FF-FFA68354D442}.Release|x64.Build.0 = Release|x64 - {00D1AA82-D340-4FF6-86FF-FFA68354D442}.Release|x86.ActiveCfg = Release|Win32 - {00D1AA82-D340-4FF6-86FF-FFA68354D442}.Release|x86.Build.0 = Release|Win32 - {888C6BC4-668C-4C89-97CE-8108E4583F92}.Debug|x64.ActiveCfg = Debug|x64 - {888C6BC4-668C-4C89-97CE-8108E4583F92}.Debug|x64.Build.0 = Debug|x64 - {888C6BC4-668C-4C89-97CE-8108E4583F92}.Debug|x86.ActiveCfg = Debug|Win32 - {888C6BC4-668C-4C89-97CE-8108E4583F92}.Debug|x86.Build.0 = Debug|Win32 - {888C6BC4-668C-4C89-97CE-8108E4583F92}.Release|x64.ActiveCfg = Release|x64 - {888C6BC4-668C-4C89-97CE-8108E4583F92}.Release|x64.Build.0 = Release|x64 - {888C6BC4-668C-4C89-97CE-8108E4583F92}.Release|x86.ActiveCfg = Release|Win32 - {888C6BC4-668C-4C89-97CE-8108E4583F92}.Release|x86.Build.0 = Release|Win32 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection - GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {3DF6E949-2010-47F5-9C2B-9B17FE0C93F3} - EndGlobalSection -EndGlobal diff --git a/mul/C/C/C.vcxproj b/mul/C/C/C.vcxproj deleted file mode 100644 index 5858a0f..0000000 --- a/mul/C/C/C.vcxproj +++ /dev/null @@ -1,157 +0,0 @@ - - - - - Debug - Win32 - - - Release - Win32 - - - Debug - x64 - - - Release - x64 - - - - 16.0 - Win32Proj - {00d1aa82-d340-4ff6-86ff-ffa68354d442} - C - 10.0 - - - - DynamicLibrary - true - v142 - Unicode - - - Application - false - v142 - true - Unicode - - - Application - true - v142 - Unicode - - - Application - false - v142 - true - Unicode - - - - - - - - - - - - - - - - - - - - - true - - - false - - - true - - - false - - - - Level3 - true - WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions) - true - - - Console - true - Source.def - - - - - Level3 - true - true - true - WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions) - true - - - Console - true - true - true - Source.def - - - - - Level3 - true - _DEBUG;_CONSOLE;%(PreprocessorDefinitions) - true - - - Console - true - Source.def - - - - - Level3 - true - true - true - NDEBUG;_CONSOLE;%(PreprocessorDefinitions) - true - - - Console - true - true - true - Source.def - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/mul/C/C/Source.def b/mul/C/C/Source.def deleted file mode 100644 index 3387fa3..0000000 --- a/mul/C/C/Source.def +++ /dev/null @@ -1,3 +0,0 @@ -LIBRARY "Source" -EXPORTS -mul @1 diff --git a/mul/C/C/mul.cpp b/mul/C/C/mul.cpp deleted file mode 100644 index e027003..0000000 --- a/mul/C/C/mul.cpp +++ /dev/null @@ -1,11 +0,0 @@ - -#include "mul.h" -#include -long long _stdcall mul(int x, int y) -{ - long long m = (long long)x; - long long n = (long long)y; - long long s = m * n; - printf("%lld * %lld = %lld\n",m,n,s); - return s; -} \ No newline at end of file diff --git a/mul/C/C/mul.h b/mul/C/C/mul.h deleted file mode 100644 index a23363e..0000000 --- a/mul/C/C/mul.h +++ /dev/null @@ -1,2 +0,0 @@ -#pragma once -long long _stdcall mul(int x, int y);//ʱ̫ΪɶҪ_stdcallDzӵõʱ쳣 diff --git a/mul/C/UnitTest1/UnitTest1.cpp b/mul/C/UnitTest1/UnitTest1.cpp deleted file mode 100644 index 0385bcf..0000000 --- a/mul/C/UnitTest1/UnitTest1.cpp +++ /dev/null @@ -1,36 +0,0 @@ -#include "pch.h" -#include "CppUnitTest.h" -#include "../C/mul.h" -#include -#include - -#define FilePath "..//ex1.ini" -using namespace Microsoft::VisualStudio::CppUnitTestFramework; - -namespace UnitTest1 -{ - TEST_CLASS(UnitTest1) - { - public: - - int j = 0; - char str[50][10] = { 0 };//iniļ ڵ - int count = CalcCount(50, str);//iniļ ڵĸ - unsigned short i; - TEST_METHOD(TestMethode1) - { - int nReal;// - CString na, nb, nExpect; //b治ͬļֵ - for (j = 0; j < count; j++) - { - GetPrivateProfileString(str[j], "na", " ", na.GetBuffer(20), 20, FilePath); - GetPrivateProfileString(str[j], "nb", " ", nb.GetBuffer(20), 20, FilePath); - GetPrivateProfileString(str[j], "nExpect", " ", nExpect.GetBuffer(20), 20, FilePath); - nReal = mul(_ttoi(na), _ttoi(nb)); //_ttoiCStringתΪ - Assert::AreEqual(nReal, _ttoi(nExpect)); - } - - } - - }; -} diff --git a/mul/C/UnitTest1/UnitTest1.vcxproj b/mul/C/UnitTest1/UnitTest1.vcxproj deleted file mode 100644 index 40ff9d8..0000000 --- a/mul/C/UnitTest1/UnitTest1.vcxproj +++ /dev/null @@ -1,175 +0,0 @@ - - - - - Debug - Win32 - - - Release - Win32 - - - Debug - x64 - - - Release - x64 - - - - 16.0 - {888C6BC4-668C-4C89-97CE-8108E4583F92} - Win32Proj - UnitTest1 - 10.0 - NativeUnitTestProject - - - - DynamicLibrary - true - v142 - MultiByte - false - - - DynamicLibrary - false - v142 - true - Unicode - false - - - DynamicLibrary - true - v142 - Unicode - false - - - DynamicLibrary - false - v142 - true - Unicode - false - - - - - - - - - - - - - - - - - - - - - true - - - true - - - false - - - false - - - - Use - Level3 - true - $(VCInstallDir)UnitTest\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;%(PreprocessorDefinitions) - true - pch.h - - - Windows - $(VCInstallDir)UnitTest\lib;%(AdditionalLibraryDirectories) - ..\C\Debug\mul.obj;%(AdditionalDependencies) - DebugFull - - - - - Use - Level3 - true - $(VCInstallDir)UnitTest\include;%(AdditionalIncludeDirectories) - _DEBUG;%(PreprocessorDefinitions) - true - pch.h - - - Windows - $(VCInstallDir)UnitTest\lib;%(AdditionalLibraryDirectories) - - - - - Use - Level3 - true - true - true - $(VCInstallDir)UnitTest\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;%(PreprocessorDefinitions) - true - pch.h - - - Windows - true - true - $(VCInstallDir)UnitTest\lib;%(AdditionalLibraryDirectories) - - - - - Use - Level3 - true - true - true - $(VCInstallDir)UnitTest\include;%(AdditionalIncludeDirectories) - NDEBUG;%(PreprocessorDefinitions) - true - pch.h - - - Windows - true - true - $(VCInstallDir)UnitTest\lib;%(AdditionalLibraryDirectories) - - - - - Create - Create - Create - Create - - - - - - - - - - \ No newline at end of file diff --git a/mul/C/UnitTest1/pch.cpp b/mul/C/UnitTest1/pch.cpp deleted file mode 100644 index eb28fa4..0000000 --- a/mul/C/UnitTest1/pch.cpp +++ /dev/null @@ -1,45 +0,0 @@ -/// pch.cpp: 与预编译标头对应的源文件 -#include -#include "pch.h" -#include -int CalcCount(int n, char(*str)[10]) -{ - TCHAR chSectionNames[2048] = { 0 };//定义一个数组,保存读取节的名字 - char* pSectionName; //保存找到的某个节名字符串的首地址 - int i = 0; //i指向数组chSectionNames的某个位置,从0开始,顺序后移 - int j = 0; //j用来保存下一个节名字符串的首地址相对于当前i的位置偏移量 - int k = 0; //临时变量,用于给str数组赋值 - int m = 0; //临时变量,用于给str数组赋值 - int count = 0; //统计节的个数 - GetPrivateProfileSectionNames(chSectionNames, 2048, "..//ex1.ini");//获取文件中的节名,每个节名以"\0"分割,保存在chSectionNames中 - //要加头文件 - for (i = 0; i < 2048; i++, j++)//对chSectionName中保存的内容进行拆分 - { - if (chSectionNames[0] == '\0')//如果第一个字符就是0,则说明ini中一个节也没有, - { - break; - } - if (chSectionNames[i] == '\0') - { - count++; - pSectionName = &chSectionNames[i - j]; //找到一个0,则说明从这个字符往前,减掉j个偏移量, - //就是一个节名的首地址 - j = -1; //找到一个节名后,j的值要还原,以统计下一个节名地址的偏移量 - //赋成-1是因为节名字符串的最后一个字符0是终止符,不能作为节名 - for (m = 0; m <= strlen(pSectionName); m++)//把找到的节名保存到str中 - { - str[k][m] = *(pSectionName + m); - } - //str[k][++m] = '\0';//手动给节名加上\0,表示这个节名结束 - k++;//变量自加,用来保存下一个节名 - //在获取节名的时候可以获取该节中键的值,前提是我们知道该节中有哪些键。 - if (chSectionNames[i + 1] == 0) - { - break; //当两个相邻的字符都是0时,则所有的节名都已找到,循环终止 - } - } - } - return count;//返回节名的个数 -} - -// 当使用预编译的头时,需要使用此源文件,编译才能成功。 diff --git a/mul/C/UnitTest1/pch.h b/mul/C/UnitTest1/pch.h deleted file mode 100644 index 90cc566..0000000 --- a/mul/C/UnitTest1/pch.h +++ /dev/null @@ -1,12 +0,0 @@ -// pch.h: 这是预编译标头文件。 -// 下方列出的文件仅编译一次,提高了将来生成的生成性能。 -// 这还将影响 IntelliSense 性能,包括代码完成和许多代码浏览功能。 -// 但是,如果此处列出的文件中的任何一个在生成之间有更新,它们全部都将被重新编译。 -// 请勿在此处添加要频繁更新的文件,这将使得性能优势无效。 - -#ifndef PCH_H -#define PCH_H -int CalcCount(int n, char(*str)[10]); -// 添加要在此处预编译的标头 - -#endif //PCH_H diff --git a/mul/C/ex1.ini b/mul/C/ex1.ini deleted file mode 100644 index c5b9164..0000000 --- a/mul/C/ex1.ini +++ /dev/null @@ -1,14 +0,0 @@ -[TestMethod1] -na=4 -nb=4 -nExpect=16 -[TestMethod2] -na=3 -nb=7 -nExpect=21 -[TestMethod3] -na=3 -nb=5 -nExpect=15 - - diff --git a/mul/mul函数及其单元测试说明.md b/mul/mul函数及其单元测试说明.md deleted file mode 100644 index 8f4c5c0..0000000 --- a/mul/mul函数及其单元测试说明.md +++ /dev/null @@ -1,132 +0,0 @@ -# mul函数说明文档 -## 一、工程说明 -- 本工程的配置类型是一个动态库文件,使用的方法是生成.def文件,目的是生成一个可被其他工程调用动态库,动态库的函数功能是:输入两个int类型的数,返回两数之积。 -## 二、头文件 mul.h ,放的是mul函数的声明 -```C -/* -**函数名: mul -**参数:int ,int -**返回值:long long -**函数功能:传入两个int类型的参数,对其进行乘法运算并返回两数之积,因为两个int型数相乘结果可能会超出int范围,所以返回值用long long。 -*/ -#pragma once -long long _stdcall mul(int x, int y);//这里暂时不太清楚为啥要加_stdcall,但是不加调用的时候会抛异常# -``` -## 三、源文件 mul.cpp ,放的是mul函数的定义 -```C -#include "mul.h" -long long _stdcall mul(int x, int y) -{ - return (long long)x * (long long)y; -} -``` -## 四、def文件内容 Source.def - ``` - LIBRARY "Source" - EXPORTS - mul @1 - - ``` -## 五、单元测试 -- 手动创建ini文件并添加测试样例,之后在单元测试的源文件里对ini文件进行读取解析 ,完成以后获取单元测试的结果,保证代码覆盖率在80%以上。其中对ini文件的读取另封装了函数,见下面的源码。 -1. ini文件内容 exl.ini - ``` - [TestMethod1] #测试样例1 - na=10 #函数第一个入数 - nb=4 #函数第二个入参 - nExpect=40 #两个入参相乘的正确结果 - [TestMethod2] - na=3 - nb=7 - nExpect=21 - [TestMethod3] - na=3 - nb=5 - nExpect=15 - ``` -2. 读取ini文件的函数 int CalcCount(int n, char(*str)[10]) -```C -/* -**函数功能:获取一个ini文件里有多少个节,并通过二维指针数组将节名带出来。 -* 函数名:CalcCount() -* 入参:int n --------节的个数 -* char (*str)[10] --------二维数组指针,10是节名的长度,可以根据需求修改 -*返回值:int --------返回节的个数 -*/ -int CalcCount(int n, char(*str)[10]) -int CalcCount(int n, char(*str)[10]) -{ - TCHAR chSectionNames[2048] = { 0 };//定义一个数组,保存读取节的名字 - char* pSectionName; //保存找到的某个节名字符串的首地址 - int i = 0; //i指向数组chSectionNames的某个位置,从0开始,顺序后移 - int j = 0; //j用来保存下一个节名字符串的首地址相对于当前i的位置偏移量 - int k = 0; //临时变量,用于给str数组赋值 - int m = 0; //临时变量,用于给str数组赋值 - int count = 0; //统计节的个数 - GetPrivateProfileSectionNames(chSectionNames, 2048, "..//ex1.ini");//获取文件中的节名,每个节名以"\0"分割,保存在chSectionNames中 - //要加头文件 - for (i = 0; i < 2048; i++, j++)//对chSectionName中保存的内容进行拆分 - { - if (chSectionNames[0] == '\0')//如果第一个字符就是0,则说明ini中一个节也没有, - { - break; - } - if (chSectionNames[i] == '\0') - { - count++; - pSectionName = &chSectionNames[i - j]; //找到一个0,则说明从这个字符往前,减掉j个偏移量, - //就是一个节名的首地址 - j = -1; //找到一个节名后,j的值要还原,以统计下一个节名地址的偏移量 - //赋成-1是因为节名字符串的最后一个字符0是终止符,不能作为节名 - for (m = 0; m <= strlen(pSectionName); m++)//把找到的节名保存到str中 - { - str[k][m] = *(pSectionName + m); - } - k++;//变量自加,用来保存下一个节名 - //在获取节名的时候可以获取该节中键的值,前提是我们知道该节中有哪些键。 - if (chSectionNames[i + 1] == 0) - { - break; //当两个相邻的字符都是0时,则所有的节名都已找到,循环终止 - } - } - } - return count;//返回节名的个数 -} -``` -3. 单元测试源码 UNITest1.cpp -```C -#include "pch.h" -#include "CppUnitTest.h" -#include -#include -#include "../C/mul.h" -#define FilePath "../ex1.ini" -using namespace Microsoft::VisualStudio::CppUnitTestFramework; - -namespace UnitTest1 -{ - TEST_CLASS(UnitTest1) - { - public: - int j = 0;//循环变量,用来访问ini文件中的 节 - char str[50][10] = { 0 };//存放ini文件里 节的名字 - int count = CalcCount(50, str);//保存ini文件里 节的个数 - TEST_METHOD(TestMethode1) - { - int nReal;//保存运算结果 - CString na, nb, nExpect; //保存测试样例中的键值 - for (j = 0; j < count; j++)//遍历读取测试样例 - { - GetPrivateProfileString(str[j], "na", " ", na.GetBuffer(20), 20, FilePath);//读取第一个参数,保存在na里 - GetPrivateProfileString(str[j], "nb", " ", nb.GetBuffer(20), 20, FilePath);//读取第二个参数,保存在nb里 - GetPrivateProfileString(str[j], "nExpect", " ", nExpect.GetBuffer(20), 20, FilePath);//读取正确的值,保存在nExpect里 - nReal = mul(_ttoi(na), _ttoi(nb)); //_ttoi是CString转为整型,把运算结果给nReal - Assert::AreEqual(nReal, _ttoi(nExpect));//对比运算结果和正确结果 - } - - } - }; -} -``` -4. 附加测试结果 -![](./pic/mul.jpg) diff --git a/mul/pic/mul.jpg b/mul/pic/mul.jpg deleted file mode 100644 index 03799ee..0000000 Binary files a/mul/pic/mul.jpg and /dev/null differ diff --git a/sub/B/.vs/B/v16/.suo b/sub/B/.vs/B/v16/.suo deleted file mode 100644 index b5e498c..0000000 Binary files a/sub/B/.vs/B/v16/.suo and /dev/null differ diff --git a/sub/B/B.sln b/sub/B/B.sln deleted file mode 100644 index c8242df..0000000 --- a/sub/B/B.sln +++ /dev/null @@ -1,41 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio Version 16 -VisualStudioVersion = 16.0.30804.86 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "B", "B\B.vcxproj", "{C9C2CED7-109C-41F8-A522-2BE7855A0D71}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "UnitTest1", "UnitTest1\UnitTest1.vcxproj", "{6F4C0F3A-8892-4407-B3F3-E22C659148C1}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|x64 = Debug|x64 - Debug|x86 = Debug|x86 - Release|x64 = Release|x64 - Release|x86 = Release|x86 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {C9C2CED7-109C-41F8-A522-2BE7855A0D71}.Debug|x64.ActiveCfg = Debug|x64 - {C9C2CED7-109C-41F8-A522-2BE7855A0D71}.Debug|x64.Build.0 = Debug|x64 - {C9C2CED7-109C-41F8-A522-2BE7855A0D71}.Debug|x86.ActiveCfg = Debug|Win32 - {C9C2CED7-109C-41F8-A522-2BE7855A0D71}.Debug|x86.Build.0 = Debug|Win32 - {C9C2CED7-109C-41F8-A522-2BE7855A0D71}.Release|x64.ActiveCfg = Release|x64 - {C9C2CED7-109C-41F8-A522-2BE7855A0D71}.Release|x64.Build.0 = Release|x64 - {C9C2CED7-109C-41F8-A522-2BE7855A0D71}.Release|x86.ActiveCfg = Release|Win32 - {C9C2CED7-109C-41F8-A522-2BE7855A0D71}.Release|x86.Build.0 = Release|Win32 - {6F4C0F3A-8892-4407-B3F3-E22C659148C1}.Debug|x64.ActiveCfg = Debug|x64 - {6F4C0F3A-8892-4407-B3F3-E22C659148C1}.Debug|x64.Build.0 = Debug|x64 - {6F4C0F3A-8892-4407-B3F3-E22C659148C1}.Debug|x86.ActiveCfg = Debug|Win32 - {6F4C0F3A-8892-4407-B3F3-E22C659148C1}.Debug|x86.Build.0 = Debug|Win32 - {6F4C0F3A-8892-4407-B3F3-E22C659148C1}.Release|x64.ActiveCfg = Release|x64 - {6F4C0F3A-8892-4407-B3F3-E22C659148C1}.Release|x64.Build.0 = Release|x64 - {6F4C0F3A-8892-4407-B3F3-E22C659148C1}.Release|x86.ActiveCfg = Release|Win32 - {6F4C0F3A-8892-4407-B3F3-E22C659148C1}.Release|x86.Build.0 = Release|Win32 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection - GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {B0E8A81B-EFF0-4230-AA65-F9B19FF65BF3} - EndGlobalSection -EndGlobal diff --git a/sub/B/B/B.vcxproj b/sub/B/B/B.vcxproj deleted file mode 100644 index b92784c..0000000 --- a/sub/B/B/B.vcxproj +++ /dev/null @@ -1,150 +0,0 @@ - - - - - Debug - Win32 - - - Release - Win32 - - - Debug - x64 - - - Release - x64 - - - - 16.0 - Win32Proj - {c9c2ced7-109c-41f8-a522-2be7855a0d71} - B - 10.0 - - - - DynamicLibrary - true - v142 - Unicode - - - Application - false - v142 - true - Unicode - - - Application - true - v142 - Unicode - - - Application - false - v142 - true - Unicode - - - - - - - - - - - - - - - - - - - - - true - - - false - - - true - - - false - - - - Level3 - true - WIN32;_DEBUG;_CONSOLE;sub_EXPORTS;%(PreprocessorDefinitions) - true - - - Console - true - - - - - Level3 - true - true - true - WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions) - true - - - Console - true - true - true - - - - - Level3 - true - _DEBUG;_CONSOLE;%(PreprocessorDefinitions) - true - - - Console - true - - - - - Level3 - true - true - true - NDEBUG;_CONSOLE;%(PreprocessorDefinitions) - true - - - Console - true - true - true - - - - - - - - - - - - \ No newline at end of file diff --git a/sub/B/B/B.vcxproj.filters b/sub/B/B/B.vcxproj.filters deleted file mode 100644 index 755deeb..0000000 --- a/sub/B/B/B.vcxproj.filters +++ /dev/null @@ -1,27 +0,0 @@ - - - - - {4FC737F1-C7A5-4376-A066-2A32D752A2FF} - cpp;c;cc;cxx;c++;cppm;ixx;def;odl;idl;hpj;bat;asm;asmx - - - {93995380-89BD-4b04-88EB-625FBE52EBFB} - h;hh;hpp;hxx;h++;hm;inl;inc;ipp;xsd - - - {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} - rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms - - - - - 头文件 - - - - - 源文件 - - - \ No newline at end of file diff --git a/sub/B/B/B.vcxproj.user b/sub/B/B/B.vcxproj.user deleted file mode 100644 index 88a5509..0000000 --- a/sub/B/B/B.vcxproj.user +++ /dev/null @@ -1,4 +0,0 @@ - - - - \ No newline at end of file diff --git a/sub/B/B/sub.cpp b/sub/B/B/sub.cpp deleted file mode 100644 index 0e03930..0000000 --- a/sub/B/B/sub.cpp +++ /dev/null @@ -1,5 +0,0 @@ -#include"sub.h" -int sub(int x, int y) -{ - return x - y; -} \ No newline at end of file diff --git a/sub/B/B/sub.h b/sub/B/B/sub.h deleted file mode 100644 index 67e32fb..0000000 --- a/sub/B/B/sub.h +++ /dev/null @@ -1,13 +0,0 @@ -#ifndef _SUB_H_ -#define _SUB_H_ - -#ifdef sub_EXPORTS -#define sub_EXPORTS _declspec(dllexport) -#else -#define sub_EXPORTS _declspec(dllimport) -#endif - -sub_EXPORTS int sub(int x, int y); - -#endif - diff --git a/sub/B/UnitTest1/UnitTest1.cpp b/sub/B/UnitTest1/UnitTest1.cpp deleted file mode 100644 index 1ef2859..0000000 --- a/sub/B/UnitTest1/UnitTest1.cpp +++ /dev/null @@ -1,35 +0,0 @@ -#include "pch.h" -#include "CppUnitTest.h" -#include -#include -#include "../B/sub.h" -#define FilePath "..//ex1.ini" - -using namespace Microsoft::VisualStudio::CppUnitTestFramework; - -namespace UnitTest1 -{ - TEST_CLASS(UnitTest1) - { - public: - int j = 0; - char str[50][10] = { 0 };//iniļ ڵ - int count = CalcCount(50, str);//iniļ ڵĸ - unsigned short i; - - TEST_METHOD(TestMethode1) - { - int nReal;// - CString na, nb, nExpect; //b治ͬļֵ - for (j = 0; j < count; j++)//ѭȡڣֵԱȡ - { - GetPrivateProfileString(str[j], "na", " ", na.GetBuffer(20), 20, FilePath); - GetPrivateProfileString(str[j], "nb", " ", nb.GetBuffer(20), 20, FilePath); - GetPrivateProfileString(str[j], "nExpect", " ", nExpect.GetBuffer(20), 20, FilePath); - nReal = sub(_ttoi(na), _ttoi(nb)); //_ttoiCStringתΪ - Assert::AreEqual(nReal, _ttoi(nExpect)); - } - - } - }; -} diff --git a/sub/B/UnitTest1/UnitTest1.vcxproj b/sub/B/UnitTest1/UnitTest1.vcxproj deleted file mode 100644 index 26ba71c..0000000 --- a/sub/B/UnitTest1/UnitTest1.vcxproj +++ /dev/null @@ -1,175 +0,0 @@ - - - - - Debug - Win32 - - - Release - Win32 - - - Debug - x64 - - - Release - x64 - - - - 16.0 - {6F4C0F3A-8892-4407-B3F3-E22C659148C1} - Win32Proj - UnitTest1 - 10.0 - NativeUnitTestProject - - - - DynamicLibrary - true - v142 - MultiByte - false - - - DynamicLibrary - false - v142 - true - Unicode - false - - - DynamicLibrary - true - v142 - Unicode - false - - - DynamicLibrary - false - v142 - true - Unicode - false - - - - - - - - - - - - - - - - - - - - - true - - - true - - - false - - - false - - - - Use - Level3 - true - $(VCInstallDir)UnitTest\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;%(PreprocessorDefinitions) - true - pch.h - - - Windows - $(VCInstallDir)UnitTest\lib;%(AdditionalLibraryDirectories) - ..\B\Debug\sub.obj;%(AdditionalDependencies) - DebugFull - - - - - Use - Level3 - true - $(VCInstallDir)UnitTest\include;%(AdditionalIncludeDirectories) - _DEBUG;%(PreprocessorDefinitions) - true - pch.h - - - Windows - $(VCInstallDir)UnitTest\lib;%(AdditionalLibraryDirectories) - - - - - Use - Level3 - true - true - true - $(VCInstallDir)UnitTest\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;%(PreprocessorDefinitions) - true - pch.h - - - Windows - true - true - $(VCInstallDir)UnitTest\lib;%(AdditionalLibraryDirectories) - - - - - Use - Level3 - true - true - true - $(VCInstallDir)UnitTest\include;%(AdditionalIncludeDirectories) - NDEBUG;%(PreprocessorDefinitions) - true - pch.h - - - Windows - true - true - $(VCInstallDir)UnitTest\lib;%(AdditionalLibraryDirectories) - - - - - Create - Create - Create - Create - - - - - - - - - - \ No newline at end of file diff --git a/sub/B/UnitTest1/UnitTest1.vcxproj.filters b/sub/B/UnitTest1/UnitTest1.vcxproj.filters deleted file mode 100644 index 83a287b..0000000 --- a/sub/B/UnitTest1/UnitTest1.vcxproj.filters +++ /dev/null @@ -1,30 +0,0 @@ - - - - - {4FC737F1-C7A5-4376-A066-2A32D752A2FF} - cpp;c;cc;cxx;c++;cppm;ixx;def;odl;idl;hpj;bat;asm;asmx - - - {93995380-89BD-4b04-88EB-625FBE52EBFB} - h;hh;hpp;hxx;h++;hm;inl;inc;ipp;xsd - - - {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} - rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms - - - - - 源文件 - - - 源文件 - - - - - 头文件 - - - \ No newline at end of file diff --git a/sub/B/UnitTest1/UnitTest1.vcxproj.user b/sub/B/UnitTest1/UnitTest1.vcxproj.user deleted file mode 100644 index 88a5509..0000000 --- a/sub/B/UnitTest1/UnitTest1.vcxproj.user +++ /dev/null @@ -1,4 +0,0 @@ - - - - \ No newline at end of file diff --git a/sub/B/UnitTest1/pch.cpp b/sub/B/UnitTest1/pch.cpp deleted file mode 100644 index d2bdc54..0000000 --- a/sub/B/UnitTest1/pch.cpp +++ /dev/null @@ -1,45 +0,0 @@ -// pch.cpp: 与预编译标头对应的源文件 - -#include "pch.h" -#include -#include -int CalcCount(int n, char(*str)[10]) -{ - TCHAR chSectionNames[2048] = { 0 };//定义一个数组,保存读取节的名字 - char* pSectionName; //保存找到的某个节名字符串的首地址 - int i = 0; //i指向数组chSectionNames的某个位置,从0开始,顺序后移 - int j = 0; //j用来保存下一个节名字符串的首地址相对于当前i的位置偏移量 - int k = 0; //临时变量,用于给str数组赋值 - int m = 0; //临时变量,用于给str数组赋值 - int count = 0; //统计节的个数 - GetPrivateProfileSectionNames(chSectionNames, 2048, "..//ex1.ini");//获取文件中的节名,每个节名以"\0"分割,保存在chSectionNames中 - //要加头文件 - for (i = 0; i < 2048; i++, j++)//对chSectionName中保存的内容进行拆分 - { - if (chSectionNames[0] == '\0')//如果第一个字符就是0,则说明ini中一个节也没有, - { - break; - } - if (chSectionNames[i] == '\0') - { - count++; - pSectionName = &chSectionNames[i - j]; //找到一个0,则说明从这个字符往前,减掉j个偏移量, - //就是一个节名的首地址 - j = -1; //找到一个节名后,j的值要还原,以统计下一个节名地址的偏移量 - //赋成-1是因为节名字符串的最后一个字符0是终止符,不能作为节名 - for (m = 0; m <= strlen(pSectionName); m++)//把找到的节名保存到str中 - { - str[k][m] = *(pSectionName + m); - } - //str[k][++m] = '\0';//手动给节名加上\0,表示这个节名结束 - k++;//变量自加,用来保存下一个节名 - //在获取节名的时候可以获取该节中键的值,前提是我们知道该节中有哪些键。 - if (chSectionNames[i + 1] == 0) - { - break; //当两个相邻的字符都是0时,则所有的节名都已找到,循环终止 - } - } - } - return count;//返回节名的个数 -} -// 当使用预编译的头时,需要使用此源文件,编译才能成功。 diff --git a/sub/B/UnitTest1/pch.h b/sub/B/UnitTest1/pch.h deleted file mode 100644 index 90cc566..0000000 --- a/sub/B/UnitTest1/pch.h +++ /dev/null @@ -1,12 +0,0 @@ -// pch.h: 这是预编译标头文件。 -// 下方列出的文件仅编译一次,提高了将来生成的生成性能。 -// 这还将影响 IntelliSense 性能,包括代码完成和许多代码浏览功能。 -// 但是,如果此处列出的文件中的任何一个在生成之间有更新,它们全部都将被重新编译。 -// 请勿在此处添加要频繁更新的文件,这将使得性能优势无效。 - -#ifndef PCH_H -#define PCH_H -int CalcCount(int n, char(*str)[10]); -// 添加要在此处预编译的标头 - -#endif //PCH_H diff --git a/sub/B/ex1.ini b/sub/B/ex1.ini deleted file mode 100644 index a6504ef..0000000 --- a/sub/B/ex1.ini +++ /dev/null @@ -1,9 +0,0 @@ -[TestMethod1] -na=12 -nb=4 -nExpect=8 -[TestMethod2] -na=7 -nb=3 -nExpect=4 - diff --git a/sub/pic/sub.jpg b/sub/pic/sub.jpg deleted file mode 100644 index 1cd65f6..0000000 Binary files a/sub/pic/sub.jpg and /dev/null differ diff --git a/sub/sub函数及其单元测试说明.md b/sub/sub函数及其单元测试说明.md deleted file mode 100644 index cee8b23..0000000 --- a/sub/sub函数及其单元测试说明.md +++ /dev/null @@ -1,129 +0,0 @@ -# sub函数说明文档 -## 一、工程说明 -- 本工程的配置类型是一个动态库文件,目的是生成一个可被其他工程调用动态库,动态库的函数功能是:输入两个int类型的数,返回两数之差。 -## 二、头文件 sub.h ,放的是sub函数声明 -```C -#ifndef _SUB_H_ -#define _SUB_H_ -#ifdef sub_EXPORTS -#define sub_EXPORTS _declspec(dllexport) -#else -#define sub_EXPORTS _declspec(dllimport) -#endif -/* -**函数名: sub -**参数:int ,int -**返回值:int -**函数功能:传入两个int类型的参数,对其进行减法运算并返回差值。 -*/ -sub_EXPORTS int sub(int x, int y); - -#endif -``` -## 三、源文件 sub.cpp ,放的是sub函数的另一 -```C -#include"sub.h" -int sub(int x, int y) -{ - return x - y; -} -``` -## 四、单元测试 -- 手动创建ini文件并添加测试样例,之后在单元测试的源文件里对ini文件进行读取解析 ,完成以后获取单元测试的结果,保证代码覆盖率在80%以上。其中对ini文件的读取另封装了函数,见下面的源码。 -1. ini文件内容 exl.ini - ``` - [TestMethod1] #测试样例1 - na=10 #函数第一个入数 - nb=4 #函数第二个入参 - nExpect=6 #两个入参相减的正确结果 - [TestMethod2] - na=7 - nb=3 - nExpect=4 - ``` - 2. 读取ini文件的函数 int CalcCount(int n, char(*str)[10]) -```C -/* -**函数功能:获取一个ini文件里有多少个节,并通过二维指针数组将节名带出来。 -* 函数名:CalcCount() -* 入参:int n --------节的个数 -* char (*str)[10] --------二维数组指针,10是节名的长度,可以根据需求修改 -*返回值:int --------返回节的个数 -*/ -int CalcCount(int n, char(*str)[10]) -int CalcCount(int n, char(*str)[10]) -{ - TCHAR chSectionNames[2048] = { 0 };//定义一个数组,保存读取节的名字 - char* pSectionName; //保存找到的某个节名字符串的首地址 - int i = 0; //i指向数组chSectionNames的某个位置,从0开始,顺序后移 - int j = 0; //j用来保存下一个节名字符串的首地址相对于当前i的位置偏移量 - int k = 0; //临时变量,用于给str数组赋值 - int m = 0; //临时变量,用于给str数组赋值 - int count = 0; //统计节的个数 - GetPrivateProfileSectionNames(chSectionNames, 2048, "..//ex1.ini");//获取文件中的节名,每个节名以"\0"分割,保存在chSectionNames中 - //要加头文件 - for (i = 0; i < 2048; i++, j++)//对chSectionName中保存的内容进行拆分 - { - if (chSectionNames[0] == '\0')//如果第一个字符就是0,则说明ini中一个节也没有, - { - break; - } - if (chSectionNames[i] == '\0') - { - count++; - pSectionName = &chSectionNames[i - j]; //找到一个0,则说明从这个字符往前,减掉j个偏移量, - //就是一个节名的首地址 - j = -1; //找到一个节名后,j的值要还原,以统计下一个节名地址的偏移量 - //赋成-1是因为节名字符串的最后一个字符0是终止符,不能作为节名 - for (m = 0; m <= strlen(pSectionName); m++)//把找到的节名保存到str中 - { - str[k][m] = *(pSectionName + m); - } - k++;//变量自加,用来保存下一个节名 - //在获取节名的时候可以获取该节中键的值,前提是我们知道该节中有哪些键。 - if (chSectionNames[i + 1] == 0) - { - break; //当两个相邻的字符都是0时,则所有的节名都已找到,循环终止 - } - } - } - return count;//返回节名的个数 -} -``` -3. 单元测试源码 UNITest1.cpp -```C -#include "pch.h" -#include "CppUnitTest.h" -#include -#include -#include "../B/sub.h" -#define FilePath "../ex1.ini" -using namespace Microsoft::VisualStudio::CppUnitTestFramework; - -namespace UnitTest1 -{ - TEST_CLASS(UnitTest1) - { - public: - int j = 0;//循环变量,用来访问ini文件中的 节 - char str[50][10] = { 0 };//存放ini文件里 节的名字 - int count = CalcCount(50, str);//保存ini文件里 节的个数 - TEST_METHOD(TestMethode1) - { - int nReal;//保存运算结果 - CString na, nb, nExpect; //保存测试样例中的键值 - for (j = 0; j < count; j++)//遍历读取测试样例 - { - GetPrivateProfileString(str[j], "na", " ", na.GetBuffer(20), 20, FilePath);//读取第一个参数,保存在na里 - GetPrivateProfileString(str[j], "nb", " ", nb.GetBuffer(20), 20, FilePath);//读取第二个参数,保存在nb里 - GetPrivateProfileString(str[j], "nExpect", " ", nExpect.GetBuffer(20), 20, FilePath);//读取正确的值,保存在nExpect里 - nReal = sub(_ttoi(na), _ttoi(nb)); //_ttoi是CString转为整型,把运算结果给nReal - Assert::AreEqual(nReal, _ttoi(nExpect));//对比运算结果和正确结果 - } - - } - }; -} -``` -4. 附加测试结果 -![](./pic/sub.jpg)