- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
学校代码:
学号:
《面向对象程序设计》实验报告
(
题 目 : 群 体 类 和 群 体 数 据
二〇 一
学 生 姓 名 :
五年 学 院 : 十
二月
系 别 :
专 业 :
群体 类
班 级 :
任 课 教 师 :
和群 体
数据
一、 实验目的
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(课程)类,有属性:课程名 charname[21]、成绩
shortscore;在实验七的 student 类中增加属性;所修课程 course,为课程类
对象的链表。在测试程序中测试这个类,学生类与课程类关系如图
5.将直接插入排序、直接选择排序、冒泡排序、顺序查找函数封装到第九章的
数组类中,作为成员函数,实现并测试这个类
三、实验内容: 1.//9-5.h #ifndefNODE_CLASS #defineNODE_CLASS templateclassT classNode
{ private:
NodeT*next;// 指向后继节点的指针 public:
Tdata;//数据域
Node(constTitem,NodeT*ptrnext=NULL); voidInsertAfter(NodeT*p); NodeT*DeleteAfter(void); NodeT*NextNode(void)const;
}; templateclassT
NodeT::Node(constTitem,NodeT*ptrnext): data(item),next(ptrnext)
{} templateclassT
NodeT*NodeT::NextNode(void)const { returnnext;
} templateclassT
voidNodeT::InsertAfter(NodeT*p) {
p-next=next;//p 节点指针域指向当前节点的后继节点 next=p;// 当前节点的指针域指向 p
} templateclassT NodeT*NodeT::DeleteAfter(void)
{
NodeT*tempPtr=next;// 将欲删除的节点地址存储到 tempPtr 中 if(next==NULL)// 如果当前节点没有后继节点,则返回 NULL returnNULL;
next=tempPtr-next;// 使当前节点的指针域指向 tempPtr 的后继节点 returntempPtr;// 返回被删除的节点的地址
} #endif//NODE_CLASS
//Node.h #ifndefNODE_LIBRARY
#defineNODE_LIBRARY
#includeiostream
#includecstdlib #include9_5.h
usingnamespacestd; templateclassT
NodeT*GetNode(constTitem,NodeT*nextPtr=NULL) { NodeT*newNode; newNode=newNodeT(item,nextPtr); if(newNode==NULL)// 如果分配内存失败,程序中止
{ cerrMemoryallocationfailure!endl;
exit(1); } returnnewNode;
}
enumAppendNewline{noNewline,addNewline}; templateclassT voidPrintList(NodeT*head,AppendNewlineaddnl=noNewline)
{ NodeT*currPtr=head; while(currPtr!=NULL)
{ if(addnl==addNewline) coutcurrPtr-dataendl;
else
coutcurrPtr-data; currPtr=currPtr-NextNode();
} }
文档评论(0)