May162009

Havayolu Åžirketi Bilet Rezervasyon Sistemi

Yazar: Gökhan ÖZİÇ Yayınlanma Saati: 06:56
Kategori(ler): ASP.NET | C# | MSSQL | Proje | Web Service | XML

     Web Development dersinin dönem projesini sonunda tamamladım. Ufak tefek eksiklikleri olsa da projem şu anda sorunsuz çalışıyor. Aslında çoğunuzun aklına neden daha yeni ve farklı birşey yapmadın diye bir soru gelebilir. Bunun nedeni, ASP.NET’e ve C#’a biraz daha hakim olabilmek ve öğrenebilmekti. Bu yüzden yapılmış ve birçok örneği bulunan bir sistem seçtim. Böylelikle öğrenme sürecimde bana kaynak olabilecek birçok imkanım oluştu.      Projem, yazının başlığından da anlaşılacağı üzere bir bilet ayırtma sistemi. İnternet üzerinden bir havayolları şirketinin sistemine girip, üye olup, istediğiniz uçuşa istediğiniz tarihe bay ya da bayan, istediğiniz koltuğa bilet ayırtabiliyorsunuz. Kullandığım teknolojiler ASP.NET, C#, XML, MSSQL ve Web Service’ler.      Sistemde karşılaştığım en büyük sorun aslında, kullanıcının keyfi bilet ayırtmasını engellemekti. İnsanların çocukken rastgele numara çevirip birilerini işletmeye çalıştığı gibi, bazı kullanıcılar da keyfi bilet ayırtmaları yapabilir. Bunun önüne geçmek için web service kullanmaya karar verdim. Oluşturduğum web service sayesinde, sisteme kayıt esnasında kullanıcıdan TC Kimlik No’su isteniyor. Sorgulama düğmesi ile bu TC Kimlik No sayesinde, web service’den kişinin ad ve soyadı çekiliyor ve kayıt olurken ad ve soyadın yazılması gereken textbox’lar otomatik olarak dolduruluyor. Zaten kayıt sayfasına girildiğinde ad ve soyad textbox’ları disabled halde karşımıza geliyor. Böylelikle bu alanların doldurulması sadece yazılan TC Kimlik No’nun sorgulanması ile yapılabiliyor. Bu da kullanıcının caydırılması yönünde güzel bir yapı haline geliyor. Sistemi denettiğim çoğu arkadaşımdan da caydırıcı olduğuna dair güzel eleştiriler aldım. Tabii bu fake bir web service. TC Nüfus Müdürlüğü’nün web service’lerini kullanmadım ders projesi için. Bu web service’i kullanmak için hem belirli bir miktar para ödemeniz; hem de dilekçe ile başvurmanız gerekiyor ki bu dilekçe kabul edilmeyebilirde.      Sisteme sadece login olmuş kullanıcılar bilet ayırtma sayfasına ulaşabiliyor. Nereden ve Nereye kısımlarını doldurduktan sonra gitmek istediği tarihi giren kullanıcı, boş koltukları görebiliyor. İstediği boş koltuğu seçip bilet ayırt diyen kullanıcının bileti ayırtılmış oluyor. Kişi, ayırttığı biletleri profil sayfasından görebiliyor. Hangi tarihte, hangi saatte, nereden ve nereye şeklinde bir table halinde tüm ayırttığı biletler profil sayfasında oluşuyor. Ayrıca sistem, tarihi geçmiş biletieri de otomatik olarak temizliyor. Böylelikle profil sayfasına giren kullanıcı, tarihi geçmiş biletlerin silinmesiyle profil sayfasını her zaman düzenli görme imkanına sahip oluyor.      Bunların haricinde, üyeliğin yapıldığı tüm sistemlerde olan kullanıcı bilgilerini düzenleme, şifre değiştirme, hesap silme gibi tüm kullanıcı işlemleri de sistemde mevcut.      Sistemle ilgili hertürlü sorunuzu bana yazabilirsiniz.      Not: Projemde kullandığım ve sitemde paylaştığım yukarıdaki resimlerde görülen tüm şirket bilgileri hayal ürünüdür.

Etiket(ler): , , , , , , , ,



[KickIt] [Dzone] [Digg] [Reddit] [del.icio.us] [Facebook] [Technorati] [Google] [StumbleUpon]

E-mail | Permalink | Trackback | Yazı RSSRSS comment feed 9 Yorumlar

May252008

Yazan Robot OTTO

Yazar: Gökhan ÖZİÇ Yayınlanma Saati: 12:34
Kategori(ler): Proje | Robot | Teknoloji

       Birinci dönem okulun bitmesine az bir zaman kala Computer Engineering Orientation dersi için hocamız bize kendi projesi olan OTTO robotuyla proje geliştirmemizi istedi. 10 tane robot vardı ve tüm öğrenciler 5'erli gruplar halinde birer robot alıp proje geliştirmeye başladırlar. Bizde takım olarak ne yapabileceğimiz hakkında bayağı bir kafa yorduk. En sonunda "Okuma Yazma Bilen OTTO" fikri ortaya çıktı. Robota bir kalem bağlayıp önce "OTTO" yazdırıp daha sonra da çizgi algılayıcı sensörler sayesinde bu yazıyı ona okutacaktık. Ancak robotun keskin noktaları sensörlerle takip edemediğini hesaba katamadık. Bunu farkedince acaba farklı bir yazı tipiyle yazsak takip edermi dedik ama robotun imkanları kısıtlıydı ve sadece 265 byte algoritma alabiliyordu. Robotsan tarafından imal edilen bu robotlarla gelen algoritma geliştirme ve robota upload etmeye yarıyan yazılımda da büyük sorunlar vardı. Örneğin loop'u yazılım kabul etmiyordu. E loop'suz da "OTTO" yazdırmaya kalktığınızda haliyle algoritma gereğinden büyük oluyordu ve robota upload edemiyorduk. Bizde projeyi "Yazan Robot OTTO" olarak değiştirdik. Ama proje esnasında son anlara doğru pillerimiz çok azalmıştı ve tekerleklerin yalpalamasından ötürü de harfler kayıyordu. O gün projeyi teslim etmemiz gerekiyordu ve bizde çekebildiğimiz en iyi OTTO videosunu çekip hocamıza götürdük ve iyi bir not aldık. İzleyeceğiniz videoda yazının son anda kayması işte bu pillerin azalması ve tekerleklerin yamuk olmasından kaynaklanıyor. Ama güzel çalışma oldu  işte video… VIDEO

Etiket(ler): ,



[KickIt] [Dzone] [Digg] [Reddit] [del.icio.us] [Facebook] [Technorati] [Google] [StumbleUpon]

E-mail | Permalink | Trackback | Yazı RSSRSS comment feed 0 Yorumlar

Nis132008

İlk Ciddi Projem - C Dilinde BLACKJACK

