elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Introducción a Git (Primera Parte)


  Mostrar Mensajes
Páginas: 1 ... 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 ... 161
1211  Programación / Programación C/C++ / Re: Ayuda! Al modificar o eliminar registros no abre el archivo .dat en: 23 Mayo 2016, 20:04 pm
He dado formato a tu código como he podido. Es buena idea mantener el formato de las sangrías y todo eso.
Por otra parte, has abusado de las llaves. Hay tantas que has perdido la noción de qué es lo que encierran: hay do-whiles sin do, case con breaks y que continuan (un case no hace falta esté encerrado entre llaves).
Tienes gotos que te saltan entre cases de otros switch, creo... (me he perdido entre tanta llave).
En vez de anidar tantos switch deberías pensar en separar el programa en funciones.

Aquí dejo el código con un intento de reformateo:
Código
  1. #include <iostream>
  2. #include <string>
  3. #include <cstdlib>
  4. #include <stdio.h>
  5. #include <conio.h>
  6. #include <stdlib.h>
  7. #include <windows.h>
  8. #include <fstream>
  9. #define USER "admin"
  10. #define PASS "pavisb6"
  11. #define ENTER 13
  12. #define BACKSPACE 8
  13. FILE *archivo;
  14.  
  15. using namespace std;
  16.  
  17. int main(void) {
  18.    system("color 0B");
  19.    string usuario, password;
  20.    int contador = 0;
  21.    bool ingresa = false;
  22.  
  23.    do {
  24.        system("cls");
  25.        cout << "\t\t\tCyber Card" << endl;
  26.        cout << "\n\tUsuario: ";
  27.        getline(cin, usuario);
  28.        cout << "\tPassword: ";
  29.        char caracter;
  30.        caracter = getch();
  31.        password = "";
  32.        while (caracter != ENTER) {
  33.            if (caracter != BACKSPACE) {
  34.                password.push_back(caracter);
  35.                cout << "*";
  36. }
  37.            else {
  38.                if (password.length() > 0) {
  39.                cout << "\b \b";
  40.                password = password.substr(0, password.length() - 1);
  41.                }
  42. }
  43. caracter = getch();
  44.        }
  45.        if (usuario == USER && password == PASS) {
  46.            ingresa = true;
  47.        }
  48.        else {
  49.            cout << "\n\n\tEl usuario y/o clave de acceso son incorrectos" << endl;
  50.            cin.get();
  51.            contador++;
  52.        }
  53.    } while (ingresa == false && contador < 3);
  54.  
  55.    if (ingresa == false) {
  56.        cout << "\n\tUsted no pudo ingresar al sistema. ADIOS" << endl;
  57.        return 0;
  58.    }
  59.    else {
  60.        cout << "\n\n\tBienvenido al sistema" << endl;
  61.        system("PAUSE");
  62.    }
  63.    {
  64.        system("cls");
  65.        int opcion;
  66.    }
  67.  
  68.    char decidir;
  69.    int opcion;
  70.    int opcion2;
  71.    char regisc [20];
  72.    char fechav [10];
  73.    char tic [15];
  74.    char pagop [10];
  75.    char pregunta;
  76.    char respuesta;
  77.    bool regresar= false;
  78.    char clientep [50];
  79.    int opcion3;
  80.    bool modificar=true;
  81.    char codip [5];
  82.    bool encontrado=true;
  83.    char auxcodip [5];
  84.    char auxnombre [30];
  85.    char auxnumtarjeta;
  86.    int opcion4;
  87.    char consulta;
  88.  
  89.    do {
  90.        Menu3:
  91.        system("cls");
  92.        cout << "Menu principal" << endl << "-----------------------" << endl;
  93.        cout << "[1] Registrar pago con tarjeta y numero de tarjeta" << endl;
  94.        cout << "[2] Modificar regristro de pago y  numero de tarjeta" << endl;
  95.        cout << "[3] Consultar registro de pagos y tarjeta" << endl;
  96.        cout << "[4] Eliminar pago con tarjeta" << endl;
  97.        cout << "[5] salir" << endl;
  98.        cout << "-------------------------" << endl<< endl;
  99.        cout << "Seleccione una opcion: ";
  100.        cin >> opcion;
  101.  
  102.        switch(opcion) {
  103.            case 1:
  104.                {
  105.                    Menu1:
  106.                    system ("title Registro");
  107.                    system ("cls");
  108.                    cout << "registros" <<endl << "____________________________________" <<endl;
  109.                    cout << "[7] resgistrar pago y tarjeta" <<endl;
  110.                    cout << "[8] menu principal" << endl << "_____________________________" <<endl;
  111.                    cout << "Elige una opcion" <<endl;
  112.                    cin >> opcion2;
  113.                }
  114.                switch(opcion2) {
  115.                    case 7:
  116.                    Menu2:
  117.                        {
  118.                            system ("title saber card");
  119.                            system ("cls");
  120.                            archivo = fopen ("registro.dat","a");
  121.                            cout <<" escriba un codigo para el registro" <<endl;
  122.                            cin.getline (codip, 5) >> codip;
  123.                            fprintf(archivo, "%s\n", codip);
  124.                            cout << "escribe el  numero de la tarjeta:" <<endl;
  125.                            cin.getline (regisc, 25) >> regisc;
  126.                            fprintf(archivo, "%s\n", regisc);
  127.                            cout <<"escribe la fecha de pago:" <<endl;
  128.                            cin.getline (fechav, 10) >> fechav;
  129.                            fprintf(archivo, "%s\n", fechav);
  130.                            cout << "escribe el tipo de tarjeta:"<< endl;
  131.                            cin.getline (tic, 15) >> tic;
  132.                            fprintf(archivo, "%s\n", tic);
  133.                            cout<< "escribe el nombre del cliente" << endl;
  134.                            cin.getline (clientep, 50) >> clientep;
  135.                            fprintf (archivo, "%s\n", clientep);
  136.                            cout << "escribe el monto a pagar del ariculo:" <<endl;
  137.                            cin.getline (pagop, 25) >> pagop;
  138.                            fprintf(archivo, "%s\n", pagop);
  139.                            cout << "Desea agregar otro registro? (s/n)";
  140.                            cin >> pregunta;
  141.  
  142.                            fclose(archivo);
  143.  
  144.                            if (pregunta == 's' || pregunta == 'S') {
  145.                                goto Menu2;
  146.                            }
  147.                            else {
  148.                                cout<< "Desea realizar otra operacion? (s/n)" <<endl;
  149.                                cin>> respuesta;
  150.  
  151.                                if (respuesta == 's' || respuesta == 'S') {
  152.                                    goto Menu1;
  153.                                }
  154.                                else {
  155.                                    system ("cls");
  156.                                    cout << "adios que vuelva pronto" <<endl;
  157.                                    exit (0);
  158.                                }
  159.                                break;
  160.                            }
  161.                        case 8:
  162.                            {
  163.                                goto Menu3;
  164.                            }
  165.                    }
  166.                }
  167.  
  168.                {
  169.                    case 2:
  170.                        {
  171.  
  172.                            Menu4:
  173.                            system("title Modificar");
  174.                            system("cls");
  175.  
  176.                            cout<<"Modificar"<<endl<<"------------------------"<<endl;
  177.                            cout<<"[9]Modificar regristro de pago y/o numero de tarjeta"<<endl;
  178.                            cout<<"[10]Menu principal" <<endl;
  179.                            cout<<"Elige una opcion"<<endl;
  180.                            cin>>opcion3;
  181.                        }
  182.  
  183.                        {
  184.                            switch(opcion3) {
  185.                                case 9:
  186.                                    system("cls");
  187.                                    system("title modificar registro");
  188.  
  189.                                    ifstream lectura;
  190.                                    ofstream aux;
  191.                                    encontrado = false;
  192.                                    lectura.open("registro.dat",ios::in);
  193.                                    aux.open("aux.dat",ios::out);
  194.  
  195.                                    if(aux.is_open() && lectura.is_open()) {
  196.                                        cout<< "ingresa la clave del registro que desea modificar";
  197.                                        cin>>auxcodip;
  198.                                        lectura>>codip;
  199.  
  200.                                        while(!lectura.eof()) {
  201.                                            lectura>>regisc>>fechav>>tic>>clientep>>pagop;
  202.  
  203.                                            if(auxcodip == codip) {
  204.                                                encontrado = true;
  205.                                                cout<<"____________________________"<<endl;
  206.                                                cout<<"codigo:"<<codip<<endl;
  207.                                                cout<<"num.tarjeta:"<<regisc<<endl;
  208.                                                cout<<"fecha:"<<fechav<<endl;
  209.                                                cout<<"tipo de tarjeta:"<<tic<<endl;
  210.                                                cout<<"nom. cliente:"<<clientep<<endl;
  211.                                                cout<<"pago:"<<pagop<<endl;
  212.                                                cout<<"____________________________"<<endl;
  213.                                                cout<<"ingresa el nuevo nombre del cliente con codigo"<<codip;
  214.                                                aux <<codip<<" "<<regisc<<" "<<fechav<<" "<< tic<<" "<< auxnombre <<" "<<pagop;
  215.                                            }
  216.                                            else {
  217.                                                aux <<codip<<" "<<regisc<<" "<<fechav<<" "<<tic<<" "<<clientep<<" "<<pagop;
  218.                                            }
  219.                                            lectura>>codip;
  220.                                        }
  221.                                    }
  222.                                    else {
  223.                                        cout<<"no se a podido abrir el archivo o aun no ha sido creado"<<endl;
  224.                                    }
  225.  
  226.                                    if(encontrado == true)
  227.                                        cout<<"no se encontro ningun registro con esa clave"<<auxcodip<<endl;
  228.                            }
  229.                            while (opcion=false);
  230.                        }
  231.  
  232.                        switch (opcion3) // falta {
  233.                            case 10:
  234.                                {
  235.                                    goto Menu3;
  236.                                }
  237.  
  238.                        } //?
  239.                        break;
  240.                        {
  241.  
  242.                        case 3:
  243.                            {
  244.                                system ("cls");
  245.                                cout << "Consulta" <<endl<< "____________________________" << endl;
  246.                                cout << "[12] Consultar datos de pago  y tarjeta"<< endl;
  247.                                cout << "[13] Menu pricipal"<<endl;
  248.                                cout << "__________________________" << endl;
  249.                                cout << "Seleccione una opcion ";
  250.                                cin>>opcion4;
  251.  
  252.                                switch(opcion4); /* sobra el ; */ {
  253.                                    case 12:
  254.                                        Menu5:
  255.                                            {
  256.                                                case 6:
  257.                                                    {
  258.                                                        system ("cls");
  259.                                                        archivo = fopen("registro.dat","r");
  260.                                                        fscanf(archivo, "%s", regisc);
  261.  
  262.                                                        while(!feof(archivo)) {
  263.                                                        cout << regisc <<endl;
  264.                                                        fscanf(archivo, "%s", regisc);
  265.                                                        }
  266.                                                        fclose(archivo);
  267.                                                        cout<< "Desea Realizar otra operacion?s/n" <<endl;
  268.                                                        cin>> respuesta;
  269.  
  270.                                                        if (respuesta == 's' || respuesta == 'S') {
  271.                                                            goto Menu3;
  272.                                                        }
  273.                                                        else {
  274.                                                            system ("cls");
  275.                                                            cout << "Adios, nos vemos luego" <<endl;
  276.                                                            return 0;
  277.                                                        }
  278.                                                    }
  279.                                                case 13:
  280.                                                    {
  281.                                                        goto Menu3;
  282.                                                    }
  283.  
  284.                                            }
  285.                                }
  286.                            }
  287.                        } while(consulta = true);
  288.                        break;
  289.                        case 4:
  290.                            system("cls");
  291.                            ifstream salida;
  292.                            salida.open("registro.dat",ios::in);
  293.                            ofstream entrada;
  294.                            entrada.open("temp.dat",ios::out);
  295.  
  296.                            if(salida.fail()) {
  297.                                cout<<"hubo un error al abrir el archivo registro.dat";
  298.                                getch();
  299.                            }
  300.                            else {
  301.                                cout<<"Introduzca el codigo de registro";
  302.                                cin>>auxcodip;
  303.                                salida>>codip;
  304.  
  305.                                while(!salida.eof()) {
  306.                                    salida>>regisc>>fechav>>tic>>clientep>>pagop;
  307.  
  308.                                    if(strcmp(auxcodip,codip) == 0) {
  309.                                        cout<<"el registro se ha eliminado";
  310.                                        getch();
  311.                                    }
  312.                                    else {
  313.                                        entrada<<codip<<" "<<regisc<<" "<<fechav<<" "<<tic<<" "<<clientep<<" "<<pagop<<endl;
  314.                                    }
  315.                                    salida>>codip;
  316.                                }
  317.                                entrada.close();
  318.                                salida.close();
  319.                                remove("registro.dat");
  320.                                rename("temp.dat","registro.dat");
  321.                            }
  322.  
  323.                            break;
  324.  
  325.                            while (opcion = true);
  326.        }
  327.  
  328.    } while(opcion=true);
  329.    {}
  330. }
