久久99精品久久久久久琪琪,久久人人爽人人爽人人片亞洲,熟妇人妻无码中文字幕,亚洲精品无码久久久久久久

C++上機(jī)實(shí)驗(yàn)報(bào)告

時(shí)間:2019-05-12 07:35:41下載本文作者:會(huì)員上傳
簡(jiǎn)介:寫(xiě)寫(xiě)幫文庫(kù)小編為你整理了多篇相關(guān)的《C++上機(jī)實(shí)驗(yàn)報(bào)告》,但愿對(duì)你工作學(xué)習(xí)有幫助,當(dāng)然你在寫(xiě)寫(xiě)幫文庫(kù)還可以找到更多《C++上機(jī)實(shí)驗(yàn)報(bào)告》。

第一篇:C++上機(jī)實(shí)驗(yàn)報(bào)告

第二次上機(jī)實(shí)驗(yàn)報(bào)告

姓名:王小寧

班級(jí):

學(xué)號(hào):

031012 1234

第一題:

題目:

編寫(xiě)一個(gè)類(lèi),聲明一個(gè)數(shù)據(jù)成員和一個(gè)靜態(tài)數(shù)據(jù)成員,其構(gòu)造函數(shù)初始化數(shù)據(jù)成員,并把靜態(tài)數(shù)據(jù)成員加1,其析構(gòu)函數(shù)把靜態(tài)數(shù)據(jù)成員減1.(1)編寫(xiě)一個(gè)應(yīng)用程序,創(chuàng)建該類(lèi)的3個(gè)對(duì)象,然后顯示其數(shù)據(jù)成員和靜態(tài)數(shù)據(jù)成員,再析構(gòu)每個(gè)對(duì)象,并顯示它們對(duì)靜態(tài)數(shù)據(jù)成員的影響。

(2)修改該類(lèi),增加靜態(tài)成員函數(shù)并訪問(wèn)靜態(tài)數(shù)據(jù)成員,并聲明靜態(tài)數(shù)據(jù)成員為保護(hù)成員。體會(huì)靜態(tài)成員函數(shù)的使用,靜態(tài)成員之間與非靜態(tài)成員之間互訪問(wèn)題。

編程思想:

首先,定義一個(gè)類(lèi),其中含有兩個(gè)類(lèi)的私有變量,一個(gè)靜態(tài)數(shù)據(jù)變量,定義構(gòu)造函數(shù),將初值賦給兩個(gè)私有變量,并將靜態(tài)數(shù)據(jù)變量加1,并顯示.定義一個(gè)析構(gòu)函數(shù),并通過(guò)析構(gòu)函數(shù)將靜態(tài)成員變量減1.并顯示。

修改以上的類(lèi),增加一個(gè)靜態(tài)成員函數(shù)并通過(guò)靜態(tài)成員函數(shù)來(lái)訪問(wèn)靜態(tài)成員變量。在主函數(shù)中利用一個(gè)指向函數(shù)的指針指向這個(gè)靜態(tài)成員函數(shù),并通過(guò)這個(gè)指針來(lái)訪問(wèn)類(lèi)中的靜態(tài)數(shù)據(jù)。代碼實(shí)現(xiàn):

代碼1:

#include using namespace std;class A { public:

static int count;

A(int a=0,int b=0)

{

X=a;

Y=b;

count++;

cout<<“startcount=”<

count--;

cout<<“overcount=”<

int GetX(){return X;}

int GetY(){return Y;}

private:

int X,Y;};int A::count=0;int main(){ int *countp=&A::count;A z(2,3);cout<<“x=”<

cout<<“x=”<

問(wèn)題及心得:

在這次試驗(yàn)中,我理解了靜態(tài)變量與普通變量之間的差異與聯(lián)系。在實(shí)驗(yàn)過(guò)程中因未初靜態(tài)變量始化而無(wú)法通過(guò)編譯,并且注意到靜態(tài)變量一定要在類(lèi)外初始化。

題目2:

創(chuàng)建一個(gè)Person類(lèi),該類(lèi)中有字符數(shù)組,表示姓名、街道地址、市、省和郵政編碼。其功能有修改姓名、顯示數(shù)據(jù)信息。要求其功能函數(shù)的原型放在類(lèi)定義中,構(gòu)造函數(shù)初始化每個(gè)成員,顯示信息函數(shù)要求把對(duì)象中的完整信息打印出來(lái)。其中數(shù)據(jù)成員為保護(hù)的,函數(shù)為公有的。

編程思想:

創(chuàng)建一個(gè)PERSON類(lèi),定義姓名、街道地址、市、省和郵政編碼分別為CHAR型的指針?biāo)接行妥兞俊T诙x公有型的構(gòu)造函數(shù),并在構(gòu)造函數(shù)中申請(qǐng)動(dòng)態(tài)內(nèi)存來(lái)保存初始化的內(nèi)容,并用相應(yīng)的私有性的指針變量指向,再利用復(fù)制函數(shù)則指針中將會(huì)存放入輸入內(nèi)容。定義公有的析構(gòu)函數(shù)釋放動(dòng)態(tài)申請(qǐng)的空間。定義一個(gè)公有的改變函數(shù)改變其中一個(gè)變量,方法與構(gòu)造函數(shù)相似。

代碼實(shí)現(xiàn):

#include using namespace std;class Person {

private:

char *name;char *street;char *pro;char *city;char *code;

