Skip to content

Instantly share code, notes, and snippets.

Created May 14, 2013 20:32
Show Gist options
  • Save anonymous/5579269 to your computer and use it in GitHub Desktop.
Save anonymous/5579269 to your computer and use it in GitHub Desktop.
I tried to make this program and... the option 3 and 4 is a chaos ;_;
#include <iostream>
#include <stdlib.h>
#include <string.h>
#include <fstream>
#include <cstdlib>
#include <cstring>
using namespace std;
//Suponiendo por predefinición
// 4 candidatos
// 3 ciudades - 450 a nivel nacional
// 9 comunas - 50 por comuna
typedef struct voto{
int pap;
char nomcan[30];
char patcan[30];
char matcan[30];
string partido;
int numdem;
string comuna;
string ciudad;
}voto;
void ingresar_datos(voto datos[], int n)
//Se definen los datos como arreglo
{
int i;
char pausa;
FILE *archivo;
system("cls");
// Lectura de datos por teclado
for(i=0;i<n;i++)
{
cout<<endl<<" INGRESO DE DATOS "<<endl;
cout<<endl<<endl<<"Voto "<<i+1;
cout<<endl<<"Numero de papeleta: ";
cin.clear();
cin.sync();
cin>>datos[i].pap;
cout<<endl<<"Nombre de Candidato: ";
cin.clear();
cin.sync();
cin>>datos[i].nomcan>>datos[i].patcan>>datos[i].matcan;//Gracias a esta linea se logra poder ingresar un nombre completo de manera normal.
cout<<endl<<"Partido politico: ";
cin.clear();
cin.sync();
getline(cin,datos[i].partido);
cout<<endl<<"Numero de Mesa de votacion ";
cin.clear();
cin.sync();
cin>>datos[i].numdem;
cout<<endl<<"Comuna de Votacion ";
cin.clear();
cin.sync();
getline(cin,datos[i].comuna);
cout<<endl<<"Ciudad de Votacion ";
cin.clear();
cin.sync();
getline(cin,datos[i].ciudad);
system("cls");
}
}
void mostrar_datos(voto datos[], int n)
{
system("cls");
cout<<endl<<" MUESTRA DE DATOS "<<endl;
if (n==0) cout<<"No se han ingresado datos para mostrar."<<endl<<endl;
else
{
for(int i=0;i<n;i++)
{
cout<<endl<<"Voto "<<i+1<<endl;
cout<<endl<<"Numero de papeleta: "<<datos[i].pap;
cout<<endl<<"Nombre de Candidato: "<<datos[i].nomcan<<" "<<datos[i].patcan<<" "<<datos[i].matcan;
cout<<endl<<"Partido politico: "<<datos[i].partido;
cout<<endl<<"Numero de Mesa de votacion "<<datos[i].numdem;
cout<<endl<<"Comuna de Votacion "<<datos[i].comuna;
cout<<endl<<"Ciudad de Votacion "<<datos[i].ciudad<<endl;
cout<<"***********************************"<<endl;
}
};
system("pause");
}
//Para grabar y leer archivos utilizaremos ficheros binarios para no generar problemas entre sistemas operativos.
void grabar_datos(voto datos[], int n)
{
char pausa;
FILE *archivo;
archivo = fopen("votos.dat","a+t");
ofstream fs("votos.dat",ios::out|ios::binary);
for (int i=0;i<n;i++)
{
fs<<"Numero de la papeleta: "<<datos[i].pap<<endl;
fs<<"Nombre del candidato: "<<datos[i].nomcan<<" "<<datos[i].patcan<<" "<<datos[i].matcan<<endl;
fs<<"Partido politico: "<<datos[i].partido<<endl;
fs<<"Numero de mesa: "<<datos[i].numdem<<endl;
fs<<"Comuna de votacion: "<<datos[i].comuna<<endl;
fs<<"Ciudad de votacion: "<<datos[i].ciudad<<endl;
fs<<endl;
};
fs.write(reinterpret_cast<char *>(&datos),
sizeof(voto));
fs.close();
cout<<endl<<"Datos guardados exitosamente... ";
system("pause");
};
void leer_datos(voto datos2[])
{
system("cls");
char pausa;
FILE *archivo;
cout<<endl<<" LECTURA DE DATOS "<<endl;
archivo = fopen("votos.dat","rb");
ifstream fe("votos.dat",ios::in | ios::binary);
fe.read(reinterpret_cast<char *>(&datos2),sizeof(voto));
if (archivo==NULL) cout<<"Error al abrir el archivo."<<endl<<endl;
else
{
int n=450;
for (int i=0;i<n;i++)
{
cout<<datos2[i].pap<<endl;
cout<<datos2[i].nomcan<<datos2[i].patcan<<datos2[i].matcan<<endl;
cout<<datos2[i].partido<<endl;
cout<<datos2[i].numdem<<endl;
cout<<datos2[i].comuna<<endl;
cout<<datos2[i].ciudad<<endl;
}
}
system("pause");
};
void generar_estadisticas(voto datos[], int n)
{
};
int main()
{
system("color f0");//Se agrega color al sistema
char opcion;
int n=0;
voto datos[100];
voto datos2[100];
do
{
system("cls");
cout<<" PRIMARIAS PRESIDENCIALES"<<endl<<endl;
cout<<"1) Ingreso de datos desde teclado"<<endl;
cout<<"2) Mostrar datos"<<endl;
cout<<"3) Grabar datos a un archivo"<<endl;
cout<<"4) Leer datos desde un archivo"<<endl;
cout<<"5) Generar estadisticas"<<endl;
cout<<"6) Salir"<<endl;
cout<<endl<<"Ingrese una opcion: ";
cin>>opcion;
switch(opcion){
case '1':{
cout<<"Cuantos datos desea ingresar?";
cin>>n;
ingresar_datos(datos,n);
break;
}
case '2':{
mostrar_datos(datos,n);
break;
}
case '3':{
grabar_datos(datos, n);
break;
}
case '4':{
leer_datos(datos);
break;
}
case '5':{
generar_estadisticas(datos,n);
break;
}
}
}while(opcion!='6');
cout<<endl<<"Gracias por probar Aghsdfhd ltda.";
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment