Control + K + C para comentar código
Control + K + U para descomentar
😁👍
Introducción a C#
¿Por qué aprender C#? ¿Para qué sirve?
Instalación de Visual Studio Community
Conoce .NET 6
Introducción a Visual Studio y nuestro primer "Hola, mundo" en consola
¡Nuestro primer "Hola, mundo" en una aplicación gráfica!
¿Cómo funcionan los Namespaces en C#?
Lógica de programación
Tipos de datos
Variables
Manejo de strings
Trabajando con números y operadores aritméticos
Operadores lógicos
Operadores relacionales
Cómo leer datos de un usuario en C#
Arreglos en C#
Listas
Métodos o methods
Métodos de strings
Cómo crear tus propios métodos
Bucles y estructuras de control en C#
La sentencia if
La sentencia switch
Ciclo for
Ciclo while
Proyecto
Introducción del proyecto: sistema de registros de usuarios
Creando la búsqueda y el registro de usuarios
Finalizado del proyecto: mostrando la lista de usuarios registrados
Tus siguientes pasos con C#
POO: tu siguiente paso con C#
No tienes acceso a esta clase
¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera
No se trata de lo que quieres comprar, sino de quién quieres ser. Invierte en tu educación con el precio especial
Antes: $249
Paga en 4 cuotas sin intereses
Termina en:
Ricardo Celis
Aportes 37
Preguntas 5
Control + K + C para comentar código
Control + K + U para descomentar
😁👍
Solo llevo 3 cursos, pero este es el MEJOR curso que he visto en Platzi. Espero mucho de esta escuela de Videojuegos
Ni siquiera era necesario poner el index cuando imprimimos el nombre del usuario
Pudimos haber hecho lo siguiente:
foreach(string comensal in userNames)
{
Console.WriteLine($"User number is: {auxIndice} and the user name is: {comensal}");
auxIndice++;
}
que genial se siente entender el código
Dejo mi solución un poco mas interactiva con el usuario, con la opción de Crear, Mostrar, Actualizar y Borrar , ademas con sus respectivas validaciones; si las reservas están llenas no permite agregar mas clientes, si un cliente ya existe arroja la alerta que ya esta reservado y en que mesa, si deseas modificar la reserva busca que el usuario exista y lo modifica por el que quiera, si no lo encuentra le genera la alerta que no existe y permite la posibilidad de agregarlo siempre y cuando hayan cupos disponibles.
string[] usuarios = new string[10] {"","","","","","ricardo","","","",""};
string usuario="";
int opcion, mesa = 0;
bool salir = false;
while (!salir)
{
Console.WriteLine("<==============================>");
Console.WriteLine("Bienvenido al Restaurante mas top del mundo");;
Console.WriteLine("<==============================>");
Console.WriteLine("1. Buscar Usuario");
Console.WriteLine("2. Crear Usuario");
Console.WriteLine("3. Mostrar Usuarios");
Console.WriteLine("4. Actualizar Usuario");
Console.WriteLine("5. Eliminar Usuario");
Console.WriteLine("6. Salir");
try
{
Console.WriteLine("Ingrese una opcion: ");
opcion = Convert.ToInt32(Console.ReadLine());
switch(opcion)
{
case 1:
Console.WriteLine("Ingrese el nombre de usuario que desea Buscar");
usuario = Console.ReadLine();
searchUser(usuario);
break;
case 2:
Console.WriteLine("Ingrese el usuario que desea Crear");
usuario = Console.ReadLine();
addUser(usuario);
break;
case 3:
showUsers();
break;
case 4:
Console.WriteLine("Ingrese el nombre de usuario que desea Actualizar");
usuario = Console.ReadLine();
updateUsers(usuario);
break;
case 5:
Console.WriteLine("Ingrese el nombre de usuario que desea Eliminar");
usuario = Console.ReadLine();
deleteUser(usuario);
break;
case 6:
salir = true;
break;
}
}catch(Exception e)
{
Console.WriteLine("Error: " + e.Message);
}
}
void addUser(string usuario)
{
for (int i = 0; i < usuarios.Length; i++)
{
if (usuarios[i] == "")
{
usuarios[i] = usuario;
Console.WriteLine("Usuario creado con exito en la mesa: " + i);
break;
}
if(usuarios[i] == usuario)
{
Console.WriteLine("No se puede crear Usuario ya tiene reserva en la mesa: " + i);
break;
}if(i == usuarios.Length-1)
{
Console.WriteLine("No hay mesas disponibles");
}
}
}
void showUsers()
{
int cont= -1;
Console.WriteLine("Usuarios registrados");
for(int i = 0; i < usuarios.Length; i++)
{
cont++;
Console.WriteLine(cont +". " + usuarios[i]);
}
}
void searchUser(string usuario)
{
for (int i = 0; i < usuarios.Length; i++)
{
if(usuarios[i] == usuario)
{
mesa = i;
Console.WriteLine("Usuario encontrado, tiene reserva en la mesa: " + mesa);
break;
}
if(usuarios[i] != usuario && i == 9)
{
Console.WriteLine("Usuario no encontrado, desea crearlo? (s/n)");
string respuesta = Console.ReadLine();
if (respuesta == "s")
{
addUser(usuario);
}else if (respuesta == "n")
{
Console.WriteLine("No se registra usuario");
break;
}
}
}
}
void updateUsers(string usuario)
{
for (int i = 0; i < usuarios.Length; i++)
{
if(usuarios[i] == usuario)
{
mesa = i;
Console.WriteLine("Usuario encontrado, tiene reserva en la mesa: " + mesa + ", desea actualizarlo? (s/n)");
string respuesta = Console.ReadLine();
if (respuesta == "s")
{
Console.WriteLine("Ingrese el nuevo usuario");
usuario = Console.ReadLine();
usuarios[i] = usuario;
Console.WriteLine("Usuario actualizado con exito");
break;
}
if (respuesta == "n")
{
Console.WriteLine("No se actualiza usuario");
break;
}
}else if(usuarios[i] != usuario && i == 9)
{
Console.WriteLine("Usuario no encontrado, desea crearlo? (s/n)");
string respuesta = Console.ReadLine();
if (respuesta == "s")
{
addUser(usuario);
}else if (respuesta == "n")
{
Console.WriteLine("No se registra usuario");
break;
}
}
}
}
void deleteUser(string usuario)
{
for(int i = 0; i < usuarios.Length; i++)
{
if(usuarios[i] == usuario)
{
usuarios[i] = "";
Console.WriteLine("Usuario eliminado con exito");
break;
}
if(usuarios[i] != usuario && i == 9)
{
Console.WriteLine("Usuario no encontrado");
break;
}
}
}
Sencillo si vienes de la escuela de desarrollador Web pero muy muy educativo, quedó todo claro, salvo algunas cosas entre las versiones de VSC 2019 y 2022. Yo esperaría una actualización a 2022.
Grandioso curso, **PROYECTO TERMINADO: **
using System;
namespace RegistroUsuarios
{
internal class Program
{
static void Main(string[] args)
{
string[] usuarios = new string[4] { "Andy", "Miguel", "Eduardo", "" };
int indice = 3;
while (indice<=4)
{
Console.WriteLine("Bienvenido, usted cuenta con un usuario?: true/false ");
Boolean resp = Convert.ToBoolean(Console.ReadLine());
if (resp == true)
{
Console.Write("Cual es su usuario: ");
string usuario = Console.ReadLine();
int index = Array.IndexOf(usuarios, usuario);
if (index == -1)
{
Console.WriteLine("Usuario no existe");
}
else if (indice <= 4)
{
Console.WriteLine("Es un placer contar con usted "+usuario);
}
else if (indice < 4)
{
Console.WriteLine("No se puede registrar mas usuarios");
indice++;
}
}
else if (resp==false && indice<4)
{
Console.Write("Usuario: ");
usuarios[indice] = Console.ReadLine();
Console.WriteLine("Usuario registrado");
indice++;
}
else
{
Console.WriteLine("No se puede registrar mas usuarios");
indice++;
}
Console.WriteLine("\n\n");
}
int auxindex = 0;
Console.WriteLine("LISTA DE USUARIOS: ");
foreach (string usuario in usuarios)
{
Console.WriteLine("Usuario[" + auxindex + "]: " + usuarios[auxindex]);
auxindex++;
}
Environment.Exit(0);
}
}
}
He aquí mi código con algunas pequeñas variaciones:
using System;
/*
* 1. validar si es usuario existente o si se debe registrar, y generar un sistema de registro.
* 2. El programa debe ser capaz de darle la bienvenida a un usuario existente si en efecto existe
* 3. El programa debe repetirse hasta que se registren las 10 personas.
*/
namespace restaurantTablesReservationSystem
{
class Program
{
static void Main(string[] args)
{
string[] userNames = new string[10] { "X", "Z", "P", "Pollito", "Gatito", "Brayan", "Misha", "Joe", "Gual", "" };
int arrayCurrentIndex = 9;
bool userType;
int index;
Console.WriteLine("Welcome to PizzaWorld!");
while (arrayCurrentIndex < 11)
{
Console.WriteLine("Are you a registered user? Write true, or write false to register");
userType = Convert.ToBoolean(Console.ReadLine());
if (userType == true)
{
Console.WriteLine($"Hello, foodie, please enter your user name:");
string userToSearch = Console.ReadLine();
Console.WriteLine("The user you searched is {0}", userToSearch);
index = Array.IndexOf(userNames, userToSearch);
if (index == -1)
{
Console.WriteLine($"There's no a created user for {userToSearch}. Try again or register. ");
}
else
{
Console.WriteLine(". Welcome {0}, it's a pleasure to cook your food!", userNames[index]);
}
}
else if (userType == false)
{
if (arrayCurrentIndex < 10)
{
Console.WriteLine("Please write and remember your User Name");
userNames[arrayCurrentIndex] = Console.ReadLine();
Console.WriteLine("Your user has been save successfully.\n" +
"your User Name is: {0}", userNames[arrayCurrentIndex] + $". Welcome to the best restaurant ever, {userNames[arrayCurrentIndex]}");
arrayCurrentIndex++;
}
else
{
Console.WriteLine("Sorry, restaurant is full now. Please try again next year.");
}
}
}
Console.WriteLine("These are the guests to the dinner: ");
int auxIndex = 0;
foreach (string element in userNames)
{
Console.WriteLine($"User number: {auxIndex + 1} and user name: {element}");
auxIndex++;
}
Environment.Exit(0);
}
}
}
Les dejo como quedo mi codigo:
List<string> reservas = new List<string>();
while(reservas.Count() <= 10)
{
Console.WriteLine("Ingrese el usuario");
string user = Console.ReadLine();
if (reservas.Count() < 10)
{
if (reservas.Contains(user))
{
Console.WriteLine($"Bienvenido {user} ya cuentas con una reserva \n");
}
else
{
reservas.Add(user);
Console.WriteLine($"reserva realizada con exito para el usuario {user}");
Console.WriteLine($"actualmente se llevan {reservas.Count()} reservas \n");
}
}
else
{
Console.WriteLine("Excedido el maximo de reservas");
foreach (string reserva in reservas)
{
Console.WriteLine($"El usuario no {reservas.IndexOf(reserva) + 1} es {reserva}");
}
break;
}
}
Este lenguaje C# es una maravilla usado junto con ASP . NET
¡Que gran curso!
En mi caso utilice listas para hacer el código de acceso espero les sea de utilidad 😄
/*
1.Validar si es un usuario existente o se debe registrar
1,1.si no existe se debe registrar
2.Debe darle la bienvenida si el usuario existe
3.Se debe repetir 10 veces
Hecho por : Juan leal
*/
string NombreIngreso = "";
string EstadoRegistro = " ";
List <string> Nombres = new List<string>();
Nombres.Add("juan");Nombres.Add("carlos");Nombres.Add("David");
int TotalUsuarios = Nombres.Count;
bool continuar = true;
Console.WriteLine("--------------------------------------BIENVENIDO------------------------------------");
while (continuar)
{
Console.WriteLine($"\nActualmente tenemos {10-TotalUsuarios} espacios para usuarios disponibles");
Console.WriteLine("\n¿Ya se encuentra registrado? si:Y no:N");
EstadoRegistro = (Console.ReadLine()).ToUpper();
if (EstadoRegistro == "Y")
{
Console.WriteLine("Ingrese su nombre de usuario");
NombreIngreso = Console.ReadLine();
if (Nombres.Contains(NombreIngreso)) { Console.WriteLine($"Bienvenido {NombreIngreso}"); }
}
else if (EstadoRegistro == "N")
{
Console.WriteLine("\nRegistrando nuevo usuario.....\nPara comenzar cree su nombre de usuario");
NombreIngreso = Console.ReadLine();
if (Nombres.Contains(NombreIngreso))
{
Console.WriteLine($"\nEl nombre de usuario {NombreIngreso} ya esta asignado elija otro redirigiendo... ");
}
else
{
Nombres.Add(NombreIngreso);
Console.WriteLine($"\nRegistrando.....\nFelicidades {NombreIngreso} su registro fue exitoso");
TotalUsuarios++;
Console.WriteLine($"\nRedirigiendo para nuevas entradas.....\nRegistros disponibles: {10 - TotalUsuarios}");
}
if (TotalUsuarios == 10)
{
Console.WriteLine("\n---------------------------limite de usuarios alcanzado-----------------------------" +
"\nmostrando usuarios registrados....");
for (int i = 0; i < Nombres.Count; i++)
{
Console.WriteLine(Nombres[i]);
}
continuar = false;
}
}
else { Console.WriteLine("No es una opcion valida intente nuevamente"); }
}
En C#, hay varios operadores de asignación que se pueden utilizar para asignar valores a variables. Algunos de los más comunes son:
Operador de asignación simple (=): se utiliza para asignar un valor a una variable. Por ejemplo:
int x = 5;
Operadores de asignación compuesta (+=, -=, *=, /=, %=): se utilizan para realizar una operación matemática en una variable y asignar el resultado a la misma variable. Por ejemplo:
x += 5; // x ahora es 10
y *= 2; // y ahora es 20
Operadores de asignación de bits (&=, |=, ^=, <<=, >>=): se utilizan para realizar operaciones de bits en una variable y asignar el resultado a la misma variable. Por ejemplo:
x &= 0xF0; // x ahora es 0x50
y |= 0x0F; // y ahora es 0x2F
Operador de asignación condicional (??=): se utiliza para asignar un valor a una variable solo si la variable es null. Por ejemplo:
string s = null;
s ??= “Hello”; // s ahora es "Hello"
s ??= “World”; // s sigue siendo “Hello”
Es importante tener en cuenta que cada operador de asignación tiene una precedencia diferente en la evaluación de expresiones. Por lo tanto, es importante utilizar paréntesis adecuadamente para asegurarse de que las operaciones se realizan en el orden correcto.
Este es mi primer curso de C#, vengo de estudiar Java y JS y realmente ayuda bastante porque la sintaxis es similar, el curso estuvo muy bien explicado y Celis muy buen profe, super la actitud
Un ejemplo pero usando la variable del foreach
Ricardo eres lo maximo haha y aveces te salen buenos los chistes 😄 jaja
Estaba buscando donde meter el +1 jajajaja
aqui les comparto mi codigo, es un poco difenrete al del profe pero funciona igual
using System;
using System.Linq;
namespace Project
{
internal class Program
{
/*
* 1.validar si es usuario existente o si debe registrase, y generar un sistema de registro o login
* 2.el programa debe ser capaz de darle la bienvenida a un usuario existente sie en efecto existe
* 3.el programa debe repetirse hasta que se registre las 10 personas
*/
public void RegisterUser(List<string> userNames)
{
if (userNames.Count() <= 10)
{
Console.WriteLine("\nPlease write your user name\n");
string newUserName = Console.ReadLine();
if (userNames.Contains(newUserName))
{
Console.WriteLine($"\nThe user {newUserName} exist\n");
}
else
{
userNames.Add(newUserName);
Console.WriteLine("\nYour has been saved successfully\n" +
$"Your user name is {newUserName}");
}
}
else
{
Console.WriteLine("The restuarant is full, sorry\n");
}
}
public void SerchUser(List<string> userNames)
{
Console.WriteLine($"\nWrite your user name\n");
string userName = Console.ReadLine();
if (userNames.Contains(userName))
{
Console.WriteLine($"\nHello, you are a registered user, welcome {userName}");
}
else
{
Console.WriteLine($"\nthis user is not registered, please register");
}
}
public void DeleteUser(List<string> userNames)
{
Console.WriteLine("\nPlease write the user name that you like delete\n");
string deleteUserName = Console.ReadLine();
if (userNames.Contains(deleteUserName))
{
userNames.Remove(deleteUserName);
Console.WriteLine($"\nThe user {deleteUserName} was deleted successfully\n");
}
else
{
Console.WriteLine($"\nThe user {deleteUserName} don´t exist\n");
}
}
public void FindAllUsers(List<string> userNames)
{
Console.WriteLine("\nThey are all users\n");
for (int i = 0; i< userNames.Count(); i++)
{
Console.WriteLine($"User number {i+1} is {userNames[i]}");
}
}
static void Main(string[] args)
{
Console.WriteLine("Welcome to the best restaurant!");
Program metohds = new Program();
List<string> userNames = new List<string>();
string option;
int continueOperation = 0;
do
{
Console.WriteLine($"\n\nPlease select one option\n" +
$"1.serch a user\n" +
$"2.register a user\n" +
$"3.Delete a user\n" +
$"4.view all users\n");
option = Console.ReadLine();
switch (option)
{
case "1":
metohds.SerchUser(userNames);
break;
case "2":
metohds.RegisterUser(userNames);
break;
case "3":
metohds.DeleteUser(userNames);
break;
case "4":
metohds.FindAllUsers(userNames);
break;
default:
Console.WriteLine("This option is invalid\n");
break;
}
Console.WriteLine($"\n\nDo you like continue ?\n" +
$"1.Yes\n" +
$"2.No\n");
continueOperation = Convert.ToInt32(Console.ReadLine());
} while (continueOperation == 1);
Environment.Exit(0);
}
}
}
Me gustó mucho este curso 💙 las explicaciones de Ricardo son muy buenas y dinámicas! El ritmo con el que lleva las clases hace que el estudiante se mantenga atento en todo momento y no se haga aburrido el aprender C#… 10\10 ✨
string[] userNames = new string[10] {"", "", "", "", "", "", "", "", "", ""};
int arrayCurrentIndex = 0;
bool userType;
string userToSearch;
int index;
Console.WriteLine("Welcome to the nest restaurant in the World!");
while (arrayCurrentIndex < 10)
{
Console.WriteLine("\n\nAre you a registered user? Write true, or write false to register");
userType = Convert.ToBoolean(Console.ReadLine());
if (userType)
{
Console.WriteLine("Hello, you are a register user, please enter your user name");
userToSearch = Console.ReadLine();
Console.WriteLine("The user search is {0}", userToSearch);
index = Array.IndexOf(userNames, userToSearch);
if (index == -1)
{
Console.WriteLine("User not found, try again or register");
}
else
{
Console.WriteLine("Welcome {0}, it's a pleasere to give yout food", userNames[index]);
}
}
else
{
Console.WriteLine("Please, write and remember your user name");
userNames[arrayCurrentIndex] = Console.ReadLine();
Console.WriteLine("Your user has been saved successfully\n"
+ "Your user name is {0}", userNames[arrayCurrentIndex]);
arrayCurrentIndex++;
}
}
Console.WriteLine("The restaurant is full, good try again next year\n These are the guests to the dinner:");
int auxIndex = 0;
foreach (string userName in userNames)
{
Console.WriteLine("User number {0} and user name: {1}", auxIndex++, userName);
}
Environment.Exit(0);
using System;
namespace _21restaurantTableReservationSystem
{
internal class Program
{
static void Main(string[] args)
{
string[] userNames = new string[10] { "Migue", "", "", "", "", "", "", "", "", "" };
int arrayCurrentIndex = 1;
bool userType = false;
Console.WriteLine("Welcome to the best restaurant in the world");
while (arrayCurrentIndex < 10)
{
Console.WriteLine("\n\n Are you a registered user? Write true, or write false to register");
//Leemos la entrada del Usuario y lo convertimos a un valor booleano
userType = Convert.ToBoolean(Console.ReadLine());
if(userType == true)
{
Console.WriteLine("Hello, you are a registered User Name, please enter your exact user name");
//Preguntamos su nombre de usuario y lo mostramos
string userToSearch = Console.ReadLine();
Console.WriteLine($"The user you searched is {userToSearch}");
//Se encarga de buscar dentro del array UserNames y se encarga de buscar userToSearch
int index = Array.IndexOf(userNames, userToSearch);
if(index == -1)
{
Console.WriteLine("Your user doesn't exit, try again or register");
Console.ReadLine();
Console.Clear();
}
else
{
Console.WriteLine($"Welcome {userNames[index]}, it's a pleasure to give you food");
Console.ReadLine();
Console.Clear();
}
}else if(userType == false)
{
Console.WriteLine("Please write and remmeber your User Name");
userNames[arrayCurrentIndex] = Console.ReadLine();
Console.WriteLine($"Your user has been saved succesfully\n Your User name is: {userNames[arrayCurrentIndex]}");
arrayCurrentIndex++;
Console.ReadLine();
Console.Clear();
}
}
Console.WriteLine("The restaurant is full, try again next month\n These are the guests to the dinner");
int auxIndex = 0;
foreach (string element in userNames) {
Console.WriteLine("User number{0} and user name:{1}", auxIndex+1, userNames[auxIndex]);
auxIndex++;
}
//Esto le dice C# que nuestro programa ha terminado
Environment.Exit(0);
}
}
}
Puse unos console Clear para que se vea mas bonito y no se amontone todo ahi
No estamos aprovechando el poder de foreach
, que con cada iteración element
guarda el username actual.
Refactorizar: Buscar La manera de hacer el software con menos código.
Yo escribí mi programa basado en los IDs de los clientes, ya que podria ocurrir que el cliente no escriba su nombre tal cual esta registrado, asi que para evitar problemas el Id de cada usuario es el indice del array en el que esta siendo guardado y luego se le muestra al usuario el ID para que lo recuerde.
string[] userNames = new string[10]{"", "", "", "", "", "", "", "", "", ""};
int arrayCurrentIndex = 0;
bool userType;
Console.WriteLine("Welcome to The Meat Corner\n");
while (arrayCurrentIndex < 10)
{
Console.WriteLine("\n\nDo you have an account?\nWrite true if yes or false to register.");
userType = Convert.ToBoolean(Console.ReadLine());
if (userType == true)
{
Console.WriteLine("Please type your ID");
int userToSearch = Convert.ToInt32(Console.ReadLine());
if (userToSearch > (arrayCurrentIndex-1))
{
Console.WriteLine("Sorry, user not found. Try again or register");
}
else
{
Console.WriteLine("Welcome " + userNames[userToSearch]);
}
}
else if (userType == false)
{
Console.WriteLine("Please write your user name");
userNames[arrayCurrentIndex] = Console.ReadLine();
Console.WriteLine("\nWelcome " + userNames[arrayCurrentIndex] + " Your user has been saved succesfully. Remember, your ID is: " + arrayCurrentIndex);
arrayCurrentIndex++;
}
}
Console.WriteLine("\n\nThe restaurant reservations are full. Try again next year.\nThis are the costumers with a reservation:\n");
int auxIndex = 0;
foreach(string element in userNames)
{
Console.WriteLine("Costumer ID: " + auxIndex + " Costumer name: " + userNames[auxIndex]);
auxIndex++;
}
Environment.Exit(0);
Hola compañeros yo hice el ejercicio de está forma con mi lógica espero les sirva:
class Program
{
static void Main(string[] args)
{
//Arrelo con las 10 posiciones para los usuarios
string[] comensales;
comensales = new string[] { "", "", "", "", "", "", "", "", "", "" };
Console.WriteLine("Bienvenido al restaurante X ingrese su nombre para registrar");
string user;
int contadorArreglo = 0;
int contador = 0;
while (contadorArreglo < 10)
{
Console.WriteLine("Ingrese su nombre");
user = Console.ReadLine();
int indice = Array.IndexOf(comensales, user);
if (indice > -1)
{
Console.WriteLine("El nombre de usuario: " + user + " ya se encuentra registrado");
}
else
{
Console.WriteLine("Bienvenido " + user + " te has registrado correctamente, bienvenido al restaurante X");
comensales[contadorArreglo] = user;
contadorArreglo++;
}
}
Console.WriteLine("Gracias por venir al restaurante X, ya tenemos todas nuestras reservas llenas por los siguientes clientes:");
Console.WriteLine("Por favor venir el ano que viene");
foreach (string cliente in comensales)
{
Console.WriteLine("Cliente {0}, con nombre {1}", contador+1, comensales[contador]);
contador++;
}
}
}
Como comentario extra, dentro del foreach, se puede sustituir element en lugar de userNames[auxIndex], ya que esa variable contiene valor del indice en cada ciclo.
Pero también para evitar usar una variable auxIndex, podemos reutilizar el método enseñado en este mismo curso Array.IndexOf… Y de esa manera obtenemos el indice y le sumamos 1.
//Console.WriteLine("User number: {0} and user name: {1}", auxIndex+1, userNames[auxIndex]);
Console.WriteLine("User number: {0} and user name: {1}", Array.IndexOf(userNames, element)+1, element);
Aqui mi versión!
using System;
/*
* 1. Validar si es usuario existente o debe registrarse
* 2. El programa debe ser capaz de darle la bienvenida a un usuario existente si existe
* 3. El programa debe repetirse hasta que se registren las 10 personas
*/
namespace restaurant10TablesReservationSystem
{
internal class Program
{
static string[] userNames = new string[10] { "Astrik", "", "", "", "", "", "", "", "", ""};
static int arrCurrentIndex = 1;
static void Main(string[] args)
{
while (arrCurrentIndex < userNames.Length)
{
Console.WriteLine("Hola ¿Qué quieres hacer? \n" +
"1. Iniciar sesión \n" +
"2. Registrarse");
int select = Int32.Parse( Console.ReadLine() );
switch ( select )
{
case 1:
Program.login();
break;
case 2:
Program.addUser();
break;
default:
Console.WriteLine("Seleccione una opción valida");
break;
}
}
Console.WriteLine("¡El restuarante esta lleno! \n" +
"Estos son los comensales:");
int index = 1;
foreach (string name in userNames)
{
Console.WriteLine($"{index}: {name}");
index++;
}
}
static void login()
{
Console.WriteLine("¿Cuál es tu usuario?");
string user = Console.ReadLine();
foreach (string userName in userNames)
{
if (userName == user)
{
Console.WriteLine($"Bienvenido {userName}!");
} else
{
Console.WriteLine($"No se encontro el usuario: {userName}");
}
}
}
static void addUser()
{
Console.WriteLine("¿Como quieres registrarte?");
string user = Console.ReadLine();
userNames[arrCurrentIndex] = user;
Console.WriteLine($"Ya puedes iniciar sesión como {user}");
arrCurrentIndex++;
}
}
}
Este es mi programa, agregandole un metodo para ver todos los usuarios y usando switch para recrear un menu para un Login o crear un usuario
class Program
{
static List<string> usuarios = new List<string>();
static void Main(string[] args)
{
int max = 10;
string usuario;
Console.WriteLine("Bienvenido al sistema de reservas.");
do
{
Menu();
Console.WriteLine("Ingrese una opcion: ");
int opcion = int.Parse(Console.ReadLine());
switch (opcion)
{
case 1:
Console.WriteLine("\nIngrese su nombre de usuario");
usuario = Console.ReadLine();
if (!usuarios.Contains(usuario))
{
Console.WriteLine("El usuario ingresado no existe, ingrese su nombre para entrar al sistema");
Nuevo_Usuario();
}
Console.WriteLine("Bienvenido " + usuario + " ,usted se encuentra en la reserva\n");
break;
case 2:
Nuevo_Usuario();
break;
case 3:
if (usuarios.Count == 0)
{
Console.WriteLine("Aun no hay usuarios registrados, se el primero!");
break;
}
Console.WriteLine("Usuarios dentro del sistema: ");
for (int i=0; i<usuarios.Count ; i++)
{
Console.WriteLine(" Usuario" + i+1 + ": " + usuarios[i]);
}
break;
default:
Console.WriteLine("Menu inexistente");
break;
}
} while (usuarios.Count < max);
Console.WriteLine("\nSe ha alcanzado el numero maximo de reservas, hasta la proxima :)");
}
public static void Menu()
{
Console.WriteLine("\n --MENU--");
Console.WriteLine("1. Login");
Console.WriteLine("2. Nuevo");
Console.WriteLine("3. Ver todos los usuarios");
}
public static void Nuevo_Usuario()
{
string usuario;
Console.WriteLine("Ingrese su nuevo usuario");
usuario = Console.ReadLine();
usuarios.Add(usuario);
Console.WriteLine("Se creo su usuario!");
}
}
Otra opción es usar Listas.
using System;
using System.Collections.Generic;
using System.Linq;
public class Program
{
public static void Main()
{
// Declarar lista
var userNames = new List<string>();
// Con cada iteración se agrega un usuario
userNames.Add("Pepe");
userNames.Add("Jorge");
userNames.Add("Diego");
foreach (var item in userNames.Select((value, index) => new { index, value }))
{
Console.WriteLine("User index: {0} and user name: {1}", item.index , item.value);
}
}
}
Repasando ando
Como yo habia puesto placeholders para que uno no pueda acceder simplemente presionando enter, habia un error donde, poniendo el mismo nombre de usuario q el anterior usuario, uno podia acceder como el placeholder, pues este no se reseteaba. Entonces, para resetearlo escribi
usernames[doesUserExist] = Convert.ToString(placeholder);
abajo de cuando se registra. el codigo completo es este:
Random rnd = new Random();
long placeholder = Convert.ToInt64(rnd.Next(1, 32767) * rnd.Next(1, 32767) - rnd.Next(1, 1073676289));
string[] usernames = new string[10] {Convert.ToString(placeholder), Convert.ToString(placeholder), Convert.ToString(placeholder), Convert.ToString(placeholder), Convert.ToString(placeholder), Convert.ToString(placeholder), Convert.ToString(placeholder), Convert.ToString(placeholder), Convert.ToString(placeholder), Convert.ToString(placeholder)};
Console.WriteLine("Welcome to the best restaurant of the world!");
for (var i = 0; i < 10; i++)
{
Console.WriteLine("\nCurrently, we have " + (10 - i) + " reservation slots left.\nAre you registered? Type y for yes, or n for no");
string strRegistered = Console.ReadLine();
switch (strRegistered)
{
case "y":
bool isRegistered = true;
Console.WriteLine("You are a registered user, please type your username");
string userToSearch = Console.ReadLine();
Console.WriteLine("Searching for " + userToSearch + "...");
int doesUserExist = Array.IndexOf(usernames, userToSearch);
if (doesUserExist == -1)
{
Console.WriteLine(userToSearch + " is not registered on our data base");
i = i - 1;
}
else
{
Console.WriteLine("Welcome, " + usernames[i] + "! You are the " + (i + 1) + "° user of the year to reserve a table");
usernames[doesUserExist] = Convert.ToString(placeholder);
}
break;
case "n":
isRegistered = false;
Console.WriteLine("To register yourself, please type your username");
usernames[i] = Console.ReadLine();
Console.WriteLine("User " + usernames[i] + " has been successfully registered. You can now log in to reserve a table");
i = i - 1;
break;
default:
Console.WriteLine("Error: invalid answer, please try again");
i = i - 1;
break;
}
}
Console.WriteLine("\nThe restaurant is full of reservations, no more are admitted. If you want to make a new reservation, you will have to wait for the next year.");
También podria surgir que hayan dos usuarios con exactamente el mismo nombre, pero eso no causa error en el codigo (aunque podria causar errores si se quiere aplicar el codigo, pero para corregirlo lo unico que se me ocurre es varios if anidados que chequeen si un usuario ya existe, o un switch con 10 parametros en donde en vez de las comillas se ponga usernames[i] y que de algun modo mire si hay dos iguales, pero no se si siquiera sea posible)
Muy buen curso muy bien explicado
👍🏼
static void Main(string[] args)
{
string[] userNames = new string[10] { "Lalo", "Eva", "Abel", "Elisa", "Dani","Caro", "Toño", "Elsa", "Gabriel", "" };
int arrayCurrentIndex = 9;
bool userType;
Console.WriteLine("Welcome to the best restaurant in the world");
while (arrayCurrentIndex < 10)
{
Console.Write("\n\nAre you a registered use? Write - True / False: ");
userType = bool.Parse(Console.ReadLine());
if (userType == true)
{
Console.Write("\nHello, you are a registered user, please enter your user name: ");
string userToSearch = Console.ReadLine();
Console.WriteLine("\nThe user you searched is {0}", userToSearch);
int index = Array.IndexOf(userNames, userToSearch);
if (index == -1)
{
Console.WriteLine("User not found, try again or register");
}
else
{
Console.WriteLine("Welcome {0}, it´s a pleasure to give your food.", userNames[index]);
}
}
else if (userType == false)
{
Console.Write("Please write and remember your User name: ");
userNames[arrayCurrentIndex] = Console.ReadLine();
Console.WriteLine("\nYour User has been saved successfully\nYour User Name is {0}",userNames[arrayCurrentIndex]);
arrayCurrentIndex++;
}
}
Console.WriteLine("The restaurant is full, try again next year\nThese are the guests to the dinner: ");
int auxIndex = 0;
foreach(string element in userNames)
{
Console.WriteLine("User number {0} and user name: {1}", auxIndex + 1, userNames[auxIndex]);
auxIndex++;
}
Environment.Exit(0);
}
¿Quieres ver más aportes, preguntas y respuestas de la comunidad?