fork download
  1. #include <iostream>
  2. #include <vector>
  3. #include <string>
  4. #include <ctime>
  5.  
  6. using namespace std;
  7.  
  8. struct Evento {
  9. string nome;
  10. int dia, mes, ano, hora, minuto;
  11. string local;
  12. string cpf;
  13. };
  14.  
  15. class CalendarioEventos {
  16. private:
  17. vector<Evento> eventos;
  18.  
  19. public:
  20. // Método para adicionar evento com dados personalizados
  21. void adicionarEvento(string nome, int dia, int mes, int ano, int hora, int minuto, string local, string cpf) {
  22. Evento evento = {nome, dia, mes, ano, hora, minuto, local, cpf};
  23. eventos.push_back(evento);
  24. cout << "Evento adicionado com sucesso!" << endl;
  25. }
  26.  
  27. // Método para listar eventos próximos
  28. void verificarEventosProximos() {
  29. time_t now = time(0);
  30. tm *ltm = localtime(&now);
  31.  
  32. int diaAtual = ltm->tm_mday;
  33. int mesAtual = ltm->tm_mon + 1;
  34. int anoAtual = ltm->tm_year + 1900;
  35. int horaAtual = ltm->tm_hour;
  36. int minutoAtual = ltm->tm_min;
  37.  
  38. cout << "Eventos próximos:" << endl;
  39. bool encontrouEvento = false;
  40.  
  41. // Verifica os eventos próximos à data e hora atual
  42. for (const Evento& evento : eventos) {
  43. if (evento.ano > anoAtual || (evento.ano == anoAtual && evento.mes > mesAtual) ||
  44. (evento.ano == anoAtual && evento.mes == mesAtual && evento.dia > diaAtual) ||
  45. (evento.ano == anoAtual && evento.mes == mesAtual && evento.dia == diaAtual && evento.hora > horaAtual) ||
  46. (evento.ano == anoAtual && evento.mes == mesAtual && evento.dia == diaAtual && evento.hora == horaAtual && evento.minuto > minutoAtual)) {
  47.  
  48. cout << "Evento: " << evento.nome << endl;
  49. cout << "Data: " << evento.dia << "/" << evento.mes << "/" << evento.ano << endl;
  50. cout << "Hora: " << evento.hora << ":" << evento.minuto << endl;
  51. cout << "Local: " << evento.local << endl;
  52. cout << "CPF: " << evento.cpf << endl;
  53. cout << "---------------------------" << endl;
  54. encontrouEvento = true;
  55. }
  56. }
  57.  
  58. if (!encontrouEvento) {
  59. cout << "Nenhum evento próximo encontrado." << endl;
  60. }
  61. }
  62.  
  63. // Método para listar eventos passados
  64. void verificarEventosPassados() {
  65. time_t now = time(0);
  66. tm *ltm = localtime(&now);
  67.  
  68. int diaAtual = ltm->tm_mday;
  69. int mesAtual = ltm->tm_mon + 1;
  70. int anoAtual = ltm->tm_year + 1900;
  71. int horaAtual = ltm->tm_hour;
  72. int minutoAtual = ltm->tm_min;
  73.  
  74. cout << "Eventos passados:" << endl;
  75. bool encontrouEvento = false;
  76.  
  77. // Verifica os eventos passados à data e hora atual
  78. for (const Evento& evento : eventos) {
  79. if (evento.ano < anoAtual || (evento.ano == anoAtual && evento.mes < mesAtual) ||
  80. (evento.ano == anoAtual && evento.mes == mesAtual && evento.dia < diaAtual) ||
  81. (evento.ano == anoAtual && evento.mes == mesAtual && evento.dia == diaAtual && evento.hora < horaAtual) ||
  82. (evento.ano == anoAtual && evento.mes == mesAtual && evento.dia == diaAtual && evento.hora == horaAtual && evento.minuto < minutoAtual)) {
  83.  
  84. cout << "Evento: " << evento.nome << endl;
  85. cout << "Data: " << evento.dia << "/" << evento.mes << "/" << evento.ano << endl;
  86. cout << "Hora: " << evento.hora << ":" << evento.minuto << endl;
  87. cout << "Local: " << evento.local << endl;
  88. cout << "CPF: " << evento.cpf << endl;
  89. cout << "---------------------------" << endl;
  90. encontrouEvento = true;
  91. }
  92. }
  93.  
  94. if (!encontrouEvento) {
  95. cout << "Nenhum evento passado encontrado." << endl;
  96. }
  97. }
  98.  
  99. // Método para preencher eventos já existentes
  100. void preencherEventosExistentes() {
  101. // Preenchendo com os dados do calendário de eventos
  102. adicionarEvento("Júnior Delfino", 14, 12, 2024, 12, 0, "Avenida Rondon Pacheco, 345, cobertura (Edifício Rondon Praia)", "CPF1");
  103. adicionarEvento("Terça da Serra Residencial Senior Uberlândia LTDA", 20, 12, 2024, 16, 0, "Av. Oscarina Cunha Chaves, 510 - Spazio Unigarden", "CPF2");
  104. adicionarEvento("Reila Rocha", 24, 12, 2024, 20, 0, "Rua da Costureira 961 B: Planalto", "CPF3");
  105. adicionarEvento("Alessandra Ferreira de Medeiros", 31, 12, 2024, 19, 0, "Rua das Cerejeiras 648, Bairro Jaraguá", "CPF4");
  106. adicionarEvento("Marcos Stringueta Benante", 31, 12, 2024, 18, 0, "Rua das Cerejeiras N°648, Bairro Jaraguá, Uberlândia MG", "CPF5");
  107. adicionarEvento("Camila Pinheiro Botelho Costa", 17, 1, 2025, 9, 0, "Rua das Acácias 526, Condomínio Morada do Sol", "CPF6");
  108. adicionarEvento("Jessica Duarte Prado", 18, 1, 2025, 0, 0, "Rua Josephina de Souza Leite, 78, Bairro Nova Uberlândia", "CPF7");
  109. adicionarEvento("Jessica Alves Silva", 24, 1, 2025, 21, 30, "Rua Marceliro Bertoldo 713", "CPF8");
  110. adicionarEvento("Danielle Boaventura da Silva", 31, 1, 2025, 20, 0, "Rua Silvio Romero 297, Minas Gerais", "CPF9");
  111. adicionarEvento("Wanessa Rocha de Medeiros", 8, 2, 2025, 17, 0, "Rua Pio XII, N700, JD Ozanan", "CPF10");
  112. adicionarEvento("João Pedro Dias Vieira", 22, 2, 2025, 11, 0, "R. Aurílio Pereira Carvalho 130, Granada", "CPF11");
  113. adicionarEvento("Nayara de Oliveira Silva", 8, 3, 2025, 19, 0, "Rua Marcelino Bertoldo 1749, Morada Nova", "CPF12");
  114. adicionarEvento("Marines Barbosa de Freitas", 8, 3, 2025, 8, 0, "Carmo Gifoni 1500, Park Martins", "CPF13");
  115. adicionarEvento("Marines Barbosa de Freitas", 14, 4, 2025, 8, 0, "Carmo Gifoni 1500, Park Martins", "CPF14");
  116. adicionarEvento("Natalia de Fátima Bragança", 15, 3, 2025, 14, 0, "Rua Felisberto Carrijo, 857, Fundinho", "CPF15");
  117. adicionarEvento("Mayara Alves de Arruda", 22, 3, 2025, 18, 0, "Rua dos Ceamitas 430", "CPF16");
  118. adicionarEvento("Deiziane Assunção Dutra", 22, 3, 2025, 20, 0, "Localização no Google Maps", "CPF17");
  119. adicionarEvento("Lucas Chaves Lima", 25, 3, 2025, 18, 0, "Rua Santos Dumont, 800, Ap 104, Centro", "CPF18");
  120. adicionarEvento("Tatiana Gomes Dias", 29, 3, 2025, 12, 0, "Avenida do Himalaia, 245, Esquina com Alameda dos Pirineus", "CPF19");
  121. adicionarEvento("Claiton Alves Oliveira", 12, 4, 2025, 12, 0, "Rua José Vidoto 601, Chácara do Bola", "CPF20");
  122. adicionarEvento("Fabricia Diniz Oliveira de Andrade", 26, 4, 2025, 19, 0, "Rua Manoelina da Silva Mendes, Morada Nova", "CPF21");
  123. adicionarEvento("Aline Rodrigues Pires", 10, 5, 2025, 13, 0, "Av. Mato Grosso 3464, Umuarama", "CPF22");
  124. adicionarEvento("Tiago Costa Prado", 17, 5, 2025, 21, 0, "Rua Valdomira Pimenta, 979, Chácara Panorama", "CPF23");
  125. adicionarEvento("Maria Eduarda Alves", 30, 5, 2025, 19, 30, "Horácio Rezende 440, Daniel Fonseca", "CPF24");
  126. adicionarEvento("Gustavo Gomes Borges", 27, 6, 2025, 19, 0, "Rua Alfredo Bosi 529", "CPF25");
  127. }
  128. };
  129.  
  130. int main() {
  131. CalendarioEventos calendario;
  132. int opcao;
  133.  
  134. // Preenche os eventos já existentes
  135. calendario.preencherEventosExistentes();
  136.  
  137. do {
  138. // Menu de opções
  139. cout << "Escolha uma opção: " << endl;
  140. cout << "1 - Adicionar evento" << endl;
  141. cout << "2 - Verificar eventos próximos" << endl;
  142. cout << "3 - Verificar eventos passados" << endl;
  143. cout << "0 - Sair" << endl;
  144. cin >> opcao;
  145. cin.ignore(); // Ignora o newline após o número da opção
  146.  
  147. if (opcao == 1) {
  148. string nome, local, cpf;
  149. int dia, mes, ano, hora, minuto;
  150.  
  151. // Solicita os dados do evento
  152. cout << "Digite o nome do evento: ";
  153. getline(cin, nome);
  154. cout << "Digite a data do evento (dia/mês/ano): ";
  155. cin >> dia >> mes >> ano;
  156. cout << "Digite a hora do evento (hora:minuto): ";
  157. cin >> hora >> minuto;
  158. cin.ignore(); // Ignora o newline após a hora e minuto
  159. cout << "Digite o local do evento: ";
  160. getline(cin, local);
  161. cout << "Digite o CPF do organizador: ";
  162. getline(cin, cpf);
  163.  
  164. // Adiciona o evento
  165. calendario.adicionarEvento(nome, dia, mes, ano, hora, minuto, local, cpf);
  166. }
  167. else if (opcao == 2) {
  168. // Verifica e exibe eventos próximos
  169. calendario.verificarEventosProximos();
  170. }
  171. else if (opcao == 3) {
  172. // Verifica e exibe eventos passados
  173. calendario.verificarEventosPassados();
  174. }
  175. } while (opcao != 0);
  176.  
  177. return 0;
  178. }
  179.  
