面向对象程序设计(C++)实验指导
一、实验环境
本实验基于当前主流的面向对象开发平台,编码规范遵循主流的参考规范。
二、编程语言和开发工具
C++语言,开发工具不限,建议使用Visual C++ 6.0版本
三、 编码规范(编码规范的要求)
要求遵循良好的的程序设计习惯来设计实验和编写代码。
(注:如果你将程序的很多功能全部放在一个长长的main()主函数中实现,这样的程序设计和编码风格会被扣分,请将不同的功能模块分别用函数来实现。)
1.在实验过程中应注意培养规范的编码风格:
2.标识符的命名应要求达到顾名思义的程度,一看就知道用来做什么; 3.提供足够的注释,注释文字清晰明了; 4.程序排版的要求:
a) 不同功能模块用空行分隔,使功能块一目了然; b) 基本上一条语句一行; 同一层次的语句统一缩进对齐。
四、实验
见后文……
五、注意事项
所有实验要求独立完成,同学之间可以讨论,但严禁抄袭,若发现雷同,抄袭者和被抄袭者此次实验成绩均记零分。
实验一 C++基础
实验目的和要求:
1. 掌握C++程序的基本格式与规范,学会编写简单的C++程序。 2. 理解C++程序结构的特点。
3. 熟悉C++程序的基本输入输出操作。 4. 掌握函数重载的定义和使用方法。
5. 理解引用的概念,掌握引用的使用方法。
预习内容:
cin/cout的使用;函数重载;const 常量。
实验内容:
程序Ex_Swap实现数据交换。分别用指针和引用作为函数mySwap的形参,并通过编写重载函数实现int、double型变量值的交换。
程序代码
#include
void Swap(int &a,int &b) { int temp; temp=a; a=b; b=temp; }
//double类型
void Swap(double &a,double &b) { double temp; temp=a; a=b; b=temp; }
//指针
void Swap(int *a2,int *b2) { int temp; temp=*a2; *a2=*b2; *b2=temp; }
//主函数 void main()
{ }
//int类型的转换 int a=3,b=4;
double a1=5.5,b1=6.8;
cout<<\ \ \Swap(a,b);
cout<<\ \ \
//double类型的转换
cout<<\ \ \Swap(a1,b1);
cout<<\ \ \
//指针
int a2=10,b2=20;
cout<<\ \ \Swap(&a2,&b2);
cout<<\ \ \
运行结果
实验总结
实验二 类与对象(一)
实验目的和要求:
1. 掌握类、类的数据成员、类的成员函数的定义方式。 2. 理解类成员的访问控制方式。
3. 掌握对象的定义和操作对象的方法。
4. 理解构造函数和析构函数的定义与执行过程。 5. 掌握重载构造函数的方法。
6.了解拷贝构造函数的方法。 预习内容
类(数据成员和成员函数)的定义与访问权限设置;类的构造函数与析构函数的定义与使用。
程序代码
/* Score.h */ #ifndef SCORE_H #define SCORE_H #include
public: int i; string Num; float Math; float English; float Programming; float Average;
public: void Inscore(); void showscore(); Score(); Score(string numInput,float programmingInput); Score(const Score& s); }; #endif
/* Score.cpp*/ #include\
mathInput,float englishInput,float
#include
void Score::Inscore() { do { cout<<\学号:\ cin>>Num; cout<<\数学成绩:\ cin>>Math; cout<<\英语成绩:\ cin>>English; cout<<\编程成绩:\ cin>>Programming; Average = (Math+English+Programming)/3; cout<<\平均成绩\ cout<<\按1继续,按其他退出.:\ cin>>i;
}while(i==1); }
void Score::showscore() { cout<<\学号:\ cout<<\数学成绩:\ cout<<\英语成绩:\ cout<<\编程成绩:\ Average = (Math+English+Programming)/3; cout<<\平均成绩:\}
Score::Score() { Num=\ Math=97; English=98; Programming=99; }
Score::Score(string numInput,float mathInput,float programmingInput) { Num=numInput; Math=mathInput;
englishInput,float