Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // hw7.cpp : Этот файл содержит функцию "main". Здесь начинается и заканчивается выполнение программы.
- //
- #include "pch.h"
- #include <iostream>
- #include <string>
- #include <vector>
- #include <sstream>
- #include <cstdlib>
- #include <fstream>
- #include <time.h>
- #include <clocale>
- #include <algorithm>
- using namespace std;
- class places {
- public:
- string city;
- double num1;
- double num2;
- places() {};
- places(string city_, int num1_, int num2_) : city(city_), num1(num1_), num2(num2_) {};
- };
- //поменять рекурсию на алгоритм гаууса
- void v_basic() {
- std::ofstream myfile;
- myfile.open("example.csv");
- myfile << "a;b;c;\n";
- myfile << "c;s;v;\n";
- myfile << "\n";
- myfile << "semi;colon";
- myfile << "semi;colon";
- myfile.close();
- }
- void v_stack() { //ввести проверку на \n в другой строке
- std::ofstream myfile;
- myfile.open("example.csv", std::ios_base::app);
- myfile << "\n";
- myfile.close();
- }
- void h_stack() { //добавить проверку, что прошлый столбец был закончен
- std::ofstream myfile;
- myfile.open("example.csv", std::ios_base::app);
- myfile << ";";
- myfile.close();
- }
- void show_row(int ID) {
- std::ifstream myfile;
- myfile.open("example.csv");
- int i = 0; //отсчет колонок идёт не с нуля
- string buffer;
- while (i < ID) {
- getline(myfile, buffer);
- i++;
- }
- myfile.close();
- std::ofstream myoutfile;
- myoutfile.open("output.csv");
- if (buffer == ";")
- myoutfile << "\n";
- else
- myoutfile << buffer;
- myoutfile.close();
- }
- void show_col(int ID) {
- std::ifstream myfile;
- std::ofstream myoutfile;
- myoutfile.open("output.csv");
- myfile.open("example.csv");
- int i = 0;
- string buffer;
- string buffer_1;
- while (myfile) {
- getline(myfile, buffer);
- istringstream iss(buffer);
- while (i != ID) {
- getline(iss, buffer_1, ';');
- i++;
- }
- if (buffer == ";")
- myoutfile << "\n";
- else {
- myoutfile << buffer_1;
- myoutfile << "\n";
- }
- i = 0;
- }
- myfile.close();
- myoutfile.close();
- }
- void id_find(int ID_ROW, int ID_COL) {
- std::ifstream myfile;
- myfile.open("example.csv");
- int i = 0; //отсчет колонок идёт не с нуля
- string buffer;
- string buffer_1;
- while (i < ID_ROW) {
- getline(myfile, buffer);
- i++;
- }
- i = 0;
- std::ofstream myoutfile;
- myoutfile.open("output.csv");
- istringstream iss(buffer);
- while (i != ID_COL) {
- getline(iss, buffer_1, ';');
- i++;
- }
- if (buffer == ";")
- myoutfile << "\n";
- else {
- myoutfile << buffer_1;
- myoutfile << "\n";
- }
- myfile.close();
- myoutfile.close();
- }
- void task1() {
- id_find(1, 2);
- }
- void task2() {
- vector<string> v1;
- vector<string> v2;
- ifstream myfile1;
- ifstream myfile2;
- string buffer;
- myfile1.open("example.csv");
- while (myfile1) {
- getline(myfile1, buffer);
- v1.push_back(buffer);
- }
- myfile1.close();
- myfile2.open("example2.csv");
- while (myfile2) {
- getline(myfile2, buffer);
- v2.push_back(buffer);
- }
- int enter = 0;
- myfile2.close();
- ofstream myfile3;
- int break_point = 0;
- myfile3.open("example.csv", std::ios_base::app);
- myfile3 << "\n";
- int j = 0;
- int s = v2.size();
- for (j = 0; j < s - 1; j++) {
- for (int k = 0; k < v1.size() - 1; k++)
- if (v2[j] == v1[k]) {
- break_point++;
- break;
- }
- if (break_point == 0) {
- myfile3 << v2[j];
- myfile3 << "\n";
- }
- break_point = 0;
- }
- myfile3.close();
- }
- double count(int ID) {
- ifstream myfile;
- myfile.open("example3.csv");
- string buffer;
- string buffer_1;
- int i = 0;
- double sum = 0;
- while (myfile) {
- getline(myfile, buffer);
- istringstream iss(buffer);
- while (i != ID) {
- getline(iss, buffer_1, ';');
- i++;
- }
- const char * c = buffer_1.c_str();
- sum += atof(c);
- i = 0;
- }
- myfile.close();
- return sum;
- }
- void task3(int n) {
- ofstream myfile;
- myfile.open("example3.csv");
- srand(time(0));
- double numb;
- double numb1;
- double numb2;
- for (int row = 0; row < n; row++) {
- for (int col = 0; col < n; col++) {
- numb = (rand() % 1000);
- numb1 = (1 + rand() % 1000);
- numb2 = numb / numb1;
- myfile << numb2;
- myfile << ";";
- }
- myfile << "\n";
- }
- myfile.close();
- cout << count(2);
- }
- template <typename T>
- void ShowString(T string) {
- std::cout << string;
- }
- template <typename C>
- void ShowContainerOfStrings(C container) {
- for (auto string : container) {
- ShowString(string);
- std::cout << " ";
- }
- std::cout << '\n';
- }
- void final_round() {
- ifstream myfile;
- myfile.open("dictionary.txt");
- vector<places> victor;
- vector<string> BEKTOP;
- vector<string> BEKTOP1;
- places buffer("", 0, 0);
- string buffer_str;
- string trash;
- string buffer_1;
- string buffer_name;
- string buffer_numb;
- double buffer_numb_rly_numb;
- while (myfile) {
- getline(myfile, buffer_str);
- BEKTOP.push_back(buffer_str);
- }
- myfile.close();
- std::sort(BEKTOP.begin(), BEKTOP.end());
- for (int id = 0; id < BEKTOP.size(); id++) {
- buffer.city = BEKTOP[id];
- victor.push_back(buffer);
- }
- ifstream myfile1;
- myfile1.open("1.csv");
- while (myfile1) {
- //cout << "gsd";
- getline(myfile1, buffer_1);
- istringstream iss(buffer_1);
- getline(iss, buffer_name, ';');
- getline(iss, buffer_numb, ';');
- const char * c = buffer_numb.c_str();
- buffer_numb_rly_numb = atof(c);
- for (int l = 0; l < victor.size(); l++) {
- if (victor[l].city == buffer_name) victor[l].num1 = buffer_numb_rly_numb;
- }
- }
- myfile1.close();
- ifstream myfile4;
- myfile4.open("2.csv");
- string buffer_1_1;
- string buffer_name_1;
- string buffer_numb_1;
- while (myfile4) {
- getline(myfile4, buffer_1_1);
- istringstream iss(buffer_1_1);
- getline(iss, buffer_name_1, ';');
- getline(iss, buffer_numb_1, ';');
- const char * c_1 = buffer_numb_1.c_str();
- buffer_numb_rly_numb = atof(c_1);
- for (int l = 0; l < victor.size(); l++) {
- if (victor[l].city == buffer_name_1) victor[l].num2 = buffer_numb_rly_numb;
- }
- }
- myfile4.close();
- ofstream FINAL_FINAL_FINAL_FILE_I_HOPE;
- FINAL_FINAL_FINAL_FILE_I_HOPE.open("out.csv");
- double sum1 = 0;
- double sum2 = 0;
- for (int o = 0; o < victor.size(); o++) {
- sum1 += victor[o].num1;
- sum2 += victor[o].num2;
- }
- FINAL_FINAL_FINAL_FILE_I_HOPE << "СУММА ПО ПЕРВОМУ СТОЛБЦУ:";
- FINAL_FINAL_FINAL_FILE_I_HOPE << ";";
- FINAL_FINAL_FINAL_FILE_I_HOPE << sum1;
- FINAL_FINAL_FINAL_FILE_I_HOPE << "\n";
- FINAL_FINAL_FINAL_FILE_I_HOPE << "СУММА ПО ВТОРОМУ СТОЛБЦУ:";
- FINAL_FINAL_FINAL_FILE_I_HOPE << ";";
- FINAL_FINAL_FINAL_FILE_I_HOPE << sum2;
- FINAL_FINAL_FINAL_FILE_I_HOPE << "\n";
- for (int o = 0; o < victor.size(); o++) {
- FINAL_FINAL_FINAL_FILE_I_HOPE << victor[o].city;
- FINAL_FINAL_FINAL_FILE_I_HOPE << ";";
- FINAL_FINAL_FINAL_FILE_I_HOPE << victor[o].num1;
- FINAL_FINAL_FINAL_FILE_I_HOPE << ";";
- FINAL_FINAL_FINAL_FILE_I_HOPE << victor[o].num2;
- FINAL_FINAL_FINAL_FILE_I_HOPE << ";";
- FINAL_FINAL_FINAL_FILE_I_HOPE << (victor[o].num2 + victor[o].num1);
- FINAL_FINAL_FINAL_FILE_I_HOPE << "\n";
- }
- }
- int main()
- {
- setlocale(LC_CTYPE, "rus"); // вызов функции настройки локали
- task2();
- }
- // Запуск программы: CTRL+F5 или меню "Отладка" > "Запуск без отладки"
- // Отладка программы: F5 или меню "Отладка" > "Запустить отладку"
- // Советы по началу работы
- // 1. В окне обозревателя решений можно добавлять файлы и управлять ими.
- // 2. В окне Team Explorer можно подключиться к системе управления версиями.
- // 3. В окне "Выходные данные" можно просматривать выходные данные сборки и другие сообщения.
- // 4. В окне "Список ошибок" можно просматривать ошибки.
- // 5. Последовательно выберите пункты меню "Проект" > "Добавить новый элемент", чтобы создать файлы кода, или "Проект" > "Добавить существующий элемент", чтобы добавить в проект существующие файлы кода.
- // 6. Чтобы снова открыть этот проект позже, выберите пункты меню "Файл" > "Открыть" > "Проект" и выберите SLN-файл.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement