C
Birleştirme
Quiz fonksiyonlarını konsol menüsüyle birleştirirsin.
Birleştirme
Son ders run_quiz_app fonksiyonunu tanımlar. Bu fonksiyon, tüm quiz akışını tek bir yerde toplar: karşılama, soru ekleme, oynatma, yüzde hesaplama ve veda mesajı.
İmza: void run_quiz_app(void). Gövde: printf("Quiz hazır\n"); ile başlar; struct Question questions[10]; int count = 0; tanımlar; add_question ile 2 soru ekler; printf("%d soru eklendi\n", count); yazar; run_quiz ve print_percentage çağırır; son olarak printf("Tamamlandı\n"); yazar. main gövdesi run_quiz_app(); return 0; olur. Önceki dersin çözümü başlangıç koduna dahildir.
Uygulama run_quiz_app fonksiyonunu yaz
void run_quiz_app(void) yaz. Gövdede sırayla: printf("Quiz hazır\n");, struct Question questions[10]; int count = 0;, iki add_question çağrısı ("Başkent?", 0 ve "2+2?", 1), printf("%d soru eklendi\n", count);, int score = run_quiz(questions, count);, printf("Skor: %d\n", score);, print_percentage(score, count);, printf("Tamamlandı\n");. main gövdesini run_quiz_app(); return 0; yap.
Örnek çözümü göster
#include <stdio.h>
#include <string.h>
struct Question {
char text[64];
int correct;
};
void add_question(struct Question *q, int *count, const char *text, int correct) {
strcpy(q[*count].text, text);
q[*count].correct = correct;
(*count)++;
}
int run_quiz(struct Question *q, int count) {
int answers[3] = {0, 1, 2};
int score = 0;
for (int i = 0; i < count; i++) {
printf("Soru %d: %s\n", i + 1, q[i].text);
if (answers[i] == q[i].correct) {
score++;
}
}
return score;
}
void print_percentage(int score, int count) {
int pct = score * 100 / count;
printf("Yüzde: %d%%\n", pct);
}
void run_quiz_app(void) {
printf("Quiz hazır\n");
struct Question questions[10];
int count = 0;
add_question(questions, &count, "Başkent?", 0);
add_question(questions, &count, "2+2?", 1);
printf("%d soru eklendi\n", count);
int score = run_quiz(questions, count);
printf("Skor: %d\n", score);
print_percentage(score, count);
printf("Tamamlandı\n");
}
int main(void) {
run_quiz_app();
return 0;
}
Proje tamamlandı
Beş derslik quiz uygulaması projesini tamamladın. İlk dersin iskeletinden başladın; add_question, run_quiz ve print_percentage fonksiyonlarını ekledin; sonunda run_quiz_app ile hepsini birleştirdin.
Bu yapı, gerçek C projelerinin temelidir: veri modeli (struct Question), katmanlı fonksiyonlar ve entegrasyon noktası. Bir sonraki grupta dosya I/O ile veriyi diske yazıp okuyacak; böylece quiz sorularını kalıcı hale getirebileceksin. Proje boyunca biriktirdiğin kod, ilerideki projeler için iskelet olarak hizmet verecek.
Kendini test et
-
run_quiz_app fonksiyonunun görevi nedir?
- Soru eklemek
- Skor hesaplamak
- Dosya açmak
- Tüm akışı birleştirmek
Cevabı göster
Tüm akışı birleştirmek — run_quiz_app tüm quiz akışını tek fonksiyonda birleştirir.
-
Fonksiyonları görevine eşle
- add_question
- Soru ekleme
- run_quiz
- Quiz oynatma
- print_percentage
- Yüzde yazdırma
- run_quiz_app
- Tüm akış
-
run_quiz_app çağrısını tamamla
int main(void) {
____();
return 0;
}
Cevabı göster
int main(void) {
run_quiz_app();
return 0;
}
Sıradaki ders: FILE ve fopen