Success #stdin #stdout 0.01s 5284KB
stdin
/*  Berechnung des Hamming-Abstandes zwischen zwei 128-Bit Werten in 	*/
/*	einer Textdatei. 													*/
/*  Die Werte müssen auf einer separaten Zeile gespeichert sein			*/
/* 																		*/
/*	Erstellt: 17.5.2010													*/
/*  Autor: Thomas Scheffler												*/

#include <stdio.h>
#include <stdlib.h>

#define ARRAY_SIZE 32

unsigned Hamdist(unsigned x, unsigned y)
{
  unsigned dist = 0, val = x ^ y;
 
  // Count the number of set bits
  while(val)
  {
    ++dist; 
    val &= val - 1;
  }
 
  return dist;
}



int main (void)
{
	char hex;
	int i;
	int a[ARRAY_SIZE];
	int b[ARRAY_SIZE];
	int hamDist = 0;
	FILE* fp;
	
	//Arrays mit 0 initialisieren
	for (i = 0; i < ARRAY_SIZE; ++i)
	{
  		a[i] = 0;
  		b[i] = 0;
	}

	
	fp = fopen("hex.txt","r");
	if (fp == NULL) 
	{
		printf("Die Datei hex.txt wurde nicht gefunden!");
		exit(EXIT_FAILURE);
	}

	i=0;
	printf("1.Zeile einlesen.\n");

 	while((hex=fgetc(fp))!='\n' && hex != EOF)
    {
        a[i]=strtol(&hex,0,16);
		i++;
    }
	i=0;
	printf("2.Zeile einlesen.\n");

 	while((hex=fgetc(fp))!='\n' && hex != EOF)
    {
    	b[i]=strtol(&hex,0,16);
        i++;
    }
	fclose(fp);

	printf("Hamming-Abweichung pro Nibble:\n");
	for (i = 0; i < ARRAY_SIZE; ++i)
	{
		printf ("%i\t%i\t%i\n",a[i],b[i],Hamdist(a[i],b[i]));
		hamDist += Hamdist(a[i],b[i]);
	}
	printf ("\nHamming-Abweichung der Hash-Werte:%d\n",hamDist);
}

stdout
Evento adicionado com sucesso!
Evento adicionado com sucesso!
Evento adicionado com sucesso!
Evento adicionado com sucesso!
Evento adicionado com sucesso!
Evento adicionado com sucesso!
Evento adicionado com sucesso!
Evento adicionado com sucesso!
Evento adicionado com sucesso!
Evento adicionado com sucesso!
Evento adicionado com sucesso!
Evento adicionado com sucesso!
Evento adicionado com sucesso!
Evento adicionado com sucesso!
Evento adicionado com sucesso!
Evento adicionado com sucesso!
Evento adicionado com sucesso!
Evento adicionado com sucesso!
Evento adicionado com sucesso!
Evento adicionado com sucesso!
Evento adicionado com sucesso!
Evento adicionado com sucesso!
Evento adicionado com sucesso!
Evento adicionado com sucesso!
Evento adicionado com sucesso!
Escolha uma opção: 
1 - Adicionar evento
2 - Verificar eventos próximos
3 - Verificar eventos passados
0 - Sair