Chuleta de programación en C

Enviado por Programa Chuletas y clasificado en Informática y Telecomunicaciones

Escrito el en español con un tamaño de 15,21 KB

CLASE 2
struct alumno{
char nombre[15];
char sexo;
int edad;
int notas[3];
};
void ver_array(alumno*, int);
void ver_alumno(alumno);
void modificar_nota_alumno(alumno*);
void main(void){
alumno clase [3];
int i, j, alum, opcion;
for(i=0; i<3; i++){
printf("\\\\n\\\\tIntroduzca el nombre alumno %d: ", i+1);
flushall();
gets(clase[i].nombre);
do{
printf("\\\\n\\\\tIntroduzca el sexo (M/F): ");
flushall();
clase[i].sexo=tolower(getchar());
}while(clase[i].sexo!= 'm' && clase[i].sexo!= 'f');
printf("\\\\n\\\\tIntroduzca la edad: ");
flushall();
scanf("%d", &clase[i].edad);
for(j=0; j<3; j++){
printf("\\\\n\\\\tIntroduzca la nota del modulo %d: ", j+1);
flushall();
scanf("%d", &clase[i].notas[j]);
}
}
do{
do{
clrscr();
printf("\\\\n\\\\tQue desea visualizar?\\\\n\\\\t\\\\t1. La clase entera.\\\\n\\\\t\\\\t2.Un alumno solo.\\\\n\\\\t\\\\t3. Salir.\\\\n\\\\t");
scanf("%d", &opcion);
}while(opcion<1 && opcion>3);
switch(opcion){
case 1:
ver_array(clase, 3);
break;
case 2:
do{
clrscr();
printf("\\\\n\\\\t\\\\tQue alumno desea visualizar??? 1 o 2 o 3: ");
scanf("%d", &alum);
}while(alum<1 && alum>3);
ver_alumno(clase[alum-1]);
modificar_nota_alumno(&clase[alum-1]);
break;
}
printf("\\\\n\\\\tPulse intro para continuar");
flushall(); getchar();
}while(opcion!=3);
}
void ver_array(alumno*alum, int tam){
int i=0;
for(i=0; i printf("\\\\n\\\\tAlumno numero %d:\\\\n\\\\t-----------------", i+1);
printf("\\\\n\\\\t\\\\tNombre %s.\\\\n\\\\t\\\\tSexo %c.\\\\n\\\\t\\\\tEdad %d.", alum[i].nombre, alum[i].sexo, alum[i].edad);
for(int j=0; j<3; j++){
printf("\\\\n\\\\t\\\\tNota modulo %d: %d.", i+1, alum[i].notas[j]);
}
}
}
void ver_alumno(alumno alum){
printf("\\\\n\\\\t\\\\tNombre %s.\\\\n\\\\t\\\\tSexo %c.\\\\n\\\\t\\\\tEdad %d.", alum.nombre, alum.sexo, alum.edad);
for(int j=0; j<3; j++){
printf("\\\\n\\\\t\\\\tNota modulo %d: %d.", j+1, alum.notas[j]);
}
}
void modificar_nota_alumno(alumno * alum){
for(int j=0; j<3; j++)
alum->notas[j]=alum->notas[j]+2;
}

CLASE 2ª
struct alumno{
char nombre[10];
int edad;
int nota;
};

void visualizar(alumno*, float, float);
int generar_edad(void);
int generar_nota(void);

void main(void){
alumno clase [TAMANIO];
int i, total_e=0, total_n=0;
float media_e, media_n;
randomize();
for(i=0; i printf("\\\\n\\\\tIntroduzca el nombre del %d alumno: ", i+1);
flushall();
gets(clase[i].nombre);
clase[i].edad=generar_edad();
clase[i].nota=generar_nota();
}
clrscr();
printf("\\\\n\\\\tLista de alumnos de la clase: ");
printf("\\\\n\\\\t***************************** ");
for(i=0; i printf("\\\\n\\\\n\\\\tAlumnos: %-10s. Edad: %2d. Nota: %2d.", clase[i].nombre, clase[i].edad, clase[i].nota);
total_e=total_e+clase[i].edad;
total_n=total_n+clase[i].nota;
}
media_e=(float)total_e/TAMANIO;
media_n=(float)total_n/TAMANIO;
printf("\\\\n\\\\n\\\\tLa media de edad de la clase es %.2f y la de la nota es %.2f.", media_e, media_n);
printf("\\\\n\\\\t**************************************************************");

visualizar(clase, media_e, media_n);

flushall();
printf("\\\\n\\\\n\\\\tPulse intro para acabar");
getchar();
}

void visualizar(alumno*grupo, float edad_media, float nota_media){
printf("\\\\n\\\\n\\\\n\\\\tLista de alumnos de la clase en relacion a la media de edad y nota: ");
printf("\\\\n\\\\t******************************************************************* ");
for(int i=0; i printf("\\\\n\\\\n\\\\tAlumnos: %-10s. Edad: %2d (%.2f). Nota: %2d (%.2f).", grupo[i].nombre, grupo[i].edad, grupo[i].edad-edad_media, grupo[i].nota, grupo[i].nota-nota_media);
}

int generar_edad(void){
int edad;
edad=(rand()% 11)+15;
return edad;
}

int generar_nota(void){
int nota;
nota=(rand()% 10)+1;
return nota;
}

PRUEBA ESTRUCTURA

struct alumno{
char nombre[10];
char sexo;
int edad;
int nota;
};
void main(void){

alumno clase[TAMANIO]={{"Pepe", 'm', 19, 7},{"Ana", 'f', 22, 2},{"Juan", 'm', 19, 5},{"Sam", 'm', 20, 4},{"Maria", 'f', 20, 5},{"Pedro", 'm', 20, 3},
{"sandra", 'f', 18, 7},{"Alberto", 'm', 23, 1}};

int i, edadtotalm=0, edadtotalf=0, totalm=0, totalf=0, opcion;

for(i=0; i printf("\\\\n\\\\n\\\\t*El alumno se llama %s, con sexo %c, tiene %d anos y su nota es %d.", clase[i].nombre, clase[i].sexo, clase[i].edad, clase[i].nota);
if(clase[i].sexo=='m'){
totalm++;
edadtotalm=edadtotalm+clase[i].nota;
}else{
totalf++;
edadtotalf=edadtotalf+clase[i].nota;
}
}
printf("\\\\n\\\\n\\\\tLa nota media de los chicos es %.2f y la de las chicas %.2f.", (float)edadtotalm/totalm, (float)edadtotalf/totalf);
printf("\\\\n\\\\tQue opcion desea visual?1. Hombres.2. Mujeres.3. Aprobados.\\\\n\\\\t\\\\t4.Suspensos.: ");
scanf("%d", &opcion);
switch(opcion){
case 1:
printf("\\\\n\\\\tLos varones son: ");
for(i=0; i if(clase[i].sexo=='m')
printf("\\\\n\\\\t*%s y la nota %d", clase[i].nombre, clase[i].nota);
}
break;
case 2:
printf("\\\\n\\\\tLos mujeres son: ");
for(i=0; i if(clase[i].sexo=='f')
printf("\\\\n\\\\t*%s y la nota %d",clase[i].nombre, clase[i].nota);
}
break;
case 3:
printf("\\\\n\\\\tLos aprovados son: ");
for(i=0; i if(clase[i].nota>4)
printf("\\\\n\\\\t*%s y la nota %d",clase[i].nombre, clase[i].nota);
}
break;
case 4:
printf("\\\\n\\\\tLos suspensos son: ");
for(i=0; i if(clase[i].nota<5)
printf("\\\\n\\\\t*%s y la nota %d",clase[i].nombre, clase[i].nota);
}
break;
}
flushall();
printf("\\\\n\\\\n\\\\tPulse intro para terminar");
getchar();
}



ALMACEN

struct producto{
char nombre[10];
int precioc;
int preciov;
int unidades;
};
void mostrar_almacen(producto*,int);
void main(void){
producto almacen[TAMANIO]={{"tomates", 1, 2, 250},{"arroz", 2, 6, 120},{"fresas", 2, 5, 95},{"manzanas", 2, 3, 240},{"peras", 1, 2, 175},{"patatas", 2, 4, 550},{"cebolla", 2, 5, 230},
{"melones", 2, 5, 145},{"pepinos", 1, 3, 320},{"sandias", 3, 6, 180}};
int i, opcion, cod_p, unidades_v, unidades_c, control, encontrado;
char buscar_p [10];
do{
clrscr();
printf("\\\\n\\\\t*-----------------------------*\\\\n\\\\t*------GESTION DE ALMACEN-----*\\\\n\\\\t*-----------------------------*");
printf("\\\\n\\\\t*--1.Venta--------------------*\\\\n\\\\t*--2.Compra-------------------*\\\\n\\\\t*--3.Control de pedidos-------*\\\\n\\\\t*--4.Listado almacen----------*"
"\\\\n\\\\t*--5.Busqueda de un producto--*\\\\n\\\\t*--6.Salir--------------------*");
printf("\\\\n\\\\t*-----------------------------*\\\\n\\\\t*-----------------------------*\\\\n\\\\t");
scanf("%d", &opcion);
if(opcion>=0 && opcion<7){
switch(opcion){
case 1:
printf("\\\\n\\\\tQue producto desea vender? Marque el codigo correspondiente.\\\\n\\\\t------------------------------------------------------------");
printf("\\\\n\\\\tTomates: 0. Arroz: 1. Fresas: 2. Manzanas: 3. Peras: 4. Patatas: 5.\\\\n\\\\tCebollas: 6. Melones: 7. Pepinos: 8. Sandias: 9.");
scanf("%d", &cod_p);
printf("\\\\n\\\\tCuantas unidades desea vender?");
scanf("%d", &unidades_v);
if(almacen[cod_p].unidades>unidades_v){
almacen[cod_p].unidades=almacen[cod_p].unidades-unidades_v;
printf("\\\\n\\\\tTiene que cobrar al comprador %d Euros", unidades_v*almacen[cod_p].preciov);
}else
printf("\\\\n\\\\tNo hay tantas unidades en el almacen, solo hay %d", almacen[cod_p].unidades);
break;
case 2:
printf("\\\\n\\\\tQue producto desea comprar? Marque el codigo correspondiente.\\\\n\\\\t------------------------------------------------------------");
printf("\\\\n\\\\tTomates: 0. Arroz: 1. Fresas: 2. Manzanas: 3. Peras: 4. Patatas: 5.\\\\n\\\\tCebollas: 6. Melones: 7. Pepinos: 8. Sandias: 9.");
scanf("%d", &cod_p);
printf("\\\\n\\\\tCuantas unidades desea comprar?");
scanf("%d", &unidades_c);
almacen[cod_p].unidades=almacen[cod_p].unidades+unidades_c;
printf("\\\\n\\\\tTiene que pagar al vendedor %d Euros", unidades_c*almacen[cod_p].precioc);
break;
case 3:
printf("\\\\n\\\\tIntroduzca el numero de unidades minimas: ");
scanf("%d", &control);
printf("\\\\n\\\\tLos productos que tienen menos de %d unidades son: ", control);
for(i=0; i if(almacen[i].unidades printf("\\\\n\\\\t\\\\t%s con %d", almacen[i].nombre, almacen[i].unidades);
}
break;
case 4:
mostrar_almacen(almacen,TAMANIO);
break;
case 5:
printf("\\\\n\\\\tIntroduzca el nombre del producto que desea buscar: ");
flushall();
gets(buscar_p);
encontrado=0;
for(i=0; i if(strcmp(buscar_p, almacen[i].nombre)==0){
printf("\\\\n\\\\tEl producto %s si se encuentra en el almacen con %d unidades.", buscar_p, almacen[i].unidades);
encontrado=1;
}
}
if(encontrado==0)
printf("\\\\n\\\\tEl producto no se encuentra en el almacen.");
break;

}
flushall();
printf("\\\\n\\\\tPulse intro para continuar.");
getchar();
}
}while(opcion!=6);

}

void mostrar_almacen(producto *alm,int tam){
printf("\\\\nProducto\\\\tPrecio_c\\\\tPrecio_v\\\\tUnidades");
printf("\\\\n--------\\\\t--------\\\\t--------\\\\t--------");
for(int i=0; i printf("\\\\n%-8s\\\\t%8d\\\\t%8d\\\\t%8d", alm[i].nombre, alm[i].precioc, alm[i].preciov, alm[i].unidades);
}
HOTEL

#define PISO 3
#define HABITACION 15
void visualizar(char[][HABITACION], int);
void main(void){
char estado[PISO][HABITACION];
char tipo[PISO][HABITACION];
int i, j, k, clase, col, fil=2, opcion, piso, habitacion;
char respuesta;
for(i=0; i for(j=0; j estado[i][j]='L';
}

randomize();
for(k=0; k<15; k++){
i=rand()%3;
j=rand()%15;
estado[i][j]='O';
}

for(i=0; i for(j=0; j clase=rand()%2;
if(clase==0)
tipo[i][j]='S';
else
tipo[i][j]='D';
}
}
do{
clrscr();
do{
printf("\\\\n\\\\tMENU DEL HOTEL\\\\n\\\\t--------------\\\\n\\\\t1.Visualizar el estado de las habitaciones.\\\\n\\\\t2.Visualizar el tipo de las habitaciones.\\\\n\\\\t3.Ocupar habitacion.\\\\n\\\\t4.Salir");
scanf("%d",&opcion);
}while(opcion<1 && opcion>4);
switch(opcion){
case 1:
visualizar(estado, PISO);
break;
case 2:
visualizar(tipo, PISO);
break;
case 3:
do{
printf("\\\\n\\\\tQue habitacion deseocupar??.");
printf("\\\\n\\\\tPiso, del 1 al 3: ");
flushall();
scanf("%d", &piso);
printf("\\\\n\\\\tHabitacion, de la 1 a la 15: ");
flushall();
scanf("%d", &habitacion);
if(estado[piso-1][habitacion-1]=='O'){
printf("\\\\n\\\\tLa habitacion esta ocupada.\\\\n\\\\tLo sentimos, pulse intro para continuar.");
flushall();
getchar();
}else{
if(tipo[piso-1][habitacion-1]=='S')
printf("\\\\n\\\\tLa habitacion elegida es simple.");
else
printf("\\\\n\\\\tLa habitacion elegida es doble.");
printf("\\\\n\\\\tDesea ocuparla?? S/N");
flushall();
respuesta=tolower(getchar());
if(respuesta=='s')
estado[piso-1][habitacion-1]= 'O';
}
}while(respuesta== 'n');
break;
}
}while(opcion!=4);
}

void visualizar(char array[][HABITACION], int fila){
clrscr();
int fil=2, col, i, j;
for(i=0; i fil=fil+2;
col=4;
for(j=0; j col=col+4;
gotoxy(col, fil);
printf("%c", array[i][j]);
}
}
flushall();
printf("\\\\n\\\\tPulse intro para continuar.");
getchar();
}

Entradas relacionadas: