Форум программистов, компьютерный форум CyberForum.ru

Запись числа прописью, нужна доработка - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Не работает метод класса http://www.cyberforum.ru/cpp-beginners/thread1199602.html
#define _CRT_SECURE_NO_WARNINGS #include <iostream> using namespace std; class Lines { private: char *line;
C++ Написать класс с функцией поиска Ребята помогите написать класс с функцией поиска, состоящий из 5 строк http://www.cyberforum.ru/cpp-beginners/thread1199593.html
C++ Контейнер std::vector
Помогите определить почему не работает задача. Оибку выбивает на строку k.push_back(0); #include <iostream> #include <math.h> #include <vector> #include <algorithm> using namespace std; class Sample
Матрица и диагональные элементы C++
в заданной квадратной матрицы значения некоторых диагональных элементов равны нулю. переставить строки или столбцы матрицы таким образом, чтобы диагональные элементы стали ненулевыми. если это невозможно сделать вывести соответствующее сообщение
C++ Надо описать функции перегрузки в абстрактном классе http://www.cyberforum.ru/cpp-beginners/thread1199579.html
Здравствуйте. Есть код и нужно сделать так, чтобы перегрузки операторов + и > были описаны в абстрактном классе. Оператор сложения: c=(a+b)/(amin+bmin), где amin и bmin - минимальные элементы в iой строке Оператор >: Истина, если среднее арифметическое икаждого столбца 1 матрицы > чем среднее арифметическое кадого столбца во 2ой матрице Код: #include "StdAfx.h" #include <iostream>...
C++ Определить количество строк, содержащих ‘:’ или ‘–’ Определить количество строк, содержащих ‘:’ или ‘–’ #include<stdio.h> #include<stdlib.h> #include<conio.h> #include <string.h> int main (){ int i, kolvo1=0, kolvo2=0, kolvo3=0; подробнее

Показать сообщение отдельно
DMGR-
0 / 0 / 0
Регистрация: 07.10.2012
Сообщений: 101
05.06.2014, 12:31     Запись числа прописью, нужна доработка
Добрый день, дана задача: запись числа прописью
Помогите доработать её, нужно вводить числа с клавиатуры и вывести результат в консоли
Также нужно выводить копейки , пример 600.20 = шестьсот рублей двадцать копеек

Вот код с чтением из файлов:

Код:

C++
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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
#include <iostream>
#include <fstream>
using namespace std;
 
 
const string name_penz[3] = {"копейка","копейки" ,"копеек"};
const string name_ruble[3] = {"рубль","рубля" ,"рублей"};
const string hundreds[9] = {"сто","двести","триста","четыреста","пятьсот","шестьсот","семьсот","восемьсот","девятьсот"};
const string dozens[8] = {"двадцать","тридцать","сорок","пидесят","шесдесят","семьдесят","восемьдесят","дявяносто"};
const string unit[9] = {"один","два","три","четыре","пять","шесть","семь","восемь","девять"};
const string unit_penz[9] = {"одна","две","три","четыре","пять","шесть","семь","восемь","девять"};
const string dozens_one[10] = {"одинадцать","двенадцать","тринадцать","четырнадцать","пятнадцать","шестьнадцать","семьнадцать","восемьнадцать","девятьнадцать",""};
int main()
{
    char s[6];
    string out;
    fstream file,file2;
 
    file.open("output.txt",ios::out);
    cout.rdbuf(file.rdbuf());
 
    file2.open("input.txt", ios::in);
    cin.rdbuf(file2.rdbuf());
    file2 >>s;
    int len = strlen(s);
    int end = 1;
    int number = len;
    for (int j = 0; j < len; j++)
    {
        if(s[j] == ',')
        {
            number = j;
        }
        end = 2;
    }
 
    
    int i = 0;
    if(number == 2 && s[0] == '1')
    {
            string tmp;
        tmp.push_back(s[0]);
        tmp.push_back(s[1]);
        out = dozens_one[atoi(tmp.c_str())- 10 - 1];
        end = 2;
        out += " ";
    }
 
    else
    {
        
        if(number == 3)
        {
            out += hundreds[s[i] - '0' - 1]  ;
            out += " ";
            i++;
        }
        if(number >= 2)
        {
            out += dozens[s[i] - '0' - 2];
            out += " ";
            i++;
        }
        if(number >= 1)
        {
            out += unit[s[i] - '0' - 1];
            out += " ";
            i++;
        }
        int end_c = s[i - 1] - '0';
        if (end_c == 1)
        {
            end = 0;
        }
        else if (end_c == 1 ||  end_c == 2 || end_c == 3 || end_c == 4 )
        {
            end = 1;
        }
        else
        {
            end = 2;
        }
        
    }
    out += name_ruble[end];
    out += " ";
///////////////////////////////////////////////////////////
    i = number+1;
    number = len - i ;
    if (number <= 0);
    else if(number == 2 && s[i-1] == '1')
    {
        string tmp;
        tmp.push_back(s[i-1]);
        tmp.push_back(s[i]);
        out = dozens_one[atoi(tmp.c_str())- 10 - 1];
 
    }
 
    else
    {
 
        if(number == 3)
        {
            out += hundreds[s[i] - '0' - 1]  ;
            out += " ";
            i++;
        }
        if(number >= 2)
        {
            out += dozens[s[i] - '0' ];
            out += " ";
            i++;
        }
        if(number >= 1)
        {
            out += unit_penz[s[i] - '0' - 1];
            out += " ";
            i++;
        }
        int end_c = s[i - 1] - '0' ;
        if (end_c == 1)
        {
            end = 0;
        }
        else if (end_c == 1 ||  end_c == 2 || end_c == 3 || end_c == 4 )
        {
            end = 1;
        }
        else
        {
            end = 2;
        }
    
        out += name_penz[end];
        out += " ";
        
    }
 
    cout << out.c_str();
 
    system("pause");
    return 0;
}
Добавлено через 10 часов 45 минут
хелп, ребят
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 16:20. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru