Programacion 3333samir

Descargar como txt, pdf o txt
Descargar como txt, pdf o txt
Está en la página 1de 7

s9163+4

Ejercicio 1

#include <iostream>
#include <stdio.h>
#include <conio.h>
#include <string.h>

using namespace std;

struct trabajador{
char nombre[10];
char apellido[20];
char direccion[20];
};

void actualizarFichero(string name, trabajador lst[], int count);


void agregarTrabajador(trabajador lst[], int &count);
void ingresarInfo(trabajador &trab);
void modificarTrabajador(trabajador &trab);
void eliminarTrabajador(trabajador lst[], int &count, int index);
void menuOpciones();
void menuTrabajador();
void mostrarTrabajadores(trabajador lst[], int &count);

int main(){

string name = "agenda.dat";

FILE *fich;

trabajador lista[64];
int opc, topc, count = 0;
bool salir = false;

if ((fich=fopen(name.c_str(), "w"))==NULL){
cout<<"ERROR AL ABRIR FICHERO" << endl;
}
fclose(fich);

while(salir == false){

menuOpciones();
cin >> opc;
switch(opc){
case 1:
agregarTrabajador(lista,count);
cout << "Presione cualquier tecla para continuar..";
break;
case 2:
cout << "Lista de trabajadores"<<endl;
mostrarTrabajadores(lista,count);
cout << "Elija el trabajador a modificar: " << endl;
cin>> topc;
topc--;
modificarTrabajador(lista[topc]);
cout<< "Presione cualquier tecla para continuar..";
getch();
break;

case 3:
cout << "Lista de trabajadores"<<endl;
mostrarTrabajadores(lista,count);
cout << "Elija el trabajador a eliminar: " << endl;
cin>> topc;
topc--;
eliminarTrabajador(lista,count,topc);
cout<< "Presione cualquier tecla para continuar..";
getch();
break;
case 4:
cout << "Lista de trabajadores"<<endl;
mostrarTrabajadores(lista,count);
cout<< "Presione cualquier tecla para continuar..";
getch();
break;
case 5:
salir=true;
break;
}
actualizarFichero(name, lista, count);
system("cls");
}
return 0;
}

void actualizarFichero(string name, trabajador lst[], int count){

FILE*fich;
if ((fich=fopen(name.c_str(),"w"))==NULL) {
cout<<"ERROR AL ABRIR FICHERO" << endl;
return;
}
fputs("Lista de trabajadores: \n", fich);

for (int i = 0; i < count; i++){

fputs(lst[i].nombre, fich); fputc('\t', fich);


fputs(lst[i].apellido, fich); fputc('\t', fich);
fputs(lst[i].direccion, fich); fputc('\t', fich);
}
fclose (fich);
}

void agregarTrabajador(trabajador lst[], int &count){


trabajador tmp;
ingresarInfo(tmp);
lst[count] = tmp;
count++;
cout << "Informacion ingresada correctamente" << endl;
}

void ingresarInfo(trabajador &trab)


{
cout << endl << "Ingrese la informacion del trabajador:" << endl;
cout << "Ingrese el nombre del trabajador: ";
cin >> trab.nombre;
cout << "Ingrese el apellido del trabajador:" << endl;
cin >> trab.apellido;
cout << "Ingrese la direccion del trabajador:" << endl;
cin >> trab.direccion;
}

void menuOpciones()
{
cout << "LISTA TRABAJADORES" << endl;
cout << "1.- Agregar trabajador" << endl;
cout << "2.- Modificar trabajador" << endl;
cout << "3.- Eliminar trabajador" << endl;
cout << "4.- Mostrar registro" << endl;
cout << "5.- Salir" << endl;
}

void menuTrabajador()
{
cout << "LISTA DE DATOS" << endl;
cout << "1.- Nombre" << endl;
cout << "2.- Apellido" << endl;
cout << "3.- Direccion" << endl;
}

void modificarTrabajador(trabajador &trab){


int opc;
menuTrabajador();
cin >> opc;
char tmp[30];

switch(opc){
case 1:
cout << "Ingrese el nuevo nombre: ";
cin>> tmp;
strcpy(trab.nombre, tmp);
break;
case 2:
cout << "Ingrese el nuevo apellido: ";
cin>> tmp;
strcpy(trab.apellido, tmp);
break;
case 3:
cout << "Ingrese la nueva direccion: ";
cin>> tmp;
strcpy(trab.direccion, tmp);
break;
}
cout << "Informacion ingresada correctamente " << endl;
}

void eliminarTrabajador(trabajador lst[], int &count, int index){

int new_count = 0;

for(int i = 0;i < count; i++){


lst[new_count] = lst[i];
if (i !=index){new_count++; }
}
count = new_count;
cout << "Eliminado correctamente" << endl;
}

void mostrarTrabajadores(trabajador lst[], int &count){


for(int i = 0;i < count; i++){
cout<< i + 1 << '\t';
cout<< lst[i].nombre << '\t';
cout<< lst[i].apellido << '\t';
cout<< lst[i].direccion << '\t';
}
}

EJERCICIO 2
#include <iostream>
#include <conio.h>

using namespace std;

int max(int a, int b) {

if (a > b) {
return a;
}
return b;

void mostrarMenu();
int** crearMatriz(int rows, int cols);
void eliminarMatriz(int** m, int rows, int cols);

void mostrarMenu() {

cout << "**************" << endl;


cout << "** E **" << endl;
cout << "** L **" << endl;
cout << "** E 2 **" << endl;
cout << "** C 0 **" << endl;
cout << "** C 2 **" << endl;
cout << "** I 3 **" << endl;
cout << "** O **" << endl;
cout << "** N **" << endl;
cout << "** E **" << endl;
cout << "** S **" << endl;
cout << "**************" << endl;
cout << "** OPCIONES **" << endl;
cout << "**************" << endl;
cout << " 1. LLENAR VOTOS" << endl;
cout << " 2. IMPRIMIR VOTOS" << endl;
cout << " 3. MOSTRAR GANADOR" << endl;
cout << " 0. SALIR" << endl;
cout << "Ingrese la opcion que desee: ";
}
int** crearMatriz(int rows, int cols) {

int** m = new int* [rows];

for (int i = 0; i < rows; i++) {


m[i] = new int[cols];
}

return m;
}

void eliminarMatriz(int** m, int rows, int cols) {

for (int i = 0; i < rows; i++) {


delete[] m[i];
}

delete[] m;

void llenarVotosC(int* v, char* can, int n_can, int n_dist) {

cout << "Candidato " << can[n_can] << endl;

for (int i = 0; i < n_dist; i++) {

cout << "Ingrese la cantidad de votos [" << i + 1 << "]: ";
cin >> v[i];
}
}

void llenarVotos(int** m, char* can, int n_can, int n_dist) {

cout << "**************" << endl;


cout << "** LLENADO DE VOTOS **" << endl;
cout << "**************" << endl;

for (int i = 0; i < n_can; i++) {

llenarVotosC(m[i], can, i, n_dist);

void imprimirVotosC(int* v, char* can, int n_can, int n_dist) {

cout << "Candidato " << can[n_can] << endl;


int sum = 0;

for (int i = 0; i < n_dist; i++) {


cout << "Distrito [" << i + 1 << "]: " << v[i] << endl;
sum += v[i];
}
cout << "La suma total de los votos del candidato " << can[n_can] << " es: "
<< sum << endl;

void imprimirVotos(int** m, char* can, int n_can, int n_dist) {

cout << "**************" << endl;


cout << "** IMPRESION DE VOTOS **" << endl;
cout << "**************" << endl;

for (int i = 0; i < n_can; i++) {

imprimirVotosC(m[i], can, i, n_dist);


cout << "**************" << endl;
}
}

void obtenerGanador(int** m, char* can, int n_can, int n_dist) {

cout << "**************" << endl;


cout << "** GANADOR **" << endl;
cout << "**************" << endl;

int sumas[4] = { 0,0,0,0 };


int ganador = 0, may;

for (int i = 0; i < n_can; i++) {


for (int j = 0; j < n_dist; j++) {

sumas[i] += m[i][j];

}
}

may = sumas[0];

for (int i = 1; i < 4; i++) {


if (may < max(may, sumas[i])) {
may = sumas[i];
ganador = i;
}
}

cout << "El ganador es el candidato " << can[ganador] << " con una suma de "
<< sumas[ganador] << " votos." << endl;

int main() {
int opc;
bool salir = false;

char candidatos[5] = "ABCD";

int** votos = crearMatriz(4, 5);


while (salir == false) {
mostrarMenu();
cin >> opc;

system("cls");

switch (opc) {
case 0:
salir = true;
break;
case 1:
llenarVotos(votos, candidatos, 4, 5);
break;
case 2:
imprimirVotos(votos, candidatos, 4, 5);
break;
case 3:
obtenerGanador(votos, candidatos, 4, 5);
}

_getch();

system("cls");
}

eliminarMatriz(votos, 4, 5);

También podría gustarte