C 物件導向程式設計 實驗報告 實驗四

2021-09-25 13:14:48 字數 3035 閱讀 8519

(1)掌握模板的定義和使用方法;

(2)根據要求正確定義模板類,例項化模板;

(3)掌握檔案流的開啟、關閉及讀寫方法。(暫未實現)

(1)單鏈表模板的定義和實現。

(2)員工錶類資料的讀寫。

(1)單鏈表模板的定義和實現,並設計主程式對模板進行測試。

(2)使用檔案流為實驗一的員工錶類提供資料讀寫的方法

listnode.h

#pragma once

templateclass singlelist;

templateclass listnode

listnode(const type item, listnode*next = null) :m_data(item), m_pnext(next) {}

~listnode()

public:

type getdata();

friend ostream& operator<< (ostream&, listnode&);

private:

type m_data;

listnode *m_pnext;

};templatetype listnode::getdata()

templateostream& operator<

singlelist.h

#pragma once

#include "listnode.h"

templateclass singlelist

~singlelist()

public:

void makeempty();//清空鍊錶

int length();//獲取長度

bool insert(type item, int n = 0); type remove(int n = 0); //刪除某一元素

bool removeall(type item); //刪除所有元素

type get(int n); //查詢某一位元素

void print();//輸出鍊錶

private:

listnode*head;

};templatevoid singlelist::makeempty()

}templateint singlelist::length()

return count;

}templatebool singlelist::insert(type item, int n)

listnode*pmove = head;

listnode*pnode = new listnode(item);

if (pnode == null)

for (int i = 0; i < n&&pmove; i++)

if (pmove == null)

pnode->m_pnext = pmove->m_pnext;

pmove->m_pnext = pnode;

return 1;

}templatebool singlelist::removeall(type item)

pmove = pmove->m_pnext;

pdel = pdel->m_pnext;

} return 1;

}templatetype singlelist::remove(int n)

listnode*pmove = head, *pdel;

for (int i = 0; i < n&&pmove->m_pnext; i++)

if (pmove->m_pnext == null)

pdel = pmove->m_pnext;

pmove->m_pnext = pdel->m_pnext;

type temp = pdel->m_data;

delete pdel;

return temp;

}templatetype singlelist::get(int n)

listnode*pmove = head->m_pnext;

for (int i = 0; i < n; i++)

} return pmove->m_data;

}templatevoid singlelist::print()

cout << "--->over" << endl << endl << endl;

}

main.cpp

#include using namespace std;

#include "singlelist.h"

int main()

for (int i = 0; i < 5; i++)

cout << "鍊錶的長度為: " << list.length() << endl;

list.print();

list.remove(5);

cout << "刪除第5號元素後鍊錶的長度為:" << list.length() << endl;

list.print();

list.removeall(3);

cout << "刪除所有3後鍊錶長度為: " << list.length() << endl;

list.print();

cout << "第三號元素為:" << list.get(3) << endl;

cout << endl;

list.makeempty();

cout << "清空鍊錶後長度為:" << list.length() << endl;

list.print();

system("pause");

return 0;

}

執行結果:

C 物件導向程式設計 實驗報告1

我的部落格 include include include include using namespace std class bookcard bookcard bookcard string id,string stuname,int num bookcard bookcard void boo...

C語言程式設計實驗報告 實驗四

掌握選擇和邏輯運算子優先順序和表示式用法。熟練掌握if語句 if else語句 switch語句和break語句的使用。硬體要求 計算機一台。軟體要求 windows作業系統,dev c 或vc 6.0編譯環境 編寫程式判定給定年份是否為閏年。年份由鍵盤輸入。博主表示,判斷閏年的演算法很簡單,選擇結...

C程式設計實驗報告

c程式設計實驗報告 1 了解字元在計算機中以ascii碼方式表示,了解字元的型別 字長其數的表示範圍。2 掌握c語言資料型別,熟練掌握變數定義 3 使用scanf 輸入變數的值,使用printf 輸出變數 4 掌握運算子與表示式的使用方法及其優先順序和結合性規律。5 鞏固對演算法概念的理解,掌握運算...