Menu
CoddyTech

Tính lương

Bài học 8 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 có tên calculateSalary để tính và trả về mức lương của người dùng (cho mục đích của dự án này).

Mức lương được tính như sau:

salary = sum_of_all_skill_levels * 100

Xem các test case để biết ví dụ.

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); }
        if (strcmp(cmd, "clearSkill") == 0) { char* v = strtok(NULL, " \t"); if (v) User_clearSkill(&u, v); }
        if (strcmp(cmd, "calculateSalary") == 0) { printf("%d\n", User_calculateSalary(&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