1212  Programación / Programación C/C++ / Re: Pasar puntero a función, por valor [C] en: 22 Mayo 2016, 19:43 pm
Realmente, cuándo te dicen que un puntero se pasa por valor te quieren decir esto:
Código
  1. #include <stdio.h>
  2.  
  3. void f(int *p) {
  4.    printf("La dirección de p en f()    : %p\n", p);
  5. }
  6.  
  7. int main()
  8. {
  9.    int a;
  10.    int *p = &a;    
  11.  
  12.    printf("La dirección de p en main() : %p\n", p);
  13.    f(p);
  14.  
  15.    return 0;
  16. }
1213  Programación / Programación C/C++ / Re: Cambiar coma por punto en un archivo .txt en: 16 Mayo 2016, 00:25 am
En vez de usar números mágicos utiliza directamente los caracteres entre comillas simples.
Por otra parte, en vez de intentar ir a atrás insertando el carácter de control '\b' directamente atrasa una posición el puntero del archivo.

Con todo esto el código queda como sigue:
Código
  1. if (c==',') {
  2.    fseek(archivo, -1, SEEK_CUR);
  3.    fputc('.',archivo);
  4. }
1214  Programación / Programación C/C++ / Re: Inicializar cadena de caracteres en lenguaje C. en: 12 Mayo 2016, 22:19 pm
Con memset de string.h
1215  Programación / Programación C/C++ / Re: Consulta de registro de tupla en C en: 10 Mayo 2016, 13:45 pm
Modificando solo un poco la función anterior para que, en vez de pararse en cuando encuentre un cliente, actualice un contador que vaya desde 0 para arriba y la función devuelva el valor de dicho contador. Así deberías llamar a esta función por cada cliente que tuviera el taller. Después ya si encuentras un cliente con 5 coches ya haces el trabajo.
1216  Programación / Programación C/C++ / Re: Ayuda --- ! marquesina en c++ a c ! --- ayuda en: 10 Mayo 2016, 11:01 am
Debes tener en cuenta dos casos diferentes. Cuándo estés al principio de tu marquesina y cuándo te encuentres en el final.
Como sabrás cuándo le des una cadena a printf, éste se pone a escribir lo que le des hasta que encuentre un carácter de fin de cadena '\0', así si tienes la cadena ABCDEF
Código
  1. printf("%s", cadena+0);
