Estou com um problema em uma atividade da faculdade, não consigo gerar o numero certo no programa de acordo com o txt. Ou seja o numero que você digita não bate com o txt gerado.
Vou postar o codigo abaixo.
#include<iostream>
#include<time.h>
#include<fstream>
#include<math.h>
#include <iomanip>
using namespace std;
// 2 >>>FUNÇÃO DESCOBRE SE DIA é DOMINGO<<<<<<
int diasemana ( int dia, int mes, int ano) {
time_t hora;
struct tm *phora;
time(&hora);
phora=localtime(&hora);
phora->tm_year = ano - 1900;
phora->tm_mon = mes - 1;
phora->tm_mday = dia;
mktime(phora);
return phora->tm_wday;
}
int main()
{
int Mes, Ano, QtdDia,DiasUteis,hora, *phora,aux,aux2,testarmes,domingo,diasmes,diaa,i,data,quantidade,j; // excluir var diaa,testarmes
char S[50],D[10],ch;
float valor;
// 1 SOLICITAR DADOS DE ENTRADA
srand(time(0));
cout<<" Programa Gerador ";
do{
cout<<"\n Digite o Mes: ";
cin>>Mes;}
while(!(Mes>=1 && Mes<=12));
do{
cout<<"\n Digite o Ano: ";
cin>>Ano;}
while(Ano<=2010);
do{
cout<<"\n Digite a Quantidade de PRODUTOS VENDIDOS em um dia: ";
cin>>QtdDia;}
while(!(QtdDia>=25 && QtdDia<=50));
diaa=1;
domingo=0;
DiasUteis=0;
if(Mes <=7)
{
if (Mes % 2 == 0)
diasmes=30;
else
diasmes=31;
if (Mes == 2)
diasmes=28;
if (Mes == 8)
diasmes=31;
}
else
{
if (Mes % 2 == 0)
diasmes=31;
else
diasmes=30;
}
for (aux2=1;aux2<=diasmes;aux2++)
{
aux=diasemana(aux2, Mes,Ano);
cout<<"\n Codigo : "<<aux;
cout<<"\n Dia: "<<diaa;
if(aux==0)
domingo++;
diaa++;
}
DiasUteis=diasmes - domingo;
cout<<"\n Esse mes tem: "<<DiasUteis<<" dias uteis ";
cout<<"\n Esse mes tem: "<<domingo<<" domingos ";
// >> 3 E 4 << GERAR TXT COM A QUANTIDADE DE LINHAS QTDDIAS*DIASUTEIS
// DIGITO
data=0;
cout<<"\n AGUARDE GERANDO TXT !! ";
int codigo[10],digito,index,dv,cu; //DECLARAR NO TOPOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
ofstream fout ("SAIDA.TXT");
i=1;
for (data=1;data<=diasmes;data++)
{
aux=diasemana(data, Mes,Ano);
if(aux!=0)
{
// GERAR O CODIGO
for(i=1;i<=QtdDia;i++)
{
// cout<<"\n CODIGO: "<<codigo<<"\n ";
dv=0;
j=4;
cu=6;
codigo[0]=1;
for(index=1;index<=3;index++){
if(index==1)
digito=rand() % (5)+1;
else
digito=rand() % cu;
codigo[index]=digito;
dv=(j*codigo[index])+dv;
j--;
if (cu<10)
cu+=4;
}
dv=(dv+5)%7;
// GRAVANDO NO TXT <<<
for(index=0;index<4;index++)
fout<<codigo[index];
fout<<" - "<<dv;
fout<<" ; ";
fout<<data<<"/"<<Mes<<"/"<<Ano<<" ; ";
quantidade=rand() % 100 +1;
fout<<quantidade<<" ; ";
valor=rand() /199.99;
fout<< setprecision(2) << fixed <<valor<<" ; \n"; // SETPRECISION FIXED ... FIXA O VALOR DA VAR VALOR EM 2 CASAS DECIMAIS
Pergunta
Digaummax
Boa noite!
Estou com um problema em uma atividade da faculdade, não consigo gerar o numero certo no programa de acordo com o txt. Ou seja o numero que você digita não bate com o txt gerado.
Vou postar o codigo abaixo.
#include<iostream>
#include<time.h>
#include<fstream>
#include<math.h>
#include <iomanip>
using namespace std;
// 2 >>>FUNÇÃO DESCOBRE SE DIA é DOMINGO<<<<<<
int diasemana ( int dia, int mes, int ano) {
time_t hora;
struct tm *phora;
time(&hora);
phora=localtime(&hora);
phora->tm_year = ano - 1900;
phora->tm_mon = mes - 1;
phora->tm_mday = dia;
mktime(phora);
return phora->tm_wday;
}
int main()
{
int Mes, Ano, QtdDia,DiasUteis,hora, *phora,aux,aux2,testarmes,domingo,diasmes,diaa,i,data,quantidade,j; // excluir var diaa,testarmes
char S[50],D[10],ch;
float valor;
// 1 SOLICITAR DADOS DE ENTRADA
srand(time(0));
cout<<" Programa Gerador ";
do{
cout<<"\n Digite o Mes: ";
cin>>Mes;}
while(!(Mes>=1 && Mes<=12));
do{
cout<<"\n Digite o Ano: ";
cin>>Ano;}
while(Ano<=2010);
do{
cout<<"\n Digite a Quantidade de PRODUTOS VENDIDOS em um dia: ";
cin>>QtdDia;}
while(!(QtdDia>=25 && QtdDia<=50));
diaa=1;
domingo=0;
DiasUteis=0;
if(Mes <=7)
{
if (Mes % 2 == 0)
diasmes=30;
else
diasmes=31;
if (Mes == 2)
diasmes=28;
if (Mes == 8)
diasmes=31;
}
else
{
if (Mes % 2 == 0)
diasmes=31;
else
diasmes=30;
}
for (aux2=1;aux2<=diasmes;aux2++)
{
aux=diasemana(aux2, Mes,Ano);
cout<<"\n Codigo : "<<aux;
cout<<"\n Dia: "<<diaa;
if(aux==0)
domingo++;
diaa++;
}
DiasUteis=diasmes - domingo;
cout<<"\n Esse mes tem: "<<DiasUteis<<" dias uteis ";
cout<<"\n Esse mes tem: "<<domingo<<" domingos ";
// >> 3 E 4 << GERAR TXT COM A QUANTIDADE DE LINHAS QTDDIAS*DIASUTEIS
// DIGITO
data=0;
cout<<"\n AGUARDE GERANDO TXT !! ";
int codigo[10],digito,index,dv,cu; //DECLARAR NO TOPOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
ofstream fout ("SAIDA.TXT");
i=1;
for (data=1;data<=diasmes;data++)
{
aux=diasemana(data, Mes,Ano);
if(aux!=0)
{
// GERAR O CODIGO
for(i=1;i<=QtdDia;i++)
{
// cout<<"\n CODIGO: "<<codigo<<"\n ";
dv=0;
j=4;
cu=6;
codigo[0]=1;
for(index=1;index<=3;index++){
if(index==1)
digito=rand() % (5)+1;
else
digito=rand() % cu;
codigo[index]=digito;
dv=(j*codigo[index])+dv;
j--;
if (cu<10)
cu+=4;
}
dv=(dv+5)%7;
// GRAVANDO NO TXT <<<
for(index=0;index<4;index++)
fout<<codigo[index];
fout<<" - "<<dv;
fout<<" ; ";
fout<<data<<"/"<<Mes<<"/"<<Ano<<" ; ";
quantidade=rand() % 100 +1;
fout<<quantidade<<" ; ";
valor=rand() /199.99;
fout<< setprecision(2) << fixed <<valor<<" ; \n"; // SETPRECISION FIXED ... FIXA O VALOR DA VAR VALOR EM 2 CASAS DECIMAIS
}
}
}
cout<<"\n TXT GERADO COM SUCESSO !! ";
system("pause");
}
Link para o comentário
Compartilhar em outros sites
0 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.