c 模擬佇列程式設計案例(參考c 書籍)

2021-06-28 21:07:50 字數 2264 閱讀 4123

小知識:

成員初始化列表:

只有建構函式可以使用這種方法,初始化列表由逗號分隔的初始化列表組成(前面帶冒號)它位於引數列表的右括號之後,函式體的左括號之前

初始化語法:class :: class (int n,int m): men1(n),men2(0),men3(n*m=2)

1. 這種格式只能用於建構函式

2.必須用這種格式初始化非靜態const 資料成員

3.必須用這種格式初始化引用資料成員

(資料成語員初始化的順序與他們在類宣告中的順序相同,與初始化器中的排列順序無關)

介面檔案**:

queue.h--inte***ce for a queue佇列介面

#ifndef queue_h

#define queue_h

class customer//顧客類

void set(long when);

long when() const

int ptime() const

};typedef customer item;//將customer重名為item

class queue//佇列類

;//定義鍊錶節點,使用了巢狀結構和類:struct 結構struct 節點的指標 next

enum ; //列舉限制佇列人數範圍

node * front;//佇列前指標

node * rear;//佇列尾指標

int items;

const int qsize;//佇列人數--常量

//先定義防止在public裡複製

queue(const queue &q ):qsize(0) {}; //表示在呼叫建構函式前初始化qsize為0

//成員初始化列表:初始化列表由逗號分隔的初始化列表組成(前面帶冒號)它位於引數列表的右括號之後,函式體的左括號之前

queue & operator =(const queue &q)

;public:

queue(int qs=q_size);

~queue();

bool isempty()const;

bool isfull()const;

int queuecout() const;

bool enqueue(const item &item);//尾部新增節點

bool dequeue(item &item);//頭部刪除節點

};#endif

函式實現**:

#include "queue.h"

#include //提供隨機函式rand()

queue::queue(int qs):qsize(qs)//初始化資料,非靜態的const 在此行初始化

queue::~queue()//析構函式釋放指標記憶體

}//判斷佇列是否為空

bool queue::isempty()const

//判斷佇列是否為滿

bool queue::isfull() const

//數佇列的人數

int queue::queuecout()const

//成員進隊

bool queue::enqueue(const item &item)

node *add=new node;//建立新的尾部節點

if(add==null)

return false;

add->item=item;//add->item 將引數 item複製到節點的資料部分

add->next=null;//add-next 設定為空,佇列最後乙個節點指向下個為null節點

items++;

if(front==null)

front=add;

else

rear->next=add;//將節點新增到佇列尾部

rear=add;//尾部指標指向新節點

return true;

}//刪除佇列成員

bool queue::dequeue(item &item)

//void customer::set(long when)

模擬測試**:

#include "queue.h"

#include #include #include const int min_pre_hr=60;//沒小時60分鐘

bool newcustomer(double x);

int main()

if(customers>0)

{ cout<<"customer accpeted: "<

C語言經典參考書籍

c程式語言 brian w.kernighan,dennis m.ritchie 編著 c語言的開山之作。c程式設計師應該人手一本。c語言參考手冊 c語言專家程式設計 peter van der linden 編著 更多c語言程式設計技巧可以看這本。實用c語言程式設計 steve oualline ...

報數 佇列模擬 C

有n個人圍成一圈,按順時針給他們編號為1 n。緊接著,指定編號為m的人開始報數,報數按順時針進行。報到d的人出列,下乙個人重新開始報數。按此規律,每次報到d的人都出列。要求同學程式設計求出出列的順序。輸入包括多組測試用例。對於每組用例,第一行是乙個整數n,表示人數。n 100。接下來n行是每個人的人...

C語言程式設計 查詢書籍

給定n本書的名稱和定價,本題要求編寫程式,查詢並輸出其中定價最高和最低的書的名稱和定價。輸入第一行給出正整數n 10 隨後給出n本書的資訊。每本書在一行中給出書名,即長度不超過30的字串,隨後一行中給出正實數 題目保證沒有同樣 的書。在一行中按照 書名 的格式先後輸出 最高和最低的書。保留2位小數。...