Menu
CoddyTech

Hiển thị kỹ năng

Bài học 6 trên 8 trong khóa học Lớp người dùng, dự án OOP của Coddy.

challenge icon

Thử thách

Dễ

Thêm một phương thức tên là showSkills để in ra thông tin về kỹ năng của người dùng theo định dạng cụ thể.

Ví dụ: nếu kỹ năng của người dùng là:

  • "Python" ở cấp độ 2
  • "C++" ở cấp độ 1
  • "HTML" ở cấp độ 3

Gọi showSkills() sẽ cho đầu ra:

C++: 1
HTML: 3
Python: 2

Các kỹ năng được hiển thị theo thứ tự bảng chữ cái dựa trên tên kỹ năng.

Tự làm thử

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "user.h"

int main() {
    User u;
    User_init(&u, "", "");
    char line[1024];
    while (fgets(line, sizeof(line), stdin)) {
        line[strcspn(line, "\r\n")] = '\0';
        char* cmd = strtok(line, " \t");
        if (!cmd) continue;
        if (strcmp(cmd, "new") == 0) {
            char* un = strtok(NULL, " \t");
            char* em = strtok(NULL, " \t");
            User_init(&u, un ? un : "", em ? em : "");
        }
        if (strcmp(cmd, "username") == 0) { printf("%s\n", u.username); }
        if (strcmp(cmd, "email") == 0) { printf("%s\n", u.email); }
        if (strcmp(cmd, "setLocation") == 0) { char* v = strtok(NULL, " \t"); if (v) User_setLocation(&u, v); }
        if (strcmp(cmd, "getLocation") == 0) { printf("%s\n", User_getLocation(&u)); }
        if (strcmp(cmd, "info") == 0) { User_info(&u); }
        if (strcmp(cmd, "learn") == 0) { char* v = strtok(NULL, " \t"); if (v) User_learn(&u, v); }
        if (strcmp(cmd, "showSkills") == 0) { User_showSkills(&u); }
    }
    return 0;
}

Tất cả bài học trong Lớp người dùng, dự án OOP

Tự luyện tập: Trình biên dịch C online