第一部分先說明作天還未補充的 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天連續發文到今天已經過了一半了,希望能繼續加油,而目前我也有感受到一天比一天還要難!實作的部分可能要再多加強因為原本自己打的程式碼都會有些問題,都要看著書本給的範例一步一步除錯。之後會有幾個程式小開發專案希望一切順利囉~