Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - neox

#1
bueno al final he logrado el archivo... les dejo el codigo por si a alguien que venga empezando le sirve de algo!! SALUDOS!!


Código: c
// prog 2 lab.cpp: define el punto de entrada de la aplicación de consola.
//

#include "stdafx.h"
#include <conio.h>
#include <iostream>
#include <stdio.h>
#include <string.h>
#include <stdlib.h>

using namespace std;

/*Desarrolle una estructura de datos de asistente, el cual debe tener cedula, numero de carnet, instituto en el que estudia, nombre y anidar otra estructura; la cual se llama curso_asistido y debe tener nombre del curso, profesor del curso, y código del curso. Y un menú para Mostar, llenarlas, eliminar, guardar y cargar.*/

struct curso_asistido{
char ncurso[10];
char prof_curso[20];
int codcurso;
};

struct asistente{
int ced;
int carne;
char insti[30];
char nombre[30];
curso_asistido cursos[10];
int cr;
bool activo;

};
asistente arreglo[50];
int cont=0;

void guardar(asistente arreglo[], int cont){
system("CLS");//limpia la pantalla
cout<<endl<<endl;
FILE* arch;
arch = fopen("archivo.txt", "w+");
for (int y=0;y<cont;y++){
if (arreglo[y].activo== true){//solo se guardaran aquellas personas que esten activas \n"
cout<<"Nombre: "<<arreglo[y].nombre<<" Cedula: "<<arreglo[y].ced<<" -GUARDADO-"<<endl;
fprintf(arch, "%s", arreglo[y].nombre);
fprintf(arch, "\n%i", arreglo[y].carne);
fprintf(arch, "\n%s", arreglo[y].insti);
fprintf(arch, "\n%i", arreglo[y].cr);
for (int i=0; i<arreglo[y].cr;i++){
fprintf(arch, "\n%s", arreglo[y].cursos[i].ncurso);
fprintf(arch, "\n%s", arreglo[y].cursos[i].prof_curso);
fprintf(arch, "\n%i", arreglo[y].cursos[i].codcurso);
if(y==(cont-1)){fprintf (arch, "\n%i", arreglo[y].ced);}// se eliminan los enter al final del archivo de texto
else fprintf (arch, "\n%i\n\n", arreglo[y].ced);
}
}
}
fclose(arch);
}

void cargar(asistente arreglo[],int &cont){//El arreglo no debe ingresar como referencia, pero el contador si para que su valor cambie respecto a lo que se hace en la funcion
system("CLS");
FILE*arch;
arch=fopen("archivo.txt","r");
if(arch==NULL){
cout<<"no se encontro el archivo"<<endl;
}else{
char cedT[15];
char carneT[15];
char crT[15];
char codT[15];
while(!feof(arch)){
fscanf(arch,"%s",arreglo[cont].nombre);//cont al inicio esta en cero
fscanf(arch,"%s",carneT);
arreglo[cont].carne=atoi(carneT);
fscanf(arch,"%s",arreglo[cont].insti);
fscanf(arch,"%s",crT);
arreglo[cont].cr=atoi(crT);
for (int i=0; i<arreglo[cont].cr; i++){
fscanf(arch,"%s",arreglo[cont].cursos[i].ncurso);
fscanf(arch,"%s",arreglo[cont].cursos[i].prof_curso);
fscanf(arch,"%s",codT);
arreglo[cont].cursos[i].codcurso=atoi(codT);
fscanf(arch,"%s",cedT);
arreglo[cont].ced=atoi(cedT);
}

cout<<endl<<endl<<"Nombre: "<<arreglo[cont].nombre<<" Cedula: "<<arreglo[cont].ced<<"--CARGADO--"<<endl;
arreglo[cont].activo=true;// Activa de nuevo a la persona
cont++;
}
fclose(arch);
}
cout<<endl<<" Presione una tecla para continuar..."<<endl;
}

