Subido por Omar Vargas

ALBUM TERCER PARCIAL

Anuncio
ÁLBUM DE CÓDIGOS.
3°er PARCIAL.
Programación estructurada.
Maestra: SERRANO FRAGOSO MARISELA.
Grupo: 1TM1.
Carrera: TELEMÁTICA
VALDOVINOS VARGAS OMAR ENRIQUE.
INDICE DE PROGRAMAS:
APUNTADORES
PARAMETROS POR REFERENCIAS
ESCTRUCTURAS:
Estáticas
Dinámicas.
LLAMADO POR FUNCION
FILE:
Secuenciales
Aleatorios
APUNTADORES
#include <stdio.h>
#include <stdlib.h>
typedef struct{
char fabricante[20];
int cantidad;
float preciounitario;
}registro_piezas;
main(){
registro_piezas *ptr_reg;
float valor_total;
ptr_reg=(registro_piezas*)malloc(sizeof(registro_piezas)); //asignar memoria al puntero
de la estructura
printf ("Nombre del fabricante\n");
gets(ptr_reg->fabricante);
printf ("Cantidad\n");
scanf("%d", &ptr_reg->cantidad);
printf ("Precio unitario\n");
scanf("%f", &ptr_reg->preciounitario);
valor_total=(ptr_reg->cantidad)*(ptr_reg->preciounitario);
puts(ptr_reg->fabricante);
printf ("%d", valor_total);
return 0;
}
APUNTADORES
PARAMETRO POR REFERENCIAS
#include <stdio.h>
#include <stdlib.h>
void IncrementarVal(int x);
void IncrementarRef(int &x);
int main(int argc, char *argv[])
{
int a;
a=5;
printf("%d", a);
IncrementarVal(a);
printf("%d", a);
IncrementarRef(a);
printf("%d", a);
IncrementarVal(a);
printf("%d", a);
IncrementarRef(a);
printf("%d", a);
system("PAUSE");
return 0;
}
void IncrementarVal(int x)
{
x=x+1;//Perdon
}
void IncrementarRef(int &x)
{
x=x+1;//Perdon
}
Estructuras
#include <stdio.h>
#include <stdlib.h>
void vaciar();
typedef struct {
char *nombre;
int edad;
}Trabajadores;
Trabajadores *trabajador;
int main(int argc, char *argv[]) {
FILE *fpointer;
int i;
int contador;
fpointer=fopen("datos.txt", "r");
if (fpointer==NULL){
printf("El archivo no se pudo abrir.\n");
exit (1);
}
char text[50];
while(!feof(fpointer)){
fgets(text, 50, fpointer);
contador++;
}
rewind(fpointer);//me regresa el cursor al inicio de mi archivo
trabajador=(Trabajadores*)malloc(cont*sizeof(Trabajadores));
if (trabajador==NULL){
printf ("No se puede reservar la memoria. \n");
exit (1);
}
for(i=0;!feof(fpointer);i++){
vaciar(text);
}
return 0;
}
void vaciar(char texto[]){
int i;
for(i=0;i<50;i++){
texto[i]='\0'
}
}
FILE
#include <stdio.h>
#include <stdlib.h>
#include <windows.h>
#include <conio.h>
// Calcula el promedio de alumnos,programa que usa archivos
// Estructura del archivo de entrada
typedef struct{
long int matricula_e;
char nombre_e[30];
int primer_p_e;
int segundo_p_e;
}calificacion; // nombre del registro de salida
// Estructura del archivo de salida
typedef struct{
long int matricula_s;
char nombre_s[30];
int primer_p_s;
int segundo_p_s;
int promedio_s;
}promedio; // nombre del registro de salida
//Puntero al archivo de entrada y de salida
FILE *fentrada, * fsalida;
calificacion entrada; // variable tipo registro del archivo de entrada
promedio salida; // variable tipo registro del archivo de salida
void menu();
void iniciar();
void altas(calificacion entrada);
void reporte(calificacion entrada, promedio salida);
void imprime(promedio salida);
void encabezado()
//Definir función gotoxy() para compiladores ANSI C
void gotoxy(short x,short y)
{
COORD coord;
coord.X=x;
coord.Y=y;
SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE),coord);
}
int main(int argc, char *argv[])
{
//Invoca a la funcion menu
menu();
system("PAUSE");
return 0;
}
//Fin de la funcion main()
void menu(){
int opcion;
do{
system("cls");
printf("MENU PRINCIPAL\n");
printf("1.- INICIAR\n");
printf("2.- ALTAS\n");
printf("3.- REPORTE\n");
printf("4.- SALIDA\n");
printf("cual opcion deseas? :");
scanf("%d",&opcion);
switch(opcion){
case 1:
//borrar el archivo de entrada anterior
iniciar();
break;
case 2:
//altas de registros
altas(entrada);
break;
case 3:
//da el resultado del proceso
reporte(entrada, salida);
break;
}//fin del switch
}while(opcion>0 && opcion<4);
}//fin funcion menu()
void iniciar(){
int op;
printf("I N I C I A R\n");
printf("Esta rutina borra el archivo de entrada anterior\n");
printf("Deceas borrarlo? 1.-Si; 2.-No :");
scanf("%d",&op);
if(op==1){
//abrir archivo de entrada
fentrada=fopen("calificacion.txt","r");
if(fentrada==NULL){
printf("No se puede borrar el archivo porque NO existe \n");
getche();
}
else {
fclose(fentrada);
//borrar archivo
remove("calificacion.txt");
}//fin del if(fentrada==NULL)
}//fin del if(op==1)
}//fin de la funcion iniciar()
void altas(calificacion entrada){
int op;
//abrir archivo de entrada
fentrada=fopen("calificacion.txt","a+");
if(fentrada==NULL){
printf("El archivo de entrada NO existe ; favor de revisar su proceso \n");
}//fin if
if(fentrada!=NULL){
do{
printf("A L T A S \n");
printf("Dame la matricula:");
scanf("%ld",&entrada.matricula_e);
printf("Dame el nombre:");
scanf(" %[^\n]",entrada.nombre_e);
printf("dame la calificacion del primer parcial:");
scanf("%d",&entrada.primer_p_e);
printf("dame la calificacion del segundo parcial:");
scanf("%d",&entrada.segundo_p_e);
//escribe en el archivo de entrada
fwrite(&entrada,sizeof(calificacion),1,fentrada);
printf("Deseas continuar? 1.-Si; 2.-No: ");
scanf("%d",&op);
}while (op==1);
} //fin de if(fentrada!=NULL)
fclose(fentrada);
}//fin de la funcion altas
void reporte(calificacion entrada, promedio salida){
int promedio_w;
system("cls");
fentrada=fopen("calificacion.txt","r"); //abrir archivo de entrada
fsalida=fopen("promedio.txt","w"); //abrir archivo de entrada
if(fentrada==NULL){
printf("El archivo de entrada NO existe; favor de revisar su proceso \n");
}//fin if
if(fentrada!=NULL){
//leer archuvi de entrada
fread(&entrada,sizeof(calificacion),1,fentrada);
do{
promedio_w=(entrada.primer_p_e+entrada.segundo_p_e)/2;
//pasar los valores de las variables de entrada y trabajo a las variables de salida
salida.matricula_s=entrada.matricula_e;
strcpy(salida.nombre_s,entrada.nombre_e);
salida.primer_p_s=entrada.primer_p_e;
salida.segundo_p_s=entrada.segundo_p_e;
salida.promedio_s=promedio_w;
//escribir en el archivo de salida
fwrite(&salida,sizeof(promedio),1,fsalida);
//leer archivo de entrada
fread(&entrada,sizeof(calificacion),1,fentrada);
}while(!feof(fentrada));
fclose(fentrada);
fclose(fsalida);
imprime(salida);
}// fin del if(fentrada!=NULL)
system("pause");
}//fin de la funcion reporte()
void imprime(promedio salida){
int linea;
fsalida=fopen("promedio.txt","r"); //abrir archivo de entrada
if(fsalida==NULL){
printf("No se pudo abrir el archivo; favor de revisar su proceso \n");
}//fin if
//poner encabezados
encabezado();
linea=2;
//leer archivo de salida
fread(&salida,sizeof(promedio),1,fsalida);
do{
gotoxy(1,linea); printf("%ld",salida.matricula_s);
gotoxy(15,linea); printf("%s",salida.nombre_s);
gotoxy(48,linea); printf("%d",salida.primer_p_s);
gotoxy(58,linea); printf("%d",salida.segundo_p_s);
gotoxy(68,linea); printf("%d",salida.promedio_s);
linea++;
//leer archivo de salida
fread(&salida,sizeof(promedio),1,fsalida);
}while(!feof(fsalida));
fclose(fsalida);
}//fin de la funcion imprime
void encabezado(){
gotoxy(1,1); printf("Matricula");
gotoxy(15,1); printf("Nombre");
gotoxy(45,1); printf("Examen 1:");
gotoxy(55,1); printf("Examen 2:");
gotoxy(65,1); printf("Promedio\n");
}
Descargar