C# Windows Forms ile Sinema Bileti Rezervasyon ve Ücret Hesaplama Uygulaması
C# Windows Forms uygulamalarında TextBox, Label, Button, RadioButton, CheckBox ve GroupBox kontrollerini kullanarak bir sinema bileti rezervasyon ve ücret hesaplama programı geliştiriniz.
Bu uygulamada kullanıcıdan müşteri bilgileri alınacak, film ve bilet türü seçilecek, isteğe bağlı ekstra hizmetler belirlenecek ve toplam ödeme tutarı hesaplanacaktır.
Bu etkinlik, Nesne Tabanlı Programlama dersinde Windows Forms arayüz tasarımı, form kontrolleri, koşul ifadeleri, değişkenler, sayısal dönüşümler ve Button Click olayları konularını pekiştirmek amacıyla hazırlanmıştır.
1. Uygulamanın Amacı
Visual Studio ortamında C# Windows Forms kullanarak bir sinema bileti rezervasyon uygulaması oluşturunuz.
Hazırlayacağınız programda kullanıcı adını, soyadını ve satın almak istediği bilet adedini girebilmelidir. Ardından izlemek istediği filmi, bilet türünü ve ekstra hizmetleri seçebilmelidir.
HESAPLA butonuna tıklandığında rezervasyon bilgileri ve ödenecek toplam tutar ekranda gösterilmelidir.
TEMİZLE butonuna tıklandığında ise form üzerindeki tüm bilgiler ve seçimler başlangıç durumuna döndürülmelidir.
2. Visual Studio'da Form Tasarımının Oluşturulması
Visual Studio'da yeni bir Windows Forms App (C#) projesi oluşturunuz.
Formun Text özelliğini Sinema Bileti Rezervasyon ve Ücret Hesaplama olarak değiştiriniz.
Toolbox panelinden gerekli kontrolleri forma yerleştirerek aşağıdaki bölümleri oluşturunuz.
A. Müşteri Bilgileri
- Ad Soyad bilgisinin girileceği bir TextBox oluşturunuz.
- Bilet adedinin girileceği bir TextBox oluşturunuz.
- Alanların açıklamaları için Label kontrollerini kullanınız.
B. Film Seçimi
Film seçeneklerini bir GroupBox içerisine yerleştiriniz. Seçenekler için RadioButton kontrollerini kullanınız.
Kullanıcı aynı anda yalnızca bir film seçebilmelidir.
C. Bilet Türü
Bilet türlerini ayrı bir GroupBox içerisinde oluşturunuz.
Bu seçenekler için RadioButton kullanınız. Kullanıcı yalnızca bir bilet türü seçebilmelidir.
D. Ekstra Hizmetler
Aşağıdaki hizmetleri CheckBox kontrolleriyle oluşturunuz.
- Patlamış Mısır: 80 TL
- İçecek: 40 TL
- 3D Gözlük: 30 TL
Kullanıcı bu hizmetlerden istediğini seçebilmeli, birden fazla hizmeti aynı anda işaretleyebilmelidir.
E. İşlem Butonları
Form üzerinde iki adet Button oluşturunuz.
F. Rezervasyon Sonucu
Hesaplama sonucunda aşağıdaki bilgileri göstermek için Label kontrollerini kullanınız.
- Müşteri Adı
- Seçilen Film
- Bilet Türü
- Bilet Adedi
- Ödenecek Toplam Tutar
3. Kullanılacak Form Elemanları ve Name Özellikleri
Form üzerinde kullanacağınız kontrollerin Name ve Text özelliklerini aşağıdaki tabloya göre düzenleyiniz.
| Kontrol |
Name |
Text / Görevi |
| GroupBox |
groupBox1 |
Müşteri Bilgileri |
| TextBox |
txtAdSoyad |
Ad Soyad |
| TextBox |
txtBiletAdedi |
Bilet Adedi |
| GroupBox |
groupBox2 |
Film Seçimi |
| RadioButton |
radioAksiyon |
Aksiyon |
| RadioButton |
radioKomedi |
Komedi |
| RadioButton |
radioKorku |
Korku |
| GroupBox |
groupBox3 |
Bilet Türü |
| RadioButton |
radioTam |
Tam Bilet (150 TL) |
| RadioButton |
radioOgrenci |
Öğrenci Bileti (100 TL) |
| GroupBox |
groupBox4 |
Ekstra Hizmetler |
| CheckBox |
checkMisir |
Patlamış Mısır (80 TL) |
| CheckBox |
checkIcecek |
İçecek (40 TL) |
| CheckBox |
checkGozluk |
3D Gözlük (30 TL) |
| Button |
button1 |
HESAPLA |
| Button |
button2 |
TEMİZLE |
| GroupBox |
groupBox5 |
Rezervasyon Sonucu |
| Label |
lblMusteri |
Müşteri Adı Sonucu |
| Label |
lblFilm |
Seçilen Film Sonucu |
| Label |
lblBiletTuru |
Bilet Türü Sonucu |
| Label |
lblAdet |
Bilet Adedi Sonucu |
| Label |
lblToplam |
Toplam Tutar Sonucu |
Not: Sonuç alanındaki Label kontrollerinin başlangıçtaki Text değerlerini "-" olarak ayarlayınız. Diğer açıklama Label kontrollerinin Name özelliklerini değiştirmeniz zorunlu değildir.
4. Bilet ve Ekstra Hizmet Ücretleri
Uygulamada aşağıdaki bilet fiyatlarını kullanınız.
| Bilet Türü |
Birim Fiyat |
| Tam Bilet |
150 TL |
| Öğrenci Bileti |
100 TL |
Ekstra hizmet ücretleri aşağıdaki gibidir.
| Ekstra Hizmet |
Ücret |
| Patlamış Mısır |
80 TL |
| İçecek |
40 TL |
| 3D Gözlük |
30 TL |
Önemli: Bilet ücretleri satın alınan bilet adedine göre hesaplanmalıdır. Ekstra hizmet ücretleri ise seçilen her hizmet için toplam tutara yalnızca bir kez eklenmelidir.
5. Uygulama Kuralları
Hazırlayacağınız program aşağıdaki kurallara uygun çalışmalıdır.
- Ad Soyad alanı boş bırakılamaz.
- Bilet adedi alanı boş bırakılamaz.
- Bilet adedi yalnızca pozitif tam sayı olmalıdır.
- Kullanıcı mutlaka bir film seçmelidir.
- Kullanıcı mutlaka bir bilet türü seçmelidir.
- Aynı anda birden fazla film seçilememelidir.
- Aynı anda birden fazla bilet türü seçilememelidir.
- Ekstra hizmetlerden birden fazlası seçilebilmelidir.
- Bilet ücreti, seçilen bilet türüne ve bilet adedine göre hesaplanmalıdır.
- Seçilen ekstra hizmetlerin ücretleri toplam tutara eklenmelidir.
- Eksik veya hatalı bilgi girildiğinde kullanıcı MessageBox ile uyarılmalıdır.
- HESAPLA butonuna basıldığında rezervasyon bilgileri ve toplam tutar Label kontrollerinde gösterilmelidir.
- TEMİZLE butonuna basıldığında tüm TextBox alanları temizlenmelidir.
- Tüm RadioButton ve CheckBox seçimleri kaldırılmalıdır.
- Sonuç alanındaki Label kontrolleri başlangıç durumuna döndürülmelidir.
6. HESAPLA Butonundan Beklenen İşlemler
HESAPLA butonunun Click olayına gerekli C# kodlarını yazarak aşağıdaki işlemleri gerçekleştiriniz.
- Müşteri bilgilerinin girilip girilmediğini kontrol ediniz.
- Bilet adedinin geçerli bir sayı olup olmadığını kontrol ediniz.
- Seçilen filmi belirleyiniz.
- Seçilen bilet türünü belirleyiniz.
- Bilet türüne göre ücret hesaplamasını gerçekleştiriniz.
- İşaretlenen ekstra hizmetleri kontrol ediniz.
- Ödenecek toplam tutarı hesaplayınız.
- Rezervasyon bilgilerini ilgili Label kontrollerinde gösteriniz.
7. TEMİZLE Butonundan Beklenen İşlemler
TEMİZLE butonunun Click olayına gerekli C# kodlarını yazarak aşağıdaki işlemleri gerçekleştiriniz.
- Ad Soyad alanını temizleyiniz.
- Bilet Adedi alanını temizleyiniz.
- Film seçimlerini kaldırınız.
- Bilet türü seçimini kaldırınız.
- Ekstra hizmet seçimlerini kaldırınız.
- Rezervasyon sonuçlarını temizleyiniz.
- Formu yeni bir rezervasyon yapılabilecek duruma getiriniz.
8. Uygulamanın Test Edilmesi
Programınızı tamamladıktan sonra aşağıdaki durumları ayrı ayrı test ediniz.
- Ad Soyad alanını boş bırakarak HESAPLA butonuna basınız.
- Bilet adedi alanına harf girerek hesaplama yapmayı deneyiniz.
- Bilet adedine 0 veya negatif sayı giriniz.
- Film seçmeden hesaplama yapmayı deneyiniz.
- Bilet türü seçmeden hesaplama yapmayı deneyiniz.
- Yalnızca Tam Bilet seçerek hesaplama yapınız.
- Yalnızca Öğrenci Bileti seçerek hesaplama yapınız.
- Birden fazla ekstra hizmet seçerek hesaplama yapınız.
- Hiçbir ekstra hizmet seçmeden hesaplama yapınız.
- Hesaplama sonrasında TEMİZLE butonuna basarak formun başlangıç durumuna dönüp dönmediğini kontrol ediniz.
9. Öğrenciler İçin Ek Geliştirme Görevleri
Temel uygulamayı tamamlayan öğrenciler aşağıdaki geliştirmeleri gerçekleştirebilir.
- Film seçeneklerine Bilim Kurgu ve Animasyon ekleyiniz.
- VIP Bilet seçeneği ekleyerek fiyatını 250 TL olarak belirleyiniz.
- 5 veya daha fazla bilet satın alan müşterilere %10 indirim uygulayınız.
- Ekstra hizmetlerin toplam ücretini ayrı bir Label üzerinde gösteriniz.
- Rezervasyon tamamlandığında MessageBox ile bilgilendirme yapınız.
- Bir müşterinin en fazla 10 bilet satın alabilmesini sağlayınız.
- Formun renklerini, yazı tiplerini ve kontrol yerleşimlerini düzenleyerek daha kullanışlı bir arayüz oluşturunuz.
10. Sonuç ve Değerlendirme
Bu uygulama etkinliğinde C# Windows Forms kullanarak bir sinema bileti rezervasyon ve ücret hesaplama programı geliştirmeniz beklenmektedir.
Uygulamayı tamamladığınızda TextBox, Label, Button, RadioButton, CheckBox ve GroupBox kontrollerini birlikte kullanabilecek, kullanıcı girişlerini kontrol edebilecek ve seçilen seçeneklere göre ücret hesaplaması yapabileceksiniz.
Programınızın yalnızca doğru sonuç üretmesi değil, eksik ve hatalı girişlerde kullanıcıyı uygun şekilde uyarması ve form üzerindeki tüm kontrollerin beklenen şekilde çalışması da değerlendirmeye alınacaktır.