CodeBlanks Logo Icon CodeBlanks

Proje tasarımı

  • C kursu
  • Orta seviye
  • Ders 112/116
  • 6 dk

Orta seviye finali mini uygulamasının iskeletini tasarlarsın.

Proje: Görev yöneticisi

Bu beş derslik final projesinde bir görev yöneticisi yapacaksın. Her ders bir parça ekler; son derste kaydetme, yükleme ve listeleme yapan bir program elde edersin.

Proje, önceki gruplardaki struct, bağlı liste, fonksiyon işaretçisi ve dosya I/O kavramlarını birleştirir. İlk derste Task yapısını ve genel listeyi tanımlarsın; main bir karşılama iletisi yazdırır. Sonraki derslerde görev oluşturma, listeye ekleme, filtreleme, dosyaya kaydetme ve tüm parçaları birleştirme adımlarını ekleyeceksin.

Task yapısı

Task yapısı, bir görevin adını, önceliğini ve listedeki sonraki görevi tutar. typedef ile tanımlanır; struct Task * ile kendi türüne işaret eden bir next alanı içerir.

Bildirim: typedef struct Task { char name[32]; int priority; struct Task *next; } Task;. next alanı, bağlı listenin temelidir; her düğüm bir sonrakine bağlanır. Listenin sonu NULL ile biter. g_list genel değişkeni, listenin başını tutar; başlangıçta NULL'dur. Bu yapı, dinamik veri yönetiminin çekirdeğidir.

Uygulama Proje iskeletini yaz

typedef struct Task { char name[32]; int priority; struct Task *next; } Task; tanımla. Task *g_list = NULL; ile liste başını tanımla. main içinde printf("Görev yöneticisi hazır\n"); yazdır.

Başlangıç kodu

main.c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

// Task yapısını typedef ile tanımla (name, priority, next)
// g_list işaretçisini NULL olarak tanımla
// main "Görev yöneticisi hazır" yazdır

int main(void) {
    return 0;
}

Örnek çözüm

main.c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

typedef struct Task {
    char name[32];
    int priority;
    struct Task *next;
} Task;

Task *g_list = NULL;

int main(void) {
    printf("Görev yöneticisi hazır\n");
    return 0;
}

Beklenen çıktı

Görev yöneticisi hazır

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 Task yapısının next alanı ne işe yarar?

  • Bağlı listede sonraki görevi gösterir Doğru cevap
  • Görev adını tutar
  • Görev önceliğini saklar
  • Dosya adını tutar

Açıklama: next, bağlı listede bir sonraki düğümü gösterir.

2 Karşılama iletisini tamamla

Soru
printf("Görev yöneticisi ____
");
Cevap
printf("Görev yöneticisi hazır
");

Açıklama: "Görev yöneticisi hazır" karşılama iletisidir.

3 Task alanlarını eşle

Kavram Anlamı
name Görev adı
priority Öncelik
next Sonraki düğüm
g_list Liste başı

Orta seviye bölümündeki tüm dersler