Browse Source

分支4完成了题目,并进行了单元测试

master
linyongji 4 years ago
parent
commit
39223ae02a
11 changed files with 86 additions and 4 deletions
  1. +3
    -0
      .gitignore
  2. BIN
      Alogrithm/.vs/Alogrithm/v16/.suo
  3. +3
    -0
      Alogrithm/Alogrithm/Alogrithm.vcxproj
  4. +9
    -0
      Alogrithm/Alogrithm/Alogrithm.vcxproj.filters
  5. +18
    -0
      Alogrithm/Alogrithm/config/4_IsPalindrome.ini
  6. +3
    -0
      Alogrithm/Alogrithm/include/4_IsPalindrome.h
  7. +28
    -0
      Alogrithm/Alogrithm/src/4_IsPalindrome.cpp
  8. +2
    -2
      Alogrithm/Alogrithm/src/main.cpp
  9. +17
    -1
      Alogrithm/UnitTest/UnitTest.cpp
  10. +1
    -1
      Alogrithm/UnitTest/UnitTest.vcxproj
  11. +2
    -0
      Alogrithm/UnitTest/pch.h

+ 3
- 0
.gitignore View File

@@ -91,3 +91,6 @@ Alogrithm/Debug/UnitTest.exp
Alogrithm/Debug/UnitTest.ilk
Alogrithm/Debug/UnitTest.lib
Alogrithm/Debug/UnitTest.pdb
Alogrithm/.vs/Alogrithm/v16/ipch/AutoPCH/b7e343aeb2d15224/4_ISPALINDROME.ipch
Alogrithm/Alogrithm/Debug/4_IsPalindrome.obj
Alogrithm/TestResults/6fafde8c-d7b3-4676-8e54-90b128e5f315/林_MI-1 2021-01-15 09_25_22.coverage

BIN
Alogrithm/.vs/Alogrithm/v16/.suo View File


+ 3
- 0
Alogrithm/Alogrithm/Alogrithm.vcxproj View File

@@ -143,17 +143,20 @@
<ClCompile Include="src\1_ContainsNearbyDuplicate.cpp" />
<ClCompile Include="src\2_ExcelSheetColumnTitle.cpp" />
<ClCompile Include="src\3_bool IsUgly.cpp" />
<ClCompile Include="src\4_IsPalindrome.cpp" />
<ClCompile Include="src\main.cpp" />
</ItemGroup>
<ItemGroup>
<ClInclude Include="include\1_ContainsNearbyDuplicate.h" />
<ClInclude Include="include\2_ExcelSheetColumnTitle.h" />
<ClInclude Include="include\3_bool IsUgly.h" />
<ClInclude Include="include\4_IsPalindrome.h" />
</ItemGroup>
<ItemGroup>
<None Include="config\1_ContainsNearbyDuplicate.ini" />
<None Include="config\2_ExcelSheetColumnTiTle.ini" />
<None Include="config\3_bool IsUgly.ini" />
<None Include="config\4_IsPalindrome.ini" />
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">


+ 9
- 0
Alogrithm/Alogrithm/Alogrithm.vcxproj.filters View File

@@ -36,6 +36,9 @@
<ClCompile Include="src\3_bool IsUgly.cpp">
<Filter>源文件\src</Filter>
</ClCompile>
<ClCompile Include="src\4_IsPalindrome.cpp">
<Filter>源文件\src</Filter>
</ClCompile>
</ItemGroup>
<ItemGroup>
<ClInclude Include="include\2_ExcelSheetColumnTitle.h">
@@ -47,6 +50,9 @@
<ClInclude Include="include\3_bool IsUgly.h">
<Filter>头文件\include</Filter>
</ClInclude>
<ClInclude Include="include\4_IsPalindrome.h">
<Filter>头文件\include</Filter>
</ClInclude>
</ItemGroup>
<ItemGroup>
<None Include="config\3_bool IsUgly.ini">
@@ -58,5 +64,8 @@
<None Include="config\2_ExcelSheetColumnTiTle.ini">
<Filter>资源文件\config</Filter>
</None>
<None Include="config\4_IsPalindrome.ini">
<Filter>资源文件\config</Filter>
</None>
</ItemGroup>
</Project>

+ 18
- 0
Alogrithm/Alogrithm/config/4_IsPalindrome.ini View File

@@ -0,0 +1,18 @@
[Test1]
Na=121
nExpect=1
[Test2]
Na=123321
nExpect=1
[Test3]
Na=214748367
nExpect=0
[Test4]
Na=1212
nExpect=0
[Test5]
Na=20
nExpect=0
[Test6]
Na=-214748368
nExpect=0

