(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 鞏固對演算法概念的理解,掌握運算...