iT邦幫忙

2024 iThome 鐵人賽

DAY 15
0
佛心分享-IT 人自學之術

C++探險家系列 第 15

Day 15 基本程式練習實作

  • 分享至 

  • xImage
  •  

第一部分先說明作天還未補充的 typedef 指令功能,第二部分則是基本練習
第一部分:
首先,typedef沒有定義新型的功能,可以將現有的型態定義為新的名稱,節省撰寫時間,也可以使程式更加好閱讀且結構較完整。
小練習:

#include <iostream>
#include <string>
usimg namespace std;
struct people{
    string name;
    int age;
};
typedef struct people STUDENT;

int main(){
    STUDENT stu1;
    STUDENT stu2;
    stu1.name="Judy";
    stu.age=10;
    stu2.name="Marry";
    stu.age=6;
    cout<<"Student1"<<stu1.name<<"age:"<<stu1.age<<endl;
    cout<<"Student2"<<stu2.name<<"age:"<<stu2.age<<endl;
    return 0;
}

第二部分:
程式練習(學生成績系統):

#include <iostream>
#include <string>
using namespace std;

typedef struct grade {
    int co_cum; // 課程數
    int g[10];  // 成績數組
    double average; // 平均成績
} GD;

typedef struct student {
    string name; // 學生姓名
    GD gd; // 成績信息
} STU;

int main(void) {
    int i;
    STU s; // 使用 STU 類型的變數

    cout << "輸入姓名: ";
    cin >> s.name; // 添加分號
    cout << "課程數: ";
    cin >> s.gd.co_cum; // 讀取課程數

    // 輸入每門課的成績
    for (i = 0; i < s.gd.co_cum; i++) {
        cout << "輸入第" << i + 1 << "個成績: ";
        cin >> s.gd.g[i];
    }

    // 計算平均成績
    s.gd.average = 0;
    for (i = 0; i < s.gd.co_cum; i++) {
        s.gd.average += s.gd.g[i];
    }
    s.gd.average = s.gd.average / s.gd.co_cum;

    // 顯示平均成績
    cout << s.name << "的平均為" << s.gd.average << endl;
    return 0;
}

程式練習(時鐘):

#include <iostream>
#include <ctime>
#include <cstdlib> // 修正標頭檔

using namespace std;

int main(void) {
    time_t t;
    struct tm *TIME;

    while (true) {
        time(&t); // 取得當前時間
        TIME = localtime(&t); // 轉換為當地時間

        cout << "現在時間: " 
             << TIME->tm_hour << ":" 
             << TIME->tm_min << ":" 
             << TIME->tm_sec << endl;

        #ifdef _WIN32
        system("cls"); // 在 Windows 系統中清除螢幕
        #else
        system("clear"); // 在 UNIX 系統中清除螢幕
        #endif

        // 延遲1秒,避免高CPU使用率
        sleep(1); // 在 UNIX 系統中使用 sleep
        #ifdef _WIN32
        Sleep(1000); // 在 Windows 系統中使用 Sleep,時間單位為毫秒
        #endif
    }

    return 0;
}

!!以上內容是跟著第一次學C++就上手第二版第11章後半部跟著一起實作的!!
鐵人賽30天連續發文到今天已經過了一半了,希望能繼續加油,而目前我也有感受到一天比一天還要難!實作的部分可能要再多加強因為原本自己打的程式碼都會有些問題,都要看著書本給的範例一步一步除錯。之後會有幾個程式小開發專案希望一切順利囉~


上一篇
Day 14 結構、聯合與列舉
下一篇
Day 16 輸出入與檔案操作
系列文
C++探險家30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言