online compiler and debugger for c/c++

code. compile. run. debug. share.
Source Code    Language
#include <stdio.h> #include <iostream> #include <vector> #include <map> #include <stdlib.h> #include <time.h> using namespace std; const char* OgrenciIsimleri[] = {"BİRSEN","SERDAR","BÜNYAMİN","ÖZGÜR","FERDİ","REYHAN","İLHAN","GÜLŞAH","NALAN","SEMİH","ERGÜN","FATİH","ŞENAY","SERKAN","EMRE"}; const char* EtkinlikIsimleri[] = {"Satranç","Yüzme","Kamp Yapma","Gezi","Teknoloji"}; const int OgrenciSayisi = 15; const int EtkinlikSayisi = 5; struct Ogrenci { std::string m_Isim; std::vector<int> m_Etkinlikler; }; struct Etkinlik { std::string m_Isim; int m_MinKisi; int m_MaxKisi; Etkinlik() { m_MinKisi = 0; m_MaxKisi = 0; } std::map<int,Ogrenci*> m_Uyeler; }; std::vector<Ogrenci*> v_Ogrenciler; std::vector<Etkinlik*> v_Etkinlikler; void Hazirla() { //Öğrenci listesini hazırla for (int i = 0; i<OgrenciSayisi;i++) { Ogrenci * p = new Ogrenci; p->m_Isim.assign(OgrenciIsimleri[i]); v_Ogrenciler.push_back(p); } //Etkinlikleri hazırla for (int j = 0; j<EtkinlikSayisi;j++) { Etkinlik * p = new Etkinlik; p->m_Isim.assign(EtkinlikIsimleri[j]); v_Etkinlikler.push_back(p); } } void Temizle() { for(size_t i = 0; i<v_Ogrenciler.size(); ++i) { Ogrenci *pItem = v_Ogrenciler.at(i); if (pItem) { delete pItem; pItem = NULL; } } for(size_t i = 0; i<v_Etkinlikler.size(); ++i) { Etkinlik *pItem = v_Etkinlikler.at(i); if (pItem) { delete pItem; pItem = NULL; } } v_Ogrenciler.clear(); v_Etkinlikler.clear(); } int main(int argc, char* argv[]) { setlocale(LC_ALL, "Turkish"); Hazirla(); int Islemler = 0; while (Islemler < EtkinlikSayisi) { Etkinlik *pItem = v_Etkinlikler.at(Islemler); if(pItem) { int MinKisi; int MaxKisi; std::cout << pItem->m_Isim.c_str() << " Etkinliği için minimum kişi sayısı giriniz ,İzin verilen aralık 1 ve " << OgrenciSayisi << std::endl; std::cin >> MinKisi; if(MinKisi < 1 || MinKisi > OgrenciSayisi) { std::cerr << "Hatalı bir rakam girdiniz!" << std::endl ; continue; } else { pItem->m_MinKisi = MinKisi; } std::cout << pItem->m_Isim.c_str() << " Etkinliği için maximum kişi sayısı giriniz ,İzin verilen aralık 1 ve " << OgrenciSayisi << std::endl; std::cin >> MaxKisi; if(MaxKisi < MinKisi) { std::cerr << "Maximum kişi sayısı minimum kişi sayısından az olamaz!" << std::endl ; continue; } else if(MaxKisi < 1 || MaxKisi > OgrenciSayisi) { std::cerr << "Hatalı bir rakam girdiniz!" << std::endl ; continue; } else { pItem->m_MaxKisi = MaxKisi; } if(pItem->m_MaxKisi != 0 && pItem->m_MaxKisi != 0) { Islemler++; } } } //Oğrecileri Etkinliklere ata std::srand (static_cast<unsigned int>(time(NULL))); for(size_t i = 0; i<v_Etkinlikler.size(); ++i) { Etkinlik *pEtkinlik = v_Etkinlikler.at(i); if (pEtkinlik) { int EnAz = pEtkinlik->m_MinKisi; int EnCok = pEtkinlik->m_MaxKisi; int UstLimit = max(EnAz,std::rand() % EnCok); for(int j = 0; j<UstLimit ;j++) { while(true) { int RastgeleUye = std::rand() % (OgrenciSayisi-1); Ogrenci *pOgrenci = v_Ogrenciler.at(RastgeleUye); if (pOgrenci) { //Rastgele öğrenci eğer eklenmişse kontrol et std::map<int,Ogrenci*>::iterator it = pEtkinlik->m_Uyeler.find(RastgeleUye); if(it == pEtkinlik->m_Uyeler.end()) { //Öğreciyi etkinliğe ata pEtkinlik->m_Uyeler[RastgeleUye] = pOgrenci; //Öğrencinin katıldığı etkinliği kaydet //i etkinliğin listedeki sıra numarası //Bu sayede öğrecinin katıldığı etkinlikleri bulabileceğiz pOgrenci->m_Etkinlikler.push_back(static_cast<int>(i)); break; } } } } } } //Etkinlikleri ve katılan üyeleri listele std::cout << std::endl; for(size_t i = 0; i<v_Etkinlikler.size(); ++i) { Etkinlik *pEtkinlik = v_Etkinlikler.at(i); if (pEtkinlik) { std::cout << pEtkinlik->m_Isim.c_str() << " Etkinliği için atanan öğrenci sayısı " << pEtkinlik->m_Uyeler.size() << std::endl; std::cout << "Atanan Öğreciler = {"; for (std::map<int,Ogrenci*>::iterator Uye = pEtkinlik->m_Uyeler.begin(); Uye != pEtkinlik->m_Uyeler.end(); ++Uye) { Ogrenci *pOgrenci = Uye->second; if (pOgrenci) { std::cout << " " << pOgrenci->m_Isim.c_str();// << std::endl; } } std::cout << " }" << std::endl << std::endl; } } std::cout << std::endl; size_t EnCokEtkinligeKatilan = 0; int EnHit = 0; //Öğrecileri ve katıldıkları etkinlikleri listele std::cout << "ÖĞRENCİLER VE KATILDIKLARI ETKİLİKLER" << std::endl << std::endl; for(size_t i = 0; i<v_Ogrenciler.size(); ++i) { Ogrenci *pOgrenci = v_Ogrenciler.at(i); if (pOgrenci) { int EtkinlikSayisi = static_cast<int>(pOgrenci->m_Etkinlikler.size()); if(EtkinlikSayisi > EnHit) { //En çok etkinliğe katılan örenciyi belirle , eğer birden fazla öğrenci var ise ilk tespit edilen kabul edilir EnHit = EtkinlikSayisi; EnCokEtkinligeKatilan = i; } if(EtkinlikSayisi > 0) { std::cout << "Öğrenci ( " << pOgrenci->m_Isim.c_str() << " ) " << EtkinlikSayisi << " Etkinliğe katılmıştır" << std::endl; } } } std::cout << std::endl; std::cout << "HİÇ BİR ETKİNLİKTE YER ALMAYAN ÖĞRENCİLER" << std::endl << std::endl; for(size_t i = 0; i<v_Ogrenciler.size(); ++i) { Ogrenci *pOgrenci = v_Ogrenciler.at(i); if (pOgrenci) { size_t EtkinlikSayisi = pOgrenci->m_Etkinlikler.size(); if(EtkinlikSayisi == 0) { std::cout << "Öğrenci ( " << pOgrenci->m_Isim.c_str() << " ) Hiç Bir Etkinliğe katılmamıştır" << std::endl; } } } std::cout << std::endl; std::cout << "EN ÇOK ETKİNLİKTE YER ALAN ÖĞRENCİ" << std::endl << std::endl; Ogrenci *pOgrenci = v_Ogrenciler.at(EnCokEtkinligeKatilan); if (pOgrenci) { std::cout << "Öğrenci ( " << pOgrenci->m_Isim.c_str() << " ) En Çok Etkinliğe katılmamıştır" << std::endl; } std::cout << std::endl; Temizle(); system("pause"); return 0; }

Compiling Program...

Command line arguments:
Standard Input: Interactive Console Text
×

                

                

Program is not being debugged. Click "Debug" button to start program in debug mode.

#FunctionFile:Line
VariableValue
RegisterValue
ExpressionValue