@Zvezdochka57

Как можно дописать функцию, чтобы она работала правильно?

Здравствуйте дорогие программисты! Очень прошу помочь доделать функцию print_firm(). Я понимаю, что сделала неправильно, но как реализовать правильно, не понимаю. Задание состоит в том, что найти фирму, которая чаще всего выступала в роли истца. То есть мы должна проверить все name_firm1, ну и посмотреть повторяются ли они, если да, то вывести название этой кампании. Если кто-то поможет, буду безмерно благодарна!

#include <iostream>

#include <math.h>

#include <iomanip>

#include <fstream>

#include <string.h>

#include <stdio.h>

    using namespace std;

    struct court_case {

char topic[66];

struct date {

int year;

int month;

int day;

}Data;

struct plaintiff {

int telephone1;

char name_firm1[30];

} Plaint;

struct accuser {

int telephone2;

char name_firm2[30];

} Accuser;

}Cases;


    int k = 0;

    void add_cases() {

    ofstream fout("ss.dan", ios::app | ios::binary);

    if (!fout.is_open()) {

cout << "Помилка!Файл не може бути вiдкритим" << endl;

system("pause");

system("cls");

}
      else {

cout << "Введiть день судової справи: ";

cin >> Cases.Data.day;

cout << "Введiть мiсяць судової справи: ";

cin >> Cases.Data.month;

cout << "Введiть рiк судової справи: ";

cin >> Cases.Data.year;

cout << "Введiть предмет судової справи: ";

cin >> Cases.topic;

cout << "Введiть телефон позивача: ";

cin >> Cases.Plaint.telephone1;

cout << "Введiть назву фiрми позивача: ";

cin >> Cases.Plaint.name_firm1;

cout << "Введiть телефон обвинувачованого: ";

cin >> Cases.Accuser.telephone2;

cout << "Введiть назву фiрми обвинувачоного: ";

cin >> Cases.Accuser.name_firm2;

      k++;

      fout.write((char*)&Cases, sizeof(Cases));

      fout.close();

}

}

     int print_firm() {

     int count=0;

     ifstream fin("ss.dan", ios::in | ios::binary);

cout << "Фiрма, яка найчастiше за цi роки виступала у ролi позивача:" << endl;

       ofstream fout("ss.dan", ios::app | ios::binary);

       if (!fout.is_open()) {

cout << "Помилка!Файл не може бути вiдкритим" << endl;

system("pause");

system("cls");

}

else

       while (fin.read((char*)&Cases, sizeof Cases)) {

       if (Cases.Plaint.name_firm1 > Cases.Plaint.name_firm1) {

count++;
}

cout << Cases.Plaint.name_firm1 << endl;

}

      if (count == 0) {

cout << "Помилка, такої фiрми немає! Можливо данi не заповненi" << endl;

}
system("pause");

return 0;

      fin.close();

      fout.close();

}
  • Вопрос задан
  • 58 просмотров
Пригласить эксперта
Ответы на вопрос 1
maaGames
@maaGames
Погроммирую программы
Cases.Plaint.name_firm1 > Cases.Plaint.name_firm1
Сравнивается с самим собой...
Вообще, напрмиер, можно использовать std::map<std::string,int> чтобы посчитать, сколько раз каждое название было. А потом из них выбрать с наибольшим числом.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы