Quiere un programa o módulo de código con más de 5000 líneas (espero que esté escrito en lenguaje C++ o C)
#include
#include
#include
#include
struct FeiJiDingPiao//Definir matriz de estructura p>
{
char AirNo[4];//Definir el número de vuelo
char StartPos[6];//Definir el origen
char EndPos [6];//Definir el destino
char StartTime[14]; //aammddwwhhmmss
char Mount[4];//Definir el número de tickets
char Precio[5];//Definir tarifa
unsigned char a;//Definir variable sin firmar a
};
struct FeiJiDingPiao s,ss [50];
tamaño de archivo largo(FILE *stream)
{
curpos largos, longitud;
curpos = ftell (flujo );
fseek(stream, 0L, SEEK_END);
length = ftell(stream);
fseek(stream, curpos, SEEK_SET
fseek(stream, curpos, SEEK_SET); p>
longitud de retorno;
}
void disp()//Información de navegación
{ char i;
printf ("\n-");for(i=0;i<4;i++) printf("%c",s.AirNo[i]);
printf("-") ; (i=0;i<6;i++) printf("%c",s.StartPos[i]);
printf("-"); for(i=0;i< 6; i++) printf("%c",s.EndPos[i]);
printf("-"); for(i=0;i<14;i++) printf("%c ", s.StartTime[i]);
printf("-"); for(i=0;i<4;i++) printf("%c",s.Mount[i]) ;
printf("-"); for(i=0;i<5;i++) printf("%c",s.Precio[i]);
/ / printf ("\n");
}
void Pstrcpy( char i)//
{ char j;
for( j=0;j<4;j++) s.AirNo[j]=ss[i].AirNo[j];
for(j=0;j<6;j++) s. j]=ss[i].PosInicio[j];<
/p>
for(j=0;j<6;j++) s.EndPos[j]=ss[i].StartPos[j];
for(j=0;j< 14;j++) s.StartTime[j]=ss[i].StartPos[j];
for(j=0;j<4;j++) s.Mount[j]=ss[i ].StartPos[j];
for(j=0;j<5;j++) s.Price[j]=ss[i].StartPos[j];
s.a=0;
}
int write_ssToFile (recuento de caracteres)//Agregar registro
{
ARCHIVO *stream; p>
char i;
if ((stream = fopen("record.txt", "w+")) == NULL) /* abrir archivo TEST.$$$ */ p>
{
fprintf(stderr, "No se puede abrir el archivo de salida.\n");
devuelve 1;
}
for(i=0;i fwrite(&ss[i], 40, 1, stream); /* escribir estructuras en el archivo */ fclose(stream); /* cerrar archivo */ printf("\n ¡Escribió el registro correctamente!"); getch(); return 0; } char Func31(char n) { char i; printf("\n¡Agregar registro!\ n"); printf("\nAirNo[4]"); for(i=0;i<4;i++) ss[n].AirNo[i]=getche(); p> printf("\nStartPos[6]"); for(i=0;i<6;i++) ss[n].StartPos[i]=getche(); printf ("\nEndPos[6]"); for(i=0;i<6;i++) ss[n].EndPos[i]=getche(); printf("\nStartTime[14] ]");for(i=0;i<14;i++)ss[n].StartTime[i]=getche(); printf("\nMontaje[4]"); for( i=0;i<4;i++) ss[n].Mount[i]=getche(); printf("\nPrecio[5]"); 5;i++) ss[n].Price[i]=getche(); ss[n].a=0; do{printf("\nConfirmar Y/ N ?"); i=getche (); } while((i!='Y')&(i!='y')&(i!='N')&(i!='n')); if((i=='Y')|(i=='y')) devuelve 1; si no, devuelve 0; } int Insert_i(char no_to_delete)//Insertar información { ARCHIVO *stream; // struct mystruct s; p> p> char i,j,k=0; long curpos,Longitud; if ((stream = fopen("Record.txt", "r ") ) == NULL) { fprintf(stderr, "No se puede abrir el archivo de salida.\n"); devolver 1; } Longitud=tamaño del archivo(flujo); Longitud/=41; printf("\nallí son % d Registros\n",Longitud); if(Longitud>=no_to_delete) { for(j=0,i=0;j curpos=41*j; //*0 *1 *2 if(j==no_to_delete){ if(Func31(i)= =1 ) {k=1; Pstrcpy(i); disp(); i++;} } fseek(flujo, curpos, SEEK_SET); fread (&ss[i], 40, 1, flujo); //i++; Pstrcpy(i); > } if(k==1) write_ssToFile(Longitud+1); } fclose(stream); return 0 ; } int delet_i(char no_to_delete)//Eliminar registro { ARCHIVO *stream; // struct mystruct s; char i,j; long curpos,Longitud; if ((stream = fopen("Registro .txt ", "r")) == NULL) { fprintf(stderr, "No se puede abrir el archivo de salida.\n"); devolver 1; } Longitud=tamañodearchivo(flujo); Longitud/=41; printf("\nhay %d registros\n",Longitud); if (Longitud>=no_to_delete) { for(j=0,i=0;j curpos=41*j; *2 if(j!=no_to_delete) {fseek(stream, curpos, SEEK_SET); fread(&ss[i], 40, 1 , secuencia); //i++; Pstrcpy(i); i++; } } write_ssToFile(Longitud-1); } fclose(flujo); devuelve 0; } int disp_all(void)//Buscar toda la información { ARCHIVO *stream; // struct mystruct s; char j; long curpos,Longitud; if ((stream = fopen("Record.txt", "r")) == NULL) { fprintf(stderr, "No se puede abrir el archivo de salida.\n"); devuelve 1; p> } Longitud=tamaño del archivo(flujo); Longitud/=41; printf("\nhay %d registros\n ",Longitud); for(j=0;j curpos=41*j; //*0 *1 *2 fseek(stream, curpos, SEEK_SET); fread(&s, 40, 1, stream); disp(); } fclose(stream); return 0; } int Read_all(void)//Leer toda la información { ARCHIVO *stream; // struct mystruct s; char j; long curpos,Longitud ; if ((stream = fopen("Record.txt", "r")) == NULL ) { fprintf(stderr, "No se puede abrir el archivo de salida.\n"); devuelve 1; } Longitud=tamaño del archivo(flujo); Longitud/=41; printf("\nhay %d registros\n",Longitud); p> for(j=0;j curpos=41*j; //*0 *1 *2 fseek(flujo, curpos, SEEK_SET); fread(&ss[j], 41, 1, stream); //disp(); } fclose(stream); return Longitud; } int write_all (unsigned char n)//Escribir información { ARCHIVO *stream; char i; if ((stream = fopen("record2.txt", "w")) = = NULL) { fprintf(stderr, "No se puede abrir el archivo de salida.\n"); devuelve 1; } for(i=0;i {//fseek(stream, curposT, SEEK_SET); ss[i ] .a=0; fwrite(&ss[i], 40, 1, stream /* escribe estructuras en el archivo */ } fclose(stream); /* cerrar archivo */ printf("\n ¡Escribir todos los registros correctamente!"); getch(); return 0; } disp_i largo(largo No) { //No=0/1/2/3... ARCHIVO *stream; // struct mystruct s; // char i; long curpos,Longitud; if ((stream = fopen("Record.txt", "r")) //Prueba el archivo abierto == NULL) { fprintf(stderr, "No se puede abrir el archivo de salida.\n"); return 1; } Longitud=filesi ze(stream); Longitud/=41; if(Length>=No){ printf("\nNo.%d está en Registros ",No); curpos=41*No; //*0 *1 *2 fseek(stream, curpos, SEEK_SET);//Buscar archivos fread(&s, 40, 1, stream);//Leer el archivo disp();} else printf("\nNo.%d no es in Records",No); fclose(stream); //Cerrar el archivo return curpos; } int write_rewrite ( long curposT)//Reescribir información { ARCHIVO *stream; // char i; if (( stream = fopen("record.txt", "r+")) == NULL) /* Pruebe el archivo abierto*/ { fprintf(stderr, "No se puede abrir la salida file.\n"); return 1; } fseek(stream, curposT, SEEK_SET); fwrite ( &s, 40, 1, stream); /* Escribe *** en el archivo con cuerpo s*/ fclose(stream) /* Cierra el archivo*/ printf); ("\n ¡Agregar registro exitosamente!"); getch(); return 0; } int write_app( void) { ARCHIVO *stream; // char i; if ((stream = fopen("record. txt", "a+")) == NULL) /* Pruebe el archivo abierto*/ { fprintf(stderr, "No se puede abrir el archivo de salida.\n") ; return 1; } fseek(stream, 0L, SEEK_END); fwrite(&s, 40, 1, stream ); /*Escribir *** en el archivo*/ fclose(stream); /*Cerrar el archivo*/ printf("\n ¡Agregar registro correctamente!") ; getch(); devuelve 0; } char Func11(void) { char i; printf("\nAgregar R ecord!\n"); printf("\nAirNo[4]"); for(i=0;i<4;i++) s.AirNo[i]=getche(); p> printf("\nStartPos[6]"); for(i=0;i<6;i++) s.StartPos[i]=getche(); printf("\ nEndPos[6]"); for(i=0;i<6;i++) s.EndPos[i]=getche(); printf("\nStartTime[14]");for( i=0;i<14;i++)s.StartTime[i]=getche(); printf("\nMount[4]"); ) s.Mount[i]=getche(); printf("\nPrecio[5]"); for(i=0;i<5;i++) s.Price[i]=getche (); s.a=0; do{printf("\nConfirmar S/N ?"); i=getche(); p> }mientras((i!='Y')&(i!='y')&(i!='N')&(i!='n')); if((i=='Y')|(i=='y')) devuelve 1; si no, devuelve 0; } void Func1(void) { char i; i=Func11(); if(i==1) write_app(); p> } void Func2(void) { char m,i; long curposT; printf( "\n¡Modificar registro!\n"); printf("\n Ingrese el número para mostrar\n"); m=getche(); if((m>='0')|(m<=9)) curposT=disp_i(m-'0'); getch(); printf ("\nFunc1 iniciada!\n"); printf("\nAirNo[4]"); for(i=0;i<4;i++) s.AirNo[i]=getche( ); printf("\nStartPos[6]"); for(i=0;i<6;i++) s.StartPos[i]=getche(); printf("\nEndPos[6]"); for(i=0;i<6;i++) s.EndPos[i]=getche(); printf("\nStartTime[14]" );for(i=0;i<14;i++)s.StartTime[i]=getche(); printf("\nMount[4]"); <4;yo++) s.Mount[i]=getche(); printf("\nPrecio[5]"); for(i=0;i<5;i++) s.Price[i]=getche( ); s.a=0; do{printf("\nConfirmar S/N ?"); i=getche(); }mientras((i!='Y')&(i!='y')&(i!='N')&(i!='n')); if((i=='Y')|(i=='y')) write_rewrite (curposT); } void Func3 (void) { char m; printf("\n¡Insertar registro!\n"); m=getche(); if((m>='0')&(m<='9')) Insert_i(m-'0'); // getche( ); } void Func4(void) { char m; printf("\n¡Eliminar registro!\n" ); m=getche(); if((m>='0')&(m<='9')) eliminar_i(m-'0') ; getche(); } void disp_title(void) { printf(" \nNúmero de vuelo\tEstación de origen\tEstación terminal\tTarifa fija del miembro de hora de salida"); } void disp_OneRecord(char num) { char i; printf("\n ");for(i=0;i<4;i++) printf("%c",ss[num].AirNo[i]) ; printf(" /");for(i=0;i<6;i++) printf("%c",ss[num].StartPos[i]); printf(" / "); for(i=0;i<6;i++) printf("%c",ss[num].EndPos[i]); printf(" / "); for(i =0;i<14;i++) printf("%c",ss[num].HoraInicio[i]); printf(" /"); ;i++) printf("%c",ss[num].Monte[i]); printf(" /"); for(i=0;i<5 ;i++)printf(" %c",ss[num].Precio[i]); // printf("\n"); } void search_by_endpos( ) //Función completada 2/5 { char Tplace[24],i,n; p> int count; count=Read_all(); //Leer todos los registros en la estructura ss[0...49] printf("\nPor favor ingrese Consulta el lugar de llegada del vuelo: "); for(i=0;i<6;i++) Tplace[i]=getche();//scanf( "%s ",Tdate); disp_title(); //Imprimir título de la información /*for (i=0;i if (strcmp(ss[i]. StartTime,Tdate)==0) disp_OneRecord(i */ for (i=0;i (ss[i]. EndPos[1]== Tplace[1])&& (ss[i]. EndPos[2]== Tplace[2])&& (ss[i]. EndPos[3]== Tplace[3])&& (ss[i]. EndPos[4]== Tplace[4])&& (ss[i]. EndPos[5]== Tplace[5])) disp_OneRecord(i); printf("\nSalir (Y/N)?");do{n=getch();} while((n!='Y')&& (n! ='y')); } void search_by_date_and_endpos() //Función completada 3/5 { char Tdate[14],Tplace[6],i,n; int count; count=Read_all() //Leer todos los registros en la estructura ss[0] .. .49] printf("\nPor favor ingrese la fecha de consulta: "); scanf("%s",Tdate); printf (" \nIngrese la ubicación de llegada: "); for(i=0;i<6;i++) Tplace[i]=getche(); disp_title() ; / /Imprimir título de información for (i=0;i if((ss[i]. StartTime[0]== Tdate[0] )&& (ss[i].EndPos[0]== Tplace[0])&& (ss[i]. StartTime[1]== Tdate[1])&&(ss[i] .EndPos [1]== Tplace[1])&& (ss[i]. StartTime[2]== Tdate[2])&&(ss[i].EndPos[2]== Tplace[2])&& (ss[i]. StartTime[3]== Tdate[3])&&(ss[i].EndPos[3]== Tplace[3])&& (ss[i]. StartTime[4]== Tdate[4])&&(ss[i].EndPos[4]== Tplace[4])&& ( ss[i].StartTime[5]== Tdate[5])&&(ss[i].EndPos[5]== Tplace[5])) disp_OneRecord(i); > printf("\nSalir (Y/N)?");do{n=getch();} while((n!='Y')&&(n!='y')); p> } void search_by_Mount() //Función completada 4/5 { char Max[6],i,n ; int count; count=Read_all(); //Lee todos los registros en la estructura ss[0...49] printf("\ nPor favor ingrese el número de vuelo de consulta"); for(i=0;i<6;i++) Max[i]=getche();//scanf("%s",Tdate);< / p> disp_title(); //Imprimir título de información for (i=0;i if((ss[i]. AirNo [ 0]== Max[0])&& (ss[i]. AirNo[1]== Max[1])&& (ss[i]. AirNo [ 2]== Max[2])&& (ss[i]. AirNo[3]== Max[3])&& (ss[i]. AirNo [ 4]== Max[4])&& (ss[i]. AirNo[5]== Max[5])) disp_OneRecord(i); información printf("\nSalir (Y/N)?");do{n=getch();} while((n!='Y')&&(n!='y' ) ); } long chg(char i) {long n; n=(ss[i]. HoraInicio [0]-'0')*10000 (ss[i].HoraInicio[1]-'0')*1000 (ss[i].HoraInicio [2]-'0')*100 (ss[i].HoraInicio[3]-'0')*10 (ss[i].HoraInicio [4]-'0')*1 (ss[i].StartTime[5]-'0'); return n ; } void order_by_date() //Función completada 5/5 { long a[100], b[ 100]; int count; int i,j; long temp; system("cls") ;/ /Borrar la pantalla count=Read_all(); //Leer todos los registros en la estructura ss[0...49] for(i=0;i a[i]=chg(i);//Método de clasificación de burbujas for(i=0;i printf("\nLa matriz antes de ordenar es\n"); for(i=0;i for(i=0;i { for(j=i;j { if(a[i]>a[j]) { temp=a[i ] ; a[i]=a[j]; a[j]=temp; } }< / p> } printf("\n"); for(i=0;i printf( " %ld-",a[i]); printf("\nLa matriz después de ordenar es\n"); for(j=0;j for(i=0;i if(a[j]==b[i]) disp_OneRecord(i); p>} void search_by_date() // Muestra 1/5 { char Tdate[14],i,n; int count; p> count=Read_all(); //Lee todos los registros en la estructura ss[0...49] printf("\nIngrese la fecha de consulta: "); scanf("%s",Tdate); disp_title(); //Imprimir título de la información /*for (i=0;i if(strcmp(ss[i]. StartTime,Tdate)==0) disp_OneRecord(i */ for (i=0;i if((ss[i]. HoraInicio[0]== FechaT[0]) && (ss[i]. HoraInicio[1]== FechaT[1 ])&& (ss[i]. HoraInicio[2]== FechaT[2])&& (ss[ i]. HoraInicio[3]== FechaT[3])&& (ss[i]. HoraInicio[4]== FechaT[4])&& (ss[. i]. StartTime[5]== Tdate[5])) disp_OneRecord(i printf("\nSalir (Y/N)?");do{ n=getch();} while((n!='Y')&&(n!='y')); } void Func5(void) p> {char n; printf("\nPor favor seleccione"); printf("\n 1) Cuente los números de vuelo según el tiempo, es decir, ¿qué los vuelos están disponibles en un día determinado "); printf("\n 2) Cuente los números de vuelos a un destino determinado, es decir, qué vuelos están disponibles a un lugar determinado "); printf("\n 3) Cuente los números de vuelos a un lugar determinado en un día determinado."); printf("\n 4) Cuente el número máximo de pasajeros en cada vuelo de la aerolínea "); printf("\n 5) Ordenar por tiempo de vuelo. "); n=getche(); cambiar(n){ caso '1': search_by_date(); descanso; caso '2': search_by_endpos();romper; caso '3': search_by_date_and_endpos();romper; caso '4': search_by_Mount();romper; caso '5': order_by_date(); pausa; predeterminado: pausa; } printf("\n salir cuando presione cualquier tecla "); getche(); } void Func6(void) { printf("\ nCalcular!\n"); getche(); } void main() { char n,m; int count; for(;;){ // clrscr(); system("CLS"); printf("\n\t\t\t Diseño del sistema de reserva de aeronaves"); printf("\n\t\t\t ------ Principal menú ------- "); printf("\n\t\t\t 1. Ingrese la entrada"); printf("\n\ t \t\t 2. Modificar"); printf("\n\t\t\t 3. Insertar"); printf("\n\ t\t \t 4.DeleteEliminar"); printf("\n\t\t\t 5.Consultar"); printf("\n\ t\t\t 6. Cálculo estadístico Calcular"); printf("\n\t\t\t 7.Display_i Record"); printf("\n \t\t\ t 8.Display_all Record"); printf("\n\t\t\t 9.Reservado"); printf("\n\ t\t\t 0.Salir "); n=getch(); cambiar(n) { caso '1': Func1(); romper; // Entrada case '2': Func2(); // Modificar case '3': Func3(); Insertar case '4': Func4(); // Eliminar ok case '5': Func5(); // *Consultar case '6': Func6(); break; // *Calcular case '7': printf("\n Ingrese el número para mostrar\n"); m =getche(); if((m>='0')&(m<='9')) disp_i(m-'0'); getch( ); romper; caso '8': disp_all(); getch(); romper; caso '9': getch(); > case '0': break; //salir a DOS case 'a': case 'A': count=Read_all() //Leer todos los registros en el estructura ss[0...49] disp_title(); //Imprimir título de información for(m=0;m disp_OneRecord(m); //Imprimir uno de todos los registros; write_all(count); //Guardar n registros en un archivo; romper; caso 'b': caso 'B': predeterminado: descanso; } if(n ==' 0') descanso; } } ¿Es suficiente?