obtienes ABCDEF
en cambio, si escribes
Código
  1. printf("%s", cadena+3);
obtienes DEF. Recuerda que cadena es un puntero y puedes usar la aritmética de punteros.
Esto te sirve para el inicio de la marquesina.

Ahora para el final de la marquesina printf tiene unos especificadores de formato que te pueden ser útiles, como el de precisión, que no solo funcionan con los números.
Si tienes la anterior cadena ABCDEF y te interesa solo coger los tres primeros caracteres puedes usar
Código
  1. printf("%.3s", cadena);
y obtienes ABC
Ese 3 es literal y no hay forma de cambiarlo a no ser que cambies la cadena de formato. Pero los diseñadores de printf, que son muy listos, han hecho posible que nosotros, los pobres usuarios, tengamos una forma de escribir cuántos caracteres queremos. Mediante el carácter * podemos usar un argumento de printf para dar un tamaño.
Si escribimos printf así
Código
  1. printf("%.*s", tam, cadena);
Si tam=3 entonces obtenemos CAD.

1217  Programación / Programación C/C++ / Re: [Error] ld returned 1 exit status en: 9 Mayo 2016, 20:09 pm
¿Y tu orden de compilación es?
1218  Programación / Programación C/C++ / Re: Sumar y multiplicar una serie de números en: 9 Mayo 2016, 19:01 pm
En C, facilito y para toda la família  :rolleyes:
Código
  1. #include <stdio.h>
  2.  
  3. int main() {
  4.    char str[255];
  5.    scanf("%255s", str);
  6.    int n = 0;
  7.    int res = 1;
  8.    int i;
  9.  
  10.    for(i = 0; i < sizeof(str); ++i) {
  11.        if(str[i] == '1')
  12.            ++n;
  13.        else {
  14.            if(n)
  15.                res *= n;
  16.            n = 0;
  17.        }
  18.    }
  19.    printf("%i\n", res);
  20.  
  21.    return 0;
  22. }
  23.  
1219  Programación / Programación C/C++ / Re: eliminar elementos desordenados en: 9 Mayo 2016, 18:18 pm
Se me ocurre que tengas un array vacío que sea el que mirarás si existen las letras repetidas o no.
Así, cuándo empieces una palabra con dicho array vacío (ej todo a 0). Miras la primera letra de la palabra. Si no existe en el array de palabras repetidas la incluyes Y apuntas la letra en la palabra destino. Si existe la letra en el array destino simplemente pasas a la siguiente letra de la palabra original y empiezas de nuevo.
Cuándo la palabra original se termine pones el array de letras repetidas a 0 para ser usado en la siguiente palabra.
1220  Programación / Programación C/C++ / Re: Prototipo de una funcion en: 9 Mayo 2016, 15:30 pm
AlbertoBSD, tienes razón en la nomenclatura :D

Pero en cuestión a la declaración y suponiendo que int y no existe y nos quedamos con que es float ésta sería así:

Código
  1. int x[10], *px, y;
  2. float y;

Código
  1. int Fx(float*, int*, int, char*, int, float, char);

o

Código
  1. int Fx(float *, int[], int, char*, int, float, char);
Páginas: 1 ... 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 ... 161
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines