Domanda agenda personale C++

Stato
Discussione chiusa ad ulteriori risposte.

Pr0Ryder93

Utente Electrum
14 Gennaio 2010
264
67
14
174
PHP:
#include<iostream>
#include<windows.h>
#include<cstdlib>
#include<string>
using namespace std;
void colore(unsigned short colore)
{
    HANDLE hCon = GetStdHandle (STD_OUTPUT_HANDLE);
    SetConsoleTextAttribute ( hCon,colore);
}
int main(){
int condizione;
int a;
int giorni[31] = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,};


int mesi[12] = { 1,2,3,4,5,6,7,8,9,10,11,12,};


MessageBox(0,"premi ok per iniziare","agenda elettronica", MB_OK | MB_ICONINFORMATION);
colore(8 | BACKGROUND_BLUE);
cout << " °°°°°°°°°°°°°°°°°°°°°°°°"<<endl;
cout << " °                                     °"<<endl;
cout << " °   PROBMXING2010    °"<<endl;
cout << " °                                     °"<<endl;
cout << " °°°°°°°°°°°°°°°°°°°°°°°°"<<endl;
cout << " 1(gennaio)"<< endl;
cout << "2(febbraio)"<< endl;
cout << "3(marzo)"<<endl;
cout << "4(aprile)"<<endl;
cout << "5(maggio)"<<endl;
cout << "6(giugno)"<<endl;
cout << "7(luglio)"<< endl;
cout << "8(agosto)"<< endl;
cout << "9(settembre)"<<endl;
cout << "10(ottobre)"<<endl;
cout << "11(novembre)"<<endl;
cout << "12(dicembre)"<<endl;
cout << "quale mese scegli?"<<endl;
cin >> condizione;
switch(condizione){
    case 1:
    if(mesi[0] == condizione)
    {
    cout <<"hai scelto "<< mesi[0]  << endl;
    if(mesi[0] == condizione)
    cout << " quale giorno desideri inserire? " << endl;
    cin >> giorni[1];
    cout << " hai scelto " << giorni[1] << "gennaio" <<  endl;
    cout <<" scrivi la tua nota " << endl;
    cin >> a;
    break;
    }
    case 2:

    if(mesi[1] == condizione)
    {
    cout <<"hai scelto "<< mesi[1]  << endl;
    if(mesi[1] == condizione)
    cout << " quale giorno desideri inserire? " << endl;
    cin >> giorni[1];
    cout << " hai scelto " << giorni[1]<< "febbraio" <<  endl;
    cout <<" scrivi la tua nota " << endl;
    cin >> a;
    break;
    }
    case 3:

    if(mesi[2] == condizione)
    {
    cout <<"hai scelto "<< mesi[2]  << endl;
    if(mesi[2] == condizione)
    cout << " quale giorno desideri inserire? " << endl;
    cin >> giorni[2];
    cout << " hai scelto " << giorni[2]<< "marzo" <<  endl;
    cout <<" scrivi la tua nota " << endl;
    cin >> a;
    break;
    }
    case 4:
    if(mesi[3] == condizione)
    {
    cout <<"hai scelto "<< mesi[3]  << endl;
    if(mesi[3] == condizione)
    cout << " quale giorno desideri inserire? " << endl;
    cin >> giorni[3];
    cout << " hai scelto " << giorni[3]<< "aprile" <<  endl;
    cout <<" scrivi la tua nota " << endl;
    cin >> a;
    break;
    }
    case 5:
    if(mesi[4] == condizione)
    {
    cout <<"hai scelto "<< mesi[4]  << endl;
    if(mesi[4] == condizione)
    cout << " quale giorno desideri inserire? " << endl;
    cin >> giorni[4];
    cout << " hai scelto " << giorni[4]<< "maggio" <<  endl;
    cout <<" scrivi la tua nota " << endl;
    cin >> a;
    break;
    }
    case 6:
    if(mesi[5] == condizione)
    {
    cout <<"hai scelto "<< mesi[5]  << endl;
    if(mesi[5] == condizione)
    cout << " quale giorno desideri inserire? " << endl;
    cin >> giorni[5];
    cout << " hai scelto " << giorni[5]<< "giugno" <<  endl;
    cout <<" scrivi la tua nota " << endl;
    cin >> a;
    break;
    }
    case 7:
    if(mesi[6] == condizione)
    {
    cout <<"hai scelto "<< mesi[6]  << endl;
    if(mesi[6] == condizione)
    cout << " quale giorno desideri inserire? " << endl;
    cin >> giorni[6];
    cout << " hai scelto " << giorni[6]<< "luglio" <<  endl;
    cout <<" scrivi la tua nota " << endl;
    cin >> a;
    break;
    }
    case 8:
    if(mesi[7] == condizione)
    {
    cout <<"hai scelto "<< mesi[7]  << endl;
    if(mesi[7] == condizione)
    cout << " quale giorno desideri inserire? " << endl;
    cin >> giorni[7];
    cout << " hai scelto " << giorni[7]<< "agosto" <<  endl;
    cout <<" scrivi la tua nota " << endl;
    cin >> a;
    break;
    }
    case 9:
    if(mesi[8] == condizione)
    {
    cout <<"hai scelto "<< mesi[8]  << endl;
    if(mesi[8] == condizione)
    cout << " quale giorno desideri inserire? " << endl;
    cin >> giorni[8];
    cout << " hai scelto " << giorni[8]<< "settembre" <<  endl;
    cout <<" scrivi la tua nota " << endl;
    cin >> a;
    break;
    }
    case 10:
    if(mesi[9] == condizione)
    {
    cout <<"hai scelto "<< mesi[9]  << endl;
    if(mesi[9] == condizione)
    cout << " quale giorno desideri inserire? " << endl;
    cin >> giorni[9];
    cout << " hai scelto " << giorni[9]<< "ottobre" <<  endl;
    cout <<" scrivi la tua nota " << endl;
    cin >> a;
    break;
    }
    case 11:
    if(mesi[10] == condizione)
    {
    cout <<"hai scelto "<< mesi[10]  << endl;
    if(mesi[10] == condizione)
    cout << " quale giorno desideri inserire? " << endl;
    cin >> giorni[10];
    cout << " hai scelto " << giorni[10]<< "novembre" <<  endl;
    cout <<" scrivi la tua nota " << endl;
    cin >> a;
    break;
    }
    case 12:
    if(mesi[11] == condizione)
    {
    cout <<"hai scelto "<< mesi[11]  << endl;
    if(mesi[11] == condizione)
    cout << " quale giorno desideri inserire? " << endl;
    cin >> giorni[11];
    cout << " hai scelto " << giorni[11]<< "dicembre" <<  endl;
    cout <<" scrivi la tua nota " << endl;
    cin >> a;
    break;
    }
}
}
HA SOLO UN PICCOLO PROBLEMA NON SALVA LE NOTE MI SPIEGATE COME FARE? NON SO USARE LA CLASSE FSTREAM
 
Ultima modifica:
Anzitutto usa meglio quelli array xD
Facciamo una bella cosa xD Stavolta prova a riorganizzarla in modo pratico da solo... così ti eserciti di più
 
Mentre per quanto riguarda l'algoritmo potresti fare una cosa del genere:
- richiedi giorno e mese interessato
- controlli che la data sia valida (possibilmente non con uno switch)
- chiedi di inserire in una stringa la cosa da salvare
- con una funzione, pushi in un vettore di stringhe una cosa del tipo "3/05 --- Gita ad Assisi"
- con un ciclo for stampi tutti gli elementi del vettore su un .txt

Occhio che non conosco cose avanzate come liste e mappe, probabilmente ci sono scorciatoie.
 
io non voglio fare scorciatoie e meglio programamre con codici lunghi anche se esistono scorciatoie le cose lunghe vengono fatte meglio cmq STEPH hai provato l agenda?
 
Comunque aspetta... "Le cose lunghe vengono meglio".... Beh dipende... è vero se si tratta di un lavoro fatto accuratamente, è vero se si tratta di un progetto con molte revisioni... ma per "lungo" non si deve intendere un codice fatto con un metodo del tutto procedurale... Le scorciatoie ci sono apposta per ottenere lo stesso risultato in modo più logico e in minor tempo.
 
STEPH ho imparato ad usare gli array in una maniera un po piu rapida guarda e dimmi se sto andando bene ||| EDIT ||| grazie per i consigli delgi array l ho fatto da solo
Codice:
#include<iostream>
#include<string>
using namespace std;
int main(){
string parole;
int mesi [] = { 1,2,3,4,5,6,7,8,9,10,11,12};
for(int i = 0; i < 12; i++)
cout << mesi [i] << endl;
}


--- Aggiornamento Post ---

non ho usato la stringa questo e solo un inizio dell'agenda usando gli array in un amaniera piu rapida per esempio ho incrementato l'array in un ciclo for

--- Aggiornamento Post ---

guarda STEPH sono gia riuscito a semplificare il codice della bandiera




#include<iostream>
#include<windows.h>
using namespace std;
void colore (unsigned short colore)
{
HANDLE hCon = GetStdHandle (STD_OUTPUT_HANDLE);
SetConsoleTextAttribute(hCon,colore);
}
int main()
{
colore(7 | BACKGROUND_RED);
cout.width(1);
cout << " ";
colore(7 | FOREGROUND_INTENSITY | (117));
cout.width(1);
cout << " ";
colore(7);
colore(5 | BACKGROUND_GREEN | (40));
cout.width(1);
cout << " ";
colore(5);
}


però ancora e solo una riga se la creo un po piu grande viene un po piu semplificata
 
Ultima modifica:
GRAZIE non cel' avrei mai fatta senza il tuo aiuto xD

--- Aggiornamento Post ---

STEPH dimmi la verità non e un po migliore l impostazione di questa agenda? supporta solo il mese di gennaio perche e un prototipo
per l'agenda finita



#include<iostream>
#include<string>
#include<fstream>
#include<windows.h>
using namespace std;
int main()
{
string parole;
string nota;
while (1){
int giorni [] = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,21,23,24,25,26,27,28,29,30,31};
int mesi [] = {1,2,3,4,5,6,7,8,9,10,11,12};


cout << " quale giorno scegli? " << endl;
cin >> giorni[1];
if(giorni [1] == 1)
cout << " hai scelto " << giorni [1] << endl;

cout << "quale mese scegli? " << endl;
cin >> parole;
if(parole == parole && parole == "gennaio")
cout << "hai scelto " << giorni [1] << ","<< "gennaio" << endl;
cout << " scrivi la tua nota " << endl;
cin >> nota;
if(parole == parole && parole != "gennaio")
MessageBox(0, "il mese immesso non e gennaio ", "ERRORE", MB_OK | MB_ICONINFORMATION);
}
}
 
Bè... va un po' meglio, inizia a vedersi il ragionamento, però anche qui c'erano cose che potevi saltare e cose che potevi riorganizzare xD
 
ti prego fammi un favore... mi sono impegnato fino ad ora. Mi potresti dire dove sbaglio e cosa modificare ? dai ti prego xD
 
Ultima modifica:
Ne ho provato a fare uno, ma mi sono reso conto che è una vera schifezza xDxD Oggi ero a corto di fantasia...
Codice:
#include <iostream>
#include <fstream>
#include <string>
using std::cout; using std::cin;
using std::string; using std::ofstream;
using std::ios_base;

   string mesi[] = {"Gennaio", "Febbraio", "Marzo", "Aprile", "Maggio", "Giugno", 
   "Luglio", "Agosto", "Settembre", "Ottobre", "Novembre", "Dicembre"};
   int n_giorni[] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
   int g, m;
   string evento;

void Salva()
{
 ofstream f;
 f.open("Agenda.txt", ios_base::app);
 f << "\n" << g <<" " << mesi[m-1] << " ---  " << evento <<"\n";   
} 

