if:
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
thus:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
so:
Hard work (努力工作)
H A R D W O R K 8 1 18 4 23 15 18 11 = 98%
Knowledge(知识)
K N O W L E D G E 11 14 15 23 12 5 4 7 5 = 96%
Love(爱情)
L O V E12 15 22 5 = 54%
Health(健康) = 54%
Luck(好运)
L U C K12 21 3 11 = 47%
M O N E Y = 13 15 14 5 25 = 72%
那么,什么能使生活变成100%的圆满呢?
每个问题也许都有其合理的解决之道吧!
ATTITUDE(心态)= 100%
#include <iostream>
#include <string>
#include <map>
#define IS_UPPER(x) (x>='A' && x<='Z')
//判断是否为大写。
#define IS_LOWER(x) (x>='a' && x<='z')
//判断是否为小写。
using
namespace
std
;
inline
int
Get_words
(
char
*
words
)
{
cout
<<
"please enter a words(english)!"
<<
endl
;
fgets
(
words
,
100
,
stdin
);
//stdin表示从键盘输入而不是从文件
//printf("%s", a);//这里%s后没有\n,但输出是有回车的
return
strlen
(
words
);
}
void
Case_num
(
int
&
sum
,
const
char
*
words
,
const
map
<
int
,
char
>&
num_upper
,
const
map
<
int
,
char
>&
num_lower
)
{
for
(
int
j
=
0
;
j
<
strlen
(
words
);
++
j
)
{
//cout << words[j] << endl;
//Nonum_lower.find()
if
(
IS_UPPER
(
words
[
j
]))
{
for
(
map
<
int
,
char
>::
const_iterator
it_upper
=
num_upper
.
begin
();
it_upper
!=
num_upper
.
end
();
it_upper
++
)
{
if
(
it_upper
->
second
==
words
[
j
])
sum
+=
it_upper
->
first
;
}
}
if
(
IS_LOWER
(
words
[
j
]))
{
for
(
map
<
int
,
char
>::
const_iterator
it_lower
=
num_lower
.
begin
();
it_lower
!=
num_lower
.
end
();
it_lower
++
)
{
if
(
it_lower
->
second
==
words
[
j
])
{
sum
+=
it_lower
->
first
;
}
}
}
}
}
//C面向过程的实现
int
main01
()
{
//1 保存数字和字母对应的值
map
<
int
,
char
>
Nonum_upper
;
map
<
int
,
char
>
Nonum_lower
;
char
words
[
100
];
int
sum
=
0
;
int
*
a
=
new
int
[
26
];
for
(
int
i
=
0
;
i
<
26
;
i
++
)
{
a
[
i
]
=
i
+
1
;
//printf("%d\t",a[i]);
}
string
str
=
"abcdefghijklmnopqrstuvwxyz"
;
const
char
lowerLetter
[]
=
"abcdefghijklmnopqrstuvwxyz"
;
const
char
upperLetter
[]
=
"ABCDEFGHIJKLMNOPQRSTUVWXYZ"
;
for
(
int
i
=
0
;
i
<
26
;
i
++
)
{
Nonum_upper
[
i
+
1
]
=
upperLetter
[
i
];
Nonum_lower
[
i
+
1
]
=
lowerLetter
[
i
];
}
//2 从屏幕获取要计算的单词
bool
out
=
false
;
while
(
true
)
{
Get_words
(
words
);
string
s
=
words
;
if
(
s
==
"break
\n
"
)
out
=
true
;
if
(
out
)
break
;
//获取大小写字母对应的数字并相加
Case_num
(
sum
,
words
,
Nonum_upper
,
Nonum_lower
);
cout
<<
" words = "
<<
words
<<
" "
<<
"the number is "
<<
sum
<<
"%"
<<
endl
;
sum
=
0
;
}
cout
<<
" Thank you using the system!
\n
"
<<
"Have a nice day!
\n
"
<<
::
endl
;
system
(
"pause"
);
return
0
;
}
class
vocab
{
private:
//数字和大小写字母关联
map
<
int
,
char
>
num_upper
;
map
<
int
,
char
>
num_lower
;
//存放从外设中得到的单词
char
vocabulary
[
100
];
int
sum
;
//最后的计算结果
const
int
num
;
//26个字母
const
char
*
lowerLetter
;
const
char
*
upperLetter
;
public:
//从键盘得到词汇
int
Case_letter
(
const
char
*
words
);
inline
int
Get_vocab
(
char
*
words
);
friend
int
Get_sum
(
vocab
&
vc
);
inline
friend
void
Clear_sum
(
vocab
*
vc
);
int
Get_Sum
();
void
map_letter
();
vocab
();
~
vocab
();
};
vocab
::
vocab
()
:
sum
(
0
),
num
(
26
)
{
lowerLetter
=
"abcdefghijklmnopqrstuvwxyz"
;
upperLetter
=
"ABCDEFGHIJKLMNOPQRSTUVWXYZ"
;
for
(
int
i
=
0
;
i
<
this
->
num
;
i
++
)
{
num_upper
[
i
+
1
]
=
upperLetter
[
i
];
num_lower
[
i
+
1
]
=
lowerLetter
[
i
];
}
}
vocab
::~
vocab
()
{
lowerLetter
=
NULL
;
upperLetter
=
NULL
;
}
int
vocab
::
Case_letter
(
const
char
*
words
)
{
for
(
int
j
=
0
;
j
<
strlen
(
words
);
++
j
)
{
//cout << words[j] << endl;
//Nonum_lower.find()
if
(
IS_UPPER
(
words
[
j
]))
{
for
(
map
<
int
,
char
>::
const_iterator
it_upper
=
num_upper
.
begin
();
it_upper
!=
num_upper
.
end
();
it_upper
++
)
{
if
(
it_upper
->
second
==
words
[
j
])
sum
+=
it_upper
->
first
;
}
}
if
(
IS_LOWER
(
words
[
j
]))
{
for
(
map
<
int
,
char
>::
const_iterator
it_lower
=
num_lower
.
begin
();
it_lower
!=
num_lower
.
end
();
it_lower
++
)
{
if
(
it_lower
->
second
==
words
[
j
])
{
sum
+=
it_lower
->
first
;
}
}
}
}
return
sum
;
}
inline
int
vocab
::
Get_vocab
(
char
*
words
)
{
cout
<<
"please enter a words(english)!"
<<
endl
;
fgets
(
words
,
100
,
stdin
);
//stdin表示从键盘输入而不是从文件
//printf("%s", words);//这里%s后没有\n,但输出是有回车的
return
strlen
(
words
);
}
int
Get_sum
(
vocab
&
vc
)
{
return
vc
.
sum
;
}
int
vocab
::
Get_Sum
()
{
return
sum
;
}
inline
void
Clear_sum
(
vocab
*
vc
)
{
vc
->
sum
=
0
;
}
//C++面向对象的实现
int
main
()
{
char
voc
[
100
];
vocab
vo
;
bool
out
=
false
;
while
(
true
)
{
vo
.
Get_vocab
(
voc
);
string
s
=
voc
;
if
(
s
==
"break
\n
"
)
out
=
true
;
if
(
out
)
break
;
cout
<<
voc
<<
" is "
<<
vo
.
Case_letter
(
voc
)
<<
"% "
<<
endl
;
Clear_sum
(
&
vo
);
}
//printf("%s is %d%\n", voc, Get_sum(vo));
//printf("%s is %d%\n", voc, vo.Get_Sum());
cout
<<
" Thank you using the system!
\n
"
<<
"Have a nice day!
\n
"
<<
::
endl
;
return
0
;
}