void nasistente(asistente arreglo[],int &cont){
system ("CLS");
cout<<"****************************************************************************************************"<<endl;
cout<<" INGRESO DE NUEVO ESTUDIANTE"<<endl;
cout<<"****************************************************************************************************"<<endl<<endl;
cout<<"Ingrese el nombre del estudiante: ";
cin>>arreglo[cont].nombre;
cout<<"Ingrese la cedula del estudiante: ";
cin>>arreglo[cont].ced;
cout<<"Ingrese el carné del estudiante: ";
cin>>arreglo[cont].carne;
cout<<"Ingrese el instituto donde estudia: ";
cin>>arreglo[cont].insti;
cout<<" Ingrese el numero de cursos matriculados:  ";
cin>>arreglo[cont].cr;
cout<<endl;
for (int i=0; i<arreglo[cont].cr; i++){
cout<<"Curso #"<<i+1<<endl;
cout<<"Ingrese el curso al que asiste: ";
cin>>arreglo[cont].cursos[i].ncurso;
cout<<"Ingrese el codigo de curso: ";
cin>>arreglo[cont].cursos[i].codcurso;
cout<<"Ingrese el profesor que da el curso: ";
cin>>arreglo[cont].cursos[i].prof_curso;
arreglo[cont].activo=true;
}
cont++;
}
void versis(asistente[],int &cont){
system("CLS");
cout<<"***************************** LISTA DE ALUMNOS ******************************"<<endl<<endl;
if(cont==0){
cout<<"LA LISTA ESTA VACIA!!"<<endl;
}
else{
for (int i=0; i<cont; i++){
if(arreglo[i].activo==true){
cout<<"Alumno: "<<arreglo[i].nombre<<endl;
cout<<"Cedula: "<<arreglo[i].ced<<endl;
cout<<"Carné: "<<arreglo[i].carne<<endl;
cout<<"Instituto: "<<arreglo[i].insti<<endl;
for (int n=0; n<arreglo[i].cr;n++){
cout<<"Curso: "<<arreglo[i].cursos[n].ncurso<<endl;
cout<<"Codigo del curso: "<<arreglo[i].cursos[n].codcurso<<endl;
cout<<"Profesor que imparte el curso: "<<arreglo[i].cursos[n].prof_curso<<endl<<endl;
} cout<<"***************************** *****************************"<<endl<<endl;
}
}
}
}
void eliminar(asistente[], int &cont){
system("CLS");
cout<<"Ingrese el nombre del estudiante a eliminar:  ";
char est[30];cin>>est;
for (int i=0; i<cont; i++){
if (strcmp(est, arreglo[i].nombre)==0){
arreglo[i].activo=false;
cout<<"El estudiante ha sido eliminado de la base de datos"<<endl<<endl;

}
if (i==cont){
cout<<"El estudiante buscado no existe en base de datos"<<endl;
}
}
}
void main(){
bool men= true;
int op= 0;
while (men){
system ("CLS");
cout<<"****************************************************************************************************"<<endl;
cout<< "MENU DE OPERACIONES"<<endl;
cout<<"****************************************************************************************************"<<endl<<endl;
cout<<"1- Agregar estudiante-->  "<<endl;
cout<<"2- Listar estudiantes-->  "<<endl;
cout<<"3- Borrar estudiante -->  "<<endl;
cout<<"4- Guardar lista a archivo --> "<<endl;
cout<<"5- Cargar lista de archivo -->  "<<endl;
cout<<"6- -> SALIR <- "<<endl<<endl;
cout<<"¿ Que accion desea realizar ?  ";
cin>>op;
switch (op){
case 1:{
nasistente( arreglo,cont);
cout<<"Alumno agregado con exito "<<endl<<endl<<"Presione cualquier tecla para continuar...";
getch();
break;
   }
case 2:{
versis(arreglo, cont);
cout<<"Presione cualquier tecla para continuar...";
getch();
break;
   }
case 3:{
eliminar(arreglo,cont);
cout<<"Presione cualquier tecla para continuar...";
getch();
break;
   }
case 4:{
guardar(arreglo, cont);
cout<< "Archivo guardado con exito"<<endl<<endl<<"Presione cualquier tecla para continuar...";
getch();
break;
   }
case 5:{
cargar(arreglo, cont);
cout<<" Archivo cargado con exito" <<endl<<endl<<"Presione cualquier tecla para continuar...";
getch();
break;
   }
case 6:{
men= false;
cout<<"Presione una tecla para salir...";
getch();
break;
   }
default:{
cout<<endl<<"La opcion digitada no exite"<<endl<<endl;
cout<<" Presione una tecla para continuar..."<<endl;
getch();
}
}
}
}
#2
cont aumenta en 1  cada vez que se agrega un estudiante...
#3
en el paso a paso justo en el momento que entra a la funcion guardar me tira el error :S

hace el cout.... y luego cae..
#4
ese es el que trato de solucionar jeje...
#5
te creo el archivo y luego lo pudiste cargar??
#6
wenas gente... vengo a ver si alguien me logra ayudar a que se cree el archivo de un arreglo y todo lo que contiene... yo ya lo tengo hecho, sin embargo en la ejecucion del programa me dice: Excepción no controlada en 0x0f4813af (msvcr100d.dll) en 2prog lab.exe: 0xC0000005: Infracción de acceso al leer la ubicación 0x00000017.

les copio el codigo a ver si me ayudan se los agradeceria mucho:

Código: c
// prog 2 lab.cpp: define el punto de entrada de la aplicación de consola.
//

#include "stdafx.h"
#include <conio.h>
#include <iostream>
#include <stdio.h>
#include <string.h>
#include <stdlib.h>

using namespace std;

/*Desarrolle una estructura de datos de asistente, el cual debe tener cedula, numero de carnet, instituto en el que estudia, nombre y anidar otra estructura; la cual se llama curso_asistido y debe tener nombre del curso, profesor del curso, y código del curso. Y un menú para Mostar, llenarlas, eliminar, guardar y cargar.*/

struct curso_asistido{
char ncurso[10];
char prof_curso[20];
int codcurso;
};

struct asistente{
int ced;
int carne;
char insti[30];
char nombre[30];
curso_asistido cursos[10];
int cr;
bool activo;

};
asistente arreglo[50];
int cont=0;

void guardar(asistente arreglo[], int cont){
system("CLS");//limpia la pantalla
cout<<endl<<endl;
FILE* arch;
arch = fopen("archivo.txt", "w+");
for (int y=0;y<cont;y++){
if (arreglo[y].activo== true){//solo se guardaran aquellas personas que esten activas \n"
cout<<"Nombre: "<<arreglo[y].nombre<<" Cedula: "<<arreglo[y].ced<<" -GUARDADO-"<<endl;
fprintf(arch, "\n%s", arreglo[y].nombre);
fprintf(arch, "\n%i", arreglo[y].carne);
fprintf(arch, "\n%s", arreglo[y].insti);
fprintf(arch, "\n%i", arreglo[y].cr);
for (int i=0; i<arreglo[y].cr;i++){
fprintf(arch, "\n%s", arreglo[y].cursos[i].ncurso);
fprintf(arch, "\n%s", arreglo[y].cursos[i].prof_curso);
fprintf(arch, "\n%s", arreglo[y].cursos[i].codcurso);
if(y==(cont-1)){fprintf (arch, "\n%i", arreglo[y].ced);}// se eliminan los enter al final del archivo de texto
else fprintf (arch, "\n%i\n\n", arreglo[y].ced);
}
}
fclose(arch);
}
}

void cargararchivo(asistente arreglo[],int &cont){//El arreglo no debe ingresar como referencia, pero el contador si para que su valor cambie respecto a lo que se hace en la funcion
system("CLS");
FILE*arch;
arch=fopen("archivo.txt","r");
if(arch==NULL){
cout<<"no se encontro el archivo"<<endl;
}else{
char numT[15];
while(!feof(arch)){
fscanf(arch,"%s",arreglo[cont].nombre);//cont al inicio esta en cero
fscanf(arch,"%i",arreglo[cont].carne);
fscanf(arch,"%s",arreglo[cont].insti);
fscanf(arch,"%i",arreglo[cont].cr);
for (int i=0; i<arreglo[cont].cr; i++){
fscanf(arch,"%s",arreglo[cont].cursos[i].ncurso);
fscanf(arch,"%s",arreglo[cont].cursos[i].prof_curso);
fscanf(arch,"%s",arreglo[cont].cursos[i].codcurso);
fscanf(arch,"%s",numT);
arreglo[cont].ced=atoi(numT);
}

cout<<endl<<endl<<"Nombre: "<<arreglo[cont].nombre<<" Cedula: "<<arreglo[cont].ced<<"--CARGADO--"<<endl;
arreglo[cont].activo=true;// Activa de nuevo a la persona
cont++;
}
fclose(arch);
}
cout<<endl<<" Presione una tecla para continuar..."<<endl;
}

void nasistente(asistente arreglo[],int &cont){
system ("CLS");
cout<<"****************************************************************************************************"<<endl;
cout<<" INGRESO DE NUEVO ESTUDIANTE"<<endl;
cout<<"****************************************************************************************************"<<endl<<endl;
cout<<"Ingrese el nombre del estudiante: ";
cin>>arreglo[cont].nombre;
cout<<"Ingrese la cedula del estudiante: ";
cin>>arreglo[cont].ced;
cout<<"Ingrese el carné del estudiante: ";
cin>>arreglo[cont].carne;
cout<<"Ingrese el instituto donde estudia: ";
cin>>arreglo[cont].insti;
cout<<" Ingrese el numero de cursos matriculados:  ";
cin>>arreglo[cont].cr;
cout<<endl;
for (int i=0; i<arreglo[cont].cr; i++){
cout<<"Curso #"<<i+1<<endl;
cout<<"Ingrese el curso al que asiste: ";
cin>>arreglo[cont].cursos[i].ncurso;
cout<<"Ingrese el codigo de curso: ";
cin>>arreglo[cont].cursos[i].codcurso;
cout<<"Ingrese el profesor que da el curso: ";
cin>>arreglo[cont].cursos[i].prof_curso;
arreglo[cont].activo=true;
}
cont++;
}
void versis(asistente[],int &cont){
system("CLS");
cout<<"***************************** LISTA DE ALUMNOS ******************************"<<endl<<endl;
if(cont==0){
cout<<"LA LISTA ESTA VACIA!!"<<endl;
}
else{
for (int i=0; i<cont; i++){
if(arreglo[i].activo==true){
cout<<"Alumno: "<<arreglo[i].nombre<<endl;
cout<<"Cedula: "<<arreglo[i].ced<<endl;
cout<<"Carné: "<<arreglo[i].carne<<endl;
cout<<"Instituto: "<<arreglo[i].insti<<endl;
for (int n=0; n<arreglo[i].cr;n++){
cout<<"Curso: "<<arreglo[i].cursos[n].ncurso<<endl;
cout<<"Codigo del curso: "<<arreglo[i].cursos[n].codcurso<<endl;
cout<<"Profesor que imparte el curso: "<<arreglo[i].cursos[n].prof_curso<<endl<<endl;
} cout<<"***************************** FIN DE LA LISTA *****************************"<<endl<<endl;
}
}
}
}
void eliminar(asistente[], int &cont){
system("CLS");
cout<<"Ingrese el nombre del estudiante a eliminar:  ";
char est[30];cin>>est;
for (int i =0; i<cont; i++){
if (strcmp(est, arreglo[i].nombre)==0){
arreglo[i].activo=false;
cout<<"El estudiante ha sido eliminado de la base de datos"<<endl<<endl;
}
else{
cout<<"EL ESTUDIANTE NO EXISTE EN BASE DE DATOS"<<endl;
}
}
}
void main(){
bool men= true;
int op= 0;
while (men){
system ("CLS");
cout<<"****************************************************************************************************"<<endl;
cout<< "MENU DE OPERACIONES"<<endl;
cout<<"****************************************************************************************************"<<endl<<endl;
cout<<"1- Agregar estudiante-->  "<<endl;
cout<<"2- Listar estudiantes-->  "<<endl;
cout<<"3- Borrar estudiante -->  "<<endl;
cout<<"4- Guardar lista a archivo --> "<<endl;
cout<<"5- Cargar lista de archivo -->  "<<endl;
cout<<"6- -> SALIR <- "<<endl<<endl;
cout<<"¿ Que accion desea realizar ?  ";
cin>>op;
switch (op){
case 1:{
nasistente( arreglo,cont);
cout<<"Alumno agregado con exito "<<endl<<endl<<"Presione cualquier tecla para continuar...";
getch();
break;
   }
case 2:{
versis(arreglo, cont);
cout<<"Presione cualquier tecla para continuar...";
getch();
break;
   }
case 3:{
eliminar(arreglo,cont);
cout<<"Presione cualquier tecla para continuar...";
getch();
break;
   }
case 4:{
guardar(arreglo, cont);
cout<< "Archivo guardado con exito"<<endl<<endl<<"Presione cualquier tecla para continuar...";
getch();
break;
   }
case 5:{
//cargar(arreglo, cont);
cout<<" Archivo cargado con exito" <<endl<<endl<<"Presione cualquier tecla para continuar...";
getch();
break;
   }
case 6:{
men= false;
cout<<"Presione una tecla para salir...";
getch();
break;
   }
default:{
cout<<endl<<"La opcion digitada no exite"<<endl<<endl;
cout<<" Presione una tecla para continuar..."<<endl;
getch();
}
}
}
}
#7
si necesitas algo avisa dark yo tengo el visual C++ si te sirve de algo ;)

