robot_name: iteration 1

This commit is contained in:
Dmitry Kokorin 2016-03-06 17:29:16 +03:00
parent a882941d58
commit 7339e6a8bc
2 changed files with 72 additions and 0 deletions

View file

@ -0,0 +1,47 @@
#include "robot_name.h"
#include <algorithm>
namespace robot_name {
using namespace std;
namespace {
const size_t alpha_part_size = 2;
const size_t digit_part_size = 3;
string random_string(size_t size, char from_char, char to_char)
{
auto random_char = [from_char, to_char]() -> char {
return from_char + rand() % (to_char - from_char + 1);
};
string result(size, 0);
generate_n(result.begin(), size, random_char);
return result;
};
}
robot::robot()
{
reset();
}
void robot::reset()
{
name_ = random_string(alpha_part_size, 'A', 'Z')
+ random_string(digit_part_size, '0', '9');
}
const name_t &robot::name() const
{
return name_;
}
}

View file

@ -0,0 +1,25 @@
#pragma once
#define EXERCISM_RUN_ALL_TESTS
#include <string>
namespace robot_name {
typedef std::string name_t;
class robot
{
name_t name_;
public:
robot();
void reset();
const name_t &name() const;
};
}