C/Visual C - ayuda con un programa dev-c

   
Vista:

ayuda con un programa dev-c

Publicado por edgar (2 intervenciones) el 23/05/2016 19:49:56
Ser requiere un algoritmo que muestre el siguiente menú
1. Creación de archivo.
Esta función debe pedir el nombre del archivo a crear.
En caso de que el archivo ya exista debe indicar que existe y debe solicitar un nuevo nombre de archivo.
A la tercera equivocación mandara un mensaje de agotados los intentos y detener el proceso.
2. Llenado del archivo.
Esta función leerá el archivo datosinicio.txt donde el registro contiene los datos siguientes: boleta (con el formato aaaaeeeccc, donde aaaa es año, eee número de escuela y ccc número consecutivo de alumno), nombrealumno, apellidopaterno y fechadenacimiento (aaaammdd donde aaaa es año, mm es mes y dd es día).
Debe realizar las siguientes validaciones:
• Para boleta: es un entero donde el aaaa debe ser mayor o igual a 2000 y menor o igual a 2016; el número de escuela está en el rango de 100 a 900; ccc inicia en 001 hasta 999.
• Para nombre y apellido paterno debe ser alfabético.
• Fecha de nacimiento debe ser un entero el año no puede ser fuera del rango 1960 y mayor 2000, el mes en el rango 01 a 12 y el día 01 a 28, 29, 30 o 31 dependiendo del mes.
Si se encuentra errores durante de la validación, se mostrara el registro en pantalla y todos los errores serán mostrados.
Si el registro del archivo datosinicio.txt no tiene errores se grabara en el archivo creado en la función 1.
Esta función se realizará hasta el final del archivo datosinicio.txt, cuando se mostrar un resumen que indique:
datosinicio.txt tiene xx registros
nombrearchivofuncion1.txt tiene xx registros
3. Mostrar archivo
Esta función pedirá el nombre del archivo a mostrar.
En caso de que el archivo no exista debe indicarlo y solicitar un nuevo nombre de archivo.
A la tercera equivocación mandara un mensaje de agotados los intentos y detener el proceso.
Mostrará todos los registros del archivo:
Boleta del alumno es: boleta
Nombre del alumno es: nombrealumno, apellidopaterno
Fecha de nacimiento: fecha en formato juliano
Esta función se realizará hasta el final del archivo .txt solicitado, cuando se mostrar un resumen que indique:
Nombre del archivo solicitado tiene xx registros
4. Buscar registro.
Esta función pedirá el nombre del archivo a mostrar.
En caso de que el archivo no exista debe indicarlo y solicitar un nuevo nombre de archivo.
A la tercera equivocación mandara un mensaje de agotados los intentos y detener el proceso.
Pedirá al usuario que dato desea buscar sea por boleta, nombredelalumno, apellidopaterno o fechadenacimiento.
El dato proporcionado por el usuario se le deberá aplicar las mismas validaciones según el tipo de dato a buscar que en la función 2.
Esta función se realizará hasta el final del archivo .txt solicitado, cuando se mostrar un resumen que indique:
Nombre del archivo solicitado tiene xx registros
5. Ordenar archivo.
Esta función pedirá el nombre del archivo a ordenar.
En caso de que el archivo no exista debe indicarlo y solicitar un nuevo nombre de archivo.
A la tercera equivocación mandara un mensaje de agotados los intentos y detener el proceso.
Esta función debe pedir el nombre del archivo a crear ordenado.
En caso de que el archivo ya exista debe indicar que existe y debe solicitar un nuevo nombre de archivo.
A la tercera equivocación mandara un mensaje de agotados los intentos y detener el proceso.
Solicitará al usuario porque dato debe realizar el ordenamiento: boleta, nombrealumno, apellidopaterno o fechadenacimiento.

Ordenará todos los registros por el dato que indique el usuario y una vez concluido el ordenamiento, grabara todos los registros en el archivo a crear ordenado.

Cuando termine la creación del archivo ordenado mostrar un resumen que indique:
Nombre del archivo ordenado tiene xx registros
6. Salir
Esta función mandara el mensaje
“termine el examen…mi nombre es: poner tu nombre”
Recomendación.
• Antes de iniciar a programar, realiza el análisis detallado de cada función.
• Ten siempre presente abrir y cerrar los archivos que estas utilizando.
• Si consideras conveniente agrega más datos de prueba al archivo datosinicio.txt.
• Recuerda antes que agregues funciones o modifiques tu algoritmo borra los archivos creados.
• Haz pruebas suficientes que garanticen que la función creada realiza lo esperado.
• Cuando consideres que el algoritmo realiza las funciones indicadas, cierra todo, reinicializa tu equipo de cómputo y realiza una prueba completa de todas las funciones.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

ayuda con un programa dev-c