salu2
#8
147 millones jajajaja
#9
gracias por la respuesta linkgl!!

me puse a probar hasta que finalmente recorde una manera de hacerlo les muestro por si a alguien le sirve:

Código: c
typedef struct asistente{
int ced;
int carne;
char insti;
char nombre;
bool activo;
struct curso_asistido{
char ncurso;
char prof_curso;
int codcurso;
}x;
};


y para acceder a algun elemento de la estructura anidada sencillamente se pone:

variable.x.ncurso  ....... de la misma manera con cualquier otro miembro de la estructura!

saludos ;)
#10
buenas--- a ver si alguien me responde algo sencillo... necesito saber la manera de acceder a algun miembro de una estructura anidada; les pongo el codigo:

Código: c
struct asistente{
int ced;
int carne;
char insti;
char nombre;
struct curso_asistido{
char ncurso;
char prof_curso;
int codcurso;

quiero saber como puedo accerder a los miembros de curso_asistido ..... gracias al que me pueda echar una mano
#11
sensei muchisimas gracias por la ayuda!, lo de math ya lo habia agregado por ahi no anda; el error que me sale es este:

1>c:\users\ary\documents\visual studio 2010\projects\integral\integral\integral.cpp(144): error C2659: '=' : función como operando izquierdo

el mismo en todas las lineas donde esta f= bla bla bla
#12
vuelvo con problemas!!! disculpen q moleste tanto pero vengo empezando en esto :P... Mi trabajo requiere hacer un menu con varias funciones, ya lo hago sin embargo hay errores q no entiendo a ver si porfavor me echan la mano!! ahi va el codigo-->

Código: cpp
#include "StdAfx.h"
#include <iostream>
#include <stdio.h>
#include <conio.h> /*para getch(),clrscr()*/
#include <stdlib.h>/*para exit()*/

using namespace std;


double x;
float a,b;
double h;
double So=0.0;
double f(double x);
double Area;
int n;
//Calculo de una integral con el metodo del trapecio
void trapecio(double f(double x)){

double Linf=a,Lsup=b;
int signo=1;
if(a>b){
Linf=b; Lsup=a; signo=-1;
  }
  cout<<"Ingrese el limite inferior";
  cin>>Linf;
  cout<<"Ingrese limite superior";
  cin>>Lsup;
  cout<<"Ingrese el numero de segmentos";
  cin>>n;

  h=(Lsup-Linf)/n;
  for(x=Linf+h;x<Lsup;x+=h)
   So+=f(x);
   Area=(signo*h*(f(a)+2*So+f(b))/2.0);
   cout<<"El area es -> "<<Area<<endl<<endl;
   cout<<"Presione cualquier tecla para salir";
   getch();
}



void main(){
bool men=true;
int op=0;
while (true){
system ("CLS");
cout<<"*************************************************************************"<<endl;
cout<<"MENU DE INTEGRALES"<<endl;
cout<<"*************************************************************************"<<endl; //³¤²
cout<<"1--> x²-5x+25 "<<endl;
cout<<"2--> x³+2x²-x-10 "<<endl;
cout<<"3--> tan(x)/x "<<endl;
cout<<"4--> sen(x) "<<endl;
cout<<"5--> cos(x) "<<endl;
cout<<"6--> tan(x) "<<endl;
cout<<"7--> sen(x)/x "<<endl;
cout<<"8--> cos(x)/x "<<endl;
cout<<"9--> cos(x)/x² "<<endl;
cout<<"10--> sen(x)/x² "<<endl;
cout<<"11--> tan(x)/x² "<<endl;
cout<<"12--> sen(x)²/x "<<endl;
cout<<"13--> cos(x)²/x "<<endl;
cout<<"14--> tan(x)²/x "<<endl;
cout<<"15--> sen(x)*cos(x) "<<endl;
cout<<"16--> SALIR! "<<endl<<endl;
cout<<"Escoja la integral que desea calcular...";
cin>>op;
switch (op) {
case 1:{
f(x*x-5*x+25);
trapecio(f);
break;
   }
case 2:{
f=x*x*x+2*(x*x)-x-10;
trapecio(f);
break;
   }
case 3:{
f=tan(x)/x;
trapecio(f);
break;
   }
case 4:{
f=sin(x);
trapecio(f);
break;
   }
case 5:{
f=cos(x);
trapecio(f);
break;
   }
case 6:{
f=tan(x);
trapecio(f);
break;
   }
case 7:{
f=sin(x)/x;
trapecio(f);
break;
   }
case 8:{
f=cos(x)/x;
trapecio(f);
break;
   }
case 9:{
f=cos(x)/x*x;
trapecio(f);
break;
   }
case 10:{
f=sin(x)/x*x;
trapecio(f);
break;
}
case 11:{
f=tan(x)/x*x;
trapecio(f);
break;
}
case 12:{
f=(sin(x)*sin(x))/x;
trapecio(f);
break;
}
case 13:{
f=(cos(x)*cos(x))/x;
trapecio(f);
break;
}
case 14:{
f=(tan(x)*tan(x))/x;
trapecio(f);
break;
}
case 15:{
f=sin(x)*cos(x);
trapecio(f);
break;
}
case 16:{
men=false;
break;
}
default:cout<<"La opcion digitada no existe!"<<endl;
}
}
}

les agradezco cualquier ayuda!! Saludos
#13
listo, lo publicare mañana para todo el que lo necesite!! que lo tengo que dejar bonito jaja!

Saludos y gracias!!
#14
ya he visto los errores sensei!! gracias.

con respecto a lo de f... podria ser que  agregue un menu con unas 15 funciones, y sobre ellas calcule la integral??..
#15
por el momento llevo esto;

Código: c
#include "StdAfx.h"
#include <iostream>
#include <stdio.h>
#include <conio.h> /*para getch(),clrscr()*/
#include <stdlib.h>/*para exit()*/

using namespace std;


double x;
float a,b;
double h;
double So=0.0;
double f(double x);
double Area;
int n;
//Calculo de una integral con el metodo del trapecio
void trapecio(){

double Linf=a,Lsup=b;
int signo=1;
if(a>b){
Linf=b; Lsup=a; signo=-1;
  }
  cout<<"Ingrese el limite inferior";
  cin>>Linf;
  cout<<"Ingrese limite superior";
  cin>>Lsup;
  cout<<"Ingrese el numero de segmentos";
  cin>>n;

  h=(Lsup-Linf)/(double)n;
  for(x=Linf+h;x<Lsup;x+=h)
   So+=f(x);
   Area=(signo*h*(f(a)+2*So+f(b))/2.0);
   cout<<"El area es -> "<<Area<<endl<<endl;
   cout<<"Presione cualquier tecla para salir";
   getch();
}



void main(){
trapecio();
cout<<"Presione enter para salir..."<<endl;
getch();
}


y me esta dando un error; símbolo externo "double __cdecl f(double)" (?f@@YANN@Z) sin resolver al que se hace referencia en la función "void __cdecl trapecio(void)" (?trapecio@@YAXXZ)

a ver si me echan la mano ;)... Saludos
#16
Buenas, estoy empezando un curso de c++ en la universidad, me han puesto a hacer un programa para calcular las integrales de una funcion, queria ver si alguien me puede echar la mano que no tengo idea de como hacerlo.

SALUDOS!!  8)
#17
te ayudo a ver si me ayudas jaja, a ver si podemos hacer un codigo que calcule la integral de una funcion. Con el metodo del trapecio.