Özet - Yapılar
- C++ kursu
- Başlangıç
- Ders 99/116
- 5 dk
Struct ve vector'ü birleştirerek bir öğrenci veritabanı yazarsın.
Özet: Öğrenci veritabanı
Bu özette struct, fonksiyon ve vector'ü birleştirerek küçük bir öğrenci veritabanı kuracağız. Her öğrenci bir Student yapısı ile temsil edilir; tüm öğrenciler bir vector<Student> içinde tutulur.
Adım şu: önce Student yapısını tanımla, sonra addStudent ve printAll fonksiyonlarını yaz. addStudent yeni bir öğrenci oluşturup vector'e ekler; printAll tüm öğrencileri döngüyle yazdırır. Böylece başlangıç seviyesinin önemli yapı araçlarını tek yerde harmanlamış olursun.
Uygulama Student yapısı ve yazdırma
struct Student { string name; int grade; }; tanımla. vector<Student> students; oluştur. Student s; yapıp s.name = "Ayşe"; ve s.grade = 90; ata, sonra students.push_back(s); ile ekle. Aralık for ile her öğrencinin name ve grade değerlerini cout << st.name << " - " << st.grade << endl; ile yazdır.
Başlangıç kodu
#include <iostream>
#include <string>
#include <vector>
using namespace std;
// Student yapısını tanımla
int main() {
// bir Student vector'ü tanımla, bir öğrenci ekle, for ile yazdır
return 0;
}Örnek çözüm
#include <iostream>
#include <string>
#include <vector>
using namespace std;
struct Student {
string name;
int grade;
};
int main() {
vector<Student> students;
Student s;
s.name = "Ayşe";
s.grade = 90;
students.push_back(s);
for (Student st : students) {
cout << st.name << " - " << st.grade << endl;
}
return 0;
}Beklenen çıktı
Ayşe - 90
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 Aracı göreviyle eşleştir
| Kavram | Anlamı |
|---|---|
struct Student |
öğrenci türü |
vector<Student> |
öğrenci listesi |
addStudent |
yeni öğrenci ekler |
2 vector<Student> students; tanımından sonra students.size() ne verir?
- ilk öğeyi
- son öğeyi
- yeni öğe ekler
- uzunluğu Doğru cevap
Açıklama: size() vector'ün öğe sayısını verir.
3 Boşluğu doldur: push_back çağrısı
Student s;
s.name = "Ali";
students.____(s);
Student s;
s.name = "Ali";
students.push_back(s);
Açıklama: push_back vector'e yeni öğe ekler.