实验一 C++语言对C语言的扩充.doc_第1页
实验一 C++语言对C语言的扩充.doc_第2页
实验一 C++语言对C语言的扩充.doc_第3页
实验一 C++语言对C语言的扩充.doc_第4页
实验一 C++语言对C语言的扩充.doc_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

实验报告课程名称面向对象程序设计系 别机械与电子工程系班 级N电信-091F学生姓名邓建平07学 号24092200003任课教师齐 琦南湖学院教务办实验一 C+语言对C语言的扩充一、 实验目的(1)掌握C+语言在结构化程序设计方面对C语言的扩充.(2)进一步掌握程序的调试方法.二、 实验内容题目一: 定义一个函数,比较两个数的大小,形参分别使用指针和引用。注意:请定义两个函数分别实现,其一传递两个指针作为参数,其二传递两个引用作为参数代码: #includevoid compare(int &x,&y);void main()int x = 5 ,y = 6 ;coutbrfore compare,x:x ,y:yry) coutyendl;elsecoutxendl;题目二:求不同类型的三个数的最大值,要求:(1)使用重载函数和函数模板两种方法;(2)使用带缺省参数的函数注意:请使用两种方法实现,其一为函数重载,分别定义重载函数,传三个int,三个float,和三个double类型的值。其二为函数模板。代码:(1)函数模板template T maxof3(T a, T b, T c) return (ab?a:b)c?(ab?a:b):c;拆开来就是这样的:template T maxof3(T a, T b, T c) T max = ab?a:b; /找出a,b中最大的赋值给max return maxc?max:c; /在比较max和c大小,返回大者(2)函数重载#includeusing namespace std;int main()int max(int &,int &,int &);int max(int &a,int &b);int max(int &a,int &b,int &c);int i,j,k;cout请输入三个数:;coutijk;cout三个数的最大值为:max(i,j,k)endl;cout前两个数的最大值为:max(i,j)y) t=x; else t=y;if(tz) return t;else return z; int max(int &x,int &y) if(xy) return x; else return y;若用float和double 只需要在将上程序(2)中的 int 改为 float 和double 即可。题目三:创建一个学生链表,进行链表的插入、删除、查找操作,要求:使用new和delete进行动态内存的分配和释放。注意:请回忆链表的结构及其插入删除方式。链表中插入与删除的均为学生类对象。代码: #include #include using namespace std; /学生类 class student public: student() cout 请依次输入学生姓名、学号、成绩,中间用空格隔开nameidscore; void show() cout 姓名: name 学号: id成绩:next=head; head=p; return head; void print() student *p=head; while(p!=NULL) p-show(); p=p-next; student* insert(int index) /插入 student* ps=new student; student* pt=find(index); if(index=0) ps-next=head; head=ps; else ps-next=pt-next; pt-next=ps; print(); return head; student* find(int index) /查找 int n=0; student* p=head; while(n!=index&p!=NULL) n+; p=p-next; return p; void sort() /排序 student* p=head; student* q=head; for(p=head;p!=NULL;p=p-next) for(q=head;q!=NULL;q=q-next) if(p-scoreq-score) string temp1; int temp2; double temp3; temp1=p-name; p-name=q-name; q-name=temp1; temp2=p-id; p-id=q-id; q-id=temp2; temp3=p-score; p-score=q-score; q-score=temp3; print(); student* Delete(int index) student* pt=find(index); int index1=index-1; student*p=find(index1); if(pt=head) head=head-next; delete pt; else int index1=index-1; student*p=find(index1); p-next=pt-next; delete pt; print(); return head; ; void main() List A; int a; int b; A.init(); cout 当你输入1时表示要插入,输入2时表示删除,输入0时表示结束 endl; couta&a!=0) switch(a) case 1: cout b; A.insert(b); break; case 2: cout b; A.Delete(b); break; default:cout 输入错误 endl; A.sort(); 三、 实验总结 1.可采用的设计方法:根据题目,本次实验主要运用的是C+中的一些特性,人函数模板,和重载函数。而此外要想实现这些题目,通过C语言也可以完成,但相对C语言而言,C+更易于操作完成。2.实验的关键点:本次实验,主要对象是C+语言对C语言的扩充,而在这里这里最关键的是要了解C+与C语言的一些区别,和类同点。+是一种混合型的面向对象程序设计语言 ,是语言的扩充。它具有对传统语言的向后兼容性 ,很多语言编写的程序稍加改造就可以重用 ,许多有效的算法也可以继续利用 ;又具有独特的面向对象特征 ,可以

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论