// CardinalDirection.h :
//练习案例:九九乘法表位置 CardinalDirection
//案例描述:九九乘法表位置
//
//2023年4月5日 涂聚文 Geovin Du edit.
//
#pragma once
#ifndef CARDINALDIRECTION_H
#define CARDINALDIRECTION_H
#include <iostream>
#include<string.h>
#include<math.h>
using namespace std;
/**
* @brief
* \author geovindu.
* \date 20230-4-10
*/
namespace geovindu
{
/**
* @brief 位置枚举类型
* .
*/
enum CardinalDirection
{
/**
* @brief 左上角
*/
topLeft,
/**
* @brief 右上角
*/
topRight,
/**
* @brief 左下角
*/
bottomLeft,
/**
* @brief 右下角
*/
bottomRight
};
}
#endif
// MultiplicationTables.h :
//练习案例:九九乘法表 MultiplicationTables
//案例描述:九九乘法表
//
//2023年4月5日 涂聚文 Geovin Du edit.
//
#pragma once
#ifndef MULTIPLLCATIONTABLES_H
#define MULTIPLLCATIONTABLES_H
#include <iostream>
#include<string.h>
#include<math.h>
#include "CardinalDirection.h"
using namespace std;
/**
* @brief
* \author geovindu.
* \date 20230-4-10
*/
namespace geovindu
{
/**
* @brief 九九乘法表显示.
*/
class MultiplicationTables
{
private:
public:
/**
* @brief 九九乘法表显示.
*
* \param cardinalDirection
* \return
*/
string getString(CardinalDirection cardinalDirection);
};
}
#endif
// MultiplicationTables.cpp :
//练习案例:九九乘法表 MultiplicationTables
//案例描述:九九乘法表
//
//2023年4月5日 涂聚文 Geovin Du edit.
//
#include "MultiplicationTables.h"
#include <iostream>
#include <string>
using namespace std;
/**
* @brief
* \author geovindu.
* \date 20230-4-10
*/
namespace geovindu
{
/**
* @brief 九九乘法表显示.
*
* \param cardinalDirection
* \return
*/
string MultiplicationTables::getString(CardinalDirection cardinalDirection)
{
string str = "";
//stringstream dustring;
switch (cardinalDirection)
{
case bottomLeft:
//System.out.println("左下角");
for (int i = 1; i < 10; i++) {
for (int j = 1; j <= i; j++) {
//System.out.print(j+"*"+i+"="+i*j+"\t");
str = str + "" + std::to_string(j) + " * " + std::to_string(i) + " = " + std::to_string(i * j);
// printf("%d*%d=%2d\t", j, i, i * j);
//str = str + s;
str = str + "\t\t";
// printf("\t\t");
// str.append(ss);
}
str = str + "\t\n";
// printf("\t\n");
//System.out.println();
}
break;
case bottomRight:
//System.out.println("右下角");
for (int i = 1; i < 10; i++) {
for (int j = 9; j >= 1; j--) {
if (j > i) {
//System.out.print("");
str = str + "\t\t";
}
else {
//System.out.print(j+"*"+i+"="+i*j+"\t");
str = str + std::to_string(j) + " * " + std::to_string(i) + " = " + std::to_string(i * j) + "\t";
}
}
str = str + "\t\n";
//System.out.println();
cout << endl;
}
break;
case topLeft:
//System.out.println("左上角");
for (int i = 9; i > 0; i--) {
for (int j = 1; j <= i; j++) {
// System.out.print(j+"*"+i+"="+i*j+"\t");
str = str + std::to_string(j) + " * " + std::to_string(i) +" = " + std::to_string(i * j) + "\t";
}
str = str + "\t\n";
// System.out.println();
cout << endl;
}
break;
case topRight:
//System.out.println("右上角");
for (int i = 9; i >= 1; i--) {
for (int j = 9; j >= 1; j--) {
if (j <= i) {
//System.out.print(j+"*"+i+"="+i*j+"\t");
str = str + std::to_string(j) + " * " + std::to_string(i) + " = " + std::to_string(i * j)+ "\t";
}
else {
str = str + "\t\t";
//System.out.print("\t\t");
}
}
str = str + "\t\n";
//System.out.println();
cout << endl;
}
break;
default:
str = "";
break;
}
return str;
}
}
/**
* @brief 九九乘法表显示.
*
*/
void Geovin::DisplayMultiplicationTables()
{
MultiplicationTables table;
CardinalDirection cd;
cout << table.getString(bottomLeft) << endl;
}
调用:
//九九乘法表显示. geovin.DisplayMultiplicationTables();