+ 3
- 0
Alogrithm/Alogrithm/include/4_IsPalindrome.h View File

@@ -0,0 +1,3 @@
#pragma once

bool IsPalindrome(int x);

+ 28
- 0
Alogrithm/Alogrithm/src/4_IsPalindrome.cpp View File

@@ -0,0 +1,28 @@
#include "../include/4_IsPalindrome.h"

//思路:对传进来的数先知道是几位数,再循环%10,再/10,取到每位上的数字,再逆序*10相加,得到翻转后的数
//最后再和原数作对比。

bool IsPalindrome(int x)
{
int x_Count = 1;//定义一个count用来统计传进来的数是几位数
long long x_Coln1 = x;//把传进来的数拷贝一份,后面会用到
long long x_Turn = 0;//用来保存翻转后的值,考虑int翻转后溢出问题
while ((x / 10) != 0) {//通过循环来获得入参是几位数
x_Count++;
x = x / 10;
}
x = x_Coln1;//保存原数,后面还要用到
for (int i = 0; i < x_Count; i++) {//把逆置后的数存放到x_Turn中(保存的是正数)
int temp = x % 10;
x_Turn = x_Turn * 10 + temp;
x = x / 10;
}
if (x_Coln1 < 0) {//判断入参是否为负数,是的话加上负号,不是则不用变
x_Turn = 0 - x_Turn;
}
if (x_Turn == x_Coln1) {//判断翻转后的数和原数是否相等
return true;
}
return false;
}

+ 2
- 2
Alogrithm/Alogrithm/src/main.cpp View File

@@ -3,6 +3,6 @@
int main()
{
//ExcelSheetColumnTitle(10);
printf("%d\n", IsUgly(6));
//printf("%d\n", IsUgly(6));
return 0;
}
}

+ 17
- 1
Alogrithm/UnitTest/UnitTest.cpp View File

@@ -5,6 +5,7 @@ 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"
#define FileName_4 "../Alogrithm/config/4_IsPalindrome.ini"

namespace UnitTest
{
@@ -56,5 +57,20 @@ namespace UnitTest
Assert::AreEqual(nReal, CstrToBool(nExpect));
}
}
};
};
TEST_CLASS(UnitTest_4)
{
TEST_METHOD(TestMethode1)
{
char Section_Name[100][10] = { 0 };
int Section_Count = CalcCount(100, Section_Name, FileName_4);
CString Na, nExpect;
for (int i = 0; i < Section_Count; i++) {
GetPrivateProfileString(Section_Name[i], "Na", " ", Na.GetBuffer(20), 20, FileName_4);
GetPrivateProfileString(Section_Name[i], "nExpect", " ", nExpect.GetBuffer(20), 20, FileName_4);
bool nReal = IsPalindrome(_ttoi(Na));
Assert::AreEqual(nReal, CstrToBool(nExpect));
}
}
};
}

+ 1
- 1
Alogrithm/UnitTest/UnitTest.vcxproj View File

@@ -103,7 +103,7 @@
<SubSystem>Windows</SubSystem>
<AdditionalLibraryDirectories>$(VCInstallDir)UnitTest\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<GenerateDebugInformation>DebugFull</GenerateDebugInformation>
<AdditionalDependencies>../Alogrithm/Debug/1_ContainsNearbyDuplicate.obj;../Alogrithm/Debug/2_ExcelSheetColumnTitle.obj;../Alogrithm/Debug/3_bool IsUgly.obj;%(AdditionalDependencies)</AdditionalDependencies>
<AdditionalDependencies>../Alogrithm/Debug/1_ContainsNearbyDuplicate.obj;../Alogrithm/Debug/2_ExcelSheetColumnTitle.obj;../Alogrithm/Debug/3_bool IsUgly.obj;../Alogrithm/Debug/4_IsPalindrome.obj;%(AdditionalDependencies)</AdditionalDependencies>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">


+ 2
- 0
Alogrithm/UnitTest/pch.h View File

@@ -16,6 +16,8 @@
#include"../Alogrithm/include/1_ContainsNearbyDuplicate.h"
#include"../Alogrithm/include/2_ExcelSheetColumnTitle.h"
#include"../Alogrithm/include/3_bool IsUgly.h"
#include"../Alogrithm/include/4_IsPalindrome.h"



int CalcCount(int n, char(*str)[10],const char *FileName);


Loading…
Cancel
Save