Yazar: Gökhan ÖZİÇ Yayınlanma Saati: 13:43
Kategori(ler): C / C++ | Proje

       Okula başlayalı 1 yıla yakın oldu ama hala elimde elle tutulur, ciddi bir proje yoktu. Okulda bizlere verilen lab ödevlerini yapıyordum ama bunlar en fazla 20 satırdan oluşan kod dizeleriydi. Daha fazla satırdan oluşan kod dizeleriyle yapılımış bir proje ile uğraşmak istiyordum. Çünkü satır sayısı arttıkça kodu karıştırma ve  satırların birbiriyle olan kurgusunu tam olarak düşünememe olasılığının fazla olduğunu biliyordum ve bunu tecrübe edinmek istiyordum. Bir kart oyunu yapmaya karar verdim. BLACKJACK. Ve şimdi de sizlerle oyunumun bitmiş halini paylaşıyorum.  Şu anki mutluluğumu anlatamam tabii. İlk defa bir proje ile uğraştım ve tamamı bana ait. Oyunun yapımı esnasında kullanılan kodların tamamı bana aittir ve hiçbiryerden "copy-paste" yapılmamıştır. Kısaca yaptığım oyunu sizlere tanıtyım. Blackjack kısaca şöyle bir oyun: Blackjack nedir?   Blackjack oyununun temel amacı 21'i geçmeden 21'e daha yakın sayıyı bulmak için uğraşmak.   Oyun kağıt dağıtıcısının her oyuncuya iki kart dağıtmasıyla başlar.   Kendisine aldığı kağıtları ise biri açık biri kapalı olmak üzere masada bırakır.   Onlular, Vale, Kız veya Papaz'lar 10, As'lar ise tercihe göre 11 veya 1 olarak sayılır.   Diğer kartlar üzerinde yazılan değerden işlem görür. Oyuncular her defasında 21'e daha fazla   yakınlaşmak için ek kart talep edebilir. Ta ki "Bust" adı verilen 21'i aşma durumuna kadar.   Bu durumda oyuncu kaybetmiş olur. Oyuncunun kartlarının değeri Kasa'nın kartlarının değerinden,   21'e daha yakınsa oyuncu kazanır. Doğal olarak tam tersi durumda da kaybeder.   Toplamların aynı olmasında stand-off olur ve oyun "push" ile sonuçlanır yani kimse kazanamaz. Kasanın   eli toplamı 16 olduğu andan itibaren kasa yeni kart çekemez.        Açıklamada da belirtildiği üzere blackjack'te amaç 21'e en yakın eli elde etmek. Oyunumu ilk çalıştırdığınızda bir karşılama ekranı gelecek. Burayı herhangi bir tuşa basarak geçiyoruz. Daha sonra ise start-quit menüsüyle karşılaşacaksınız. Burada başlamak için "s", çıkmak için ise "q" tuşlayın. "s" tuşladığınız an  eller dağıtılacak ve görüntü karşınıza gelecektir. Kasanın  limiti  1000YTL, sizinki ise 100YTL'dir. Oyunda her el dağıtıldığında bahse masa potu olarak sizden ve kasadan birer YTL yatırılacaktır. Kasanın bir kartını görebiliyorken diğerini göremeyeceksiniz. Şu an karşınızdaki ekranda sizin toplam paranız "player" olarak, kasanın toplam parası "bank" olarak ve toplam bahiste "bet" olarak bulunmakta. Aşağıdaki menü ise oyunu oynamanız için gerekli komutları içeriyor. Yeni bir kart çekmek istiyorsanız 1'i, bahsinizi artırmak istiyorsanız 2'yi (bunu yaptığınız anda size bahsi ne kadar artırmak istediğiniz sorulacaktır), sıranızı savmak için 3'ü, pas demek için 4'ü ve oyundan çıkmak için 5'i tuşlayın ve enter'a basın. Pas, oyundaki diğer komutlardan biraz daha farklı çalışıyor. Eğer pas derseniz, o anda bahse yatırdığınız paranın yarısını geri alabiliyorsunuz ve kartlar tekrar dağıtılıyor. 3'e bastığınızda ise sıra kasaya geçiyor. Kasa, sıra ona geçtiği andan itibaren artık kasanın kartlarını da görebiliyorsunuz. Kasanın eli toplamı 16 ve 16'dan büyük ise kasa daha fazla kart çekemiyor ve o el sonuçlanıyor. Eğer siz ya da kasa kart çekmeler esnasında 21'i geçerseniz, 21'i geçen kişi o eli kaybetmiş oluyor. Beraberlik durumunda ise o elde masada duran bahis yine masada kalıyor. Diğer el, önceki elden kalan masa bahsinin üstüne bahisler yatırılıyor ve bir elde daha fazla para kazanma şansı ortaya çıkıyor.        Oyunumun oynanışı kısaca bu şekilde. Umarım sizde oynarken, benim oyunu geliştirme sürecinde aldığım zevkin kat kat fazlasını alırsınız. Şimdi sizleri oyunumla baş başa bırakıyorum. İndirmek için tıklayın: BLACKJACK

Etiket(ler): , ,



[KickIt] [Dzone] [Digg] [Reddit] [del.icio.us] [Facebook] [Technorati] [Google] [StumbleUpon]

E-mail | Permalink | Trackback | Yazı RSSRSS comment feed 1 Yorumlar