Created
May 14, 2013 20:32
-
-
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 ;_;
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#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