public: Person(char *aname,char *astreet,char *apro,char *acity,char *acode){

name=new char[strlen(aname)+1];

strcpy(name,aname);

street=new char[strlen(astreet)+1];

strcpy(street,astreet);

pro=new char[strlen(apro)+1];

strcpy(pro,apro);

city=new char[strlen(acity)+1];

strcpy(city,acity);

code=new char[strlen(acode)+1];

strcpy(code,acode);

cout<<“constructor”<

delete[] name;

delete[] street;

delete[] pro;

delete[] city;

delete[] code;

cout<<“destructor”<

delete[] name;

name=new char[strlen(aname)+1];

strcpy(name,aname);} void show(){

cout<<“姓名:”<

cout<<“街道地址:”<

cout<<“省份:”<

cout<<“城市:”<

cout<<“郵政編碼:”<

運(yùn)行結(jié)果:

實(shí)驗(yàn)心得: 通過(guò)這個(gè)實(shí)驗(yàn),我們學(xué)會(huì)了對(duì)類(lèi)的私有的字符數(shù)組變量的初始化。利用指針動(dòng)態(tài)分配空間。

第二篇:C++上機(jī)實(shí)驗(yàn)報(bào)告

C++上機(jī)實(shí)驗(yàn)報(bào)告

實(shí)驗(yàn)名稱(chēng):實(shí)驗(yàn)

專(zhuān)業(yè)班級(jí):

名:

學(xué)

號(hào):

實(shí)驗(yàn)日期: 11 實(shí)驗(yàn)

目錄

1.實(shí)驗(yàn)?zāi)康?/p>

2.實(shí)驗(yàn)內(nèi)容

3.程序代碼

4.調(diào)試結(jié)果

5.實(shí)驗(yàn)心得 1.實(shí)驗(yàn)?zāi)康?實(shí)驗(yàn)10(1)進(jìn)一步了解運(yùn)算符重載的概念和使用方法;(2)掌握幾種常用的運(yùn)算符重載的方法;(3)了解轉(zhuǎn)換構(gòu)造函數(shù)的使用方法;

(4)了解在Visual C++6.0環(huán)境下進(jìn)行運(yùn)算符重載要注意的問(wèn)題。實(shí)驗(yàn)11(1)了解繼承在面向?qū)ο蟪绦蛟O(shè)計(jì)中的重要作用;(2)進(jìn)一步理解繼承和派生的概念;

(3)掌握通過(guò)繼承派生出一個(gè)新的類(lèi)的方法;(4)了解虛基類(lèi)的作用和用法。

2.實(shí)驗(yàn)內(nèi)容 實(shí)驗(yàn)10 事先編好程序,上機(jī)進(jìn)行調(diào)試和運(yùn)行程序,分析結(jié)果。(1)聲明一個(gè)復(fù)數(shù)類(lèi)Complex,重載運(yùn)算符“+”,“-”,“*”,“/”,使之能用于復(fù)數(shù)的加,減,乘,除,運(yùn)算符重載函數(shù)作為Complex類(lèi)成員的函數(shù)。編程序,分別求兩個(gè)復(fù)數(shù)之和,差,積和商。(2)聲明一個(gè)復(fù)數(shù)類(lèi)Complex,重載運(yùn)算符“+”,使之能用于復(fù)數(shù)的加法運(yùn)算。參加運(yùn)算的兩個(gè)運(yùn)算量可以都是類(lèi)對(duì)象,也可以其中有一個(gè)是整數(shù),順序任意。

運(yùn)行程序,分別求兩個(gè)復(fù)數(shù)之和,整數(shù)和復(fù)數(shù)之和,(3)有兩個(gè)矩陣a和b,均為2行3列。求兩個(gè)矩陣之和。重載運(yùn)算符“+”,使之能用于兩個(gè)矩陣相加

(4)聲明一個(gè)Teacher(教師)類(lèi)和一個(gè)Student(學(xué)生)類(lèi),二者有一部分?jǐn)?shù)據(jù)成員是相同的,例如num(號(hào)碼),name(名字),sex(性別)。編寫(xiě)程序,將一個(gè)Student對(duì)象(學(xué)生)轉(zhuǎn)換為T(mén)eacher(教師)類(lèi),只將以上三個(gè)相同的數(shù)據(jù)成員移植過(guò)去。可以設(shè)想為:一位學(xué)生大學(xué)畢業(yè)了,留校擔(dān)任教師,他原有的部分?jǐn)?shù)據(jù)對(duì)現(xiàn)在的教師身份來(lái)說(shuō)任然是有用的,應(yīng)當(dāng)保留并成為其教師的數(shù)據(jù)的一部分。

實(shí)驗(yàn)11

事先編寫(xiě)好程序,上機(jī)調(diào)試和運(yùn)行程序,分析結(jié)果。

(1)將教材第11章例11.1的程序片段補(bǔ)充和改寫(xiě)成一個(gè)完整的、正確的程序,用公用繼承方式。在程序中應(yīng)當(dāng)包括輸入數(shù)據(jù)的函數(shù),在程序運(yùn)行時(shí)輸入num,name,sex,age,addr的值,程序應(yīng)輸出以上5個(gè)數(shù)據(jù)的值。

(2)將教材第11章例11.3的程序修改、補(bǔ)充,寫(xiě)成一個(gè)完整、正確的程序,用保護(hù)繼承方式。在程序中應(yīng)包括輸入數(shù)據(jù)的函數(shù)。(3)修改上面第(2)題的程序,改為用公用繼承方式。上機(jī)調(diào)試程序,使之能夠正確運(yùn)行并得到正確的結(jié)果。

對(duì)這兩種繼承方式做比較分析,考慮在什么情況下二者不能互相替換。

(4)分別聲明Teacher(教師)類(lèi)和Cadre(干部)類(lèi),采用多 重繼承方式由這兩個(gè)類(lèi)派生出新類(lèi)Teacher-Cadre(教師兼干部)。要求:

Ⅰ.在兩個(gè)基類(lèi)中都包含姓名、年齡、性別、地址、電話等數(shù)據(jù)成員。

Ⅱ.在Teacher類(lèi)中還包含數(shù)據(jù)成員title(職稱(chēng)),在Cadre類(lèi)中還包含數(shù)據(jù)成員post(職務(wù))。在Teacher-Cadre類(lèi)中還包含數(shù)據(jù)成員wages(工資)。

Ⅲ.在基類(lèi)中的姓名、年齡、性別、地址、電話等數(shù)據(jù)成員用相同的名字,在引用這些數(shù)據(jù)成員時(shí),指定作用域。Ⅴ.在類(lèi)體中聲明成員函數(shù),在類(lèi)外定義成員函數(shù)。

Ⅵ.在派生類(lèi)Teacher-Cadre的成員函數(shù)show中調(diào)用Teacher類(lèi)中的display函數(shù),輸出性命、年齡、性別、職稱(chēng)、地址、電話,然后再用cout語(yǔ)句輸出職務(wù)與工資。

3.程序代碼 實(shí)驗(yàn)10(1)

#include using namespace std;class Complex {public: Complex(){real=0;imag=0;} Complex(double r,double i){real=r;imag=i;} Complex operator +(Complex &c2);Complex operator-(Complex &c2);Complex operator*(Complex &c2);Complex operator/(Complex &c2);void display();private: double real;double imag;};

Complex Complex::operator +(Complex &c2){Complex c;c.real=real+c2.real;c.imag=imag+c2.imag;return c;}

Complex Complex::operator-(Complex &c2){Complex c;c.real=real-c2.real;c.imag=imag-c2.imag;return c;}

Complex Complex::operator*(Complex &c2){Complex c;c.real=real*c2.real-imag*c2.imag;c.imag=imag*c2.real+real*c2.imag;return c;}

Complex Complex::operator/(Complex &c2){Complex c;c.real=(real*c2.real+imag*c2.imag)/(c2.real*c2.real+c2.imag*c2.imag);c.imag=(imag*c2.real-real*c2.imag)/(c2.real*c2.real+c2.imag*c2.imag);return c;} void Complex::display(){cout<<“(”<

(2)

#include using namespace std;class Complex {public: Complex(){real=0;imag=0;} Complex(double r,double i){real=r;imag=i;} Complex operator+(Complex &c2);Complex operator+(int &i);friend Complex operator+(int &,Complex &);void display();private:

double real;

double imag;};

Complex Complex::operator+(Complex &c){return Complex(real+c.real,imag+c.imag);}

Complex Complex::operator+(int &i){return Complex(real+i,imag);}

void Complex::display(){cout<<“(”<

Complex operator+(int &i,Complex &c){return Complex(i+c.real,c.imag);}

int main(){Complex c1(3,4),c2(5,-10),c3;int i=5;c3=c1+c2;cout<<“c1+c2=”;c3.display();c3=i+c1;cout<<“i+c1=”;c3.display();c3=c1+i;cout<<“c1+i=”;c3.display();return 0;}(3)

#include using namespace std;class Matrix {public: Matrix();friend Matrix operator+(Matrix &,Matrix &);void input();void display();private:

int mat[2][3];};

Matrix::Matrix(){for(int i=0;i<2;i++)for(int j=0;j<3;j++)mat[i][j]=0;}

Matrix operator+(Matrix &a,Matrix &b){Matrix c;for(int i=0;i<2;i++)for(int j=0;j<3;j++){c.mat[i][j]=a.mat[i][j]+b.mat[i][j];} return c;}

void Matrix::input(){cout<<“input value of matrix:”<>mat[i][j];}

void Matrix::display(){for(int i=0;i<2;i++){for(int j=0;j<3;j++){cout<

#include using namespace std;class Student {public: Student(int,char[],char,float);int get_num(){return num;} char * get_name(){return name;} char get_sex(){return sex;} void display(){cout<<“num:”<

int num;

char name[20];

char sex;

float score;};

Student::Student(int n,char nam[],char s,float sco){num=n;strcpy(name,nam);sex=s;score=sco;}

class Teacher {public: Teacher(){} Teacher(Student&);Teacher(int n,char nam[],char sex,float pay);void display();private:

int num;

char name[20];

char sex;

float pay;};

Teacher::Teacher(int n,char nam[],char s,float p} {num=n;strcpy(name,nam);sex=s;pay=p;}

Teaxher::Teacher(Student& stud){num=stud.get_num();strcpy(name,stud.get_name());sex=stud.get.sex();pay=1500;}

void Teacher::display(){cout<<“num:”<int main(){Teacher teacher1(10001,”Li“,'f',1234.5),teacher2;Student student1(20010,”Wang“,'m',89.5);cout<<”student1:“<

#include using namespace std;class Student {public:

void get_value()

{cin>>num>>name>>sex;}

void display()

{cout<<”num:“<

cout<<”sex:“<

int num;

char name[10];char sex;};

class Student1:public Student {public: void get_value_1(){get_value();cin>>age>>addr;} void display_1(){cout<<”age:“<

char addr[30];};

int main(){Student1 stud1;stud1.get_value_1();stud1.display();stud1.display_1();return 0;}(2)

#include using namespace std;class Student {public: void get_value();

void display();protected: int num;

char name[10];

char sex;};

void Student::get_value(){cin>>num>>name>>sex;} void Student::display(){cout<<”num:“<

class Student1:protected Student {public: void get_value_1();void display1();private: int age;char addr[30];};

void Student1::get_value_1(){get_value();cin>>age>>addr;} void Student1::display1(){cout<<”num:“<

int main(){Student1 stud1;stud1.get_value_1();stud1.display1();return 0;}(3)

#include using namespace std;class Student {public: void get_value();void display();protected:

int num;

char name[10];

char sex;};

void Student::get_value(){cin>>num>>name>>sex;}

void Student::display(){cout<<”num:“<

class Student1:public Student {public: void get_value_1();void display1();private:

int age;

char addr[30];};

void Student1::get_value_1(){get_value();cin>>age>>addr;} void Student1::display1(){cout<<”num:“<

int main(){Student1 stud1;stud1.get_value_1();stud1.display1();return 0;}(4)

#include #include using namespace std;class Teacher {public:

Teacher(int,char[],char);void display();private: int num;char name[20];char sex;};

Teacher::Teacher(int n,char nam[],char s){num=n;strcpy(name,nam);sex=s;}

void Teacher::display(){cout<<”num:”<

class BirthDate {public: BirthDate(int,int,int);void display();void change(int,int,int);private: int year;int month;int day;};

BirthDate::BirthDate(int y,int m,int d){year=y;month=m;day=d;}

Void BithDate::display(){cout<<”birthday:”<

void BirthDate::change(int y,int m,int d){year=y;month=m;day=d;}

class Professor:public Teacher {public: Professor(int,char[],char,int,int,int,float);void display();void change(int,int,int);private: float area;BirthDate birthday;}

Professor::Professor(int n,char name[20],char s,int y,int m,int d,float a): Teacher(n,name,s),birthday(y,m,d),area(a){}

void Professor::display(){Teacher::display();birthday.display();cout<<”area:”<

Int main(){Professor profl(3012,”Zhang”,’f’,1949,10,1,125.4);cout<

4.調(diào)試結(jié)果

實(shí)驗(yàn)10(1)c1+c2=(8,-6i)c1-c2=(-2,14i)c1*c2=(55,-10i)c1/c2=(-0.2,0.4)(2)c1+c2=(8,-6i)i+c1=(8,4i)c1+i=(8,4i)

(3)

input value of Matrix:11 22 33 44 55 66 input value of Matrix:12 13 14 15 16 17 Matrix a: 11 22 33 44 55 66 Matrix b: 12 13 14 15 16 17 Matrix c=Matrix a + Matrix b : 23 25 47 59 71 83

(4)student1 : num :20010 name:Wang sex:m score;89.5 Teacher2: num:20010 name:Wang sex:m pay:1500

實(shí)驗(yàn)11(1)

10101 Li M 20 Beijing num:10101 name:Li sex:M age:20 address:Beijing

(2)

10101 Li M 20 Beijing num:10101 name:Li sex:M age:20 address:Beijing

(3)

10101 Li M 20 Beijing num:10101 name:Li sex:M age:20 address:Beijing

(4)The original data: num:3012 name:Zhang sex:f area:125.4

The new data: num:3012 name:Zhang sex:f birthday:6/1/1950 area:125.4 5.實(shí)驗(yàn)心得

這一次上機(jī)實(shí)驗(yàn),除了了解到了運(yùn)算符重載的概念和用法,掌握幾種常用的運(yùn)算符重載的方法,了解轉(zhuǎn)換構(gòu)造函數(shù)的使用方法,同時(shí)也能了解虛基類(lèi)的用法,理解繼承與派生的概念。

但是,最主要的,我覺(jué)得,是通過(guò)這一次的上機(jī)實(shí)驗(yàn),我了解到,有的實(shí)驗(yàn)本身是沒(méi)有程序錯(cuò)誤的,但是,也會(huì)由于實(shí)驗(yàn)環(huán)境的影響而不能正常運(yùn)行。換句話說(shuō),有的程序并不能在Visaul C++的環(huán)境下運(yùn)行,而不是程序自身的問(wèn)題。所以,對(duì)于沒(méi)辦法調(diào)試成功的程序,我們也不能一味的認(rèn)為程序有錯(cuò)誤,要學(xué)會(huì)理性的判斷程序的對(duì)錯(cuò),再下結(jié)論。

第三篇:C++上機(jī)實(shí)驗(yàn)報(bào)告5(定稿)

C++程序?qū)嶒?yàn)報(bào)告

實(shí)驗(yàn)五繼承與派生 實(shí)驗(yàn)?zāi)康?/p>

1.學(xué)習(xí)定義和使用類(lèi)的繼承關(guān)系,定義派生類(lèi) 2.熟悉不同繼承方式下對(duì)基類(lèi)成員的訪問(wèn)控制 3.學(xué)習(xí)利用虛基類(lèi)解決二義性問(wèn)題 實(shí)驗(yàn)要求

1.定義一個(gè)基類(lèi)Animal,有私有整型成員變量age,構(gòu)造其派生類(lèi)dog,在其成員函數(shù)SetAge(int n)中直接給age賦值,看看會(huì)有什么問(wèn)題,把a(bǔ)ge改為公有成員變量,還會(huì)有問(wèn)題嗎?編程嘗試。

2.定義一個(gè)基類(lèi)BaseClass,有整型變量Number,構(gòu)造其派生類(lèi)DerivedClass,觀察構(gòu)造函數(shù)和析構(gòu)函數(shù)的執(zhí)行情況。

3.定義一個(gè)車(chē)(vehicle)基類(lèi),具有Maxspeed、Weight等成員,Run、Stop等成員函數(shù),由此派生出自行車(chē)(bicycle)類(lèi)、汽車(chē)(motorcar)類(lèi)。自行車(chē)(bicycle)類(lèi)有高度(Height)等屬性,汽車(chē)(motorcar)類(lèi)有座位數(shù)(SeatNun)等屬性。從bicycle和motorcar派生出摩托車(chē)(motorbicycle)類(lèi),在繼承過(guò)程中,注意把vehicle設(shè)置為虛基類(lèi)。如果不把vehicle設(shè)置為虛基類(lèi),會(huì)有什么問(wèn)題?編程嘗試。實(shí)驗(yàn)內(nèi)容及實(shí)驗(yàn)步驟

1.編寫(xiě)程序定義基類(lèi)Animal,成員變量age定義為私有的。構(gòu)造派生類(lèi)dog,在其成員函數(shù)SetAge(int n)中直接對(duì)age賦值時(shí),會(huì)出現(xiàn)類(lèi)似以下的錯(cuò)誤提示:

error C2248 : ‘a(chǎn)ge’ : cannot access private member declared in class ‘Animal’

error C2248 : ‘a(chǎn)ge’ : cannot access private member declared in class ‘Animal’ 把a(bǔ)ge改為公有成員變量后重新編譯就可以了。程序名:lab7_1.cpp。錯(cuò)誤代碼:

#include using namespace std;

class Animal { private: int age;public: Animal(){};};

class dog:public Animal { public: void SetAge(int n){

age=n;};};

int main(){ dog one;one.SetAge(23);return 0;}

運(yùn)行結(jié)果:

正確代碼:

#include using namespace std;

class Animal { public: int age;public: Animal(){};};

class dog:public Animal { public: void SetAge(int n){

age=n;};};

int main(){ dog one;one.SetAge(23);return 0;}

運(yùn)行結(jié)果:

2.編寫(xiě)程序定義一個(gè)基類(lèi)BaseClass,構(gòu)造其派生類(lèi)DerivedClass,在構(gòu)造函數(shù)和析構(gòu)函數(shù)中用cout輸出提示信息,觀察構(gòu)造函數(shù)和析構(gòu)函數(shù)的執(zhí)行情況。程序名:lab7_2.cpp。

源代碼:

#include using namespace std;class BaseClass { private: int a;public: BaseClass(){

cout<<“基類(lèi)構(gòu)造函數(shù)調(diào)用”<

cout<<“基類(lèi)析構(gòu)函數(shù)調(diào)用”<

class DerivedClass:public BaseClass { private: int b;public: DerivedClass(){

};cout<<“派生類(lèi)構(gòu)造函數(shù)調(diào)用”<

cout<<“派生類(lèi)析構(gòu)函數(shù)調(diào)用”<

int main(){ DerivedClass one;

return 0;}

運(yùn)行結(jié)果:

3.用debug功能跟蹤程序lab7_2的執(zhí)行過(guò)程,觀察基類(lèi)和派生類(lèi)的構(gòu)造函數(shù)和析構(gòu)函數(shù)的執(zhí)行情況。

DEBUG:

4.編寫(xiě)程序定義一個(gè)車(chē)(vehicle)基類(lèi),由此派生出自行車(chē)(bicycle)類(lèi)、汽車(chē)(motorcar)類(lèi),注意把vehicle派生為虛基類(lèi)。再?gòu)腷icycle和motorcar派生出摩托車(chē)(motorcycle)類(lèi),在main()函數(shù)中測(cè)試這個(gè)類(lèi)。程序名:lab7_3.cpp。

編譯成功后,把vehicle設(shè)置為非虛基類(lèi),再編譯一次,此時(shí)系統(tǒng)報(bào)錯(cuò),無(wú)法編譯成功。這是因?yàn)槿舨话裿ehicle設(shè)置為虛基類(lèi),會(huì)出現(xiàn)二義性錯(cuò)誤,程序不能成功編譯。源代碼:

#include using namespace std;

class Vehicle { public: Vehicle(){};int a;void set(){

cout<<“Vehicle調(diào)用”<

class Mortorcar:virtual public Vehicle { public: Mortorcar(){};int b;void set(){

cout<<“Mortorcar調(diào)用”<

class Bicycle:virtual public Vehicle { public: Bicycle(){};int c;void set(){

cout<<“Bicycle調(diào)用”<

class Mortorcycle:public Mortorcar,public Bicycle { public: Mortorcycle(){};int d;void set(){

cout<<“Mortorcycle調(diào)用”<

int main(){ Mortorcycle one;one.a =1;one.b=2;one.set();return 0;} 運(yùn)行結(jié)果:

錯(cuò)誤情況:

思考題

1.如何在已有的類(lèi)的基礎(chǔ)上設(shè)計(jì)新的類(lèi)?

派生一個(gè)新的類(lèi)。

2.基類(lèi)和派生類(lèi)對(duì)象的構(gòu)造順序是怎樣的?

先調(diào)用基類(lèi)的構(gòu)造函數(shù)在調(diào)用派生類(lèi)的構(gòu)造函數(shù)。3.如何利用虛基類(lèi)解決二義性問(wèn)題? 將共同的基類(lèi)設(shè)置為虛基類(lèi),這時(shí)從不同的路徑繼承過(guò)來(lái)的同名數(shù)據(jù)成員在內(nèi)存中就只有一個(gè)副本,同一個(gè)函數(shù)名也只有一個(gè)映射。

第四篇:C++實(shí)驗(yàn)報(bào)告

姓名:XX 學(xué)院:XXX 班級(jí):XXX 學(xué)號(hào):XXX

i++;

} while(i<=10);cout<<“sum=”<

#include using namespace std;void main(){ int i(1),sum(0);

for(i;i<=10,i++)

{

sum+=i;

}

cout<<“sum=”< using namespace std;const float pi=3.1416;void main(){ int itype;

cout<<“不是合法的輸入”< using namespace std;struct riqi { int year;int mon;int day;int hour;int minut;int second;};void main(){ riqi a;cout<<“輸入時(shí)間日期”<>a.year;cout<<“輸入月份”<

實(shí)驗(yàn)

三、函數(shù)的應(yīng)用(2學(xué)時(shí))

1、實(shí)驗(yàn)?zāi)康模?/p>

掌握函數(shù)的定義和調(diào)用方法。練習(xí)重載函數(shù)使用。練習(xí)函數(shù)模板的使用 練習(xí)使用系統(tǒng)函數(shù)。

在main()函數(shù)中提示輸入兩個(gè)整數(shù)x,y,使用cin語(yǔ)句得到x,y的值,調(diào)用pow(x,y)函數(shù)計(jì)算x的y次冪的結(jié)果,再顯示出來(lái)。程序名:lab3_4.cpp。

編寫(xiě)遞歸函數(shù)int fib(int n),在主程序中輸入n的值,調(diào)用fib函數(shù)計(jì)算Fibonacci級(jí)數(shù)。公式為fib(n)=fib(n-1)+fib(n-2),n>2;fib(1)=fib(2)=1。使用if語(yǔ)句判斷函數(shù)的出口,在程序中用cout語(yǔ)句輸出提示信息。程序名:lab3_5.cpp。

7)調(diào)試操作步驟如下:

選擇菜單命令Build|Start Debug |Step In,系統(tǒng)進(jìn)入單步執(zhí)行狀態(tài),程序開(kāi)始運(yùn)行,并出現(xiàn)一個(gè)DOS窗口,此時(shí)光標(biāo)停在main()函數(shù)的入口處。

把光標(biāo)移到語(yǔ)句answer=fib(n)前,從Debug菜單單擊Run To Cursor,在程序運(yùn)行的DOS窗口中按提示輸入數(shù)字10,這時(shí)回到可視界面中,光標(biāo)停在第11行,觀察一下n的值。

從Debug菜單中單擊Step Into,程序進(jìn)入fib函數(shù),觀察一下n的值,把光標(biāo)移到語(yǔ)句return(fib(n-2)+fib(n-1))前,從Debug菜單單擊Run to Cursor,再單擊Step Into,程序遞歸調(diào)用fib函數(shù),又進(jìn)入fib函數(shù),觀察n的值。

繼續(xù)執(zhí)行程序,參照上述的方法,觀察程序的執(zhí)行順序,加深對(duì)函數(shù)調(diào)用和遞歸調(diào)用的理解。

再試試Debug菜單欄中的別的菜單項(xiàng),熟悉Debug的各種方法。

4、實(shí)驗(yàn)原理

C++中函數(shù)的重載使得同樣的函數(shù)名下,只要參數(shù)類(lèi)型、數(shù)目不同時(shí),即可根據(jù)輸入的數(shù)據(jù)進(jìn)行相應(yīng)的函數(shù)調(diào)用,使用起來(lái)簡(jiǎn)單方便。

5、思考與體會(huì)

C++中,函數(shù)的運(yùn)用與之前學(xué)過(guò)的C語(yǔ)言既有相同之處,也有著不同的地方。相同的地方在于格式、用法等框架上的不變。但是C語(yǔ)言中對(duì)于同樣的函數(shù)名是只能夠申明一種函數(shù)的,倘若有相同的函數(shù)名出現(xiàn)系統(tǒng)即會(huì)報(bào)錯(cuò),所以用起來(lái)有時(shí)是極為不便

0

//參數(shù)為兩個(gè)雙精度浮點(diǎn)形的函數(shù) int max1(double a,double b){ a=a>b?a:b;return a;} //參數(shù)為三個(gè)雙精度浮點(diǎn)形的函數(shù) int max1(double a,double b,double c){ a=a>b?a:b;a=a>c?a:c;return a;} void main(void){ int a;double b;a=max1(1,2);cout<

Lab3_3: #include using namespace std;int max1(int a,int b){ a=a>b?a:b;return a;} int max1(int a,int b,int c){ a=a>b?a:b;a=a>c?a:c;return a;}

int main(){ int i,j,k;cout<<“請(qǐng)輸入要比較的3個(gè)數(shù):

”<

2131415

public: Rank rank;int frequency;float voltage;CPU(Rank r,int f,float v){

//構(gòu)造函數(shù)

cout<<“構(gòu)造了一個(gè)CPU”<

rank=r;

frequency=f;

voltage=v;} void run(){

cout<<“CPU開(kāi)始運(yùn)行”<

} void stop(){

cout<<“CPU停止運(yùn)行”<

cout<<“RANK=”<

cout<<“frequency=”<

cout<<“voltage=”<

};

int main(){ CPU cpu(p5,500,2000);cpu.run();cpu.show();cpu.stop();return 0;}

Lab4_2 #include using namespace std;enum Rank{p1=1,p2,p3,p4,p5,p6,p7};//CPU類(lèi) class CPU{ public:

//析構(gòu)函數(shù)-17

computer(Rank r,int f,float v){

CPU cpu(r,f,v);

//定義CPU對(duì)象

RAM ram(1);

//定義RAM對(duì)象

CDROM cdrom(1);

//定義CDROM對(duì)象

cpu.run();

cpu.show();

cpu.stop();} };int main(){ computer com(p4,300,3000);return 0;}

實(shí)驗(yàn)

七、繼承與派生(一、二)4學(xué)時(shí)

1、實(shí)驗(yàn)?zāi)康模?/p>

學(xué)習(xí)定義和使用類(lèi)的繼承關(guān)系,定義派生類(lèi)。熟悉不同繼承方式下對(duì)基類(lèi)成員的訪問(wèn)控制。學(xué)習(xí)利用虛基類(lèi)解決二義性問(wèn)題

2、實(shí)驗(yàn)任務(wù) a)定義一個(gè)基類(lèi)Animal,有私有整型成員變量age,構(gòu)造其派生類(lèi)dog,在其成員函數(shù)SetAge(int n)中直接給age賦值,看看會(huì)有什么問(wèn)題,把a(bǔ)ge改為公有成員變量,還會(huì)有問(wèn)題嗎?編程試試看。b)定義一個(gè)基類(lèi)BaseClass,有整型成員變量Number ,構(gòu)造其派生類(lèi)DerivedClass,觀察構(gòu)造函數(shù)和析構(gòu)函數(shù)的執(zhí)行情況。c)定義一個(gè)車(chē)(vehicle)基類(lèi),具有MaxSpeed、Weight等成員變量,Run、Stop等成員函數(shù),由此派生出自行車(chē)(bicycle)類(lèi)、汽車(chē)(motorcar)類(lèi)。自行車(chē)類(lèi)有高度(height)等屬性,汽車(chē)類(lèi)有座位數(shù)(SeatNum)等屬性。從bicycle和motorcar派生出摩托車(chē)(motorcycle)類(lèi),在繼承過(guò)程中,注意把vehicle設(shè)置為虛基類(lèi)。如果不把vehicle設(shè)置為虛基類(lèi),會(huì)有什么問(wèn)題?編程試試看。

3、實(shí)驗(yàn)步驟

編寫(xiě)程序定義基類(lèi)Animal,成員變量age定義為私有的。構(gòu)造派生類(lèi)dog,在其成員函數(shù)SetAge(int n)中直接對(duì)age賦值時(shí),會(huì)出現(xiàn)類(lèi)似以下的錯(cuò)誤提示:

error C2248:’age’:cannot access private member declared in class ‘Animal’

error C2248:’age’:cannot access private member declared in class ‘Animal’

把a(bǔ)ge改為公有成員變量后重新編譯就可以了。程序名為:lab7_1.cpp

0

確方便我們編程。

6、部分參考代碼

Lab7_1 #include using namespace std;

class Animal{

public: int age;};

class dog:public Animal{ public: int SetAge(int n){

age=n;

return age;} };

void main(void){ int age;dog d;age=d.SetAge(3);cout<<“age=”<

Lab7_2 #include using namespace std;class BaseClass{ public: int Number;BaseClass(){

cout<<“這是父類(lèi)的構(gòu)造函數(shù)”<

cout<<“這是父類(lèi)的析構(gòu)函數(shù)”<

//Motorcycle繼承bicycle和motorcar類(lèi)

class motorcycle:public bicycle,public motorcar{ public: motorcycle(int seat,double H,double MS,double W){

SeatNum=seat;

height=H;

MaxSpeed=MS;

Weight=W;} void show(){

cout<<“seatnum=”<

cout<<“height=”<

cout<<“MaxSpeed=”<

cout<<“weight=”<

int main(){ motorcycle che(3,30.33,90.84,500);che.show();return 0;} 實(shí)驗(yàn)

八、多態(tài)性2學(xué)時(shí)

1、實(shí)驗(yàn)?zāi)康模?/p>

掌握運(yùn)算符重載的方法

習(xí)使用虛函數(shù)實(shí)現(xiàn)動(dòng)態(tài)多態(tài)性。

2、實(shí)驗(yàn)任務(wù)

a)定義Point類(lèi),有坐標(biāo)x,y兩個(gè)成員變量;對(duì)Point類(lèi)重載“++”、“--”運(yùn)算符,實(shí)現(xiàn)對(duì)坐標(biāo)值的改變。

定義一個(gè)車(chē)(vehicle)基類(lèi),有Run、Stop等成員函數(shù),由此派生出自行車(chē)(bicycle)類(lèi)、汽車(chē)(motorcar)類(lèi),從bicycle和motorcar派生出摩托車(chē)(motorcycle)類(lèi),它們都有Run、Stop等成員函數(shù)。觀察虛函的作用。

3、實(shí)驗(yàn)步驟

編寫(xiě)程序定義Point類(lèi),在類(lèi)中定義整型的私有成員變量x,y,定義成員函數(shù)Point& operator++();Point operator++(int);以實(shí)現(xiàn)對(duì)Point類(lèi)重載“++”運(yùn)算符,定義成函數(shù)Point& operator –();Point operator

也就是函數(shù)的重載。

6、部分參考代碼

Lab8_1 #include using namespace std;

class Point{ public: Point(double x=0.0,double y=0.0):xray(x),yray(y){} Point operator++(int);Point operator--(int);void show();private: double xray;double yray;};

Point Point::operator++(int){ return Point(xray++,yray++);}

Point Point::operator--(int){ return Point(xray--,yray--);}

void Point::show(){ cout<<“x坐標(biāo)為”<

int main(){ Point p(4.5,6.5);cout<<“進(jìn)行運(yùn)算前的情況:”<

show(&v);return 0;}

第五篇:上機(jī)實(shí)驗(yàn)報(bào)告格式

請(qǐng)各位同學(xué)按照下列格式寫(xiě):否則按照0分記

上機(jī)實(shí)驗(yàn)報(bào)告格式

Matlab學(xué)習(xí)第?次上機(jī)實(shí)驗(yàn)報(bào)告(第?次)

姓名:???班級(jí):???上機(jī)時(shí)間:??????

1.上機(jī)內(nèi)容

2.建模及算法分析

3.程序

4.小結(jié)

5.參考文獻(xiàn)

將文檔發(fā)到我的郵箱里面

learn_matlab@163.com

下載C++上機(jī)實(shí)驗(yàn)報(bào)告word格式文檔
下載C++上機(jī)實(shí)驗(yàn)報(bào)告.doc
將本文檔下載到自己電腦,方便修改和收藏,請(qǐng)勿使用迅雷等下載。
點(diǎn)此處下載文檔

文檔為doc格式


聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶(hù)自發(fā)貢獻(xiàn)自行上傳,本網(wǎng)站不擁有所有權(quán),未作人工編輯處理,也不承擔(dān)相關(guān)法律責(zé)任。如果您發(fā)現(xiàn)有涉嫌版權(quán)的內(nèi)容,歡迎發(fā)送郵件至:645879355@qq.com 進(jìn)行舉報(bào),并提供相關(guān)證據(jù),工作人員會(huì)在5個(gè)工作日內(nèi)聯(lián)系你,一經(jīng)查實(shí),本站將立刻刪除涉嫌侵權(quán)內(nèi)容。

相關(guān)范文推薦

    上機(jī)實(shí)驗(yàn)報(bào)告

    一. 題目1. 建立一個(gè)學(xué)生檔案,內(nèi)容包括學(xué)號(hào),姓名,年齡,性別,數(shù)學(xué),物理和英語(yǔ)3門(mén)功課成績(jī)。要求實(shí)現(xiàn)以下功能:1) 數(shù)據(jù)輸入;2) 查詢(xún)某個(gè)學(xué)生的成績(jī);3) 按平均排列輸出;4) 統(tǒng)計(jì)某門(mén)課各分?jǐn)?shù)......

    C++課程設(shè)計(jì)實(shí)驗(yàn)報(bào)告(范文)

    C++課程設(shè)計(jì)報(bào)告 設(shè)計(jì)題目:學(xué)院: 專(zhuān)業(yè)班級(jí): 學(xué)生姓名: 學(xué)生學(xué)號(hào): 指導(dǎo)教師: 計(jì)算機(jī)技術(shù)與科學(xué) 3班 樊冠男 40912140 馬軍亮 提交時(shí)間: 2011/1/12 成績(jī): 目錄 C++課程設(shè)計(jì)報(bào)告 第一......

    信息論上機(jī)實(shí)驗(yàn)報(bào)告

    華中科技大學(xué)文華學(xué)院 信息論上機(jī)實(shí)驗(yàn)報(bào)告 專(zhuān)業(yè)年級(jí):10級(jí)通信工程** 學(xué)號(hào):1001******** 姓名:** 指導(dǎo)教師:*** 2012年 04月30日 目錄 1 等長(zhǎng)編碼 ......................... 2......

    《電子商務(wù)》上機(jī)實(shí)驗(yàn)報(bào)告

    上機(jī)實(shí)驗(yàn)報(bào)告 實(shí)驗(yàn)名稱(chēng): 電子商務(wù)模擬實(shí)驗(yàn) 學(xué)生姓名: 班級(jí)學(xué)號(hào): 指導(dǎo)教師: 實(shí)驗(yàn)日期: 電子商務(wù)模擬實(shí)驗(yàn) 一、實(shí)驗(yàn)名稱(chēng) 電子商務(wù)模擬實(shí)驗(yàn) 二、實(shí)驗(yàn)?zāi)康?1.了解電子商務(wù)的框架體......

    會(huì)計(jì)上機(jī)實(shí)驗(yàn)報(bào)告

    會(huì)計(jì)模擬實(shí)驗(yàn)報(bào)告姓名:趙波 班級(jí):工商101班 學(xué)號(hào):101565 指導(dǎo)教師:岳殿民 實(shí)驗(yàn)?zāi)康?會(huì)計(jì)綜合模擬實(shí)驗(yàn)是在學(xué)生掌握了一定的專(zhuān)業(yè)理論知識(shí)的基礎(chǔ)上,以某個(gè)單位在一定時(shí)期內(nèi)發(fā)生的實(shí)......

    電子商務(wù)上機(jī)實(shí)驗(yàn)報(bào)告

    電子商務(wù)上機(jī)實(shí)驗(yàn)報(bào)告 專(zhuān)業(yè)班級(jí): 會(huì)計(jì)11xx班 姓 名: 學(xué) 號(hào): 指導(dǎo)教師: 葉 雙 林 實(shí)驗(yàn)日期:2014.10–2014.11 實(shí)驗(yàn)地點(diǎn):院實(shí)驗(yàn)中心206機(jī)房 一、實(shí)驗(yàn)?zāi)康?利用電子商務(wù)模擬學(xué)習(xí)軟件,......

    數(shù)據(jù)結(jié)構(gòu)上機(jī)實(shí)驗(yàn)報(bào)告

    數(shù)據(jù)結(jié)構(gòu)實(shí)驗(yàn)報(bào)告 課程 數(shù)據(jù)結(jié)構(gòu) _ 院 系 專(zhuān)業(yè)班級(jí) 實(shí)驗(yàn)地點(diǎn)姓 名 學(xué) 號(hào) 實(shí)驗(yàn)時(shí)間 指導(dǎo)老師 數(shù)據(jù)結(jié)構(gòu)上機(jī)實(shí)驗(yàn)報(bào)告1 一﹑實(shí)驗(yàn)名稱(chēng): 實(shí)驗(yàn)一——鏈表 二﹑實(shí)驗(yàn)?zāi)康模?1. 了解線性......

    電算化上機(jī)實(shí)驗(yàn)報(bào)告

    管理學(xué)院會(huì)計(jì)學(xué)專(zhuān)業(yè)上機(jī)實(shí)踐報(bào)告 課程名稱(chēng):會(huì)計(jì)電算化 指導(dǎo)教師: 上機(jī)實(shí)踐名稱(chēng):系統(tǒng)管理與基礎(chǔ)設(shè)置 上機(jī)實(shí)踐編號(hào):實(shí)驗(yàn)一 一、實(shí)驗(yàn)?zāi)康?通過(guò)上機(jī)實(shí)驗(yàn),理解用友企業(yè)級(jí)財(cái)務(wù)軟件系......

主站蜘蛛池模板: 性一交一乱一A片久久99蜜桃| 玩弄中年熟妇正在播放| 成人年无码av片在线观看| 国产在线精品一区在线观看| 亚洲无线码一区二区三区| 亚洲成a人v影院色老汉影院| 国产精品久久久| 免费a级毛片无码免费视| 亚洲精品无码久久久久yw| 欧美成人精品第一区| 婷婷五月亚洲综合图区| 免费无毒永久av网站| 无码少妇精品一区二区免费动态| 久久精品国产99久久久古代| 人妻少妇被猛烈进入中文字幕| 亚洲欧美日韩综合久久久| 国语自产精品视频在线第100页| 国内精品伊人久久久久网站| 国产精品久久久久久久福利| 日日狠狠久久8888偷偷色| 人妻老妇乱子伦精品无码专区| 熟妇人妻一区二区三区四区| 亚洲精品一区久久久久久| 无码日韩人妻精品久久| 久久精品网站免费观看| 无码人妻精品一区二区三区下载| 亚洲性无码一区二区三区| 狼人大香伊蕉国产www亚洲| 久久精品aⅴ无码中文字字幕| 大香伊蕉日本一区二区| 羞羞影院午夜男女爽爽影院网站| 午夜福利三级理论电影| 亚洲 欧美 自拍 小说 图片| 手机午夜电影神马久久| 亚洲日本一区二区三区在线不卡| 亚洲国产精品久久久久婷婷老年| 中国肥老太婆高清video| 97色伦图片97综合影院| 国产在线精品一区二区不卡麻豆| 萝卜视频高清免费视频日本| 3d动漫精品啪啪一区二区下载|