C# ile Emlak Otomasyonu – Real Estate Automation

Bu yazımda sadece emlak otomasyonunda istenilenler vardır. Bazı yanlışlarım veya kod tekrarlarım olabilir.

Kurumsal bir emlak ofisi için istenen otomasyonun çekirdeğini oluşturacak bir yazılım geliştirmeniz istenmektedir. Bu nedenle nesneye yönelik programlama ilkelerine bağlı kalarak gerekli sınıfları bir sınıf kütüphanesi içinde kodlamanız istenmektedir. Oluşturacağınız Solution içinde iki ayrı proje açmalısınız. Birincisi ClassLibrary projesi, ikincisi otomasyonun arayüzünü oluşturacak Windows Forms Application projesi olmalıdır. Tasarlayacağınız sınıfları; windows uygulamasına kütüphane projesini import ederek veya derleme sonucu elde edeceğiniz dll dosyasını import ederek kullanmalısınız.

CLASS LIBRARY PROJESİ

Ev Sınıfı Alanlar ( Fields ) OdaSayısı, KatNumarası, Semti, Alanı, Yapım Tarihi, Türü, aktif, emlak numarası, vb. Kiralık ev için Depozitosu, Kirası Satılık ev için Fiyatı Türü bilgisini enum olarak tanımlayın: Daire, Bahçeli, Dubleks, Müstakil, vb. Emlak numarası alanı her ev nesnesi için farklı olmalıdır. aktif alanı evin işlem sürecini göstermek için kullanılacaktır. Yani ev için halen müşteri aranıp aranmadığını gösterir.

Özellikler ( Properties ) Tüm alanlar için uygun olarak property tanımlamalarını yazın. Set ve Get blokları içinde gerekli kontrolleri yazın.

Örneğin: Oda Sayısı alanı için negatif değer girilmemelidir. Böyle bir kullanım durumunda oda sayısı sıfır olarak atanmalı ve işlemin yapıldığı zaman ve girilmek istenen negatif değer LOG kaydı olarak bir metin dosyasına kaydedilsin. Pozitif geçerli bir değer ataması için de aynı loglama işlemi yapılsın.

Yapım Tarihi bilgisini kullanarak evin yaşını hesaplayan bir property tanımlayın.

Kurucu Metot ( Constructor ) Oda Sayısı, Kat Numarası, Semti, Alanı alanlarına ilk değer atamalarını yaparak Ev nesnesini oluşturan kurucu metot tanımlaması ekleyin. Ayrıca Kurucu metodu aşırı yükleyin ve farklı versiyonlarını da yazmalısınız.

Metotlar EvBilgileri


Ev sınıfından türetilen bir nesneye ait olan bilgileri görüntüleyecek şekilde biçimlendirip geri döndürmelidir. Biçimlendirme işlemi için string.Format() metodunu kullanın.

FiyatHesapla room_cost.txt isimli dosyadan okunacak katsayı ile oda sayısını çarparak evin olası kira fiyatını hesaplayıp geri döndüren bir metot yazın. Eğer room_cost dosyası yoksa kullanılacak katsayı sabit 200 olarak kullanılsın.

Kiralık Ev Sınıfı Kiralık Ev ve Ev sınıfları arasında yani ilişkisi vardır. Dolayısıyla Ev nesnesinin sahip olduğu tüm özelliklere Kiralık Ev nesnesi de sahip olmalıdır.

EvBilgileri Metodunu override edin ve kiralık ev bilgilerini geri döndürecek şekilde güncelleyin. Uygun kurucu metot tanımlamalarını yapın.

Satılık Ev Sınıfı Satılık Ev ve Ev sınıfları arasında yani ilişkisi vardır. Dolayısıyla Ev nesnesinin sahip olduğu tüm özelliklere Satılık Ev nesnesi de sahip olmalıdır.

EvBilgileri Metodunu override edin ve satılık ev bilgilerini geri döndürecek şekilde güncelleyin. Uygun kurucu metot tanımlamalarını yapın.

WINDOWS FORMS APPLICATION PROJESİ

Emlakçının • Yeni ev ekleme, • Silme, • Düzenleme ve • Sorgulama-listeleme (en önemlisi) işlemlerinin yapılacağı ara-yüzleri içermelidir. Form tasarımları sizin yaratıcılığınıza bırakılmış olup özgün tasarımlar olmak zorundadır.

Program çalıştırıldığında ilk olarak Login Penceresi gelecek ve Kullanıcı Adı – Şifre eşleşmelerini “users.txt” dosyasından kontrol edilecektir. Yetkili bilinen bir kullanıcı ise Login formu kapatılarak; Ana Form açılacaktır.

Kayıt Ekranı: Yeni eklenecek evle ilgili bilgiler bu form üzerinden gerekli kontroller yapılarak alınmalıdır. Burada kullanılacak kontroller ve tasarım olabildiğince kullanıcının işini kolaylaştırıcı şekilde ve hatayı en aza indirgeyecek şekilde seçilmelidir.
Örneğin semt bilgisi seçilecek ile göre ilgili bir metin dosyasından okunarak doldurulacak bir combobox-tan seçilmelidir. Böylece kullanıcının manuel girişinde yapılacak hatalar önlenmiş olur. Kayıtlar 1000 sabit boyutlu ve türü Ev olan bir dizi içinde tutulmalıdır. Aynı zamanda sizin belirleyeceğiniz bir formatta kayıtlar “satilik.txt” ve “kiralik.txt” olmak üzere iki dosyada saklanmalı ve program kapatılıp yeniden açıldıktan sonra kayıtlara ulaşılabilmelidir. Format sizin tarafınızdan belirleneceği için başka projelerle benzerlik gösteremez.

Sorgulama Ekranı: Emlakçının işini kolaylaştıran en önemli arayüzdür. Müşterinin isteklerine göre sorgulama yaparak; kayıtlar arasında uygun evleri arayıp bulan formdur. Sonuçlar bu form üzerinde listelenecek ve detaylarına ulaşmak için Kayıt Ekranına benzer bir form üzerinde kolay bir şekilde görüntülenebilmesi sağlanacaktır. Sorgulama esnasında sadece aktif durumda olan evler varsayılan olarak taranacaktır. Ancak opsiyonel olarak daha önce emlakçının elinde olan ama işlemi tamamlanmış evler de taranabilmelidir.

Sorgulama Ekranından bulunan bir evin detaylarının görüntüleneceği Listeleme formu üzerinden düzenleme, silme ve arşivleme işlemeleri yapılabilmedir. Arşivleme işlemi ev nesnesini tamamen silmek yerine değişkenin değerini true-dan false-a çekmek demektir. Tersi de mümkün olmalıdır.

Listeleme Ekranından evin görüntülerine de ulaşılabilir olmalıdır. İlgili eve ait görüntülerin bulunduğu Windows klasörü, program içinden bir buton ile açılabilmelidir.

Github: https://github.com/eraykisabacak/Emlak-Otomasyonu

English

You are required to develop a software that will form the core of automation for a corporate real estate office. You are therefore required to code the required classes in a class library, adhering to object-oriented programming principles. You must open two separate projects in the Solution you create. The first should be the ClassLibrary project and the second should be the Windows Forms Application project, which will interface with automation. The classes you will design; You should use it by importing the library project into windows application or by importing the dll file that you will get as a result of compilation.
 
CLASS LIBRARY PROJECT
 
House Class Areas Number of rooms, floor number, district, area, construction date, type, active, real estate number, etc. Deposit for rent, Rent For sale house Define Price Type as enum: Apartment, Garden, Duplex, Detached, etc. The property number field must be different for each home object. The active area will be used to show the process of processing the house. That means whether the customer is still looking for the house.
 
Properties Type the property descriptions as appropriate for all fields. Type the necessary controls in the Set and Get blocks.
 
For example: Negative value should not be entered for the Number of Rooms field. In such a case, the number of rooms must be set to zero and the negative value to be entered at the time of the operation is saved as a LOG file in a text file. The same logging process should be performed for a positive valid value assignment.
 
Define a property that calculates the age of the house using the Construction Date information.
 
Constructor Method Add the constructor method definition that creates the Home object by assigning the first value to the Number of Rooms, Floor Number, Neighborhood, Area fields. You should also overload the Installer method and write different versions.
 
 Methods HomeInformation

It must format and return information that belongs to an object derived from the home class. Use the string.Format () method for formatting.
 
PriceCalculate Write a method that calculates and returns the possible rental price of the house by multiplying the coefficient to be read from the file named room_cost.txt. If the room_cost file does not exist, the coefficient to be used is set to constant 200.
 
The Rent House Class has a relationship between the Rent House and the House classes, ie . Therefore, the Rent House object must have all the properties of the House object.
 
Override the HomeInformation Method and update it to return rental information. Make appropriate constituent method definitions.
 
House for Sale Class There is a relationship between the House for Sale and the House classes for <, ie . Therefore, the Sale object must have all the properties of the House object.
 
Override the HomeInformation Method and update it to return home information for sale. Make appropriate constituent method definitions.
 
 
WINDOWS FORMS APPLICATION PROJECT
 
The realtor should include interfaces for • Adding new houses, • Deleting, • Editing, and • Inquiry-listing (most importantly). Form designs are left to your creativity and must be original designs.
 
When the program is started, the Login Window will be displayed first and the User – Password mappings will be checked from the “users.txt” file. If the authorized user is a known user, close the Login form; The Main Form will open.
 
Registration Screen: Information about the house to be added should be obtained by making necessary checks on this form. The controls and design to be used here should be selected to facilitate the user’s work as much as possible and to minimize the error.

For example, a combobox must be selected to be filled in by reading from a relevant text file, depending on the region to be selected. This prevents errors in the user’s manual entry. Records should be kept within a range of 1000 fixed sizes and type Home. At the same time, the records in a format you specify should be stored in two files “satilik.txt” and “kiralik.txt ve and the records should be accessible after the program is closed and reopened. Since the format is determined by you, it cannot be similar to other projects.
 
Inquiry Screen: It is the most important interface that facilitates the real estate agent’s work. By making inquiry according to customer’s requests; is a form that searches for suitable houses between records. The results will be listed on this form and will be easily displayed on a form similar to the Registration Screen for details. Only active homes will be scanned by default during the query. However, the houses that were previously owned by the real estate agent but completed, should be able to be searched.
 

Editing, deleting and archiving operations can be done on the Listing form where the details of a house located on the Inquiry Screen will be displayed. Archiving means changing the value of the variable from true to false instead of completely deleting the home object. The opposite should also be possible.
 
The images of the house should also be accessible from the Listing Screen. The Windows folder containing the images of the respective house should be opened with a button in the program.

Github: https://github.com/eraykisabacak/Emlak-Otomasyonu

C# ile Adam Asmaca Oyunu – Hangman Game with C#

Adam Asmaca Oyunu

✓ Bilinemeyen her harf için adamı asılmaya bir adım daha yaklaştıran kelime oyununu Windows uygulaması şeklinde kodlamanız istenmektedir.

✓ Form tasarımları gerekenlere göre özgün bir şekilde oluşturulmalıdır.

✓ Kelime veritabanı olarak kullanılmak üzere bir metin dosyası oluşturun. Bu metin dosyasına yeni kelime ekleme ve dosyadan kelime silme işlemleri yapılabilmelidir.

✓ Kullanıcını oyuna başladığında opsiyonel olarak belirlediği harf sayısı kadar veya rasgele boyutlarda bir kelime, veritabanındaki uygun kelimelerden seçilmedir.

✓ Sorulan kelimeye uzunluğunun 2 fazlası kadar bir hak tanıyarak kullanıcının kelimeyi bulması istenmelidir.

✓ Sorulan kelimenin her harfi için farklı metin kutuları kullanılmalıdır.

✓ Yanlış tahmin edilen harfler form üzerinde görülmelidir.

✓ Tahminlerde harf tekrarına izin verilmemeli ve kullanıcının hak sayısından düşürülmemelidir.

✓ Skor listesi yapılmalıdır ve bu bilgiler bir dosyada tutularak oyun yediden başladığında görüntülenebilmelidir

Github : https://github.com/eraykisabacak/Adam-Asmaca-Oyun-Hangman-Game

Hangman Game

✓ A word game that brings man one step closer to hanging for each unknown letter You will be prompted to code it as a Windows application.

✓ Form designs should be created in an original way according to the requirements.

✓ Create a text file for use as a word database. This text Adding and deleting words from the file should be possible.

✓ The number of letters that the user can specify when starting the game or A word of random size should be selected from the appropriate words in the database.

✓ By giving the user the right to a word more than 2 should be asked.

✓ Different text boxes should be used for each letter of the asked word.

✓ Incorrectly guessed letters should appear on the form.

✓ Repetition of letters should not be allowed in predictions and should not be reduced.

✓ Score list should be made and this information is kept in a file when the game starts from seven must be able to be displayed

Github : https://github.com/eraykisabacak/Adam-Asmaca-Oyun-Hangman-Game