Publicado por Alfredo (8 intervenciones) el 23/05/2016 19:55:58
Aja y tu codigo? o donde te atoraste? cual es tu duda para que te podarmos ayudar, publica tu codigo y aca te decimos en que estas mal, ACA NO SE HACEN TAREAS. Si alguien te hiciera tu tarea, en lugar de ayudarte, te perjudicaria grandemente.
Esfuerzate y nosotros te ayudamos.


Suerte
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

ayuda con un programa dev-c

Publicado por edgar (2 intervenciones) el 23/05/2016 22:49:02
si, perdon aun soy nuevo en el foro jaja tengo de las opciones uno a 3 pero lo que pasa es que me confunde el punto 4 que es el de busquar cualquier dato que se haya dato en el registro del archivo


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>
 
int main()
{
 
    FILE * fp;
    char o[30],no,ni,l;
    char nom[100], ap[50];
    long int opc,c,n,a,m,e,t,co,f,i,fd,fm,fa;
    do{
    c=3;
    n=3;
    co=0;
    system("cls");
    printf("Ingresa la opcion que deseas realizar\n1.-Crear archivo\n2.-Llenar archivo\n3.-Mostrar contenido de un archivo\n4.-Buscar registro\n5.-Ordenar archivo\n6.-Salir\nOpcion: ");
    scanf("%i", &opc);
    fflush(stdin);
    switch(opc)
    {
    case 1:
         printf("Ingresa el nombre del archivo que deseas crear(con extension .txt): ");
         gets(o);
         fp=fopen(o,"r");
         while(1)
         {
                 if(fp==NULL)
                 {
                      fclose(fp);
                      fp=fopen(o,"w");
                      break;
                 }
                 else
                 {
                     n=n-1;
                     printf("El archivo ya existe, introduce nombre de un nuevo archivo (quedan %i intentos):\n",n);
                     gets(o);
                     c=c+1;
                     fp=fopen(o,"r");
                 }
                 if(c==2)
                 {
                         printf("El numero de intentos se ha agotado, se regresara al menu principal");
                         system("PAUSE>NULL");
                         break;
                 }
         }
         printf("Archivo creado con exito, ");
         fclose(fp);
         system("PAUSE");
         system("cls");
         break;
    case 2:
         system("cls");
         printf("Ingresa el nombre del archivo a llenar: ");
         gets(o);
         fp=fopen(o,"r");
         while(1)
         {
                 if(fp==NULL)
                 {
                     fclose(fp);
                     n=n-1;
                     printf("El archivo no existe, introduce nombre de un nuevo archivo (quedan %i intentos):\n",n);
                     gets(o);
                     c=c+1;
                     fp=fopen(o,"r");
                 }
                 else
                 {
                     fclose(fp);
                     fp=fopen(o,"a");
                     do{
                     t=1;
                     printf("Para ingresar la boleta debe tener el formato aaaaeeeccc, donde aaaa es a%co, eee numero de escuela y ccc numero consecutivo de alumno\n",164);
                     printf("Ingresa el valor del a%co: ",164);
                     scanf("%i", &a);
                     fflush(stdin);
                     if(a>2016||a<2000)
                     while(t==1)
                     {
                         printf("A%co incorrecto, el valor del año debe ser mayor a 2000 y menor a 2016 ingresa un valor valido:\n",164);
                         scanf("%i", &a);
                         fflush(stdin);
                         if(a<2017&&a>1999)
                         t=2;
                     }
                     a=a*1000000;
                     t=1;
                     printf("Ingresa el numero de escuela: ");
                     scanf("%i", &e);
                     fflush(stdin);
                     if(e<1||e>60)
                     while(t==1)
                     {
                         printf("Numero de escuela incorrecta, el numero de escuela va de 1 a 60, ingresa un valor valido:\n");
                         scanf("%i", &e);
                         fflush(stdin);
                         if(e>0&&e<61)
                         t=2;
                     }
                     e=e*10000;
                     t=1;
                     printf("Ingresa el numero de alumno: ");
                     scanf("%i", &m);
                     fflush(stdin);
                     if(m<1||m>999)
                     while(t==1)
                     {
                         printf("Numero de alumno incorrecto, el numero de alumno va de 1 a 999, ingresa un valor valido:\n");
                         scanf("%i", &m);
                         fflush(stdin);
                         if(m>0&&m<1000)
                         t=2;
                     }
                     f=a+e+m;
                     t=1;
                     do{
                     printf("Ingresa el nombre (o nombres del alumno) que sea valido(solo letras): ");
                     gets(nom);
                     for(i=0;isalpha(nom[i])||isspace(nom[i]);i++)
                     ;
                     if(nom[i] == '\0')
                     t=2;
                     }while(t==1);
                     for(i=0;nom[i];i++)
                     {
                          nom[i]=toupper(nom[i]);
                     }
                     t=1;
                     do{
                     printf("Ingresa el apellido que sea valido(solo letras): ");
                     gets(ap);
                     for(i=0;isalpha(ap[i])||isspace(ap[i]);i++)
                     ;
                     if(ap[i] == '\0')
                     t=2;
                     }while(t==1);
                     for(i=0;ap[i];i++)
                     {
                          ap[i]=toupper(ap[i]);
                     }
                     t=1;
                     printf("Ingresa el año de nacimiento: ");
                     scanf("%i", &fa);
                     if(fa<1960||fa>2000)
                     while(t==1)
                     {
                                printf("El rango de a%c va de 1960 a 2000 ingresa un valor valido:\n ",164);
                                scanf("%i", &fa);
                                if(fa>1959&&fa<1999)
                                t=2;
                     }
                     t=1;
                     printf("Ingresa el mes de nacimiento: ");
                     scanf("%i", &fm);
                     if(fm>12||fm<1)
                     while(t==1)
                     {
                                printf("Mes incorrecto, ingresa un numero de mes correcto:\n ");
                                scanf("%i", &fm);
                                if(fm>0&&fm<13)
                                t=2;
                     }
                     t=1;
                     printf("Ingresa el dia de nacimiento: ");
                     scanf("%i", &fd);
                     fflush(stdin);
                     if(fm==1||fm==3||fm==5||fm==7||fm==8||fm==10||fm==12)
                     {
                          if(fd>31||fd<1)
                          {
                                while(1)
                                {
                                printf("EL numero de mes no corresponde con los dias, ingresa un valor correcto: \n");
                                scanf("%i", &fd);
                                if(fd<=31&&fd>=1)
                                break;
                                }
                          }
                     }
                     if(fm==4||fm==6||fm==9||fm==11)
                     {
                          if(fd>30||fd<1)
                          {
                                while(t==1)
                                {
                                printf("EL numero de mes no corresponde con los dias, ingresa un valor correcto: \n");
                                scanf("%i", &fd);
                                if(fd<31&&fd>0)
                                break;
                                }
                          }
                     }
                     if(fm==2)
                     {
                          if(fm==2&&(fa%4==0))
                          if(fd>29||fd<1)
                          {
                                while(1)
                                {
                                printf("EL numero de mes no corresponde con los dias, ingresa un valor correcto: \n");
                                scanf("%i", &fd);
                                if(fd<30&fd>0)
                                break;
                                }
                          }
                          else
                          if(fd>28||fd<1)
                          {
                                while(1)
                                {
                                printf("EL numero de mes no corresponde con los dias, ingresa un valor correcto: \n");
                                scanf("%i", &fd);
                                if(fd<29&fd>0)
                                break;
                                }
                          }
                     }
                     if(fm<10)
                     fprintf(fp,"%i,%s,%s,%i%i%i\n",f,nom,ap,fa*10,fm,fd);
                     else
                     fprintf(fp,"%i,%s,%s,%i%i%i\n",f,nom,ap,fa*10,fm,fd);
                     co=co+1;
                     printf("Deseas ingresar otro registro?\n1.-si\n2.-no\n");
                     scanf("%i", &opc);
                     fflush(stdin);
                     system("cls");
                     }while(opc!=2);
                     printf("El archivo %s tiene %i registros",o,co);
                     system("PAUSE>NULL");
                 }
                 if(c==2)
                 {
                         printf("El numero de intentos se ha agotado, se regresara al menu principal");
                         system("PAUSE>NULL");
                         break;
                 }
                 fclose(fp);
                 break;
         }
         break;
    case 3:
          system("cls");
         printf("Ingresa el nombre del archivo a consultar: ");
         gets(o);
         fp=fopen(o,"r");
         while(1)
         {
                 if(fp==NULL)
                 {
                     fclose(fp);
                     n=n-1;
                     printf("El archivo no existe, introduce nombre de un nuevo archivo (quedan %i intentos):\n",n);
                     gets(o);
                     fflush(stdin);
                     c=c+1;
                     fp=fopen(o,"r");
                 }
                 else
                 {
                     while(1)
                     {
                     if(feof(fp))
                     break;
                     fscanf(fp,"%i""%c""%[A-Z Ñ]""%c""%[A-Z Ñ]""%c""%i",&c,&no,&nom,&ni,&ap,&l,&a);
                     printf("Boleta del alumno es: %i\nNombre del alumno es: %s %s\nFecha de nacimiento: %i\n\n", c,nom,ap,a);
                     co=co+1;
                     system("PAUSE>NULL");
                     }
                 }
                 if(c==2)
                 {
                         printf("El numero de intentos se ha agotado, se regresara al menu principal");
                         system("PAUSE>NULL");
                         break;
                 }
                 printf("\nEl archivo %s tiene %i registros",o,co);
                 system("PAUSE>NULL");
                 fclose(fp);
                 break;
         }
         break;
    case 4:
 
         break;
    case 5:
         break;
    case 6:
         printf("termine el examen... mi nombre es: Jacome Martinez Cesar Enrique");
         system("PAUSE>NULL");
         break;
         }
         }while(opc==1||opc==2||opc==3||opc==4||opc==5);
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar