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

 

 


Tema destacado: Recopilación Tutoriales y Manuales Hacking, Seguridad, Privacidad, Hardware, etc


+  Foro de elhacker.net
|-+  Foros Generales
| |-+  Dudas Generales (Moderador: engel lex)
| | |-+  Programa para trabajo de la universidad, urgenteee!!!
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Programa para trabajo de la universidad, urgenteee!!!  (Leído 2,489 veces)
Emmet01921

Desconectado Desconectado

Mensajes: 3


Ver Perfil
Programa para trabajo de la universidad, urgenteee!!!
« en: 22 Noviembre 2021, 21:10 pm »

Hola, soy nuevo en el foro y necesito ayuda con dos programas para mi clase de programación. Los problemas son los siguientes:

Problema 1:

Crea un programa que permita administrar cuánto gasta un cliente en diferentes
departamentos del supermercado. 

a. Los atributos del cliente son: nombre, teléfono y total gastado.
   
b. Los diferentes departamentos del supermercado son: (Frutas y verduras, Carnes y
congelados, Vinos y licores, Dulcería y Artículos de limpieza)

c. Cada departamento es una función que recibe un cliente, lo saluda “hola Pedrito,
bienvenido” y pregunta al cliente cuánto gastó. La cantidad que responda el
cliente deberá sumarse al atributo total gastado de cada cliente. 

d. Crea una función que imprima el total gastado por los clientes que visitaron hoy el
supermercado (la función recibe como parámetro el arreglo de clientes y suma el
total gastado por cada uno. Al final la función imprime “hola, soy Shedrawiwi y
hoy gane xxxxx pesos con n clientes”

e. Para probar tu programa deberás crear al menos 5 clientes. Todos inician con $0
gastados. Cada cliente deberá pasar por todos los departamentos (en el orden que
quieras). Una vez que cada cliente termine de pasar por cada departamento
deberás imprimir el total gastado por cada uno “hola, soy pedrito y gasté xxxxx en
el supermercado” (te recomiendo que hagas una función para esto). Crea un
arreglo de Clientes (máximo 10) para que allí guardes a tus 5 clientes. Manda
llamar la función que imprime cuánto ganó el supermercado el día de hoy (envía
como parámetro el arreglo de los 5 clientes).

Les comento que ya hice una parte del código, pero solo lo pude hacer para un solo cliente y no para los 5 que me pide el problema. Ahí es donde radica mi duda, que no se como hacer el programa para los 5 clientes y que al final haga lo que pide el ejercicio. A continuación esta el código que hice:

#include <stdio.h>
#include <iostream>
using namespace std;

void dulceria(int*acumulador)
{
    int total;
    cout<<"Cúanto gastaste en dulceria"<<endl;
    cin>>total;
    cout<<"Gracias por gastar "<<total<<" pesos en dulcería";
    (*acumulador)+=total;
}
void frutas_verduras(int*acumulador)
{
    int total;
    cout<<"\n \nCúanto gastaste en frutas y verduras"<<endl;
    cin>>total;
    cout<<"Gracias por gastar "<<total<<" pesos en frutas y verduras";
    (*acumulador)+=total;
}
void carnes_congelados(int*acumulador)
{
    int total;
    cout<<"\n \nCúanto gastaste en carnes y congelados"<<endl;
    cin>>total;
    cout<<"Gracias por gastar "<<total<<" pesos en carnes y congelados";
    (*acumulador)+=total;
}
void vinos_licores(int*acumulador)
{
    int total;
    cout<<"\n \nCúanto gastaste en vinos y licores"<<endl;
    cin>>total;
    cout<<"Gracias por gastar "<<total<<" pesos en vinos y licores";
    (*acumulador)+=total;
}
void articulos_limpieza(int*acumulador)
{
    int total;
    cout<<"\n \nCúanto gastaste en artículos de limpieza"<<endl;
    cin>>total;
    cout<<"Gracias por gastar "<<total<<" pesos en artículos de limpieza";
    (*acumulador)+=total;
}
int main()
{
    int acumulador= 0;
   
    dulceria(&acumulador);
    frutas_verduras(&acumulador);
    carnes_congelados(&acumulador);
    vinos_licores(&acumulador);
    articulos_limpieza(&acumulador);
    cout<<"\n \nEn total gastaste "<<acumulador<<" pesos";
}

Problema 2:

El otro problema es el siguiente:

Programa que indica si un valor X es un número circular primo. Los números circulares
primos son aquellos que son números primos y que todas las rotaciones de dicho número
también son primos. Ej. El número 197 es circular primo pq es primo y su primera rotación
971 también es primo y su segunda rotación 719 también es primo.
 
En este caso solo supe hacer el código para determinar si el número que ingresa el usuario al principio es primo, pero no sé como hacer para que el número de las vueltas que se necesitan para determinar si es un número primo circular o no.

#include <stdio.h>
#include <iostream>
using namespace std;

int main()
{
    int i, x=0, num, cont=0;
    int cifras[10];
    cout<<"Digita el número"<<endl;
    cin>>num;
   
    for (i=1;i<=num;i++){
        if(num%i==0){
            cont++;
        }
    }
    if (cont>2){
        printf("\nNo es un número primo");
    }
    else{
        printf("\nEs un número primo");
    }
     

}

 Ayuda por favor en cualquiera de los dos ejercicios.
 


En línea

@XSStringManolo
Hacker/Programador
Colaborador
***
Desconectado Desconectado

Mensajes: 2.397


Turn off the red ligth


Ver Perfil WWW
Re: Programa para trabajo de la universidad, urgenteee!!!
« Respuesta #1 en: 22 Noviembre 2021, 22:21 pm »

PROBLEMA1:

No has creado los clientes. Te recomiendo utilizar estructuras para tener los datos organizados y crear clientes de forma sencilla.

Código
  1. struct Cliente {
  2.  std::string nombre = "";
  3.  std::string telefono = "";
  4.  unsigned int totalGastado = 0;
  5. };

Una vez tienes la structura, puedes crear clientes de forma sencilla.
Código
  1. int main() {
  2.  Cliente cliente1; // ejemplo de como crear un cliente
  3. }

Ahora te faltaría rellenar los datos. Puedes hacerlo directamente en main usando el operador .
Código
  1. int main() {
  2.  Cliente cliente1; // ejemplo de como crear un cliente
  3.  cliente1.nombre = "Manolo";
  4.  cliente1.telefono = "555-555-555";
  5. }

Si lo hicieses así y por ejemplo tuvieses 20 clientes y dentro de cada uno 50 propiedades tendrías en el main 1000 lineas de código asignando propiedades, por eso aunque no sea este el caso, es buena práctica crear una funcion a la que le pases los datos y se los asigne a los clientes.

Código
  1. void crearCliente (Cliente * clienteActual, string nombre, string telefono, int gastado ) {
  2.  clienteActual->nombre = nombre;
  3.  clienteActual->telefono = telefono;
  4.  clienteActual->totalGastado = gastado;
  5. }
  6.  
  7. int main() {
  8.  Cliente cliente1;
  9.  crearCliente(&cliente1, "Manolo", "555-555-555", 0);
  10.  
  11.  cout << "Hola " << cliente1.nombre;
  12.  return 0;
  13. }

Ahora que tienes un ejemplo de como acceder dentro de una función a las propiedades de la estructura (cliente->propiedad) y un ejemplo de como acceder desde el main (cliente.propiedad) haz lo que te pide el ejercicio.

Tienes que pasar el cliente por parámetro a las funciones, imprimir su nombre, preguntarle cuanto quiere gasta y añadírselo a la propiedad totalGastado del cliente.

También te pide en el apartado d, que una función acepte un array de clientes. Puedes crear un array de structuras sin problemas:
Código
  1. int main() {
  2.  Cliente clientes[5];
  3.  // aquí el equivalente al antiguo cliente1 sería clientes[0], cliente2 sería clientes[1], etc.
  4.  crearCliente(&clientes[0], "Manolo", "555-555-555", 0);
  5.  
  6.  cout << "Hola " << clientes[0].nombre;
  7.  
  8.  return 0;
  9. }

Es sencillo, trata de familiarizarte con los ejemplos que te puse y rescribe el programa siguiendo lo aquí expuesto y lo que te piden EXACTAMENTE los apartados.



PROBLEMA2

Aquí te explican que es un primo circular:
https://pt.m.wikipedia.org/wiki/Primo_circular

Yo lo implementaría casteando de int a string y una vez tengo un string hago shift del primer caracter y hago push de ese caracter al final y lo casteo a int para poder comprobar si es primo. Repites este proceso una vez por cada dígito que tenga (los sacas con .length() o .size() sobre el tamaño del string)

Si te pongo código, ya te lo doy echo, no te puedo ayudar mas sin darte la solución.

Consejo: Haz una función que retorne false si en algún momento compruebas que no es primo circular. Si acabas el bucle sin haber retornado false, significa que el primo circular asique retornas true al final de la función.


« Última modificación: 22 Noviembre 2021, 22:26 pm por @XSStringManolo » En línea

Mi perfil de patrocinadores de GitHub está activo! Puedes patrocinarme para apoyar mi trabajo de código abierto 💖

Emmet01921

Desconectado Desconectado

Mensajes: 3


Ver Perfil
Re: Programa para trabajo de la universidad, urgenteee!!!
« Respuesta #2 en: 22 Noviembre 2021, 22:37 pm »

Muchas gracias!!! Estaba muy confundido :)
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
programa para una universidad c#
.NET (C#, VB.NET, ASP)
Amagekure 5 5,546 Último mensaje 16 Diciembre 2009, 03:25 am
por Amagekure
Ayuda. Trabajo Universidad
Programación C/C++
Anarq 2 2,242 Último mensaje 1 Enero 2017, 17:02 pm
por ThinkByYourself
El último fraude académico: webs que te hacen el trabajo de la universidad
Noticias
wolfbcn 5 4,954 Último mensaje 5 Febrero 2020, 10:30 am
por FJDA
Trabajo universidad
Programación C/C++
georginho30 5 3,564 Último mensaje 3 Noviembre 2020, 19:04 pm
por K-YreX
Trabajo de la universidad
Programación C/C++
Zeta255 2 2,337 Último mensaje 23 Marzo 2021, 19:05 pm
por Zeta255
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines