C實驗指導(dǎo)書(2017年度修改版)_第1頁
C實驗指導(dǎo)書(2017年度修改版)_第2頁
C實驗指導(dǎo)書(2017年度修改版)_第3頁
C實驗指導(dǎo)書(2017年度修改版)_第4頁
C實驗指導(dǎo)書(2017年度修改版)_第5頁
已閱讀5頁,還剩38頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

苗暹編王曉東審2017.8!-目錄實驗一 函數(shù)設(shè)計實驗實驗二 類程序設(shè)計實驗實驗三 數(shù)組與指針實驗實驗四 類的繼承與多態(tài)實驗實驗五輸入、輸出流程序設(shè)計實驗實驗六 綜合程序設(shè)計實驗!-實驗一 函數(shù)設(shè)計實驗【實驗?zāi)康摹?.掌握函數(shù)的定義及其調(diào)用。2.掌握函數(shù)參數(shù)的傳遞方式,按值傳遞、按址傳遞和按引用傳遞。精品文檔放心下載3.掌握函數(shù)重載概念與使用方法。4.學習函數(shù)模板的使用?!緦嶒瀮?nèi)容】1.運行參考程序,理解按值傳遞、按地址傳遞和按引用傳遞不同之處。感謝閱讀//參考程序1#include<iostream.h>//使用按值傳遞的方法將兩變量值對換voidswapbyValue(inta,intb)謝謝閱讀{intt;t=a;a=b;b=t;}//使用按地址傳遞的方法將兩變量值對換voidswapbyAddress(int*a,int*b)精品文檔放心下載{intt;t=*a;*a=*b;*b=t;}//使用按引用傳遞的方法將兩變量值對換voidswapbyQuote(int&a,int&b)精品文檔放心下載{intt;//這里訪問與修改的是實際參數(shù)本身,而不是實際參數(shù)的一個副本謝謝閱讀t=a;a=b;b=t;}intmain(){intx,y;x=66;y=98;swapbyValue(x,y);cout<<"x="<<x<<" y="<<y<<endl;精品文檔放心下載swapbyAddress(&x,&y);cout<<"x="<<x<<" y="<<y<<endl;感謝閱讀swapbyQuote(x,y);cout<<"x="<<x<<" y="<<y<<endl;精品文檔放心下載return(0);}!-2.運行參考程序,理解帶缺省形參值函數(shù)的用法。//參考程序2#include<iostream.h>#include<math.h>constdoublePI=3.14159;floatarea(floata=3,doubleb=4,doublec=5);謝謝閱讀intmain(){doubles;s=area();cout<<"s="<<s<<endl;s=area(6);cout<<"s="<<s<<endl;s=area(2,4);cout<<"s="<<s<<endl;s=area(5,6,7);cout<<"s="<<s<<endl;return0;}floatarea(floata,doubleb,doublec)謝謝閱讀{floats,S;s=1/2.0*(a+b+c);S=sqrt(s*(s-a)*(s-b)*(s-c));感謝閱讀returnS;}3.運行參考程序,理解函數(shù)重載概念與基本使用方法。//參考程序3#include<iostream.h>intmin(inta,intb,intc)感謝閱讀{intk;k=(a<b)?a:b;k=(k<c)?k:c;returnk;}intmin(inta,intb){intk;k=(a<b)?a:b;returnk;}intmain(){intx,y,z,m;cout<<"請輸入三個整數(shù):";cin>>x>>y>>z;m=min(x,y,z);cout<<"最小的數(shù)是:"<<m<<"\n";cout<<"請輸入兩個整數(shù):";cin>>x>>y;m=min(x,y);cout<<"最小的數(shù)是:"<<m<<"\n";return(0);}!-4.運行參考程序,理解函數(shù)模板概念與基本使用方法。//參考程序4#include<iostream.h>template<typenameT>Tmin(Ta,Tb){return(a<b)?a:b;}intmain(){intx,y;cout<<"請輸入兩個整數(shù):";cin>>x>>y;cout<<"最小的整數(shù)是:"<<min(x,y)<<"\n";精品文檔放心下載floatx1,y1;cout<<"請輸入兩個實數(shù):";cin>>x1>>y1;cout<<"最小的實數(shù)是:"<<min(x1,y1)<<"\n";感謝閱讀return(0);}5.編程計算圓臺體積(要求上底和下底半徑帶默認形參值)。感謝閱讀(提示:體積公式為1H(R2R2R1R2)精品文檔放心下載3 1 2可附加頁!-6.用函數(shù)重載方法編寫求面積程序,要求能計算圓、矩形、三角形面積。精品文檔放心下載可附加頁!-7.應(yīng)用函數(shù)模板求數(shù)組中的最大數(shù),要求分別處理整型、浮點型數(shù)據(jù)。感謝閱讀8.建立一個簡單的銀行賬戶系統(tǒng)。關(guān)于賬戶的信息有:戶名、賬號、余額。對賬戶的管理有:開戶、存款、取款、查詢余額等功能。用結(jié)構(gòu)化程序設(shè)計方法設(shè)計一個程序,使該程序能對銀行賬戶的信息進行上述操作管理。感謝閱讀參考程序框架(為簡單起見,只考慮對一個賬戶信息進行管理):感謝閱讀!-#include<iostream.h>#include<conio.h> //getch()要用到此頭文件精品文檔放心下載#include<stdlib.h> //system("cls")清屏函數(shù)用到此頭文件感謝閱讀#include<string.h>//定義一個賬戶結(jié)構(gòu)體structAccount{ charmName[10];longmSN;floatmBalance;};//開戶voidgetAcc(structAccount*p)精品文檔放心下載{cout<<"請輸入姓名、帳號、存入錢數(shù):"<<endl;謝謝閱讀cout<<"姓名:";cin>>p->mName;cout<<"帳號:";cin>>p->mSN;cout<<"存入錢數(shù):";cin>>p->mBalance;}//往賬戶中存款,存款金額為amountvoiddeposit(structAccount*p)精品文檔放心下載{floatamount;cout<<"存款金額:";cin>>amount;p->mBalance=p->mBalance+amount;感謝閱讀}//從賬戶中取款,取款金額為amount(請考慮透支情況)精品文檔放心下載voidwithdraw(structAccount*p)謝謝閱讀{}!-//*****查詢帳戶當前余額*****voidgetBalance(structAccount*p)謝謝閱讀{}//主菜單voidmenu(void){ system("cls"); //清屏cout<<"-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*"<<endl;cout<<"-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*"<<endl;感謝閱讀cout<<" 簡易銀行帳戶系統(tǒng)"<<endl<<endl;謝謝閱讀cout<<"1:開戶"<<endl;cout<<"2:存款"<<endl;cout<<"3:取款"<<endl;cout<<"4:查詢余額"<<endl;cout<<"5:退出"<<endl<<endl;精品文檔放心下載cout<<"-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*"<<endl;精品文檔放心下載cout<<"-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*"<<endl;感謝閱讀cout<<endl<<endl<<endl;}//主函數(shù)intmain(){ intcho;structAccountp;//定義一個銀行賬戶結(jié)構(gòu)體變量while(1)謝謝閱讀{ menu();do{ cout<<"pleaseinputselection:"<<endl;精品文檔放心下載cin>>cho;}while(cho<1||cho>5);switch(cho){ case1:getAcc(&p);break;case2:deposit(&p);break;case3:withdraw(&p);break;case4:getBalance(&p);break;case5:return0;}}return(0);}!-【思考題】1.回答按值傳遞、按地址傳遞和按引用傳遞有何不同?2.重載函數(shù)和函數(shù)模板有何區(qū)別?什么情況下使用重載函數(shù)?什么情況下使用函數(shù)模板?精品文檔放心下載!-實驗二 類程序設(shè)計實驗【實驗?zāi)康摹?.掌握類和對象的概念、定義和使用方法。2.學習數(shù)據(jù)成員與成員函數(shù)的訪問方式。3.掌握構(gòu)造函數(shù)、拷貝構(gòu)造函數(shù)和析構(gòu)函數(shù)的使用方法。謝謝閱讀4.掌握類的組合使用方法。5.熟悉類模板的定義和使用方法?!緦嶒瀮?nèi)容】1.閱讀下列程序,寫出執(zhí)行結(jié)果:#include<iostream.h>classCircle精品文檔放心下載{public:Circle(floatradius){Radius=radius;cout<<"構(gòu)造函數(shù)被調(diào)用"<<endl;}~Circle(){cout<<"析構(gòu)函數(shù)被調(diào)用!"<<endl;}感謝閱讀floatGetArea(){return3.14*Radius*Radius;}精品文檔放心下載private:floatRadius;};intmain(){floatradius;cout<<"請輸入圓的半徑:";cin>>radius;Circleobj(radius);cout<<"半徑為"<<radius<<"圓的面積為:"<<obj.GetArea()<<endl;return(0);感謝閱讀}#include<iostream.h>classCircle感謝閱讀{public:Circle(floatradius){Radius=radius;cout<<"構(gòu)造函數(shù)被調(diào)用"<<endl;}Circle(Circle&p){Radius=p.Radius;cout<<"拷貝構(gòu)造函數(shù)被調(diào)用"<<endl;}!-~Circle(){cout<<"析構(gòu)函數(shù)被調(diào)用!"<<endl;}感謝閱讀floatGetArea(){return3.14*Radius*Radius;}感謝閱讀private:floatRadius;};intmain(){floatradius;cout<<"請輸入圓的半徑:";cin>>radius;Circleobj1(radius);Circleobj2(obj1);cout<<"對象1的面積為:"<<obj1.GetArea()<<endl;精品文檔放心下載cout<<"對象2的面積為:"<<obj2.GetArea()<<endl;感謝閱讀return(0);}(3) #include<iostream>usingnamespacestd;classStudent{public:Student(intnum,char*n);~Student();精品文檔放心下載

//構(gòu)造函數(shù)//析構(gòu)函數(shù)voiddisplay();private:intnumber;char*name;

//學號//姓名};Student::Student(intnum,char*n)感謝閱讀{number=num;name=newchar[strlen(n)+1];//用new為name分配堆內(nèi)存strcpy(name,n);感謝閱讀cout<<"執(zhí)行Student類構(gòu)造函數(shù)"<<endl;謝謝閱讀}Student::~Student(){deletename;cout<<"執(zhí)行Student類析構(gòu)函數(shù)"<<endl;精品文檔放心下載}voidStudent::display(){cout<<"學號:"<<number<<endl;謝謝閱讀cout<<"姓名:"<<name<<endl;}intmain(){Studentstud1(2017001,"John");感謝閱讀stud1.display();return0;}!-2.設(shè)計一個銀行賬戶(Account)類,包含戶名、帳號以及當前余額屬性,可完成開戶、存款、取款和查詢余額等行為。銀行賬戶類的定義如下:謝謝閱讀classAccount{public:Account(charname[],longnum,floatamount); //類的有參構(gòu)造函數(shù)感謝閱讀Account(); //類的無參構(gòu)造函數(shù)voiddeposit(floatamount); //往賬戶中存款精品文檔放心下載intwithdraw(floatamount); //從賬戶中取款謝謝閱讀floatgetBalance(); //查詢余額感謝閱讀private:charmName[20]; //銀行賬戶的戶名longmSN; //本賬戶的帳號floatmBalance; //本賬戶當前的余額感謝閱讀};請根據(jù)上述給定的類,完善其相應(yīng)的構(gòu)造函數(shù)及成員函數(shù)的定義,并執(zhí)行主函數(shù)實現(xiàn)測試。感謝閱讀參考程序框架:#include<iostream>usingnamespacestd;classAccount{public:Account(charname[],longnum,floatamount); //類的有參構(gòu)造函數(shù)感謝閱讀Account(); //類的無參構(gòu)造函數(shù)voiddeposit(floatamount); //往賬戶中存款謝謝閱讀intwithdraw(floatamount); //從賬戶中取款精品文檔放心下載floatgetBalance(); //查詢余額謝謝閱讀private:charmName[20]; //銀行賬戶的戶名longmSN; //本賬戶的帳號floatmBalance; //本賬戶當前的余額感謝閱讀};//有參構(gòu)造函數(shù)的實現(xiàn)Account::Account(charname[],longnum,floatamount)精品文檔放心下載{strcpy(mName,name);mSN=num;mBalance=amount;}//類的無參構(gòu)造函數(shù)Account::Account(){}//存款"<<endl;簡單銀行帳戶系統(tǒng)"<<endl<<endl;!-voidAccount::deposit(floatamount)謝謝閱讀{mBalance=mBalance+amount;}//取款,考慮透支情況intAccount::withdraw(floatamount)感謝閱讀{}//查詢余額floatAccount::getBalance()精品文檔放心下載{}//主菜單voidmenu(void){ system("cls"); //清屏cout<<"-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*"<<endl;cout<<"-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*"<<endl;感謝閱讀cout<<"cout<<"1.存款cout<<"2:取款"<<endl;cout<<"3:查詢余額"<<endl;cout<<"4:退出"<<endl<<endl;感謝閱讀cout<<"-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*"<<endl;感謝閱讀cout<<"-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*"<<endl;精品文檔放心下載cout<<endl<<endl<<endl;}intmain(){intcho,m;charname[20];longnum;floatamount;精品文檔放心下載cout<<"請輸入開戶信息:"<<endl<<endl;謝謝閱讀cout<<"姓名:";cin>>name;cout<<"帳號:";cin>>num;cout<<"存款金額:";精品文檔放心下載cin>>amount;Accountp(name,num,amount); //定義銀行賬戶類對象謝謝閱讀while(1){menu();//從指定的輸入流中提取一個字符,防止屏幕一閃而過!-do{cout<<"請輸入選擇:"<<endl;cin>>cho;}while(cho<1||cho>4);switch(cho){case1:cout<<"存款金額:";cin>>amount;p.deposit(amount);break;case2:cout<<"取款金額:";cin>>amount;m=p.withdraw(amount);if(m==0)cout<<"透支!"<<endl;elsecout<<"取款成功!"<<endl;break;case3:cout<<"余額為:"<<p.getBalance()<<endl;謝謝閱讀break;case4:return0;}cout<<endl<<"敲回車繼續(xù)!"<<endl;感謝閱讀cin.sync(); //清空輸入緩沖區(qū)的內(nèi)容cin.get();}}3.設(shè)計一個股票(Stock)類,包含股票名稱、股票代碼、股票的數(shù)量、每股的價格、股票的總值等屬性,可完成獲得股票(用構(gòu)造函數(shù)完成)、增持、賣出股票、更新股票價格、顯示所持股票的信息等行為。精品文檔放心下載!-可附加頁!-4.設(shè)計一個用于學生管理的Student類,屬性有:學號、年齡、性別、出生日期、身份證號等。其中“出生日期”聲明為一個“日期”類的內(nèi)嵌子對象。用成員函數(shù)實現(xiàn)對學生信息的錄入和顯示。要求包括:構(gòu)造函數(shù)和析構(gòu)函數(shù)、拷貝構(gòu)造函數(shù)、組合。精品文檔放心下載可附加頁!-5.設(shè)計復(fù)數(shù)類,實現(xiàn)復(fù)數(shù)的+、-、*、/運算。(附加題)謝謝閱讀可附加頁!-【思考題】1.C++語言中類和結(jié)構(gòu)體類型有何異同?2.什么時候程序會調(diào)用其構(gòu)造函數(shù)?3.什么時候程序會自動調(diào)用析構(gòu)函數(shù)?4.類的組合在什么情況下使用?!-實驗三 數(shù)組與指針實驗【實驗?zāi)康摹?.學習使用數(shù)組數(shù)據(jù)對象。2.掌握指針的使用方法。3.學習通過動態(tài)內(nèi)存分配實現(xiàn)動態(tài)數(shù)組的定義和使用,并體會指針在其中的作用。精品文檔放心下載4.掌握靜態(tài)成員的使用方法。5.練習通過Debug觀察指針的內(nèi)容及其所指對象的內(nèi)容。感謝閱讀【實驗內(nèi)容】1.運行下列程序,觀察運行結(jié)果。(1)#include<iostream.h>classArrayElem{intx;public:ArrayElem(inti){x=i;}//帶參數(shù)的構(gòu)造函數(shù)intgetx(){returnx;}感謝閱讀};intmain(){ArrayElemobs[4]={-1,-2,-3,-4}; //創(chuàng)建對象數(shù)組并初始化精品文檔放心下載for(inti=0;i<4;i++)cout<<"obs["<<i<<"].getx():"<<obs[i].getx()<<"\n";//訪問數(shù)組元素的成員感謝閱讀return(0);}(2)#include<iostream.h>classNumClass{intnum;public:voidset_num(intval){num=val;}感謝閱讀voidshow_num(){cout<<"Thenumis:"<<num<<"\n";}感謝閱讀};intmain(){NumClassob,*p;ob.set_num(10);ob.show_num();感謝閱讀p=&ob;p->set_num(20);p->show_num();謝謝閱讀return(0);}

//聲明一個對象和指向?qū)ο蟮闹羔?/通過對象ob直接調(diào)用成員函數(shù)//使對象指針p指向?qū)ο髈b//通過指針調(diào)用成員函數(shù)精品文檔放心下載(3)#include<iostream.h>classNumClass{intnum;public:voidset_num(intval){num=val;}精品文檔放心下載voidshow_num(){cout<<"Thenumis:"<<num<<"\n";}謝謝閱讀};!-intmain(){NumClassob[2],*p; //聲明一個對象數(shù)組和對象指針精品文檔放心下載ob[0].set_num(10);ob[1].set_num(20); //通過對象數(shù)組名和下標來訪問精品文檔放心下載p=&ob[0]; //將對象數(shù)組的首元素地址賦給指針精品文檔放心下載p->show_num(); //通過指針顯示數(shù)組元素精品文檔放心下載p++; p->show_num();return(0);}(4)#include<iostream.h>classNumClass{intnum;public:voidset_num(intval){num=val;}精品文檔放心下載voidshow_num(){cout<<"Thenumis:"<<num<<"\n";}感謝閱讀};intmain(){NumClass*p=newNumClass[2]; //動態(tài)創(chuàng)建一個對象數(shù)組謝謝閱讀p[0].set_num(10);p[1].set_num(20); //通過指針訪問數(shù)組元素的成員精品文檔放心下載p[0].show_num();p[1].show_num(); //通過指針顯示數(shù)組元素精品文檔放心下載delete[]p; //刪除整個對象數(shù)組return(0);}2.用對象數(shù)組實現(xiàn)一個簡單的銀行賬戶管理系統(tǒng),完成多個用戶的開戶、存款、取款和查詢余額等行為。感謝閱讀#include<iostream.h>#include<string.h>#include<stdlib.h> //system("cls")清屏函數(shù)和exit()用到此頭文件精品文檔放心下載#include<conio.h> //getch()要用到此頭文件精品文檔放心下載classAccount{private:charmName[10];longmSN;floatmBalance;public:Account();voiddeposit();intwithdraw();voidgetBalance();longgetmSN(){returnmSN;}謝謝閱讀};

//銀行賬戶的戶名//本賬戶的帳號//本賬戶當前的余額//無參構(gòu)造函數(shù)//往賬戶中存款//從賬戶中取款//查詢余額//取得客戶的帳號Account::Account()//無參構(gòu)造函數(shù),從鍵盤輸入信息進行初始化謝謝閱讀{!-}//往賬戶中存款,存款金額為amountvoidAccount::deposit(){}//從賬戶中取款,取款金額為amountintAccount::withdraw(){}//查詢帳戶當前余額voidAccount::getBalance()精品文檔放心下載{}!-//菜單函數(shù)voidmenu(void){}//主函數(shù)intmain(){intcho,n,r,i,flag=0;longaNo;cout<<"要開的賬戶數(shù)目為:"<<endl;cin>>n;Account*p; //定義對象指針p=newAccount[n]; //動態(tài)創(chuàng)建對象數(shù)組謝謝閱讀while(1){menu();do{cout<<"請根據(jù)菜單進行操作選擇:"<<endl;謝謝閱讀cin>>cho;// getch(); 清//除鍵盤緩沖區(qū)內(nèi)容,為下一次正確讀入做準備。精品文檔放心下載}while(cho<1||cho>4);switch(cho){case1://存款cout<<"請輸入帳號:";cin>>aNo;for(i=0;i<n;i++){if((p+i)->getmSN()==aNo){flag=1;(p+i)->deposit();(p+i)->getBalance();break;感謝閱讀}}if(flag==0)cout<<"對不起,輸入帳號有錯誤!"<<endl;謝謝閱讀getch();!-break;case2://取款case3://查詢case4://退出return0;}}delete[]p; //釋放空間return0;}!-3.N個學生數(shù)據(jù),包括學號、姓名、成績,要求輸出這些學生數(shù)據(jù)并計算平均分。設(shè)計一個學生類,包括學號、姓名和成績數(shù)據(jù)成員外,還有兩個靜態(tài)變量sum和num,分別存放總分和人數(shù),另有兩個普通成員函數(shù)setdata()和disp(),分別用于給數(shù)據(jù)成員賦值和輸出數(shù)據(jù)成員的值,另有一個靜態(tài)成員函數(shù)avg(),它用于計算平均分。在main()函數(shù)中定義了一個對象數(shù)組用于存儲輸入的學生數(shù)據(jù)。精品文檔放心下載可附加頁!-4.改進實驗內(nèi)容2,添加利息計算。(附加題)可附加頁!-【思考題】1.數(shù)組之間如何賦值?2.引用和指針有何區(qū)別?3.對那些類型的數(shù)據(jù)不能使用引用?!-實驗四 類的繼承與多態(tài)實驗【實驗?zāi)康摹?.理解軟件重用性的一種形式——繼承。2.能夠通過繼承已有的類創(chuàng)建新類。3.理解基類和派生類的概念。4.能夠在派生類中使用構(gòu)造函數(shù)和析構(gòu)函數(shù)5.學習虛基類在解決二義性問題中的作用。6.熟悉多態(tài)分類,理解靜態(tài)聯(lián)編和動態(tài)聯(lián)編概念。7.掌握運算符重載方法?!緦嶒瀮?nèi)容】1.分析程序,寫出下列程序的運行結(jié)果:(1) #include<iostream.h>classBase{private:intbase_priv_dat;protected:intbase_prot_dat;public:voidbase_show();};classDerived:publicBase{private:intderived_priv_dat;public:voidderived_show();};voidBase::base_show(){base_priv_dat=1; //基類函數(shù)可以操縱私有和保護型基類數(shù)據(jù)謝謝閱讀base_prot_dat=2;cout<<"base_priv_dat="<<base_priv_dat<<'\t'謝謝閱讀<<"base_prot_dat="<<base_prot_dat<<endl;謝謝閱讀}voidDerived::derived_show()謝謝閱讀{derived_priv_dat=3;base_prot_dat=4;//派生函數(shù)可以處理保護型基類數(shù)據(jù),但不能處理私有基類數(shù)據(jù)cout<<"derived_priv_dat="<<derived_priv_dat<<'\t'精品文檔放心下載<<"base_prot_dat="<<base_prot_dat<<endl;感謝閱讀base_show(); //派生函數(shù)可以調(diào)用公有基類函數(shù)感謝閱讀}intmain(){Derivedd_obj;d_obj.base_show(); //可用派生對象調(diào)用基類函數(shù)精品文檔放心下載!-d_obj.derived_show();return(0);}#include<iostream.h>#include<string.h>classPerson{public:Person(constchar*s) //帶參數(shù)的構(gòu)造函數(shù)感謝閱讀{name=newchar[strlen(s)+1];感謝閱讀strcpy(name,s);}~Person(){delete[]name;} //析構(gòu)函數(shù)做清理工作精品文檔放心下載char*GetName(){returnname;}謝謝閱讀protected:char*name;};classStudent:publicPerson感謝閱讀{char*major;public:Student(constchar*s,constchar*m):Person(s)謝謝閱讀{major=newchar[strlen(m)+1];strcpy(major,m);}謝謝閱讀~Student(){delete[]major;} //派生類析構(gòu)函數(shù)感謝閱讀char*GetMajor(){returnmajor;}感謝閱讀

//派生類構(gòu)造函數(shù)};intmain(){Studentstu("WZQ","Electricautomatization");cout<<"studentNameis:"<<stu.GetName()<<"Majoris:"精品文檔放心下載<<stu.GetMajor()<<endl;return(0);}2.編譯運行下列程序,分析出現(xiàn)編譯錯誤的原因,并給出解決辦法。謝謝閱讀#include<iostream>#include<string>usingnamespacestd;classPerson{public:Person(stringthe_name,stringthe_gender,string the_id)精品文檔放心下載{name=the_name;gender=the_gender;id_number=the_id;cout<<"Person類構(gòu)造函數(shù)被調(diào)用!"<<endl;謝謝閱讀}voidshow()!-{cout<<"姓名:"<<name<<endl;cout<<"性別:"<<gender<<endl;感謝閱讀cout<<"身份證號碼:"<<id_number<<endl;謝謝閱讀}protected:stringname; //姓名stringgender; 性//別stringid_number; //身份證號碼};classStudent:publicPerson謝謝閱讀{public:Student(stringn,stringg,stringi,stringc):Person(n,g,i)謝謝閱讀{classname=c;cout<<"Student類構(gòu)造函數(shù)被調(diào)用!"<<endl;謝謝閱讀}protected:stringclassname; //學生所在班級感謝閱讀};classTeacher:publicPerson謝謝閱讀{public:Teacher(stringn,stringg,stringi,stringd):Person(n,g,i)感謝閱讀{department=d;cout<<"Teacher類構(gòu)造函數(shù)被調(diào)用!"<<endl;精品文檔放心下載}protected:stringdepartment; //教師所在單位謝謝閱讀};classAssistant:publicStudent,publicTeacher精品文檔放心下載{public:Assistant(stringn,stringg,stringi,stringc,stringd):Student(n,g,i,c),Teacher(n,g,i,d)感謝閱讀{}voiddisp(){show();cout<<"班級:"<<classname<<endl;精品文檔放心下載cout<<"系部:"<<department<<endl;精品文檔放心下載}};intmain(){Assistanta("李瑋","男",,"軟件141","電信系");謝謝閱讀a.disp();return0;}!-解決方法一:(通過作用域符號來唯一標識)可附加頁!-解決方法二:(虛基類技術(shù))可附加頁!-4.開發(fā)一個簡單的大學人員管理程序,該程序可以管理大學的一些基本人員:學生(student)、教師(teacher)。首先設(shè)計一個虛基類person。通過該類保存人員的最基本信息:姓名(name)、年齡(age)、性別(sex)和身份證號碼。然后使用該類派生出學生類student、教師類teacher,在其中添加各自的特性,如在student類中添加如下信息:專業(yè)(speciality),在teacher類中添加院系(department)等。還有部分教師在工作的同時在職修讀學位,因此同時具有教師和學生雙重身份,所以由student類和teacher類再次派生出stuTeacher類。為每個類定義一個輸出函數(shù)print(),輸出該類相關(guān)信息。感謝閱讀可附加頁!-5.用運算符重載設(shè)計復(fù)數(shù)類,實現(xiàn)復(fù)數(shù)的+、-、*、/運算。感謝閱讀可附加頁!-【思考題】1.組合與繼承的區(qū)別是什么?2.公有繼承、保護繼承和私有繼承分別在什么情況下使用?精品文檔放心下載3.什么是虛基類?有何作用?4.靜態(tài)聯(lián)編和動態(tài)聯(lián)編有什么區(qū)別?5.簡述空的虛函數(shù)與純虛函數(shù)的區(qū)別?6.簡述抽象類和具體類的區(qū)別?//默認以換行符結(jié)束!-實驗五輸入、輸出流程序設(shè)計實驗【實驗?zāi)康摹?.理解輸入/輸出流相關(guān)概念2.掌握輸入/輸出流的常用操作3.理解文件概念4.掌握文件流的常用操作【實驗內(nèi)容】1.分析程序,寫出下列程序的運行結(jié)果:(1)#include<iostream>usingnamespacestd;intmain(){char*str="Howareyou!";cout<<str<<endl;cout.write(str,8);cout.put('\n');cout.write(str+4,8);cout.put('\n');return0;}(2)#include<iostream>usingnamespacestd;constintSIZE=30;intmain(){charbuffer[SIZE];cout<<"Enterasentencewithcin>>:"<<endl;謝謝閱讀cin>>buffer;cout<<"Thesentenceis:"<<buffer<<endl;精品文檔放心下載return0;}(3)#include<iostream>usingnamespacestd;constintSIZE=30;intmain(){charbuffer[SIZE];cout<<"Enterasentencewithcin.get():"<<endl;謝謝閱讀cin.get(buffer,SIZE);!-cout<<"Thesentenceis:"<<buffer<<endl;精品文檔放心下載return0;}(4)#include<iostream>usingnamespacestd;constintSIZE=30;intmain(){charbuffer[SIZE];cout<<"Enterasentencewithcin.getline():"<<endl;謝謝閱讀cin.getline(buffer,SIZE,'?'); //以字符?作為終止符謝謝閱讀cout<<"Thesentenceis:"<<buffer<<endl;精品文檔放心下載return0;}(5)#include<iostream>usingnamespacestd;constintSIZE=30;intmain(){charbuffer[SIZE];cout<<"Enterasentencewithcin.read():"<<endl;感謝閱讀cin.read(buffer,18);//從輸入流提取18字節(jié)寫入字符數(shù)組cout<<"Thesentenceis:"<<buffer<<endl;謝謝閱讀return0;}(6)include<iostream>#include<iomanip>usingnamespacestd;intmain(){intx=123;floaty=456.789;cout<<setw(8)<<x<<endl<<y<<endl; //設(shè)置域?qū)挒?感謝閱讀cout<<setprecision(4)<<y<<endl; //設(shè)置浮點數(shù)有效位感謝閱讀cout<<s

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論