//el siguiente archivo contiene datos acerca de los empleados de una empresa, estos datos son los siguentes
//nombre
//apellido
//sueldo
//cantidad de cargas familiares
//seguro medico
//fonasa o isapre
//afp
// se pide dise�ar un programa que realice los siguentes procesos
//a) un procedimiento que cree los archivos con los datos iniciales( el usuario debe definir cuando no quiera seguir ingresando los datos)
// b) un procedimiento que liste todos los datos del archivo
// c) un procedimiento que permita a�adir un empleado
// d) una funcion que retorne la cantidad de empleados que tienen mas de 3 cargas familiares, imprimir es este dato en el programa principal
// e) una funcion que reciba por parametro el apellido de un empleado y retorne su sueldo
// f)una funcion que retorne la suma total de todos los sueldos de los empleados
// el programa principal debe incluir el menu con las siguentes opciones:
// 1 crear archivo
// 2 listar empleados
// 3 agregar empleados
// 4cantidad de cargas
// 5 sueldo de empleado
// 6total sueldo
// ingrese su opcion
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <ctype.h>
#include <conio.h>
void ingresar();
void listar();
void agregar();
int cantidad();
long suel_emple(char apellido[15]);
long sueldos(void);
struct empleado
{
char nomb[10];
char apell[15];
int cargas;
long sueldo;
char seguro[7];
char afp[20];
};
struct empleado emple;
FILE *f;
int main()
{
int opc, cant;
long sueldo;
char a[15];
do
{
system("CLS");
printf("\n\n\n MENU PRINCIPAL ");
printf("\n ==== ========= \n\n\n");
printf(" 1) crear archivo\n");
printf(" 2) listar empleados\n");
printf(" 3) agregar empleados\n");
printf(" 4) cantidad de cargas\n");
printf(" 5) sueldo de empleado\n");
printf(" 6) total sueldos\n");
printf(" 0) salir\n");
printf("Ingrese su opcion : ");
scanf("%d", &opc);
switch (opc)
{
case 1: system("CLS");
ingresar();
break;
case 2: system("CLS");
listar();
getchar();
break;
case 3: system("CLS");
agregar();
break;
case 4: system("CLS");
cant = cantidad();
printf("\n\nLa cantidad de cargas de los empleados es: %d", cant);
getchar();
break;
case 5: system("CLS");
printf("\n\nIngrese el nombre del empleado que desea buscar: ");
fflush(stdin);
gets(a);
fflush(stdin);
sueldo = suel_emple(a);
if (sueldo ==0)
{
printf("\n\nEl empleado no existe");
}
else{
printf("\n\nEl sueldo del empleado es: %ld", sueldo);
}
getchar();
break;
case 6: system("CLS");
sueldo = sueldos();
printf("\n\nEl total de los sueldos de los empleados es: %ld", sueldo);
getchar();
break;
case 0: system("CLS");
printf("\n\n\n\n\nPROGRAMA FINALIZADO......");
getchar();
break;
default: printf("Ingrese opcion nuevamente");
getchar();
}
}while (opc!=0);
}
void ingresar()
{
char resp;
char cadena[100];
if((f=fopen("empleados.dat","w"))==NULL)
{
printf("El archivo no existe");
getchar();
return;
}
do
{
printf("\n\n\nIngrese nombre: ");
fflush(stdin);
fgets(emple.nomb,10,stdin);
fflush(stdin);
printf("\nIngrese apellido: ");
fgets(emple.apell,15,stdin);
fflush(stdin);
printf("\nIngrese cantidad de cargas familiares: ");
scanf("%d",&emple.cargas);
printf("\nIngrese sueldo:");
scanf("%ld",&emple.sueldo);
printf("\nIngrese seguro medico (Fonasa/Isapre): ");
fflush(stdin);
fgets(emple.seguro,7,stdin);
fflush(stdin);
printf("\nIngrese AFP: ");
fgets(emple.afp,20,stdin);
fflush(stdin);
strcpy(cadena,"");
printf("%d",sizeof(struct empleado));system("PAUSE");
fwrite(&emple, sizeof(struct empleado),1,f);
printf ("\n\n\nDesea continuar (S/N):");
resp = toupper(getchar());
}while(resp != 'N');
fclose(f);
}
void listar()
{
if((f=fopen("empleados.dat","r"))==NULL)
{
printf("El archivo no existe");
getchar();
return;
}
rewind(f);
fread(&emple, sizeof(struct empleado),1,f);
printf("%s",emple.nomb);
while (!feof(f))
{
printf("\n\n\nNombre: %s", emple.nomb);
printf("\nApellido: %s", emple.apell);
printf("\nCantidad de cargas familiares: %d", emple.cargas);
printf("\nSueldo: %ld", emple.sueldo);
printf("\nSeguro medico (Fonasa/Isapre): %s", emple.seguro);
printf("\nAFP: %s", emple.afp);
fread(&emple, sizeof(struct empleado),1,f);
}
fclose(f);
}
void agregar()
{
if((f=fopen("empleados.dat","a"))==NULL)
{
printf("El archivo no existe");
getchar();
return;
}
printf("\n\n\nIngrese nombre: ");
fflush(stdin);
gets(emple.nomb);
fflush(stdin);
printf("\nIngrese apellido: ");
fflush(stdin);
gets(emple.apell);
fflush(stdin);
printf("\nIngrese cantidad de cargas familiares: ");
scanf("%d",&emple.cargas);
printf("\nIngrese sueldo:");
scanf("%ld",&emple.sueldo);
printf("\nIngrese seguro medico (Fonasa/Isapre): ");
fflush(stdin);
gets(emple.seguro);
fflush(stdin);
printf("\nIngrese AFP: ");
fflush(stdin);
gets(emple.afp);
fflush(stdin);
fwrite(&emple, sizeof(struct empleado),1,f);
fclose(f);
}
int cantidad()
{
int cont=0;
if((f=fopen("empleados.dat","r"))==NULL)
{
printf("el archivo no existe");
getchar();
return(0);
}
fread(&emple,sizeof(struct empleado),1,f);
while(!feof(f))
{
if (emple.cargas>3)
cont++;
fread(&emple,sizeof(struct empleado),1,f);
}
fclose(f);
return(cont);
}
long suel_emple(char apellido[15])
{
if((f=fopen("empleados.dat","r"))==NULL)
{
printf("el archivo no existe");
getchar();
return(0);
}
fread(&emple,sizeof(struct empleado),1,f);
while(!feof(f))
{
if (strcmp(apellido, emple.apell)==0){
return(emple.sueldo);
}
fread(&emple,sizeof(struct empleado),1,f);
}
fclose(f);
return(0);
}
long sueldos(void)
{
long total=0;
if((f=fopen("empleados.dat","r"))==NULL)
{
printf("el archivo no existe");
getchar();
return(0);
}
fread(&emple,sizeof(struct empleado),1,f);
while(!feof(f))
{
total=total+emple.sueldo;
fread(&emple,sizeof(struct empleado),1,f);
}
fclose(f);
return(total);
}
viernes, 13 de abril de 2012
Trabajas con archivo de datos - C++
Gato Java - programacion estructurada
package gato;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Gato {
public static int matriz[][] = new int [3][3];
public static BufferedReader br =new BufferedReader (new InputStreamReader (System.in));
public static void main(String[] args) throws IOException {
int turno=1;
int respuesta=0;
for(int i=0;i<3;i++){
for(int b=0;b<3;b++){
matriz[i][b]=0;
System.out.print(matriz[i][b]);
}
System.out.println("");
}
System.out.println("-. Juego del Gato .-");
//inicio del videoJuego Gato ...
do{
turno=turno+1;
if(turno%2==0){
llenarMatrizP1();
}else{
llenarMatrizP2();
}
mostrarMatriz();
respuesta=verificarMatriz(respuesta);
}while(respuesta==0);
}
private static void mostrarMatriz() {
for(int i=0;i<3;i++){
for(int b=0;b<3;b++){
System.out.print(matriz[i][b]);
}
System.out.println("");
}
}
private static int verificarMatriz(int respuesta) {
int jugadorG=0;
/* horizontal primera fila
*
* 111
* 000
* 000
*
*
*/
if(matriz[0][0]==1 && matriz[1][0]==1 && matriz[2][0]==1 ){
jugadorG=1;
respuesta=1;
}
if(matriz[0][0]==2 && matriz[1][0]==2 && matriz[2][0]==2 ){
jugadorG=2;
respuesta=1;
}
/* horizontal segunda fila
*
* 000
* 111
* 000
*
*
*/
if(matriz[0][1]==1 && matriz[1][1]==1 && matriz[2][1]==1 ){
jugadorG=1;
respuesta=1;
}
if(matriz[0][1]==2 && matriz[1][1]==2 && matriz[2][1]==2 ){
jugadorG=2;
respuesta=1;
}
/* horizontal tercera fila
*
* 000
* 000
* 111
*
*
*/
if(matriz[0][2]==1 && matriz[1][2]==1 && matriz[2][2]==1 ){
jugadorG=1;
respuesta=1;
}
if(matriz[0][2]==2 && matriz[1][2]==2 && matriz[2][2]==2 ){
jugadorG=2;
respuesta=1;
}
/* vertical primera columna
*
* 100
* 100
* 100
*
*
*/
if(matriz[0][0]==1 && matriz[0][1]==1 && matriz[0][2]==1 ){
jugadorG=1;
respuesta=1;
}
if(matriz[0][0]==2 && matriz[0][1]==2 && matriz[0][2]==2 ){
jugadorG=2;
respuesta=1;
}
/* vertical segunda columna
*
* 010
* 010
* 010
*
*
*/
if(matriz[1][0]==1 && matriz[1][1]==1 && matriz[1][2]==1 ){
jugadorG=1;
respuesta=1;
}
if(matriz[1][0]==2 && matriz[1][1]==2 && matriz[1][2]==2 ){
jugadorG=2;
respuesta=1;
}
/* vertical tercera columna
*
* 001
* 001
* 001
*
*
*/
if(matriz[2][0]==1 && matriz[2][1]==1 && matriz[2][2]==1 ){
jugadorG=1;
respuesta=1;
}
if(matriz[2][0]==2 && matriz[2][1]==2 && matriz[2][2]==2 ){
jugadorG=2;
respuesta=1;
}
/* digagonal 1
*
* 100
* 010
* 001
*
*
*/
if(matriz[0][0]==1 && matriz[1][1]==1 && matriz[2][2]==1 ){
jugadorG=1;
respuesta=1;
}
if(matriz[0][0]==2 && matriz[1][1]==2 && matriz[2][2]==2 ){
jugadorG=2;
respuesta=1;
}
/* digagonal 2
*
* 001
* 010
* 100
*
*
*/
if(matriz[0][2]==1 && matriz[1][1]==1 && matriz[2][0]==1 ){
jugadorG=1;
respuesta=1;
}
if(matriz[0][2]==2 && matriz[1][1]==2 && matriz[2][0]==2 ){
jugadorG=2;
respuesta=1;
}
if(respuesta==1 && jugadorG==1){
System.out.println("El ganador a sido el Primer player felicitaciones !!!");
}
if(respuesta==1 && jugadorG==2){
System.out.println("El ganador a sido el Segundo player felicitaciones !!!");
}
return respuesta;
}
private static void llenarMatrizP1() throws IOException {
int col;
int fil;
int apru=0;
//agregar un do while
do{
System.out.println("Turno del primer Player: ");
System.out.println("Eliga la columna:");
col = Integer.parseInt(br.readLine());
System.out.println("Eliga la fila: ");
fil = Integer.parseInt(br.readLine());
for(int i=0;i<3;i++){
for(int b=0;b<3;b++){
if(matriz[col-1][fil-1]==0){
matriz[col-1][fil-1]=1;
apru=1;
}
}
}
if(apru==0){
System.out.println("La casilla ya esta usada, vuela a intentar");
}
}while(apru==0);
}
private static void llenarMatrizP2() throws IOException {
int col;
int fil;
int apru=0;
//agregar un do while
do{
System.out.println("Turno del segundo Player: ");
System.out.println("Eliga la columna:");
col = Integer.parseInt(br.readLine());
System.out.println("Eliga la fila: ");
fil = Integer.parseInt(br.readLine());
for(int i=0;i<3;i++){
for(int b=0;b<3;b++){
if(matriz[col-1][fil-1]==0){
matriz[col-1][fil-1]=2;
apru=1;
}
}
}
if(apru==0){
System.out.println("La casilla ya esta usada, vuela a intentar");
}
}while(apru==0);
}
}
Suscribirse a:
Comentarios (Atom)