Salve, mi hanno da poco chiesto di creare un programmatore di eventi in c++ con un menù di selezione nel quale l'utente possa scegliere se: creare un nuovo evento che andrà su txt; Modificare un evento sul suddetto foglio; (Se il programma è aperto) Segnalare quanti giorni mancano all'evento.
Altra piccola cosa è la scadenza: l'utente potrà anche mettere alla fine un numero tra 0 e 99 che indica quanti giorni prima dell'evento vuole essere avvisato.
Di seguito vi posto quello che ho già fatto:
#include <iostream>
#include <conio.h>
#include <math.h>
#include <stdio.h>
#include <math.h>
#include <fstream>
#include <ctime>
#include <new>
#include <stdlib.h>
using namespace std;
int* getData();
int leggi();
//void suona(int ore);
int main()
{ int* data=new int[3];
data=getData();
int ore=24;
int giorno, mese, anno, numero;
int giorno_f, mese_f, anno_f;
int avviso, avviso_f;
//Inserisci azioni prima dell'output
suona(ore);
int st;
giorno = data[0];
mese = (data[1]+1);
anno = (data[2]+1900);
if(mese preso dal foglio-1 == 1) giorno=giorno f+31
else if(mese preso dal foglio-1 == 2) if(anno%4!=0) {st=1; giorno=giorno_f+31+29} else giorno=giorno_f+31+28;
else if(mese preso dal foglio-1 == 3) if (st==1) giorno=giorno_f+31+29+31 else giorno=giorno_f+31+28+31;
else if(mese preso dal foglio-1 == 4) if (st==1) giorno=giorno_f+31+29+31+30 else giorno=giorno_f+31+28+31+30;
else if(mese preso dal foglio-1 == 5) if (st==1) giorno=giorno_f+31+29+31+30+31 else giorno=giorno_f+31+28+31+30+31;
else if(mese preso dal foglio-1 == 6) if (st==1) giorno=giorno_f+31+29+31+30+31+30 else giorno=giorno_f+31+28+31+30+31+30;
else if(mese preso dal foglio-1 == 7) if (st==1) giorno=giorno_f+31+29+31+30+31+30+31 else giorno=giorno_f+31+28+31+30+31+30+31;
else if(mese preso dal foglio-1 == 8) if (st==1) giorno=giorno_f+31+29+31+30+31+30+31+31 else giorno=giorno_f+31+28+31+30+31+30+31+31;
else if(mese preso dal foglio-1 == 9) if (st==1) giorno=giorno_f+31+29+31+30+31+30+31+31+30 else giorno=giorno_f+31+28+31+30+31+30+31+31+31;
else if(mese preso dal foglio-1 == 10) if (st==1) giorno=giorno_f+31+29+31+30+31+30+31+31+31+31 else giorno=giorno_f+31+28+31+30+31+30+31+31+31+31;
else if(mese preso dal foglio-1 == 11) if (st==1) giorno=giorno_f+31+29+31+30+31+30+31+31+31+31+30 else giorno=giorno_f+31+28+31+30+31+30+31+31+31+31+30;
avviso = giorno-avviso_f;
cout << giorno << "/" << mese << "/" << anno <<endl;
cout << data[0] << "/" << (data[1]+1) << "/" << (data[2]+1900) <<endl;
return 0;
}
int* getData() //Prendi data locale
{ time_t data = time(NULL); //Salva data in data
tm* tempo = localtime(&data); //Inizializzazione struttura tm
int* times = new int[3]; //Array con gm,m e a
times[0] = tempo -> tm_mday; //Giorno del mese
times[1] = tempo -> tm_mon; //Mese dell'anno
times[2] = tempo -> tm_year; //Anno dell'esistenza
return times;
}
int leggi()
{ ifstream OpenFile("Numeri.txt");
char n,a,u,d,c,m;
fstream f;
f.open ("C:\\Users\\info5-3ib\\Desktop\\Calendario.txt",ios::in);
do
{
a=f.getch();
b=a;
}
while(b!="*");
u=f.getch();
d=f.getch();
giorno_f= (int(d)*10) + int(u);
u=f.getch();
d=f.getch();
giorno_f= (int(d)*10) + int(u);
u=f.getch();
d=f.getch();
c=f.getch();
m=f.getch();
anno_f= (int(m)*1000) + (int(c)*100) + (int(d)*10) + int(u);
u=f.getch();
d=f.getch();
avviso_f= (int(d)*10) + int(u);
}
void suona(int ore) //Funzione di suono
{ do
{ for(int i=10; i<=700; i=i+10) {_beep(, 20);}
for(int i=700; i>=10; i=i-10) {_beep(i, 20);}
}
while(ore!=25);
return;
}
Detto ciò ho alcuni problemi:
- Mi dà errore il while in int leggi() perchè non posso equiparare un pointer ad un integer;
- Non ho idea di come far modificare il foglio all'utente;
- Sulla funzione di suono mi dà errore sui _beep(n,n) dicendomi che non posso usare i numeri.
P.S. Il menù ce l'ho già ma per non incasinare ulteriormente il codice ora è assente.