Arama


lionhead - avatarı
lionhead
Kayıtlı Üye
17 Haziran 2007       Mesaj #1649
lionhead - avatarı
Kayıtlı Üye
Alıntı
Shadow_BoY adlı kullanıcıdan alıntı

Daha önce burda o kadar açıklama yaptıktan sonra benim tuhafıma giden bişey geldi başıma evet yardım istiyorum acil cevap verebilirseniz daha da memnun olucam.

Sorun şu ;

Ben Pc de yönetici hesabına sahibim ve bir başka yönetici hesabını silmek istiyorum!
O kullanıcıya ait şifre korumasını sildim , oturum modunu Sınırlı hesap olarak değiştirdim sonrasında hesabı silmek istedim ve sil komutunu verdiğim Pc kendini resetlemekte ve yeniden acılmakta ,
Bu işlemi güvenli mod ile oturum açıp denedim silmek istediğim kullanıcıya ait bir bilği görünmemekte , tekrar kendi hesabıma dönmek için giriş yapcakken güvenli mod'da silinmiş görülen hesap hala burda görünür vede giriş yapılır aktif durumda

bu hesaptan nasıl kurtulabilirim... ?



KULLANICI HESABI YÖNETİCİSİ


Amaç

Bu projenin amacı, tek boyutlu dizilerin kullanımının yanı sıra sınıf tasarımı ve sınıflar arası ilişkilerin kurulması ile buna bağlı olarak sınıfların gerçeklemesi konularındaki bilgi ve becerinin oluşturulmasıdır. Proje grupları 2’şer kişilik olacaktır.

Kapsam

Bilgisayar kullanıcı hesaplarının yönetimi, bilgisayar sistem yöneticisinin önemli görevlerinden biridir. Bu görevin içerisinde temel olarak; kullanıcı hesap açma / silme, kota arttırılması ve kullanıcı bilgilerinin raporlanması gibi işlemler yer almaktadır. Bu projede basit bir kullanıcısı hesap yöneticisi uygulaması gerçekleştirilecektir.


Tanımlar

Projede oluşturulacak sistem hakkında yararlı olabilecek bazı terimlerin tanımları aşağıda yer almaktadır.
· Kullanıcı Adı (User Name): Kullanıcı hesabına sahip olan kişinin ad ve soyad bilgisini belirtmektedir. Oluşturulacak sistemde kolaylık olması amacı ile kullanıcı adları tekil (unique) olacaktır (iki kullanıcı hesabı aynı ad ve soyada sahip olamaz).
· Giriş Adı (Login Name): Kullanıcı hesabını tanımlayan alfanümerik karakterlerden oluşan özel bir ismi belirtmektedir. (Ör: user1). Giriş adları da tekil (unique) olacaktır (iki kullanıcı hesabı aynı giriş adına sahip olamaz).
· Kota (Quota): Bir kullanıcı hesabına ayrılmış olan disk alanının büyüklüğüdür.
· Disk Alanı (Disk Space): Kullanıcı hesapları için ayrılmış toplam disk alanının büyüklüğüdür.
· Disk Kullanımı (Disk Usage): Kullanıcı hesapları tarafından aktif olarak kullanılan disk alanı büyüklüğüdür.



Yapılacaklar

Gerçekleştireceğiniz proje, sistem yöneticisinin aşağıdaki görevleri yerine getirmesini sağlayacaktır:
· Bir kullanıcı için kullanıcı hesabı açılması
· Bir kullanıcıya ait kullanıcı hesabının silinmesi
· Bir kullanıcı hesabının kotasının arttırılması
· Bir kullanıcı hesabının bilgilerinin görüntülenmesi
· Sistemdeki bütün kullanıcı hesaplarının bilgilerinin görüntülenmesi

Oluşturulacak sistemde kullanıcı hesaplarının olabildiği yalnızca bir tane bilgisayarın var olduğu kabul edilecektir. Program çalışmaya başladığında sistem yöneticisinden bu bilgisayarın adını ve maksimum disk alanının boyutunu isteyecektir. Bundan sonra program “çıkış” isteği gelene kadar yukarıdaki maddelerde listelenmiş adımları sistem yöneticisinin verdiği komutlara göre gerçekleştirecektir.

Oluşturulacak Sınıflar (Class)

