From dcb0d5f60bd9edc480f3f9251ada56083b3e3e7c Mon Sep 17 00:00:00 2001 From: linyongji Date: Thu, 14 Jan 2021 19:01:01 +0800 Subject: [PATCH] =?UTF-8?q?=E4=B8=BB=E5=88=86=E6=94=AF=E4=B8=8B=E5=AE=8C?= =?UTF-8?q?=E6=88=90=E4=BA=861,2,3=E9=A2=98=E7=9A=84=E5=8D=95=E5=85=83?= =?UTF-8?q?=E6=B5=8B=E8=AF=95=EF=BC=8C=E5=BF=BD=E7=95=A5=E4=BA=86=E4=B8=8D?= =?UTF-8?q?=E9=87=8D=E8=A6=81=E7=9A=84=E6=96=87=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 35 +++++++++++ Alogrithm/.vs/Alogrithm/v16/.suo | Bin 58880 -> 60928 bytes Alogrithm/Alogrithm/Alogrithm.vcxproj | 3 + Alogrithm/Alogrithm/Alogrithm.vcxproj.filters | 6 ++ .../config/1_ContainsNearbyDuplicate.ini | 26 +++++--- .../config/2_ExcelSheetColumnTiTle.ini | 21 +++++++ Alogrithm/Alogrithm/config/3_bool IsUgly.ini | 15 +++++ .../Alogrithm/src/2_ExcelSheetColumnTitle.cpp | 6 +- Alogrithm/UnitTest/UnitTest.cpp | 56 +++++++++++++++--- Alogrithm/UnitTest/UnitTest.vcxproj | 6 +- Alogrithm/UnitTest/pch.cpp | 33 +++++++++-- Alogrithm/UnitTest/pch.h | 8 ++- 12 files changed, 189 insertions(+), 26 deletions(-) create mode 100644 Alogrithm/Alogrithm/config/2_ExcelSheetColumnTiTle.ini diff --git a/.gitignore b/.gitignore index 2a41173..63ee83b 100644 --- a/.gitignore +++ b/.gitignore @@ -56,3 +56,38 @@ Alogrithm/.vs/Alogrithm/v16/Browse.VC.db-wal Alogrithm/.vs/Alogrithm/v16/Browse.VC.opendb Alogrithm/.vs/Alogrithm/v16/Solution.VC.db-shm Alogrithm/.vs/Alogrithm/v16/Solution.VC.db-wal +Alogrithm/TestResults/fb202b31-a40d-4970-8414-add42e85ae22/林_MI-1 2021-01-14 16_23_23.coverage +Alogrithm/UnitTest/Debug/UnitTest.Build.CppClean.log +Alogrithm/UnitTest/Debug/UnitTest.dll.recipe +Alogrithm/UnitTest/Debug/UnitTest.obj +Alogrithm/UnitTest/Debug/UnitTest.vcxproj.FileListAbsolute.txt +Alogrithm/UnitTest/Debug/UnitTest.tlog/link.12728.delete.1.tlog +Alogrithm/UnitTest/Debug/UnitTest.tlog/link.command.1.tlog +Alogrithm/UnitTest/Debug/UnitTest.tlog/link.read.1.tlog +Alogrithm/UnitTest/Debug/UnitTest.tlog/link.write.1.tlog +Alogrithm/UnitTest/Debug/UnitTest.tlog/UnitTest.write.1u.tlog +Alogrithm/TestResults/84c6ace1-133c-41c3-9b02-94db81e6aa3a/林_MI-1 2021-01-14 18_54_25.coverage +Alogrithm/TestResults/8b615f86-7689-4378-a8a0-e09120490e1d/林_MI-1 2021-01-14 15_48_38.coverage +Alogrithm/TestResults/8e613af4-68a7-4f48-8525-48d0cd2c3928/林_MI-1 2021-01-14 18_36_56.coverage +Alogrithm/TestResults/8fda7b28-3ed2-4ea0-bf3c-5a9a28ea695c/林_MI-1 2021-01-14 18_41_23.coverage +Alogrithm/TestResults/a0595beb-6f55-4119-8993-a7004136a5b6/林_MI-1 2021-01-14 15_10_41.coverage +Alogrithm/TestResults/a556f927-382c-4f2c-b2c7-5fe00c31dcb5/林_MI-1 2021-01-14 16_21_32.coverage +Alogrithm/TestResults/c6594eae-705b-4566-9bda-127da6acb938/林_MI-1 2021-01-14 15_15_47.coverage +Alogrithm/TestResults/cce6119d-a3de-446e-95bc-b2f5f83123cb/林_MI-1 2021-01-14 16_22_04.coverage +Alogrithm/TestResults/cee69d67-755c-4b31-8eec-9107e82975bc/林_MI-1 2021-01-14 15_48_01.coverage +Alogrithm/TestResults/e0dd8071-2170-417d-9549-6021400ffa4b/林_MI-1 2021-01-14 18_38_32.coverage +Alogrithm/TestResults/03c6f374-8594-4b77-ba6c-eb0b342ba092/林_MI-1 2021-01-14 16_21_54.coverage +Alogrithm/TestResults/0ff3c1ff-496e-4801-9b05-b4b37d173d29/林_MI-1 2021-01-14 18_35_54.coverage +Alogrithm/TestResults/180d1d1c-2be8-451c-9447-3035ebbc58c3/林_MI-1 2021-01-14 18_54_12.coverage +Alogrithm/TestResults/1ace4913-8399-4b21-ba73-ecb59f5c0e16/林_MI-1 2021-01-14 15_12_41.coverage +Alogrithm/TestResults/327189f3-d0cc-4bd4-baef-11656043e1fb/林_MI-1 2021-01-14 16_22_20.coverage +Alogrithm/TestResults/5e078520-30dd-446b-ae53-875962257cfe/林_MI-1 2021-01-14 16_22_28.coverage +Alogrithm/TestResults/664ef07b-ae35-4d96-9a2b-2ef0e924c550/林_MI-1 2021-01-14 16_21_42.coverage +Alogrithm/TestResults/6b39ec81-5639-4a8b-8905-11278c842fa8/林_MI-1 2021-01-14 18_38_46.coverage +Alogrithm/TestResults/72ff8dca-92fc-4877-b1c8-1aedc3802082/林_MI-1 2021-01-14 15_11_48.coverage +Alogrithm/TestResults/73ea4536-5f55-4a46-991b-139ffea8ade3/林_MI-1 2021-01-14 18_41_17.coverage +Alogrithm/Debug/UnitTest.dll +Alogrithm/Debug/UnitTest.exp +Alogrithm/Debug/UnitTest.ilk +Alogrithm/Debug/UnitTest.lib +Alogrithm/Debug/UnitTest.pdb diff --git a/Alogrithm/.vs/Alogrithm/v16/.suo b/Alogrithm/.vs/Alogrithm/v16/.suo index 544735b042fa3f30c2f84f66b0ba9c4a48bf7ed9..9ab78c74fc3a858a24e3f245bf8baf270c660707 100644 GIT binary patch literal 60928 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

;HA@^KLZC`!?}lP!fXt3>(575;y=OqF zv8I}2q)dWdL7C>%JXsnx2=s-^3rD6FhEf;GXm^5T60?8L_$IoIH9}KNu8gpKy4d4L=f^=;VzOmg zlu@vu8IA?Wob!j4*o|OGk$_}wJqv}Vxw&BS(7?sHc{0L$I<#=iU}#F~2qHBQL{g!r zyhnea@T=`AxawQZ9M|b(IXQ%syV&^k3obB&Uu41?ckp{N!PhxSv=B2q-oAWCg&BgWQRWViYmq%4D z+61+xEwikqv0@86UXSpkE;Q94((wQ6j|Iu#*$EL4IiR5KDG2{nf`J&cg#MJ@s;VmB7J zb}k$$_r$}tUFsY4(pjo;yB9s4u2zOv)_{kK1HocKy6^`+Ld*zH))AQ~JYks-zqd&~~gdf<*Z8(KCHNDTA z;mWKk%lB*HiqRG>TmT1N#|l8RClMk(+9V}w+XRCHbx^MgK-hAGaDECbHiY11N5aok zp_qFA*R7Tb9{Yo8#o}%AlJ+)@9VYG(?CicCUszkDl4^B={T1mU?SLPgIp{}5>6@Sy zH9QLSJ<~MS-yNYSF1(#6U?{7V&4;G!Tmkhda0>vO3714sm?#4CLW|2hY>0sgI#hEe z?G7Cy++n&ZdDseXu;oJI?BasPiiXDGn(95!nb84?f#Aq0?!$k%KNJ;m`Lp*Q>Nqib z>F=dZe>8rcaQ?!*YvxZ~Zj67fQ3!d^c_19(mcQjbKDytC3jvd~OW;aF3#Gn|HY>2_G%i2KUP^tiK*z35CV|e(G`IC*5wv?Z562&tfyH!tU(mxV z+1R*e%~}Ab4~CLiI>f8B5SDA?btTY0FWiCW=Aat~yPU%}JUW=1dk#GIZ$QNKj%sVw zXT<4s_=`@|X>`$Atw|fL*C%PB$sscJNeM~GCS5!9_x6BcZy&htf0Dg`vpapqg+Ay% zJQKd&TVky>Q~p-lF>%V)1xJ@fOtG(a6X2zF*_*WQ$nXX)9-hHo6`tkeoM70wZ(48t zOH4>6Wpteg_R*$p2HxbLF;#^atdk-pcph=sgpXa>I}f(z zxH?k?O}UwAN7 z5otz6IaqvPrhK>y!cQpZ3_`Xtb}`(c@Ev+*!8L|=fSB$W_;T-C9=Hahb*NMuhK){j zi$>=Rf9lqtst4UO!sh536Zs*9$L*&%l``@G~!uF&79n5cj z@2p3Y5Ap?RUANEw>youIar~*>r&hJ6{rjr|pEZFZ&;))#z$x3~Z zOv7k0`xeo}YotRo$CTIC55HD1;*#LSWs$dn2)7W2qA&)&`8~oPSe{bR7YQjrZI6&P z-8_xzl#(0w3ZpJ$WMHyI(PJaFi(ufWH++#EfHL~xvPP5zLH&mkDTT~OP@?<^qi4W) z==nc4P20OahICXv>6RRz&u#yM4C6W_()20IG=6rZgjqR3eAO~C@R6z0I3ifpYr=pz zDg;d;-GFG`*%ntf;GQ9Ud9S80jMW%ztt}F{J^SEbFx>~bw`lN{bH|7zBWrJx+@49a zL0L}{nS4lMLb6V0)TQfm?T75&Ml#Yf(g|2^>IP`p6bhac9N@_EOx)THzrNYrVjoJ| z;p({vl)9j_#P&{d))i-wbB%SIUkR&R$nd0hBY72$pikVkQT4OPxhS_9&$-Bz0=+2B z8U;L;s^>(^!20~8lGM<`C0z~ DzFpR* diff --git a/Alogrithm/Alogrithm/Alogrithm.vcxproj b/Alogrithm/Alogrithm/Alogrithm.vcxproj index 8762563..a50f01e 100644 --- a/Alogrithm/Alogrithm/Alogrithm.vcxproj +++ b/Alogrithm/Alogrithm/Alogrithm.vcxproj @@ -92,6 +92,7 @@ Console true + ../Alogrithm/Debug/2_ExcelSheetColumnTitle.obj;%(AdditionalDependencies) @@ -150,6 +151,8 @@ + + diff --git a/Alogrithm/Alogrithm/Alogrithm.vcxproj.filters b/Alogrithm/Alogrithm/Alogrithm.vcxproj.filters index f43ee80..98f0953 100644 --- a/Alogrithm/Alogrithm/Alogrithm.vcxproj.filters +++ b/Alogrithm/Alogrithm/Alogrithm.vcxproj.filters @@ -52,5 +52,11 @@ 资源文件\config + + 资源文件\config + + + 资源文件\config + \ No newline at end of file diff --git a/Alogrithm/Alogrithm/config/1_ContainsNearbyDuplicate.ini b/Alogrithm/Alogrithm/config/1_ContainsNearbyDuplicate.ini index e8edb69..adc5d77 100644 --- a/Alogrithm/Alogrithm/config/1_ContainsNearbyDuplicate.ini +++ b/Alogrithm/Alogrithm/config/1_ContainsNearbyDuplicate.ini @@ -1,11 +1,23 @@ [Test1] -nums=1,2,3,1 -nExpect=1 -[Test1] -nums=1,0,1,1 -nExpect=1 +array=1,2,3,1 +key=3 +output=1 +[Test2] +array=1,0,1,1 +key=1 +output=1 [Test3] -nums=1,2,3,1,2,3 -nExpect=0 +array=1,2,3,1,2,3 +key=2 +output=0 +[Test4] +array=1,2,3,1,2,3 +key=3 +output=1 +[Test5] +array=1,0,3,4,2,1,0,3,4 +key=3 +output=0 + diff --git a/Alogrithm/Alogrithm/config/2_ExcelSheetColumnTiTle.ini b/Alogrithm/Alogrithm/config/2_ExcelSheetColumnTiTle.ini new file mode 100644 index 0000000..062ee8e --- /dev/null +++ b/Alogrithm/Alogrithm/config/2_ExcelSheetColumnTiTle.ini @@ -0,0 +1,21 @@ +[Test1] +Na=1 +nExpect=A +[Test2] +Na=2 +nExpect=B +[Test3] +Na=26 +nExpect=Z +[Test4] +Na=1 +nExpect=A +[Test5] +Na=27 +nExpect=AA +[Test6] +Na=52 +nExpect=AZ +[Test7] +Na=53 +nExpect=AAA \ No newline at end of file diff --git a/Alogrithm/Alogrithm/config/3_bool IsUgly.ini b/Alogrithm/Alogrithm/config/3_bool IsUgly.ini index e69de29..9feb0b3 100644 --- a/Alogrithm/Alogrithm/config/3_bool IsUgly.ini +++ b/Alogrithm/Alogrithm/config/3_bool IsUgly.ini @@ -0,0 +1,15 @@ +[Test1] +Na=6 +nExpect=1 +[Test2] +Na=3 +nExpect=1 +[Test3] +Na=14 +nExpect=0 +[Test4] +Na=15 +nExpect=1 +[Test5] +Na=20 +nExpect=1 diff --git a/Alogrithm/Alogrithm/src/2_ExcelSheetColumnTitle.cpp b/Alogrithm/Alogrithm/src/2_ExcelSheetColumnTitle.cpp index 877cfff..f5c0164 100644 --- a/Alogrithm/Alogrithm/src/2_ExcelSheetColumnTitle.cpp +++ b/Alogrithm/Alogrithm/src/2_ExcelSheetColumnTitle.cpp @@ -3,7 +3,7 @@ //һ Excel ӦƣExcelҲУ򷵻"" char* ExcelSheetColumnTitle(int n) { - char str[STR_LEN] = { 0 }; + static char str[STR_LEN] = { 0 }; int i = 0; while (n > 0) { if ((n > 0) && (n <= 26)) { @@ -15,6 +15,6 @@ char* ExcelSheetColumnTitle(int n) n = n - 26; i++; } - printf("%s", str); - return str; + char* pstr = str; + return pstr; } \ No newline at end of file diff --git a/Alogrithm/UnitTest/UnitTest.cpp b/Alogrithm/UnitTest/UnitTest.cpp index fcdc2e9..02a5cee 100644 --- a/Alogrithm/UnitTest/UnitTest.cpp +++ b/Alogrithm/UnitTest/UnitTest.cpp @@ -1,18 +1,60 @@ #include "pch.h" #include "CppUnitTest.h" -#define FilePath "../Alogrithm/1_ContainsNearbyDuplicate.ini" using namespace Microsoft::VisualStudio::CppUnitTestFramework; +#define FileName_1 "../Alogrithm/config/1_ContainsNearbyDuplicate.ini" +#define FileName_2 "../Alogrithm/config/2_ExcelSheetColumnTiTle.ini" +#define FileName_3 "../Alogrithm/config/3_bool IsUgly.ini" + namespace UnitTest { - TEST_CLASS(UnitTest) + TEST_CLASS(UnitTest_1) { - public: - - - TEST_METHOD(TestMethode2) + TEST_METHOD(TestMethode1) { - + char Section_Name[100][10] = { 0 }; + int Section_Count = CalcCount(100, Section_Name, FileName_1); + int array_count = 0; + int* Section_Value; + CString Na, Nb, nExpect; + for (int i = 0; i < Section_Count; i++) { + GetPrivateProfileString(Section_Name[i], "array", " ", Na.GetBuffer(200), 200, FileName_1); + GetPrivateProfileString(Section_Name[i], "key", " ", Nb.GetBuffer(20), 20, FileName_1); + GetPrivateProfileString(Section_Name[i], "output", " ", nExpect.GetBuffer(20), 20, FileName_1); + Section_Value = str_device(Na, &array_count); + bool nReal = ContainsNearbyDuplicate(Section_Value, array_count, _ttoi(Nb)); + Assert::AreEqual(nReal, CstrToBool(nExpect)); + } } }; + TEST_CLASS(UnitTest_2) + { + TEST_METHOD(TestMethode1) + { + char Section_Name[100][10] = { 0 }; + int Section_Count = CalcCount(100, Section_Name, FileName_2); + CString Na, nExpect; + for (int i = 0; i < Section_Count; i++) { + GetPrivateProfileString(Section_Name[i], "Na", " ", Na.GetBuffer(20), 20, FileName_2); + GetPrivateProfileString(Section_Name[i], "nExpect", " ", nExpect.GetBuffer(100), 100, FileName_2); + char* nReal = ExcelSheetColumnTitle(_ttoi(Na)); + Assert::AreEqual(*nReal, *nExpect); + } + } + }; + TEST_CLASS(UnitTest_3) + { + TEST_METHOD(TestMethode3) + { + char Section_Name[100][10] = { 0 }; + int Section_Count = CalcCount(100, Section_Name, FileName_3); + CString Na, nExpect; + for (int i = 0; i < Section_Count; i++) { + GetPrivateProfileString(Section_Name[i], "Na", " ", Na.GetBuffer(20), 20, FileName_3); + GetPrivateProfileString(Section_Name[i], "nExpect", " ", nExpect.GetBuffer(20), 20, FileName_3); + bool nReal = IsUgly(_ttoi(Na)); + Assert::AreEqual(nReal, CstrToBool(nExpect)); + } + } + }; } diff --git a/Alogrithm/UnitTest/UnitTest.vcxproj b/Alogrithm/UnitTest/UnitTest.vcxproj index 976a2c6..c535e32 100644 --- a/Alogrithm/UnitTest/UnitTest.vcxproj +++ b/Alogrithm/UnitTest/UnitTest.vcxproj @@ -93,13 +93,17 @@ Level3 true $(VCInstallDir)UnitTest\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;%(PreprocessorDefinitions) + WIN32;_DEBUG;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) true pch.h + stdcpp14 + stdc11 Windows $(VCInstallDir)UnitTest\lib;%(AdditionalLibraryDirectories) + DebugFull + ../Alogrithm/Debug/1_ContainsNearbyDuplicate.obj;../Alogrithm/Debug/2_ExcelSheetColumnTitle.obj;../Alogrithm/Debug/3_bool IsUgly.obj;%(AdditionalDependencies) diff --git a/Alogrithm/UnitTest/pch.cpp b/Alogrithm/UnitTest/pch.cpp index 479152e..3936926 100644 --- a/Alogrithm/UnitTest/pch.cpp +++ b/Alogrithm/UnitTest/pch.cpp @@ -1,7 +1,13 @@ // pch.cpp: 与预编译标头对应的源文件 #include "pch.h" -int CalcCount(int n, char(*str)[10]) + + +//***************************************************************************************************// +//********读取ini文件函数,返回值为文件节的个数,入参为字符串数组的首地址,带回读取到的节名***************// +//***************************************************************************************************// + +int CalcCount(int n, char(*str)[10],const char *FileName) { TCHAR chSectionNames[2048] = { 0 };//定义一个数组,保存读取节的名字 char* pSectionName; //保存找到的某个节名字符串的首地址 @@ -10,7 +16,7 @@ int CalcCount(int n, char(*str)[10]) int k = 0; //临时变量,用于给str数组赋值 int m = 0; //临时变量,用于给str数组赋值 int count = 0; //统计节的个数 - GetPrivateProfileSectionNames(chSectionNames, 2048, "..//ex1.ini");//获取文件中的节名,每个节名以"\0"分割,保存在chSectionNames中 + GetPrivateProfileSectionNames(chSectionNames, 2048, FileName);//获取文件中的节名,每个节名以"\0"分割,保存在chSectionNames中 //要加头文件 for (i = 0; i < 2048; i++, j++)//对chSectionName中保存的内容进行拆分 { @@ -29,7 +35,6 @@ int CalcCount(int n, char(*str)[10]) { str[k][m] = *(pSectionName + m); } - //str[k][++m] = '\0';//手动给节名加上\0,表示这个节名结束 k++;//变量自加,用来保存下一个节名 //在获取节名的时候可以获取该节中键的值,前提是我们知道该节中有哪些键。 if (chSectionNames[i + 1] == 0) @@ -41,12 +46,19 @@ int CalcCount(int n, char(*str)[10]) return count;//返回节名的个数 } -int* str_device(CString* str, int* value_count) + +#if 1 +//***************************************************************************************************// +//************切割字符串函数,返回值为int数组的首地址,通过传入int指针带回数组元素个数***************// +//***************************************************************************************************// +int* str_device(CString str, int* value_count) { char* token; //存放被切割后的第一个子串 static int Section_devide[500];//存放字符切割完成以后的数组元素值 char Section_value[500] = { 0 };//存放nums转换成string类型的结果 - strcpy(Section_value, *str);//将CString类型的字符串转换成char类型,方便后面切割字符串 + memset(Section_value, 0, sizeof(char) * 500); + *value_count = 0; + strcpy(Section_value, str);//将CString类型的字符串转换成char类型,方便后面切割字符串 //获得切割到的第一个字符串 token = strtok(Section_value, ","); /* 继续获取其他的子字符串 */ @@ -56,4 +68,13 @@ int* str_device(CString* str, int* value_count) (*value_count)++; //记录存了多少个元素 } return Section_devide; //返回数组首地址 -} \ No newline at end of file +} +#endif + +bool CstrToBool(CString str) +{ + if (str == "1") { + return 1; + } + return 0; +} diff --git a/Alogrithm/UnitTest/pch.h b/Alogrithm/UnitTest/pch.h index b8b5096..c6d59d0 100644 --- a/Alogrithm/UnitTest/pch.h +++ b/Alogrithm/UnitTest/pch.h @@ -13,9 +13,13 @@ #include #include +#include"../Alogrithm/include/1_ContainsNearbyDuplicate.h" +#include"../Alogrithm/include/2_ExcelSheetColumnTitle.h" +#include"../Alogrithm/include/3_bool IsUgly.h" -int CalcCount(int n, char(*str)[10]); -int* str_device(CString* str, int* value_count); +int CalcCount(int n, char(*str)[10],const char *FileName); +int* str_device(CString str, int* value_count); +bool CstrToBool(CString str); #endif //PCH_H