Şimdi Ara

OOP

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
2 Misafir - 2 Masaüstü
5 sn
12
Cevap
0
Favori
623
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
1 oy
Öne Çıkar
Sayfa: 1
Giriş
Mesaj
  • Merhaba.Bu kod nesneye yönelik olmuş mu ?

    import sys
    import sqlite3
    from PyQt5 import QtWidgets
    import string
    import random
    import hashlib

    class Baglanti:

    def baglanti1(self):
    self.baglantı = sqlite3.connect("database.db")
    self.cursor = self.baglantı.cursor()
    self.cursor.execute("create table if not exists üyeler(kullanıcı_ID TEXT,anaşifre TEXT)")
    self.cursor.execute("create table if not exists şifreler(anaşifre TEXT,Uygulamalar TEXT,Şifre TEXT)")
    self.baglantı.commit()
    def baglanti_kes(self):
    self.baglantı.close()

    class AnaEkran(QtWidgets.QWidget):
    def __init__(self):
    super().__init__()
    self.init_ui()
    baglanti.baglanti1()

    def init_ui(self):

    self.setWindowTitle("şifre yöneticisi")
    self.setGeometry(200, 200,600,600)

    self.hosgeldiniz = QtWidgets.QLabel("Şifre Yöneticisine Hoşgeldiniz.")

    self.kullanici_yeri = QtWidgets.QLabel("Kullanıcı ID: ")
    self.şifre_yeri = QtWidgets.QLabel("Şifre: ")
    self.kullanici_girisi = QtWidgets.QLineEdit()
    self.parola = QtWidgets.QLineEdit()
    self.parola.setEchoMode(QtWidgets.QLineEdit.Password)
    self.giris = QtWidgets.QPushButton("Giriş")
    self.kayıt_ol = QtWidgets.QPushButton("Kayıt Ol")
    self.yazi_alani = QtWidgets.QLabel("")
    self.sifremi_degistir = QtWidgets.QPushButton("Ana Şifremi degistir")

    v_box = QtWidgets.QVBoxLayout()
    v_box.addWidget(self.hosgeldiniz)
    v_box.addWidget(self.kullanici_yeri)
    v_box.addWidget(self.kullanici_girisi)
    v_box.addWidget(self.şifre_yeri)
    v_box.addWidget(self.parola)
    v_box.addWidget(self.yazi_alani)
    v_box.addStretch()
    v_box.addWidget(self.giris)
    v_box.addWidget(self.kayıt_ol)
    v_box.addWidget(self.sifremi_degistir)

    h_box = QtWidgets.QHBoxLayout()
    h_box.addStretch()
    h_box.addLayout(v_box)
    h_box.addStretch()

    self.setLayout(h_box)
    self.giris.clicked.connect(self.login)
    self.kayıt_ol.clicked.connect(self.register)
    self.sifremi_degistir.clicked.connect(self.sifre_degistir)
    self.show()

    def sifre_degistir(self):

    sifredegistir.show()
    self.close()

    def register(self):

    k_adı = self.kullanici_girisi.text()
    parola = str(self.parola.text())
    k_adı_hashing = hashlib.md5(k_adı.encode('utf-8')).hexdigest()
    parola_hashing = hashlib.md5(parola.encode('utf-8')).hexdigest()
    baglanti.cursor.execute("select * from üyeler where kullanıcı_ID=?", (k_adı_hashing,))
    data = baglanti.cursor.fetchall()
    if (len(k_adı) == 0 or len(parola) == 0):
    self.yazi_alani.setText("Bilgileri doldurun")
    elif (len(parola) < 6):
    self.yazi_alani.setText("Şifre 6 karakterden az olamaz ")
    elif (len(data) != 0):
    self.yazi_alani.setText("Boyle bır kullanıcı zaten var ")

    elif (len(k_adı) != 0 and len(parola) != 0):
    baglanti.cursor.execute("insert into üyeler values(?,?)", (k_adı_hashing, parola_hashing))
    self.yazi_alani.setText("Kayıt başarılı")
    baglanti.baglantı.commit()

    def login(self):

    adi = str(self.kullanici_girisi.text())
    par = str(self.parola.text())
    adi_hashing = hashlib.md5(adi.encode('utf-8')).hexdigest()
    par_hashing = hashlib.md5(par.encode('utf-8')).hexdigest()

    baglanti.cursor.execute("select * from üyeler where anaşifre=?", (par_hashing,))

    data = baglanti.cursor.fetchall()

    if (len(adi) == 0 or len(par) == 0):
    self.yazi_alani.setText("Lütfen bilgileri doldurun")
    elif (len(data) == 0):
    self.yazi_alani.setText("Giriş başarısız")
    else:
    self.yazi_alani.setText("Hoşgeldiniz" + adi)
    ıslemler.show()


    class Islemler(QtWidgets.QWidget):

    def __init__(self):
    super().__init__()
    self.gorsel()
    baglanti.baglanti1()

    def gorsel(self):

    self.setWindowTitle("İşlemler")
    self.setGeometry(200, 200, 600, 600)

    self.sifre_buton = QtWidgets.QPushButton("Şifrelerimi sakla ")
    self.sifreleri_goster = QtWidgets.QPushButton("Şifrelerimi göster")
    self.sifre_uret = QtWidgets.QPushButton("Şifre üret")
    self.text_edit = QtWidgets.QTextEdit()
    self.girise_dön = QtWidgets.QPushButton("Girişe dön")

    v_box = QtWidgets.QVBoxLayout()
    v_box.addWidget(self.sifreleri_goster)
    v_box.addWidget(self.text_edit)
    v_box.addStretch()
    v_box.addWidget(self.sifre_uret)
    v_box.addWidget(self.sifre_buton)
    v_box.addWidget(self.girise_dön)

    h_box = QtWidgets.QHBoxLayout()
    h_box.addStretch()
    h_box.addLayout(v_box)
    h_box.addStretch()
    self.setLayout(h_box)

    self.girise_dön.clicked.connect(self.giris1)
    self.sifre_uret.clicked.connect(self.diger_sifre)
    self.sifre_buton.clicked.connect(self.diger_sakla)
    self.sifreleri_goster.clicked.connect(self.sifre_goster)

    def giris1(self):
    anaekran.show()
    self.text_edit.clear()
    self.close()

    def sifre_goster(self):

    ana_şifre = str(anaekran.parola.text())
    ana_şifre_hashing = hashlib.md5(ana_şifre.encode('utf-8')).hexdigest()
    baglanti.cursor.execute("select Uygulamalar,Şifre from şifreler where anaşifre=?", (ana_şifre_hashing,))
    liste = baglanti.cursor.fetchall()
    liste=dict(liste)
    if(len(liste)!=0):
    temp=""
    temp2=""
    for i in liste.keys():
    temp+=i+"\n"
    for j in liste.values():
    temp2+=j+"\n"+"\n"
    self.text_edit.setText(str(temp)+"\n"+str(temp2))

    def diger_sifre(self):
    sifreuret.show()
    self.text_edit.clear()
    self.close()

    def diger_sakla(self):
    sifresakla.show()
    self.text_edit.clear()
    self.close()


    class Sifreuret(QtWidgets.QWidget):

    def __init__(self):

    super().__init__()

    baglanti.baglanti1()
    self.islemler()

    def islemler(self):
    self.setWindowTitle("Şifre üret")
    self.setGeometry(200, 200, 600, 600)

    self.sifre_uret = QtWidgets.QPushButton("Şifre üret")
    self.uzunluk_yazisi = QtWidgets.QLabel("Şifre Uzunluğunu belirtiniz")
    self.uzunluk_yeri = QtWidgets.QLineEdit()
    self.kucuk_harf = QtWidgets.QCheckBox("Küçük harf")
    self.buyuk_harf = QtWidgets.QCheckBox("Büyük harf")
    self.karakter = QtWidgets.QCheckBox("Özel karakter")
    self.sayı = QtWidgets.QCheckBox("Sayı")
    self.olusturulan_sifre = QtWidgets.QLabel("Oluşturulan şifre")
    self.olusturulan_sifre_yeri = QtWidgets.QLineEdit()
    self.kaydet_buton = QtWidgets.QPushButton("Şifreyi Kaydet")
    self.tanım = QtWidgets.QLabel("Şifreyi ne için kaydetmek istiyorsunuz ?")
    self.tanım_yeri = QtWidgets.QLineEdit()

    self.kaydedildi_yazisi = QtWidgets.QLabel("")
    self.geri_dön = QtWidgets.QPushButton("Geri dön")
    self.girise_dön = QtWidgets.QPushButton("Girişe dön")

    v_box = QtWidgets.QVBoxLayout()
    v_box.addWidget(self.uzunluk_yazisi)
    v_box.addWidget(self.uzunluk_yeri)
    v_box.addWidget(self.kucuk_harf)
    v_box.addWidget(self.buyuk_harf)
    v_box.addWidget(self.karakter)
    v_box.addWidget(self.sayı)
    v_box.addWidget(self.sifre_uret)
    v_box.addWidget(self.olusturulan_sifre)
    v_box.addWidget(self.olusturulan_sifre_yeri)
    v_box.addStretch()

    v_box.addWidget(self.tanım)
    v_box.addWidget(self.tanım_yeri)
    v_box.addWidget(self.kaydet_buton)
    v_box.addWidget(self.kaydedildi_yazisi)
    v_box.addStretch()
    v_box.addWidget(self.girise_dön)
    v_box.addWidget(self.geri_dön)

    h_box = QtWidgets.QHBoxLayout()
    h_box.addLayout(v_box)

    self.setLayout(h_box)
    self.girise_dön.clicked.connect(self.giris1)
    self.geri_dön.clicked.connect(self.geri1)
    self.kaydet_buton.clicked.connect(self.sifreyi_kaydet1)
    self.sifre_uret.clicked.connect(lambda: self.sifre_uret1(self.buyuk_harf.isChecked(),self.kucuk_harf.isChecked(),self.karakter.isChecked(), self.sayı.isChecked(), self.olusturulan_sifre_yeri))

    def giris1(self):
    anaekran.show()
    ıslemler.close()
    self.uzunluk_yeri.clear()
    self.olusturulan_sifre_yeri.clear()
    self.close()

    def geri1(self):
    ıslemler.show()
    self.uzunluk_yeri.clear()
    self.olusturulan_sifre_yeri.clear()
    self.close()

    def sifre_uret1(self, buyuk, kucuk, karakter, sayı, yazı):

    chars = ""
    uzunluk = int(self.uzunluk_yeri.text())

    if kucuk:
    chars += string.ascii_lowercase
    if buyuk:
    chars += string.ascii_uppercase
    if karakter:
    ozel_karakterler = ("!#$/%&*+-:;?@\_")
    chars += ozel_karakterler
    if sayı:
    chars += string.digits


    temp = ""

    for i in range(uzunluk):
    temp += random.choice(chars)
    self.olusturulan_sifre_yeri.setText(str(temp))

    def sifreyi_kaydet1(self):

    anasifre = str(anaekran.parola.text())
    tanım = str(self.tanım_yeri.text())
    şifre = str(self.olusturulan_sifre_yeri.text())

    anasifre_hashing = hashlib.md5(anasifre.encode('utf-8')).hexdigest()

    baglanti.cursor.execute("select * from üyeler where anaşifre=?", (anasifre_hashing,))
    liste = baglanti.cursor.fetchall()
    if (len(liste) != 0):

    baglanti.cursor.execute("insert into şifreler values(?,?,?)", (anasifre_hashing, tanım, şifre))
    baglanti.baglantı.commit()
    self.kaydedildi_yazisi.setText("Şifreniz kaydedildi")
    else:
    self.kaydedildi_yazisi.setText("Ana şifreniz yanlış.Lütfen tekrar deneyiniz.")


    class Sifresakla(QtWidgets.QWidget):

    def __init__(self):

    super().__init__()
    baglanti.baglanti1()

    self.islemler()

    def islemler(self):

    self.setWindowTitle("Şifreleri sakla")
    self.setGeometry(200, 200, 600, 600)

    self.sifre = QtWidgets.QLabel("Şifreniz")
    self.sifre_yeri = QtWidgets.QLineEdit()

    self.uygulama = QtWidgets.QLabel("Şifrenizi ne için kaydetmek istiyorsunuz ? ")
    self.uygulama_yeri = QtWidgets.QLineEdit()

    self.kaydet = QtWidgets.QPushButton("Şifremi Kaydet")
    self.bilgi = QtWidgets.QLabel("")
    self.geri_dön = QtWidgets.QPushButton("Geri Dön")
    self.girise_dön = QtWidgets.QPushButton("Girişe dön")

    v_box = QtWidgets.QVBoxLayout()

    v_box.addWidget(self.uygulama)
    v_box.addWidget(self.uygulama_yeri)
    v_box.addWidget(self.sifre)
    v_box.addWidget(self.sifre_yeri)
    v_box.addWidget(self.kaydet)
    v_box.addWidget(self.bilgi)
    v_box.addStretch()
    v_box.addWidget(self.geri_dön)
    v_box.addWidget(self.girise_dön)

    h_box = QtWidgets.QHBoxLayout()
    h_box.addLayout(v_box)
    h_box.addStretch()

    self.geri_dön.clicked.connect(self.geri1)
    self.girise_dön.clicked.connect(self.giris1)
    self.setLayout(h_box)
    self.kaydet.clicked.connect(self.sifre_sakla1)

    def geri1(self):
    ıslemler.show()
    self.sifre_yeri.clear()
    self.uygulama_yeri.clear()
    self.close()

    def giris1(self):
    anaekran.show()
    self.sifre_yeri.clear()
    self.uygulama_yeri.clear()
    self.close()

    def sifre_sakla1(self):

    ana_şifre = str(anaekran.parola.text())
    sifre = str(self.sifre_yeri.text())
    tanım = str(self.uygulama_yeri.text())

    ana_şifre_hashing = hashlib.md5(ana_şifre.encode('utf-8')).hexdigest()
    baglanti.cursor.execute("select * from üyeler where anaşifre=?", (ana_şifre_hashing,))
    liste = baglanti.cursor.fetchall()
    if (len(liste) != 0):

    baglanti.cursor.execute("insert into şifreler values(?,?,?)", (ana_şifre_hashing, tanım, sifre))
    baglanti.baglantı.commit()
    self.bilgi.setText("Şifreniz kaydedildi")
    else:
    self.bilgi.setText("Ana şifreniz yanlış tekrar deneyin")


    class Sifredegistir(QtWidgets.QWidget):

    def __init__(self):

    super().__init__()
    baglanti.baglanti1()

    self.islemler()

    def islemler(self):

    self.eski_sifre = QtWidgets.QLabel("Eski şifrenizi girin")
    self.eski_sifre_yeri = QtWidgets.QLineEdit()
    self.eski_sifre_yeri.setEchoMode(QtWidgets.QLineEdit.Password)
    self.yeni_sifre = QtWidgets.QLabel("Yeni şifrenizi girin")
    self.yeni_sifre_yeri = QtWidgets.QLineEdit()
    self.yeni_sifre_yeri.setEchoMode(QtWidgets.QLineEdit.Password)
    self.sifreyi_degistir = QtWidgets.QPushButton("Şifremi değiştir")
    self.yazi = QtWidgets.QLabel("")
    self.girise_don = QtWidgets.QPushButton("Girişe dön")

    v_box = QtWidgets.QVBoxLayout()
    v_box.addWidget(self.eski_sifre)
    v_box.addWidget(self.eski_sifre_yeri)
    v_box.addWidget(self.yeni_sifre)
    v_box.addWidget(self.yeni_sifre_yeri)
    v_box.addWidget(self.sifreyi_degistir)
    v_box.addWidget(self.yazi)
    v_box.addWidget(self.girise_don)
    v_box.addStretch()

    h_box = QtWidgets.QHBoxLayout()

    h_box.addLayout(v_box)
    h_box.addStretch()

    self.setLayout(h_box)
    self.setWindowTitle("Şifremi degistir")
    self.setGeometry(200, 200, 600, 600)

    self.girise_don.clicked.connect(self.giris1)
    self.sifreyi_degistir.clicked.connect(self.sifre_degistir1)

    def giris1(self):
    anaekran.show()
    self.close()

    def sifre_degistir1(self):

    eski_sifre = str(self.eski_sifre_yeri.text())
    yeni_sifre = str(self.yeni_sifre_yeri.text())
    eski_sifre_hashing = hashlib.md5(eski_sifre.encode('utf-8')).hexdigest()
    yeni_sifre_hashing = hashlib.md5(yeni_sifre.encode('utf-8')).hexdigest()

    baglanti.cursor.execute("select * from üyeler where anaşifre=?", (eski_sifre_hashing,))
    data = baglanti.cursor.fetchall()

    if (len(data) != 0):
    baglanti.cursor.execute("update üyeler set anaşifre=? where anaşifre=?",(yeni_sifre_hashing, eski_sifre_hashing))
    baglanti.cursor.execute("update şifreler set anaşifre=? where anaşifre=?",(yeni_sifre_hashing, eski_sifre_hashing))
    baglanti.baglantı.commit()
    self.yazi.setText("Şifreniz başarıyla değiştirildi")
    else:
    self.yazi.setText("İşlem başarısız")


    app = QtWidgets.QApplication(sys.argv)

    baglanti=Baglanti()
    anaekran = AnaEkran()
    ıslemler = Islemler()
    sifreuret = Sifreuret()
    sifresakla = Sifresakla()
    sifredegistir = Sifredegistir()


    sys.exit(app.exec_())







  • Olmamış. Sifreuret, Sifresakla, Sifredegistir diye class adları olmaz. Class bir grup fonksiyonu topladığın bir modül değildir. Modül başka.

    < Bu ileti mini sürüm kullanılarak atıldı >
  • Nasil yapabilirim peki?

    < Bu ileti mobil sürüm kullanılarak atıldı >
  • Onu bu işin okuluna gidip öğreneceksin. Burası okul değil, ben ders vermiyorum.

    < Bu ileti mini sürüm kullanılarak atıldı >
  • Gidiyorum zaten.Classlar modul mu diye bir sey demissiniz.Evet moduldur.Python da yazilan hersey moduldur ve objedir.OOP hakkin da fazl bilgim olmadigi icin yardim istemistim.Cok ters bir cevqp verdiginiz icin tesekkurler.

    < Bu ileti mobil sürüm kullanılarak atıldı >
  • Dostum kodlarına bakamıyorum ama oop demek nesne yönelimli programlama demektir yani bir nesne üretir ve onu türetirsin.

    Yani o yüzden izleyip okuyup öğrenmen lazım. Dur sna bir kıyak geciyim bilge adam oğretmenlerinden birinin OOP ders video serisi



    biride @seyfi84 gereksizini banlasın ya anca boş mesaj ve trollük yapıyor.



    < Bu mesaj bu kişi tarafından değiştirildi OzMeN OzzY -- 1 Mayıs 2018; 15:39:15 >




  • Teşekkürler.Farkli classlardan nesne uretip birbirleri icinde bu nesnelerden yararlandim.Bu videolara da bakayim.Yardim icin sagol.

    < Bu ileti mobil sürüm kullanılarak atıldı >
  • Yapay Zeka’dan İlgili Konular
    #JAVA GUI PROGRAMLAMA DERSLERİ#
    12 yıl önce açıldı
    FullStack Java Eğitimi
    8 ay önce açıldı
    Daha Fazla Göster
  • Nesneye yönelik tasarım büyük uygulamalarda* ve kütüphane yazılımlarında** (software library) mantıklıdır. Burada Qt kullanan bir vt sorgulama ekranından başka birşey görülmüyor o yüzden herşeyi class'lara dökmek cok isabetli değil, öğrenme açısından da. Bu arada forumun syntax highlighting özelliği olmaması ve tüm kodları satırbaşlarına getirmesinin de etkisiyle Python kodu aşırı dolu ve tekrar edici görünüyor.

    * Örneğin bir havalimanının tüm yolcu ve uçak işlemlerini takip eden bir yazılım projesi gibi.

    ** Örneğin Java Collections Framework veya Microsoft Foundation Classes / MFC gibi.

    Modül ve Class birbirine yakın fakat farklı şeyler. Class bir kod içindeki blok iken Modül ayrı bir kod bloğu. Birisi nesnel programlama iken diğer modüler programlama.https://duckduckgo.com/?q=class+vs+module+python&ia=qa DuckDuckGo'da bakarsan konuya ilişkin instant answer var.

    Ancak bu başka, seyfi84 'in sanki bir patron veya bir babaymış gibi cevap vermesi başka.



    < Bu mesaj bu kişi tarafından değiştirildi Tuğkan-0153 -- 8 Mayıs 2018; 20:18:58 >
    < Bu ileti mini sürüm kullanılarak atıldı >




  • Odev nesneye yonelik olmak zorunda oldugu icin classlarla yazdim.Tessekurler

    < Bu ileti mobil sürüm kullanılarak atıldı >
  • ogulcankarayel O kullanıcısına yanıt
    Ödev mi? Baştan belirtsene onu.

    < Bu ileti mini sürüm kullanılarak atıldı >
  • Nesneye yönelik dediğimiz şey çok daha farklı bir şey aslında. Ama okul açısından olmuş mu, olmuş. Hoca puan verir mi, tipik bir anadolu okuluysa çok büyük ihtimalle verir.
  • Aynen ödev için.Nesneye yönelik şekil de olacak dedi.Sağolun yardımlar için
  • 
Sayfa: 1
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.