一些定義
隨着程序越來越複雜,我們希望把程序的各個部分分別存儲再不同的文件中.
一個程序,我們可以分成三個部分
1.頭文件:包含結構聲明和使用這些結構的函數的原型
2.源代碼文件:包含於結構有關的函數的代碼
3.源代碼文件:包含調用於結構相關的函數的代碼
頭文件常包含的內容:
1.函數原型
2.使用#define 或const定義的符號常量
3.結構聲明
4.類聲明
5.模板聲明
6.內聯函數
一個例子
頭文件
head.h
#pragma once
#ifndef HEAD_H_H
#define HEAD_H_H
#include<string>
using namespace std;
struct Game
{
string gameName;
string gameScore;
};
void inputGame(Game games[], int size);
void sort(Game games[], int size);
void display(const Game games[], int size);
const int Size = 5;
#endif // !HEAD_H_H
兩個源文件
Game.cpp 用來放函數的
#include<iostream>
#include "head.h"
using namespace std;
void inputGame(Game games[], int size) {
for (int i = 0; i < size; i++) {
cout << "請輸出喜歡遊戲的名稱" << endl;
cin >> games[i].gameName;
cout << "請輸入遊戲評分(10以內的小數):";
cin >> games[i].gameScore;
}
}
void sort(Game games[], int size) {
Game temp;
for (int i = 0; i < size - 1; ++i) {
for (int j = i + 1; j < size; ++j) {
if (games[i].gameScore < games[j].gameScore) {
temp = games[i];
games[i] = games[j];
games[j] = temp;
}
}
}
}
void display(const Game games[], int size) {
for (int i = 0; i < size; i++) {
cout << i + 1 << ":" << games[i].gameName << "(" << games[i].gameScore << ")" << endl;
}
}
主CPP
#include "head.h"
#include<iostream>
int main() {
cout << "請輸入5個你喜歡的遊戲的名稱,並給它們評分:" << endl;
Game games[Size] = {};
inputGame(games, Size);
sort(games, Size);
display(games, Size);
return 0;
}
運行結果
請輸入5個你喜歡的遊戲的名稱,並給它們評分:
請輸出喜歡遊戲的名稱
Steam
請輸入遊戲評分(10以內的小數):8
請輸出喜歡遊戲的名稱
LOL
請輸入遊戲評分(10以內的小數):8
請輸出喜歡遊戲的名稱
饑荒
請輸入遊戲評分(10以內的小數):8
請輸出喜歡遊戲的名稱
NBA
請輸入遊戲評分(10以內的小數):8
請輸出喜歡遊戲的名稱
沙灘排球
請輸入遊戲評分(10以內的小數):9
1:沙灘排球(9)
2:LOL(8)
3:饑荒(8)
4:NBA(8)
5:Steam(8)