Kayıt sistemi algoritması

Fenas

Decapat
Katılım
28 Mart 2019
Mesajlar
68
Yer
İstanbul
Daha fazla  
Cinsiyet
Erkek
Selamlar. Programlamaya yeni başladım şu an C# ve algoritma öğrenmeye çalışıyorum. Bir kayıt sistemi algoritması yazdım ve koda çevirdim, nasıl olduğunua dair fikrinizi almak isterim.

Algoritma:
1) Başla.
2) Kullanıcıyı karşıla ve hoşgeldin mesajını göster.
3) String tipinde, "username" isimli değişkeni oluştur.
4) Kullanıcıya ismini sor ve girilen veriyi "username" değişkenine ata.
5) String tipinde, "useremail" isimli değişkeni oluştur.
6) Kullanıcıya e-posta adresini sor ve girilen veriyi "useremail" değişkenine ata.
7) String tipinde, "userpassword" isimli değişkeni oluştur.
8) Kullanıcıya şifresini sor ve girilen veriyi "userpassword" değişkenine ata.
9) Eğer "userpassword" değişkeni 8 karakterden büyükse, 11. adıma git.
10) eğer "userpassword" değişkeni 8 karakterden küçükse, hata mesajı göster ve 8. adıma git.
11) kullanıcıyı giriş sayfasına yönlendir.
12) string tipinde, "loginusername" isimli değişkeni oluştur.
13) kullanıcıdan kayıt olurken girdiği isim veya e-posta adresini girmesini iste ve girilen veriyi "loginusername" değişkenine ata.
14) string tipinde, "loginpassword" isimli değişkeni oluştur.
15) kullanıcıdan kayıt olurken girdiği şifreyi girmesini iste ve girilen veriyi "loginpassword" değişkenine ata.
16) eğer "loginusername" değişkeni "username" veya "useremail" değişkenine eşitse, ve "loginpassword" değişkeni "userpassword" değişkenine eşitse kullanıcıya başarılı giriş mesajını göster ve 19. adıma git.
17) eğer "loginusername" değişkeni "username veya "useremail" değişkenine eşit değilse, hata mesajı ver ve 13. adıma git.
18) eğer "loginpassword" değişkeni "userpassword" değişkenine eşit değilse, hata mesajı ver ve 15. adıma git.
19) dur.

Algoritmayı C# dilinde koda dönüştürmeye çalıştım:

C#:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Website.
{
class Program.
{
public static void Main(string[] args)
{
string userName;
string userEmail;
string userPassword;

Console.WriteLine("Hoşgeldiniz! \nSitemizde mevcut bir kaydınız bulunmuyor. Lütfen kaydınızı oluşturun.\n");

Console.Write("Kullanıcı adınızı girin: "); userName = Console.ReadLine();
Console.Write("E-posta adresinizi girin: "); userEmail = Console.ReadLine();
Console.Write("Şifrenizi girin: "); Sifre: userPassword = Console.ReadLine();

if (userPassword.Length < 8)
{
Console.Write("\nŞifreniz en az 8 karakterden oluşmalı. Lütfen tekrar girin: "); goto Sifre;
}

Console.Clear();
Console.Write("Başarıyla kaydoldunuz. Giriş sayfasına gitmek için bir tuşa basın.");
Console.ReadKey(); Console.Clear();

string loginUsername;
string loginPassword;

Console.Write("Kullanıcı adınız veya e-posta adresiniz: "); epostaGiris: loginUsername = Console.ReadLine();
Console.Write("Şifreniz: "); sifreGiris: loginPassword = Console.ReadLine();

if ((loginUsername == userName || loginUsername == userEmail) && loginPassword == userPassword)
{
Console.Clear();
Console.Write("Başarıyla giriş yaptınız.");
}

else if (loginUsername != userName || loginUsername != userEmail)
{
Console.Clear();
Console.Write("E-posta veya kullanıcı adını yanlış girdiniz. Lütfen tekrar girin: "); goto epostaGiris;
}

else.
{
Console.Clear();
Console.Write("Şifreniz yanlış. Lütfen tekrar girin: "); goto sifreGiris;
}

Console.ReadKey();
}
}
}

