Тема: Обчисленя сумарних чисел заявок по районах
Доброго вечора, шановні панове. Потрібна ваша допомога, майже до кінця доробив програму але не можу зрозуміти як зробити вичисленя всіх заявок по районах. Тобто якщо район зустрічається треба підрахувати кількість заявок, (Для прикладу Район : Київський зустрічається один раз значить і заявок лише одна)
Ось саме мій код програми :
#include <iostream>
#include <cstring>
#include <Windows.h>
#include <string>
#include <ctime>
#include <iomanip>
#include <fstream>
using namespace std;
struct Client {
char name[25]; char surname[25]; char nickname[25]; char number[25]; char addresses[45]; char date[15]; int type; int isd;
char district[35]; char area[25]; int rooms; int floor; double price;
string type1;
enum TupeBid {Exchange = 1, Purchase = 2, Sale = 3};
void FillClient () {
type = 0;
cout<<"Введiть ПIБ : "; cin>>surname; cin>>name; cin>>nickname;
cout<<"Введiть номер : "; cin>>number;
cout<<"Введiть адрес : "; cin>>addresses;
cout<<"Введіть дату заявки : "; cin>>date;
cout<<"Виберiть тип заявки (1 - Обмiн | 2 - Покупка | 3 - Продажа) : "; cin>>type;
if (type == Exchange ) {
type1 = "Обмiн";
cout<<"Введiть район : "; cin>>district;
cout<<"Введiть площу квартири : "; cin>>area;
cout<<"Введiть кiлькiсть кiмнат : "; cin>>rooms;
cout<<"Введiть поверх : "; cin>>floor;
cout<<"Введiть цiну : "; cin>>price;
} else if (type == Purchase ) {
type1 = "Покупка";
} else if (type == Sale ) {
type1 = "Продажа";
cout<<"Введiть район : "; cin>>district;
cout<<"Введiть площу квартири : "; cin>>area;
cout<<"Введiть кiлькiсть кiмнат : "; cin>>rooms;
cout<<"Введiть поверх : "; cin>>floor;
cout<<"Введiть цiну : "; cin>>price;
}
}
void EditPrice () {
cout<<"Стара ціна : "<<price<<"\n";
cout<<"Введiть цiну : "; cin>>price;
}
void PrintClient () {
cout<<"---------------------------------------"<<endl;
cout<<"ПIБ : "<<surname<<" "<<name<<" "<<nickname<<"\n"<<"Номер : "<<number<<"\n"<<"Адреса : "<<addresses<<"\n"<<"Тип заявки : ";
if (type == Exchange ) {
cout<<type1<<"\n";
cout<<"Район : "<<district<<"\n"<<"Площа квартири : "<<area<<"\n"<<"Кiлькiсть кiмнат : "<<rooms<<"\n"<<"Поверх : "<<floor<<"\n"<<"Цiна квартири : "<<price<<"\n";
} else if (type == Purchase ) {
cout<<type1<<"\n";
} else if (type == Sale ) {
cout<<type1<<"\n";
cout<<"Район : "<<district<<"\n"<<"Площа квартири : "<<area<<"\n"<<"Кiлькiсть кiмнат : "<<rooms<<"\n"<<"Поверх : "<<floor<<"\n"<<"Цiна квартири : "<<price<<"\n";
}
cout<<"---------------------------------------"<<endl;
}
};
struct BaseClient {
Client* clients;
int sizecl;
BaseClient(int N) {
sizecl = N;
clients = new Client [sizecl];
}
void FillCl() {
for(int i = 0; i < sizecl; i++) {
clients[i].FillClient();
}
}
void PrintCl() {
for(int i = 0; i < sizecl; i++) {
clients[i].PrintClient();
}
}
void SortCl() {
for (int i=0; i<sizecl-1; i++)
for(int j=i+1; j<sizecl; j++) {
if (strcmp(clients[i].surname,clients[j].surname)>0) {
Client tmp=clients[i];
clients[i]=clients[j];
clients[j]=tmp;
}
}
}
void EditorCl () {
int id;
cout<<"Введiть id клієнта : "; cin >> id;
clients[id].FillClient();
}
void AddNewCl() {
Client* t = new Client[sizecl+1];
for (int i = 0; i < sizecl; i++ ) {
t[i]=clients[i];
}
delete[] clients;
clients=t;
clients[sizecl].FillClient();
sizecl++;
}
void SearchAdr () {
char familiya[25]; char nomer[25];
cout<<"Введіть прізвище клієнта : ";
cin>>familiya;
cout<<"Введіть номер клієнта : ";
cin>>nomer;
for(int i = 0; i < sizecl; i++) {
if ((strcmp( clients[i].surname, familiya ) == 0) && (strcmp( clients[i].number, nomer ) == 0)) {
cout<<"Адреса : "<<clients[i].addresses;
}
}
}
void Searchs () {
int kolvokimnat;
cout<<"Введіть кількість кімнат : ";
cin>>kolvokimnat;
for(int i = 0; i < sizecl; i++) {
if (clients[i].floor > 1 && clients[i].rooms ==kolvokimnat) {
clients[i].PrintClient();
}
}
}
void Searchss () {
char plowa[25]; char plowa2[25]; char rayon[35];
cout<<"Введіть площу 'від' : ";
cin>>plowa;
cout<<"Введіть площу 'до' : ";
cin>>plowa2;
cout<<"Введіть район : ";
cin>>rayon;
for(int i = 0; i < sizecl; i++) {
if ((strcmp( clients[i].area, plowa ) > 0) && (strcmp( clients[i].area, plowa2 ) < 0) && (strcmp( clients[i].district, rayon ) == 0) ) {
clients[i].PrintClient();
}
}
}
void Pricecenter () {
double res=0; double isw=0;
for(int i = 0; i < sizecl; i++) {
if (clients[i].rooms == 3) {
isw++;
res += clients[i].price ;
}
}
cout<< res / isw <<endl;
}
void DelClient () {
int idd;
cout<<"Введiть id клієнта : ";
cin>>idd;
cout << "sizecl = " << sizecl << endl;
Client* t = new Client[sizecl-1];
for (int i = 0; i < sizecl; i++ ) {
if (i != idd ) {
t[i]=clients[i];
} else {
clients[idd];
}
}
cout << "\n-------------\n";
delete[] clients;
clients = NULL;
clients=t;
sizecl--;
}
};
int MenuCl () {
int choice;
cout <<"\t......::Виберiть операцiю:......\n";
cout <<"\t| ____________________________ |\n";
cout <<"\t| [1] - Заповнити клієнтів |\n";
cout <<"\t| [2] - Вивести список клієнтів|\n";
cout <<"\t| [3] - Вiдредагувати клієнта |\n";
cout <<"\t| [4] - Добавити клієнта |\n";
cout <<"\t| [5] - Сортувати клієнтів |\n";
cout <<"\t| [6] - Пошук проживаня клієнта|\n";
cout <<"\t| [7] - Вибірка квартир не на першому поверсі з N-кімнат |\n";
cout <<"\t| [8] - Вибірка квартир площею від АА до ББ в районі СС |\n";
cout <<"\t| [9] - Три кімнатна |\n";
cout <<"\t| [10] - Видалити клієнта |\n";
cout <<"\t| ____________________________ |\n";
cout <<"\t| [0] - Вихiд |\n";
cout <<"\t| ____________________________ |\n";
cout<<endl;
cout<<"Введiть номер операцiї : ";
cin >> choice;
return choice;
}
int main () {
SetConsoleCP(1251);
SetConsoleOutputCP(1251);
setlocale(LC_CTYPE, "Ukrainian");
enum Operation {FillArraya = 1, PrintArraya = 2, EditArraya = 3, Addabonent = 4, Sort = 5, SearchAdres = 6, SearchRoom = 7, SearchPlowa = 8, DeleteArraya = 10, Exit = 0};
int N; int choice = -1; int choices = -1;
cout<<"Введiть кiлькiсть клієнтів : "; cin>>N;
BaseClient basecl(N);
while (choice!=0) {
choice = MenuCl();
switch (choice) {
case FillArraya :
basecl.FillCl();
break;
case PrintArraya :
basecl.PrintCl();
break;
case EditArraya :
basecl.EditorCl();
break;
case Addabonent :
basecl.AddNewCl();
break;
case Sort:
basecl.SortCl();
break;
case SearchAdres :
basecl.SearchAdr();
break;
case SearchRoom :
basecl.Searchs();
break;
case SearchPlowa :
basecl.Searchss();
break;
case 9 :
basecl.Pricecenter();
break;
case DeleteArraya:
basecl.DelClient();
break;
}
}
}