Kullanıcı Hesap Yönetim sistemi için oluşturulması gereken üç sınıf aşağıda listelenmiştir.
  • Account: Kullanıcı hesabını temsil etmektedir. Bu sınıfın içermesi gereken zorunlu alanlar (attribute) şunlardır:
    • String: userName (Kullanıcı Adı)
    • String: loginName (Giriş Adı)
    • String: password (Şifre)
    • double: quota.
  • Computer: Bilgisayarı temsil eden sınıftır. Bu sınıfın içermesi gereken zorunlu alanlar (attribute) şunlardır:
    • String: name (Bilgisayar adını temsil etmektedir)
    • double: maxDiskCapacity (Bilgisayarın maksimum disk kapasitesini temsil etmektedir)
    • double: diskUsage (Disk kullanımını temsil etmektedir)
    • Account[] accounts: (“Account” objelerinin referanslarını tutan tek boyutlu bir dizidir)
  • AccountsManager: Kullanıcı Hesap Yönetimi sisteminin yönetici sınıfınıdır ve kullanıcı hesapları ile tüm çalışmanın bu sınıf tarafından başlatılır.
Yukarıda belirtilen haricinde gerekli olduğu düşünülen başka alanlar (attribute) da yaratılabilir ve kullanılabilir.

Gerçekleştirilecek Metotlar

Aşağıdaki tanımlar her bir sınıfın içermesi gereken zorunlu metotları tariflemektedir. Gerekli olan tüm metotlar aşağıda listelenmemiştir. Sistemi tasarlarken gerekli gördüğünüz yerlerde metotları tanımlamak sizin sorumluluğunuzdadır.

· Account
    • constructor: Bu metodun aldığı parametreler: bir kullanıcı adı, bir giriş adı, bir şifre ve bir kota değeridir. Bu metodun görevi aldığı parametre değerleri ile sınıfın alanlarına ilk değer ataması yapmaktır.
    • toString: Bu metot aşağıdaki formatta bir String oluşturur:
"UserName: <userName>, LoginName: <loginName>, Password: <password>, Quota: <quota>"
Bu formatta <userName>, <loginName>, <password> ve <quota> ilgili hesaba ait zorunlu alanların değerlerini temsil etmektedir.
    • get/set metotları: Bu sınıf için OOD açısında gerekli olduğunu düşündüğünüz her bir get/set metodunu yazmanız gerekmektedir.
  • AccountsManager
    • runManager: Gerçekleştirilmesi gereken en önemli metotlardan biridir. Bu metot, kullanıcı hesap yöneticisini başlatan metottur. Bu metot sayesinde bilgisayar hesap yönetimi seçimleri ve kullanıcı işlem istekleri görüntülenecektir. Bu metot sürücü sınıf (Driver.java) tarafından çağrılır. Bu metot içerisinde kullanıcı hesap görevlerini işlemek amacıyla kullanılacak olan bir Computer nesnesi yaratılacaktır.
    • diğer metotlar: İhtiyaçlarınız doğrultusunda başka metotlar eklemekte serbestsiniz.
  • Computer
    • constructor: Bir bilgisayar için verilen bir ad ve maksimum disk kapasitesi ile ilk değer atayacaktır.
    • createAccount: Bu metot bir kullanıcı hesabı açılacaktır ve bu hesap, kullanıcı hesap (account) dizisinde yerini alacaktır. Hesaplar bir dizide yer almak zorundadır. Bu sayede hesaplar giriş adına göre artan sırada sıralanabilir. Bu, gerçekleştirilmesi gereken önemli maddelerden biridir. Eğer istenen kota ihtiyacına karşılık gelen yeterli disk alanı varsa ve istenen giriş adı kullanımda değilse istekte bulunulan hesap açılır, aksi durumda hesap oluşturulmayacaktır. Bilgisayarın disk kullanımı (diskUsage) buna göre ayarlanmalıdır.
    • removeAccount: Bu metot bir kullanıcı hesabını silecektir. Bu metot bilgisayar hesabını silmek için giriş adına ihtiyaç duyar. Eğer verilen giriş adına bağlı olan bir hesap varsa işlem başarılı olur. Bilgisayarın disk kullanımı (diskUsage) buna göre ayarlanmalıdır.
    • increaseQuota: Bu metot var olan bir kullanıcı hesabının kotasını verilen değerle arttıracaktır. Örneğin, bir hesap 5 MB kotaya sahipse metoda parametre olarak 1 MB aktarılarak bu kota 6 MB’ ye çıkarabilir. Bu metot parametre olarak hesabın giriş adını ve kota artım değerini alır
    • toString: Bu metot aşağıdaki formatta bir String oluşturur:
"Computer Name: "<computerName>
"DiskUsage: " <diskUsage>
"MaxDiskCapacity: "<maxDiskCapacity>
"Accounts:" <listOfAccounts>


Belirtilen bu sınıfları Account, Computer ve AccountsManager sırası ile gerçekleştirilmesi sizin yararınıza olacaktır.

Hata Durumları

Her bir durumda oluşabilmesi olası birçok hata vardır. Programınızın bu hataları yakalaması ve bazı durumlarda bu hataları raporlaması gerekmektedir. Hata mesajı verildikten sonra o anki görev sonlanır ve görev menüsü bir sonraki kullanıcının isteğine cevap verecek konuma geçer. Hata durumlarının JoptionPane.showMessageDialog kullanılarak ekrana yansıtılması gerekmektedir. Olası hata durumlarından mutlaka değerlendirilmesi gerekenler aşağıda verilmiştir:
createAccount:
· Aynı giriş adı ile yeni bir kullanıcı hesabı oluşturulması durumunda sistemin, “ERROR: Login already in use.” hata mesajı vermesi gerekmektedir.
· Kullanılabilir disk alanını aşan bir kota miktarı ile kullanıcı hesabı oluşturulmaya çalışılması durumunda sistemin “ERROR: Not enough disk space.” hata mesajını vermesi gerekmektedir.
· Eğer hem giriş adı hem de kota miktarında hata varsa, sadece giriş adına ait hata mesajının verilmesi gerekmektedir.
removeAccount:
· Olmayan bir giriş adına sahip kullanıcının sistemden silinmeye çalışılması durumunda, sistemin “ERROR: Account does not exist.” mesajını vermesi gerekmektedir.
increaseQuota:
· İstenen kota arttıtımını karşılayacak kadar boş disk alanı yoksa sistemin, “ERROR: Not enough disk space.” mesajını vermesi gerekmektedir.

Bu durumların haricindeki hatalar için sizin uygun gördüğünüz hata mesajlarını oluşturmanız ve ekranda görüntülemeniz gerekmektedir.

Unutulmaması Gerekenler

· Değişken isimleriniz anlamlı olmalıdır ve source code’un formatı (içerlek yazımlar) düzgün olmalıdır.
· ArrayList sınıfı kullanılmayacaktır.
· Dizilerinizin boyutları ihtiyacınızdan fazla olmayacaktır.
· Gereksiz code tekrarı yapılmayacaktır.
· Account, Computer ve AccountManager sınıfları mutlaka tasarlanacak, gerçekleştirilecek ve kullanılacaktır.
· Kullanıcı hesapları giriş adına göre alfabetik olarak küçükten büyüğe sıralı olacaktır.
· Account nesneleri Computer sınıfı içinde dizi şeklinde tutulacaktır.
· İhtiyaç duyulması durumunda ek sınıflar kullanılabilecektir, fakat bu ek sınıfların gerekliliği sebepleri ile beraber açıklanacaktır.


Örnek Kullanım

Aşağıda Kullanıcı Hesap Yönetimi sistemin için örnek bir kullanım verilmiştir. Bunun haricinde senaryonların da olabileceği ve hata durumları ile karşılaşılabileceği unutulmamalıdır.
Sistemin başlatılması ve bilgisayar isminin verilmesi

Onay işleminden sonra disk kapasitesinin verilmesi

1 numaralı seçeneğin seçilmesi






Kullanıcı hesap bilgilerinin verilmesi

İşlemin başarılı olduğunu gösteren mesaj

5 numaralı seçeneğin seçilmesi

Ekranda görüntülenen mesaj




2 numaralı seçeneğin seçilmesi

Giriş ismi olarak ‘tom’ değerinin verilmesi

Kullanıcının silindiğini gösteren mesaj








4 numaralı seçeneğin seçilmesi

Kullanıcı ismi olarak ‘rosita’ verilmesi

Kullanıcıya ait bilgilerin ekranda görüntülenmesi

3 numaralı seçeneğin seçilmesi

Kullanıcı için ek kota bilgisinin verilmesi

Kotanın başarı ile arttırıldığı bilgisinin gösterilmesi

0 numaralı seçeneğin seçilmesi

Bu seçenek ile program sona erecektir.
Not:bir arkadaşımın önerisi


picture 6
<H3>Kullanıcı silmek


Silinen kullanıcıların tüm içerikleri misafir kullanıcı tarafından girilmiş hale getirilir, silinmez.
Yanlış hatırlamıyorsam yönetici hesabını silmek teknik açıdan mümkün ama önerilmeyen bir yoldur.

</H3>
yasamak kucuk bir umut we insana duyulan sewgiden ibarettir..