C++ Unicode cache object

Encerrado Postado May 15, 2008 Pago na entrega
Encerrado Pago na entrega

The project requires a C++ class that is to be used to represent a Unicode string for cache purposes. The C++ class must have the following:

- updateTitle, this will add or update a title for the object. The title can be up to 200 unicode characters in length. The title can have duplicate words, i.e. "The cat was in the hat."

- updateDescription, this will add or update a description for the object. The description can be up to 5000 unicode characters in length. The description can have duplicate words similar to updateTitle.

- updateCache, this is called from both updateTitle and updateDescription. It contains only one instance of each word from the title and description. For instance, if title is "The cat" and description is "The dog" then the cache would be "the cat dog".

- matchesString, this is used to determine if the C++ object's cache matches a search string. One of the parmaters specifies the search type, i.e. exact match, match single word, etc. The function returns true or false.

There are no requirements on memory size but searching the object must be as fast as possible... perhaps a hash map should be used?

## Deliverables

Here are the detailed requirements for the C++ class:

Notes:

- All strings in the class are Unicode strings. They can be implemented as you see fit (3rd party string class, your own string class, an array of wide characters, etc).

- The code created must be POSIX compliant and execute on both x86 and PPC platforms. The operating system that the code will run on is Linux.

- Open source code can be re-used but it must be well documented where the code was obtained from. i.e. it is perfectly fine if you find an already existing solution to this problem and charge me for finding it. Although, it must be a complete solution and I must be able to use it free of charge (including modifying the source code and distributing it).

- This is the first project of many that I will be posting.

Necessary functions:

- updateTitle: Add a new title to the object and store it in memory if it does not yet exist. If there is already a title in memory then replace it with the new title when the method is called. The title can contain up to 200 unicode characters: The title can contain duplicate words.

- updateDescription: Similar to updateTitle but the description can contain up to 5000 unicode characters.

- updateCache: This must be called by both updateTitle and updateDescription. It will update the cache of the title/description. The cache does not contain duplicate words. The cache can contain punctuations but they must not be connected to words. The cache is used to determine if the object matches a unicode string. See matches below for more details.

- matches: This method can be used to determine if the object matches a string of unicode characters. For example, if the title is "there was" and the description is "a big cat" then matches(cat, wordMatch) would return true. The method returns true if a match is found and false otherwise. The method must be as efficient as possible... perhaps a hash map should be used. There are no requirements on memory (i.e. use as much as you want)? but search performance must be fast. The method must support the following search types:

- matches exactly, i.e. "the cat" matches "The cat is in the hat" but not "The dog is in the hat"

- matches all words, i.e. "the cat" matches "The dog ate the cat" but not "The dog ate the horse"

- matches a word, i.e. "the dog" matches "a dog ran fast" but not "a car drove fast"

Necessary tests:

- There must be test executable programs that test the following functionality:

1) One unit test that creates 3 instances of the class. One for English, one for Chinese, and one for German. This test will prove that the class upport unicode characters. If you need help finding a word in each of those languages then contact me and I will provide you with? 3? words to be used for this test.

2) A unit test that shows each of the three match types working properly.

3) A unit test showing that each of the three match types properly fails, i.e. matches all words "one day" against "two days" fails to match.

Additonal requirements:

- All comments must be clear and in English.

- The code must be compiled using GCC that comes with Linux on both x86 and PPC architectures.

- All difficult code must be well commented. i.e. if you create your own hash map then you must explain the hashing algorithm.

- You must explain in detail why I should pick you for the project. I am MAINLY interested in previous experience with C++/Unicode and how you will make the search feature as fast as possible. i.e. is a hash map the best solution for the cache search feature? why or why not?

- You will contact me if anything is unclear or you need more details.

Programação C Engenharia MySQL PHP Gestão de projetos Arquitetura de software Teste de Software

ID do Projeto: #3931303

Sobre o projeto

9 propostas Projeto remoto Ativo em Jun 13, 2008

9 freelancers estão ofertando em média $52 nesse trabalho

theotheronevw

See private message.

$59.5 USD in 14 dias
(21 Comentários)
4.1
ipapadop

See private message.

$68 USD in 14 dias
(16 Comentários)
3.7
numericalso

See private message.

$21.25 USD in 14 dias
(1 Comentário)
3.4
msbanik

See private message.

$67.15 USD in 14 dias
(11 Comentários)
3.1
hydraelvw

See private message.

$68 USD in 14 dias
(2 Comentários)
1.0
billibyte

See private message.

$21.25 USD in 14 dias
(0 Comentários)
0.0
coderevolution

See private message.

$51 USD in 14 dias
(1 Comentário)
0.0
sumeetaroravw

See private message.

$68 USD in 14 dias
(0 Comentários)
0.0
dredwerkz

See private message.

$42.5 USD in 14 dias
(0 Comentários)
0.0