Untitled

mail@pastecode.io avatar
unknown
plain_text
2 years ago
5.0 kB
2
Indexable
Never
#include <iostream>
#include <cstdlib>
#include <iomanip>
#include <cmath>
#include <fstream>
#include <string>
using namespace std;

int main()
{
    ofstream t("file_3.txt");
    ifstream f;
    string a = "file.txt";
    ifstream fout;
    ifstream fin;
    float S, m, n;
    double r = -1, p = 0;
    int number_task=0;
    int out = 1;
    bool b = false;

while(out){

    switch (number_task)
    {
    case 0:
        cout<< "\n\nInput number task:\n\n";
        cout<<"[1] Задача «Заем».\n[2] Задача «Ссуда».\n[3] Задача «Копирование файла».\n[4] Задача «Фильтр».\n[5] Задача «Сортировка букв».\n";
        cin>> number_task;
        break;
    case 1:
        cout << "Введите сумму займа S:" << endl;
        cin >> S;
        cout << "Введите процент p:" << endl;
        cin >> p;
        cout << "Введите количество лет n:" << endl;
        cin >> n;
        if (p == 0) { 
            m = S / (12 * n);
            cout << "Ваша месячная выплата равна " << m << endl; }
        else if ((S <= 0) || (n <= 0)) {
            cout << "Вы ввели некорректные данные" << endl;
        }
        else {
            r = p * 0.01;
            m = (S * r * (pow((1 + r), n))) / (12 * (pow((1 + r), n) - 1));
            cout << "Ваша месячная выплата равна " << m << endl;
        }
        number_task = 0;
        break;
    case 2:
        ;
        cout << "Введите сумму займа S:" << endl;
        cin >> S;
        cout << "Введите ежемесячную плату m:" << endl;
        cin >> m;
        cout << "Введите количество лет n:" << endl;
        cin >> n;
        if ((S <= 0) || (n <= 0) || (m < 0)) {
            cout << "Вы ввели некорректные данные" << endl;
            return 0;
        }
        if (m == 0) {
            cout << "p равен -100%" << endl;
            return 0;
        }
        if (m - (S / (12 * n)) == 0) {
            cout << "p равен " << 0 << "%" << endl;
        }
        else {
            while ((round((m - ((S * r * (pow((1 + r), n))) / (12 * (pow((1 + r), n) - 1)))) * 10) * 0.1 != 0) && (p < 10000)) {
                r += 0.00001;
                p = r * 100;
            }
            if (p >= 10000) {
                cout << "Вы брали кредит в банке приколов? Такого не бывает..." << endl;
            }
            else {
                cout << "p равен " << round(p * 10) * 0.1 << "%" << endl;
            }
        }
        number_task = 0;
        break;
    case 3:
        a = "file_3.txt";
        t << "Работа с файлами в С++";
        t.close();
        f.open(a);

        if (!f.is_open()){
            cout << "Ошибка" << endl;
        }
        else {
            string j;
            //char j;
            //while (fin.get(j)) {
            //cout << j;
            //}
            while (!f.eof()) { //eof - end of file
                j = "1111";
                getline (f, j);
                cout << j << endl;
            }
        }
        f.close();
        number_task = 0;
        break;
    case 4:
        a = "./file_abc.txt";
        fout.open(a);

        if (!fout.is_open()) {
            cout << "Ошибка" << endl;
        }
        else {
            char c1;
            while (fout.get(c1)) {
                if (c1 >= '0' && c1 <= '9') {
                    if (b == true) {
                        cout << " " << c1;
                        b = false;
                    }
                    else {
                        cout << c1;
                    }
                }
                else { b = true; }

            }
            fout.close();
        }
        number_task = 0;
        break;
    case 5:
    a = "./file_abc.txt";
	fout.open(a);
	if (!fout.is_open()) {
		cout << "Ошибка" << endl;
	}
	else {
		int N = 0;
		char c1;
		while (fout.get(c1)) {
			N += 1;
		}
		fout.close();
		fout.open(a);
		char* arr = new char[N];
		for (int i = 0; i < N; i++) {
			fout.get(c1);
			arr[i] = c1;
			cout << arr[i];
		}
		cout << " - your initial line" << endl;
		int j = 0;
		int tmp = 0;
		float a, b;
		for (int i = 0; i < N; i++) {
			j = i;
			for (int k = i; k < N; k++) {
				a = arr[j]; b = arr[k];
				if (a > 64 and a < 91) { a = a + 31.5; } 
				if (b > 64 and b < 91) { b = b + 31.5; }
				if (a > b) {
					j = k;
				}
			}
			tmp = arr[i];
			arr[i] = arr[j];
			arr[j] = tmp;
		}
		for (int i = 0; i < N; i++) { //вывод отсортированного массива
			cout << arr[i];
		}
		cout << " - your sorted line" << endl;
		delete[] arr;
		fout.close();
	}
        number_task = 0;
        break;
    default:
        number_task = 0;
        break;
        }
    }
}