1、a,int &b) /这里访问与修改的是实际参数本身,而不是实际参数的一个副本int main() int x,y; x=66; y=98; swapbyValue(x,y); coutx=x y=ymath.hconst double PI=3.14159;float area(float a=3,double b=4,double c=5); double s; s=area();s=s s=area(6); s=area(2,4); s=area(5,6,7); return 0;float area(float a,double b,double c) float s,S; s=1/2
2、.0*(a+b+c); S=sqrt(s*(s-a)*(s-b)*(s-c); return S;3运行参考程序,理解函数重载概念与基本使用方法。 /参考程序3int min(int a,int b,int c) int k; k=(ab)?a:b; k=(kxyz; m=min(x,y,z);最小的数是:mn请输入两个整数:y; m=min(x,y);4运行参考程序,理解函数模板概念与基本使用方法。/参考程序4templateT min(T a, T b) return(a最小的整数是:min(x,y)y1;最小的实数是:min(x1,y1) /getch()要用到此头文件stdlib.h
3、/system(cls)清屏函数用到此头文件string.h/定义一个账户结构体struct Account char mName10; long mSN; float mBalance;/开户void getAcc(struct Account *p) 请输入姓名、帐号、存入钱数:姓名: cinp-mName;帐号:mSN;存入钱数:mBalance; /往账户中存款,存款金额为amountvoid deposit(struct Account *p) float amount;存款金额:amount; p-mBalance=p-mBalance+amount;/从账户中取款,取款金额为am
4、ount(请考虑透支情况)void withdraw(struct Account *p)/*查询帐户当前余额*void getBalance(struct Account *p)/主菜单void menu(void) system(); /清屏-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-* 简易银行帐户系统endl1:开户2:存款 3:取款4:查询余额 5:退出 /主函数 int cho; struct Account p; /定义一个银行账户结构体变量 while(1) menu(); do coutcho; while(cho5);
5、switch(cho) case 1: getAcc(&p); break; case 2: deposit(& case 3: withdraw(& case 4: getBalance(& break; case 5: return 0 ; 【思考题】1回答按值传递、按地址传递和按引用传递有何不同?2重载函数和函数模板有何区别?什么情况下使用重载函数?什么情况下使用函数模板?实验二 类程序设计实验1掌握类和对象的概念、定义和使用方法。2学习数据成员与成员函数的访问方式。3掌握构造函数、拷贝构造函数和析构函数的使用方法。4掌握类的组合使用方法。5熟悉类模板的定义和使用方法。1阅读下列程序,写
6、出执行结果:(1) #includeclass Circlepublic: Circle(float radius) Radius=radius; cout构造函数被调用 Circle() cout析构函数被调用! float GetArea()return 3.14*Radius*Radius;private: float Radius; float radius;请输入圆的半径:radius; Circle obj(radius);半径为radius圆的面积为:obj.GetArea() (2) #include Circle(Circle& p) Radius=p.Radius;拷贝构造
7、函数被调用 Circle obj1(radius); Circle obj2(obj1);对象1的面积为:obj1.GetArea()对象2的面积为:obj2.GetArea()(3) #include using namespace std;class Student Student(int num, char *n); /构造函数 Student(); /析构函数 void display( ); int number; /学号 char *name; /姓名Student:Student(int num, char *n) number=num; name=new charstrlen(
8、n)+1; /用new为name分配堆内存 strcpy(name,n);执行Student类构造函数Student() delete name;执行Student类析构函数void Student:display( ) 学号: number姓名:name p.deposit(amount);取款金额: m=p.withdraw(amount); if(m=0) cout透支! else 取款成功!余额为:p.getBalance()敲回车继续! cin.sync(); /清空输入缓冲区的内容 cin.get(); /从指定的输入流中提取一个字符,防止屏幕一闪而过3设计一个股票(Stock)类
9、,包含股票名称、股票代码、股票的数量、每股的价格、股票的总值等属性,可完成获得股票(用构造函数完成)、增持、卖出股票、更新股票价格、显示所持股票的信息等行为。4设计一个用于学生管理的Student类,属性有:学号、年龄、性别、出生日期、身份证号等。其中“出生日期”声明为一个“日期”类的内嵌子对象。用成员函数实现对学生信息的录入和显示。要求包括:构造函数和析构函数、拷贝构造函数、组合。5设计复数类,实现复数的+、-、*、/运算。(附加题) 1C+语言中类和结构体类型有何异同?2什么时候程序会调用其构造函数?3什么时候程序会自动调用析构函数?4类的组合在什么情况下使用?实验三 数组与指针实验1学习
10、使用数组数据对象。2掌握指针的使用方法。3学习通过动态内存分配实现动态数组的定义和使用,并体会指针在其中的作用。4掌握静态成员的使用方法。5练习通过Debug观察指针的内容及其所指对象的内容。1运行下列程序,观察运行结果。(1)#includeclass ArrayElem int x; ArrayElem(int i)x=i; /带参数的构造函数 int getx()return x; ArrayElem obs4 =-1,-2,-3,-4; /创建对象数组并初始化 for(int i=0;i4;i+)obs.getx():obsi.getx()/访问数组元素的成员(2)#includecl
11、ass NumClass int num; void set_num(int val)num=val; void show_num()coutThe num is :num NumClass ob,*p; /声明一个对象和指向对象的指针 ob.set_num(10); ob.show_num(); /通过对象ob直接调用成员函数 p=&ob; /使对象指针p指向对象obset_num(20);show_num(); /通过指针调用成员函数(3)#include NumClass ob2,*p; /声明一个对象数组和对象指针 ob0.set_num(10); ob1.set_num(20); /通过对象数组名和下标来访问ob0; /将对象数组的首元素地址赋给指针 /通过指针显示数组元素 p+;(4)#include NumClass *p=new NumClass2; /动态创建一个对象数组 p0.set_num(10); p1.set_num(20); /通过指针访问数组元素的成员 p
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1