77范文网 - 专业文章范例文档资料分享平台

实验报告4:群体类和群体数据

来源:网络收集 时间:2019-06-05 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:或QQ: 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

学校代码: 10128 学 号: 201220905060

《面向对象程序设计》实验报告

题 目:群体类和群体数据 学生姓名:燕飞 学 院:理学院 系 别:数学系

专 业:信息与计算科学 班 级:信计12-2 任课教师:侯睿

二 〇 一 五 年 十 一 月

一、实验目的

1、了解节点类的声明和实现,学习其使用方法 2、了解链表类的声明和实现,学习其使用方法 3、了解栈类的声明和实现,学习其使用方法 4、了解队列类的声明和实现,学习其使用方法 5、掌握对数组元素排序的方法 6、掌握对数组元素查找的方法

二、实验内容

1、编写程序Node.h实现例9-5的节点类,并编写测试程序lab9_1.cpp,实现链表的基本操作。 2、编写程序link.h实现例9-6的链表类,在测试程序lab_2.cpp中声明两个整型链表A和B,分别插入5元素,然后把B中的元素加入A的尾部。 3、编写程序queue.h,用链表实现队列(或栈),在测试程序lab9_3.cpp中声明一个整型队列(或栈)对象,插入5个整数,压入队列(或栈),再依次取出并显示出来。 4、(选做)声明course(课程)类,有属性:课程名char name[21]、成绩short score;在实验七的student类中增加属性;所修课程course,为课程类对象的链表。在测试程序中测试这个类,学生类与课程类关系如图

5、将直接插入排序、直接选择排序、冒泡排序、顺序查找函数封装到第九章的数组类中,作为成员函数,实现并测试这个类。

三、实验程序

1、

#ifndef NODE_CLASS #define NODE_CLASS template class Node {

private:

Node *next; public: T data;

Node (const T& item, Node* ptrnext = NULL); void InsertAfter(Node *p); Node *DeleteAfter(void); Node *NextNode(void) const; };

template

2

Node::Node(const T& item, Node* ptrnext) : data(item), next(ptrnext) {}

template

Node *Node::NextNode(void) const {

return next; }

template

void Node::InsertAfter(Node *p) {

p->next = next; next = p; }

template

Node *Node::DeleteAfter(void) {

Node *tempPtr = next; if (next == NULL) return NULL;

next = tempPtr->next; return tempPtr; }

#endif

#ifndef NODE_LIBRARY #define NODE_LIBRARY #include #include #include %using namespace std; template

Node *GetNode(const T& item, Node *nextPtr = NULL) {

Node *newNode;

newNode = new Node(item, nextPtr); if (newNode == NULL) {

cerr << \ exit(1); }

return newNode; }

enum AppendNewline {noNewline,addNewline}; template

3

void PrintList(Node *head, AppendNewline addnl = noNewline) {

Node *currPtr = head; while(currPtr != NULL) {

if(addnl == addNewline) cout << currPtr->data << endl; else

cout << currPtr->data << \ currPtr = currPtr->NextNode(); } }

template

int Find(Node *head, T& item, Node* &prevPtr) {

Node *currPtr = head; prevPtr = NULL;

while(currPtr != NULL) {

if (currPtr->data == item) return 1;

prevPtr = currPtr;

currPtr = currPtr->NextNode(); }

return 0; }

template

void InsertFront(Node* & head, T item) {

head = GetNode(item,head); }

template

void InsertRear(Node* & head, const T& item) {

Node *newNode, *currPtr = head; if (currPtr == NULL) InsertFront(head,item); else {

while(currPtr->NextNode() != NULL) currPtr = currPtr->NextNode(); newNode = GetNode(item); currPtr->InsertAfter(newNode); }

4

} template

void DeleteFront(Node* & head) {

Node *p = head; if (head != NULL) {

head = head->NextNode(); delete p; } }

template

void Delete (Node* & head, T key) {

Node *currPtr = head, *prevPtr = NULL; if (currPtr == NULL) return;

while (currPtr != NULL && currPtr->data != key) {

prevPtr = currPtr;

currPtr = currPtr->NextNode(); }

if (currPtr != NULL) {

if(prevPtr == NULL)

head = head->NextNode(); else

prevPtr->DeleteAfter(); delete currPtr; } }

template

void InsertOrder(Node* & head, T item) {

Node *currPtr, *prevPtr, *newNode; prevPtr = NULL; currPtr = head;

while (currPtr != NULL) {

if (item < currPtr->data) break;

prevPtr = currPtr;

currPtr = currPtr->NextNode(); }

5

百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库实验报告4:群体类和群体数据在线全文阅读。

实验报告4:群体类和群体数据.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.77cn.com.cn/wenku/zonghe/650870.html(转载请注明文章来源)
Copyright © 2008-2022 免费范文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ: 邮箱:tiandhx2@hotmail.com
苏ICP备16052595号-18
× 注册会员免费下载(下载后可以自由复制和排版)
注册会员下载
全站内容免费自由复制
注册会员下载
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: