• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

wykonuje następujące operacje po wciśnięciu odpowiedniego przycisku

Object Storage Arubacloud
0 głosów
451 wizyt
pytanie zadane 23 stycznia 2017 w C i C++ przez Nafalka Nowicjusz (140 p.)
Witam,

 

Mam  do napisania projekt, który wykonuje następujące operacje po wciśnięciu odpowiedniego przycisku:

1- Koniec

2-Dopisanie osoby

3-wypisanie wszystkich

itd...

Dane maja zapisać sie w pliku tekstowym.

Nie chcę gotowego programu ale tez nie wiem jak się za to zabrać, czego mam użyć żeby po wcisnieciu klawisza dodać osobe? Prosze o pomoc

2 odpowiedzi

+1 głos
odpowiedź 23 stycznia 2017 przez mtk3d Nałogowiec (46,690 p.)

Zazwyczaj takie menu wykonuje się za pomocą switch'a. Tutaj masz szablon:

#include <iostream>
 
using namespace std;
 
int option;
 
void zadanie1()
{
  //kod zadania
}
 
void zadanie2()
{
  //kod zadania
}
 
void zadanie3()
{
  //kod zadania
}
 
int main()
{
  while(1)
  {
    cin>>option;
    switch(option)
    {
        case 1:
            zadanie1();
        break;
        case 2:
            zadanie2();
        break;
        case 3:
            zadanie3();
        break;
    }
  }
  return 0;
}

 

+1 głos
odpowiedź 23 stycznia 2017 przez Szahid Pasjonat (20,930 p.)
Jak kolega mtk3d napisał użycie switcha może rozwiązać Twój problem. Jednak nie  jest to jedyne ani najlepsze rozwiązanie. Szybsze ( pod kątem działania programu a nie pisania kodu ) będzie użycie pętli i ifów.  Przypuszczam że Twój program będzie bardzo prosty więc sugeruje jednak użycie switcha ponieważ kod będzie czytelniejszy dla programisty. Jednak Ty sam wiesz najlepiej na czym Ci zależy i decyzje pozostawiam Tobie.

Jeżeli chodzi o dopisywanie osoby to musisz utworzyć zmienną typu fstream i otworzyć ją w trybie ios:app.

Zaraz w komentarzu do tej odpowiedzi wrzuce przykładowy fragment kodu ( jak chcesz możesz się nim zasugerować ). Jeśli masz jakieś pytania to pisz
komentarz 23 stycznia 2017 przez unknown Nałogowiec (39,560 p.)

Szybsze ( pod kątem działania programu a nie pisania kodu ) będzie użycie pętli i ifów.

Skąd to wiesz sprawdzałeś? 

komentarz 23 stycznia 2017 przez Szahid Pasjonat (20,930 p.)
Jestem zbyt leniwy żeby sprawdzać ale instrukcje warunkowe i proste pętle są szybsze od switcha. Taka prawda objawiona
komentarz 23 stycznia 2017 przez unknown Nałogowiec (39,560 p.)

ale instrukcje warunkowe i proste pętle są szybsze od switcha. Taka prawda objawiona

Raczej nie. W najgorszym wypadku kompilator dla switcha wygeneruje taki sam kod jak w przypadku ciągu if/else.

komentarz 23 stycznia 2017 przez Szahid Pasjonat (20,930 p.)
Jestem nauczony innaczej. Według mnie nie masz racji. Ale akurat złożoności obliczeniowej algorytmów nie przerobiłem w wystarczającym stopniu więc koniecznie sprawdzę te informacje. Dziękuje za zwrócenie uwagi.
komentarz 23 stycznia 2017 przez Szahid Pasjonat (20,930 p.)
#include <iostream>
#include <fstream>
#include <ctype.h>// bibliotega  potzrebna do toupper

using namespace std;

void menu();
void dopisz();



int main()
{

  char wybor;
  menu();
  cin>>wybor;
  wybor=toupper(wybor);  // jezli urzytkownik wpisze malą litere to ta funkcja zamieni ją na duża


    switch (wybor)
    {


    case 'D':

            dopisz();
            break;

    case 'W':

            //kod funkcji która wyswietli
            break;

    case 'Z':
      exit(0);


    }
  return 0;
}

void menu()
{
    cout<<"Z - aby zakonczyc"<<endl;
    cout<<"D -aby dopisac osobe"<<endl;
    cout<<"W- aby wyswietlic"<<endl;
}

void dopisz()

{
    fstream plik;
    plik.open("nazwa.txt",ios::app); // w tym trybie wszystko bedzie dopisywane na koncu pliku 
    //... dalsza czesc kodu 
}

 

komentarz 23 stycznia 2017 przez unknown Nałogowiec (39,560 p.)

Ale akurat złożoności obliczeniowej algorytmów nie przerobiłem w wystarczającym stopniu więc koniecznie sprawdzę te informacje.

Tu nie chodzi o złożoność obliczeniową tylko o to jaki kod kompilator wygeneruje dla switcha a jaki dla if/else

komentarz 23 stycznia 2017 przez Szahid Pasjonat (20,930 p.)
A o co ?  Jeden kod będzie bardziej złożony obliczeniowo a drugi mmniej.
komentarz 23 stycznia 2017 przez unknown Nałogowiec (39,560 p.)
Już pisałem, że nie chodzi o złożoność obliczeniową tylko o "sztuczki" kompilatora
komentarz 23 stycznia 2017 przez Szahid Pasjonat (20,930 p.)
A te sztuczki przekładają się na złożoność obliczeniową która interesuje programiste. Im mniejsza tym lepiej. Wiem że są różne kompilatory  ale nie jest tajemnicą że jedne instrukcje są szybsze od innych niezależnie od kompilatora.

Podobne pytania

0 głosów
1 odpowiedź 189 wizyt
0 głosów
1 odpowiedź 108 wizyt
–1 głos
1 odpowiedź 243 wizyt

92,547 zapytań

141,388 odpowiedzi

319,506 komentarzy

61,931 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...