实验一熟悉VC++IDE开发环境一、实验目的1、熟悉VC++6.0集成开发环境,熟练掌握VC++6.0项目工作区、各种编辑器、菜单栏和工具栏的使用。
2、掌握如何编辑、编译、连接和运行一个C++程序。
3、通过运行简单的C++程序,初步了解C++源程序的结构和特点。
二、实验要求1、分析下列程序运行的结果。
程序一:#include <iostream.h>int add(int x,int y=8);void main(){ int x=4;cout<<add(x)<<",";cout<<add(x,add(add(x,add(x))))<<endl;}int add(int x,int y){ return x+y;}//12,28程序二:#include <iostream.h>void main(){ int *p,i;i=5;p=&i;i=*p+10;cout<<"i="<<i<<endl;}//i=15程序三:#include <iostream.h>void main(void){ int i=10;int &r=i;r++;cout<<"i="<<i<<", r="<<r<<'\n';i=88;cout<<"i="<<i<<", r="<<r<<'\n';}//i=11,r=11i=88,r=88程序四:#include <iostream.h>int f(int i){ static int k=1;for(;i>0;i--)k +=i;return k;}void main(){ int i;for(i=0;i<5;i++)cout<<f(i)<<" ";}// 1 2 5 11 21程序五:#include <iostream.h>void func();int n=1;void main(){ static int a;int b= -9;cout <<"a:"<<a<<" b:"<<b<<" n:" <<n<<endl;b+=4;func();cout <<"a:"<<a<<" b:"<<b<<" n:"<<n<<endl;n+=10;func();}void func(){ static int a=2; int b=5;a+=2;n+=12;b+=5;cout <<"a:" <<a<<" b:" <<b<<" n:" <<n <<endl;}// a:0 b:-9 n:1a:4 b:10 n:13a:0 b:-5 n:13a:6 b:10 n:35实验二C++对C的扩充一、实验目的1、了解在面向对象程序设计过程中C++对C功能的扩充与增强,并善于在编写程序的过程中应用这些新功能。
2、进一步熟悉编辑、编译、连接和运行C++程序的方法。
3、进一步熟悉C++程序的结构和编程方法。
二、实验要求1、分析下列程序运行的结果。
#include <iostream.h>int amount=123;void main(){ int amount=456;cout<<::amount<<',';cout<<amount<<',';::amount=789;cout<<::amount<<',';cout<<amount<<'\n';}// 123,456,789,4562、编写一个程序,用来求2个或3个正整数中的最大数。
①用不带默认参数的函数实现。
include <iostream>using namespace std;int max(int a,int b,int c) //求3个整数中的最大者{if (b>a) a=b;if (c>a) a=c;return a;}int max(int a, int b) //求两个整数中的最大者{if (a>b) return a;else return b;}int main( ){int a=7,b=-4,c=9;cout<<max(a,b,c)<<endl; //输出3个整数中的最大者cout<<max(a,b)<<endl; //输出两个整数中的最大者return 0;}②用带默认参数的函数实现。
#include <iostream>using namespace std;int main(){int max(int a,int b,int c=0);int a,b,c;cin>>a>>b>>c;cout<<"max(a,b,c)="<<max(a,b,c)<<endl;cout<<"max(a,b)="<<max(a,b)<<endl;return 0;}int max(int a,int b,int c){if(b>a) a=b;if(c>a) a=c;return a;}3、有5个字符串,要求对它们按由小到大顺序排列,用string方法。
#include <iostream>#include <string>using namespace std;int main(){ int i;string str[5]={"BASIC","C","FORTRAN","C++","PASCAL"};void sort(string []);sort(str);cout<<"the sorted strings :"<<endl;for(i=0;i<5;i++)cout<<str[i]<<" ";cout<<endl;return 0;}void sort(string s[]){int i,j;string t;for (j=0;j<5;j++)for(i=0;i<5-j;i++)if (s[i]>s[i+1]){t=s[i];s[i]=s[i+1];s[i+1]=t;}}4、定义一个求两个数中较小值的函数模板min( ),要求在main( )函数中进行调用求两个浮点型数据和两个整型数据中较小的数。
#include "iostream"#include "string"using namespace std;template<typename T>T min(T a,T b){return a<b?a:b;}int main(){int a=1, b=9;float c=1.23471,d=32.431564;cout<<"The min of "<<a<<" and "<<b<<" is "<<min(a,b)<<endl <<"The min of "<<c<<" and "<<d<<" is "<<min(c,d)<<endl;return 0;}实验三类和对象(一)一、实验目的1、掌握声明类的方法,类和类的成员的概念以及定义对象的方法。
2、掌握类的构造函数与析构函数的概念和使用方法。
3、初步掌握用类和对象编制基于对象的程序。
二、实验要求1、分析下面的程序,写出其运行时的输出结果。
#include <iostream>using namespace std;class Date{public:Date(int,int,int);Date(int,int);Date(int);Date( );void display( );private:int month;int day;int year;};Date∷Date(int m,int d,int y):month(m),day(d),year(y){ }Date∷Date(int m,int d):month(m),day(d) {year=2005;}Date∷Date(int m):month(m){ day=1;year=2005;}Date∷Date( ){ month=1;day=1;year=2005;}void Date∷display( ){cout<<month<<″/″<<day<<″/″<<year<<endl;}int main( ){ Date d1(10,13,2005);Date d2(12,30);Date d3(10);Date d4;d1.display( );d2.display( );d3.display( );d4.display( );return 0;}// 10/13/200512/30/200510/1/20051/1/20052、建立一个名为Student的类,该类有以下几个私有成员变量:学生姓名、学号、性别、年龄。