int main()
{
    char a;
do
   {
   cout << "Inserire giorno e mese ed evento da memorizzare\n";
   cin >> g >> m >> evento;
   if(m > 12 || m <=0  || g > n_giorni[m-1] || g<=0) 
   {
        cout << "Inserire una data valida\n";
        continue;
   }
   Salva();
   cout << "Premere q per uscire o un altro tasto per continuare\n";
   cin >> a;
}while(a!= 'q');
}
il foglio agenda.txt si trova nella stessa cartella dell'eseguibile e viene creato dal nulla xD;

NB: l'input di giorno, mese ed evento deve essere del tipo: "11 8 Compleanno" (premi invio)
Come output ritorna: 11 Agosto --- Compleanno
NB2: l'evento deve essere di una sola parola tipo: "11 8 Mio_Compleanno"
NB3: Sto codice è un disastro xD
 
guarda questo programma e una cavolatella ma e un esempio per farti vedere che sto i mparando ad usare gli array xD
Codice:
#include<iostream>
#include<ctime>
#include<string>
using namespace std;
int main()
{
    string parole;
    char lettere [] = {'a','b','c','d','e','f','g','h','i','l','m','n','o','p','q','r','s','t','u','v','z',};
    cout << " immetti una parola " << endl;
    cin >> parole;
    lettere ['a','b','c','d','e','f','g','h','i','l','m','n','o','p','q','r','s','t','u','v','z'] = rand() %21;
    for (char i = 0; i < 21; i++)
    cout  << parole [i%21];
    cout << " la parola immessa e stata criptata "  << flush;

    }[COLOR=Silver]
[/COLOR]

--- Aggiornamento Post ---

eee l ho visto impazzisce il ciclo xD

--- Aggiornamento Post ---

NON SO SE HO FATTO BENE AD INCREMENTARE SENZA CICLO FOR MA HO CREATO UN GIOCO DELL IMPICCATO A DIR POCO PENOSO SCUSATE TANTE CMQ ECCOVI IL SOURCE

Codice:
#include<iostream>
#include<string>
#include<windows.h>
#include<fstream>
using namespace std;
void colore(unsigned short  colore)
{
    HANDLE hCon = GetStdHandle (STD_OUTPUT_HANDLE);
    SetConsoleTextAttribute (hCon,colore);
}
int main()
{


    string parole [] = {"GATTO", };
    string lettere [] = {"G","A","T","O","C","N","E",};
while(1==1){

colore(7 | FOREGROUND_INTENSITY | (117));
cout.width(3);
    cout << " gioco dell impiccato " << endl;
    colore(7);
    colore(2);
    cout << "immettere lettere " << endl;
    getline(cin,lettere[1,2,3,4,5,6,7]);
    cout << " _ _ _ _ _" << endl;

    if(lettere[1,2,3,4,5,6,7] == "G")
    {
        Beep(100,400);
    cout  << lettere [1,2,3,4,5,6,7] ;
    cout << " hai indovinato la prima lettera G_ _ _ _ _ " << endl;
    system("pause");
    system("cls");
    }
    if(lettere [1,2,3,4,5,6,7] =="A")
    {
        Beep(100,300);
    cout << " hai indovinato la seconda lettera _A _ _ _ " << endl;
    }
    if(lettere[1,2,3,4,5,6,7] == "T")
    {
    cout << lettere [1,2,3,4,5,6,7];
    cout << " hai indovinato la terza lettera  _ _T _  " << endl;
    }
    if(lettere[1,2,3,4,5,6,7] == "T")
    {
        cout << lettere [1,2,3,4,5,6,7];
        cout << " hai indovinato la quarta lettera  _  _ T _ T _"<<endl;
    }
   if(lettere [1,2,3,4,5,6,7] == "O")
   {
    cout << " hai indovinato la parola  _ _ _ _ _O _" << endl;
    cout << " esito finale  HAI INDOVINATO LA PAROLA " << endl;
    cout << " la parola indovinata e " << lettere [0]   << lettere[1] << lettere[2] << lettere [2] << lettere[7] << endl;
   }
   else
   {
       cout << "|______________| " << " errato " << endl;
   }

}
}
 
Stato
Discussione chiusa ad ulteriori risposte.