Şurada şunu yap veya şunu yazarken hata yapmışsın dediğiniz yerleri yazarsanız sevinirim.
 
Algoritma tarif ederken "degisken olustur" ya da "degisken ata" gibi seylerden bahsetmezsin cunku
1) Bunlar algoritmanin implementasyonundan bagimsizdir
2) Dilden dile degisken olusturma ve atama syntax i farklilik gosterir.

O yuzden flowchart ya da pseudocode ile ifade edersin.

1) Credentials al
2) Credentials validasyonu ( basarisizsa 1'e don )
3) Login ekranina redirect edip login olmasini iste
4) Credentials validasyonu ( basarisizsa 3'e don )

Bu kadar aslinda senin akis. Pro uygulamalarda bundan cok daha karmasiktir kayit sistemi ama benzerlikler var.

Ornegin kayit olan kullaniciya yeniden login ol demezsin.
 
Şurada şunu yap veya şunu yazarken hata yapmışsın dediğiniz yerleri yazarsanız sevinirim.

7, 9 ve 50. satırlarda syntax error veriyor. Şu satırların sonlarına eklediğiniz noktalar programın çalışmasını engelliyor:

C#:
namespace Website.

class Program.

else.

Ayrıca using System dışında import ettiğiniz libraryler gereksiz. Çünkü program içerisinde kullanılmamış. Bunları kaldırabilirsiniz. Kullanılmayan libraryleri import etmek kafa karıştırıcı olabilir.

goto komutunu kullanmak yerine block yapılarını kullanabilirsiniz. Bu komut BASIC gibi non-structured dillerde kullanılıyor. Çok fazla goto komutu kullanılan programlara spaghetti code denir. Okunması ve bakımı zordur. O yüzden C# gibi structured dillerde bu komutu kullanmanızı tavsiye etmem.

Indentation kurallarına da pek uymamışsınız. Programın çalışmasına engel değil. Python olsaydı program error verirdi ancak yine kodun okunabilirliğini arttırmak açısında yeni bir block oluştururken tab karakterini ya da space karakterini kullanarak indentation oluştururuz.

Kolay gelsin.
 
7, 9 ve 50. satırlarda syntax error veriyor. Şu satırların sonlarına eklediğiniz noktalar programın çalışmasını engelliyor:

C#:
namespace Website.

class Program.

else.

Ayrıca using System dışında import ettiğiniz libraryler gereksiz. Çünkü program içerisinde kullanılmamış. Bunları kaldırabilirsiniz. Kullanılmayan libraryleri import etmek kafa karıştırıcı olabilir.

goto komutunu kullanmak yerine block yapılarını kullanabilirsiniz. Bu komut BASIC gibi non-structured dillerde kullanılıyor. Çok fazla goto komutu kullanılan programlara spaghetti code denir. Okunması ve bakımı zordur. O yüzden C# gibi structured dillerde bu komutu kullanmanızı tavsiye etmem.

Indentation kurallarına da pek uymamışsınız. Programın çalışmasına engel değil. Python olsaydı program error verirdi ancak yine kodun okunabilirliğini arttırmak açısında yeni bir block oluştururken Tab karakterini ya da space karakterini kullanarak indentation oluştururuz.

Kolay gelsin.

Onları ben eklemedim, yazım denetiminde nokta ve büyük harfi açık bırakmıştım otomatik eklenmiş. Normal kodda sıkıntı yok çalışıyor. Teşekkürler.
 
Uyarı! Bu konu 6 yıl önce açıldı.
Muhtemelen daha fazla tartışma gerekli değildir ki bu durumda yeni bir konu başlatmayı öneririz. Eğer yine de cevabınızın gerekli olduğunu düşünüyorsanız buna rağmen cevap verebilirsiniz.

Technopat Haberler

Yeni konular

Geri
Yukarı