《面向?qū)ο蟪绦蛟O(shè)計(jì) C》試驗(yàn)報(bào)告_第1頁
《面向?qū)ο蟪绦蛟O(shè)計(jì) C》試驗(yàn)報(bào)告_第2頁
《面向?qū)ο蟪绦蛟O(shè)計(jì) C》試驗(yàn)報(bào)告_第3頁
《面向?qū)ο蟪绦蛟O(shè)計(jì) C》試驗(yàn)報(bào)告_第4頁
《面向?qū)ο蟪绦蛟O(shè)計(jì) C》試驗(yàn)報(bào)告_第5頁
已閱讀5頁,還剩11頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

本文格式為Word版,下載可任意編輯——《面向?qū)ο蟪绦蛟O(shè)計(jì)C》試驗(yàn)報(bào)告《面向?qū)ο蟪绦蛟O(shè)計(jì)》試驗(yàn)教學(xué)大綱

試驗(yàn)學(xué)時(shí):32

課程性質(zhì):專業(yè)必修課教材及參考書:

1.《C++語言程序設(shè)計(jì)習(xí)題與試驗(yàn)指導(dǎo)》,鄭莉、傅仕星編著,北京:清華大學(xué)出版社,20232.《C++語言程序設(shè)計(jì)(第三版)》,鄭莉、董淵編著,北京:清華大學(xué)出版社,2023大綱執(zhí)筆人:李曉寧大綱審定人:劉芳、茍仕蓉、左友東

試驗(yàn)個(gè)數(shù):13適用專業(yè):軟件工程

試驗(yàn)學(xué)分:1

一、試驗(yàn)課的性質(zhì)與任務(wù)

本課程試驗(yàn)大綱是面向計(jì)算機(jī)專業(yè)學(xué)生開設(shè)的《C++程序設(shè)計(jì)》試驗(yàn)課計(jì)劃指導(dǎo)大綱,是依據(jù)《面向?qū)ο蟪绦蛟O(shè)計(jì)》課程教學(xué)計(jì)劃指導(dǎo)大綱編制。本課程主要陳述了利用C++進(jìn)行程序設(shè)計(jì)的思想和方法,既有面向過程和面向?qū)ο蟮某绦蛟O(shè)計(jì)的理論知識(shí),又包括極強(qiáng)的實(shí)踐應(yīng)用能力的培養(yǎng)。本試驗(yàn)大綱力求結(jié)合該課程教學(xué)計(jì)劃大綱的相應(yīng)內(nèi)容,由淺入深的指導(dǎo)學(xué)生了解和把握如何利用C++程序設(shè)計(jì)語言進(jìn)行程序設(shè)計(jì),提高學(xué)生的動(dòng)手能力,做到理論和實(shí)踐相結(jié)合,培養(yǎng)學(xué)生理解,分析程序,編寫,調(diào)試程序的能力,使之能把程序設(shè)計(jì)應(yīng)用到今后的專業(yè)學(xué)習(xí)中。

二、試驗(yàn)課程目的與要求

1.試驗(yàn)?zāi)康模?/p>

通過本課程的學(xué)習(xí),使學(xué)生把握面向過程的程序設(shè)計(jì)思想和編程思路,初步把握面向?qū)ο蟮某绦蛟O(shè)計(jì)思想,學(xué)會(huì)調(diào)試程序,能獨(dú)立編寫實(shí)用的小型程序。2.試驗(yàn)要求:

1)學(xué)生應(yīng)當(dāng)自始至終貫徹課程中所介紹的程序設(shè)計(jì)風(fēng)格,養(yǎng)成良好的編程習(xí)慣;2)應(yīng)獨(dú)立完成所布置習(xí)題。為保證盡量在統(tǒng)一安排的上機(jī)時(shí)間內(nèi)編譯運(yùn)行通過程序,學(xué)生應(yīng)事先設(shè)計(jì)好程序。

三、試驗(yàn)項(xiàng)目及內(nèi)容提要

面向?qū)ο蟪绦蛟O(shè)計(jì)試驗(yàn)課程序號(hào)試驗(yàn)項(xiàng)目編號(hào)試驗(yàn)類型試驗(yàn)名稱學(xué)時(shí)必做選做學(xué)分?jǐn)?shù)基本操作驗(yàn)證綜合設(shè)計(jì)內(nèi)容提要面向?qū)ο蟪绦蛟O(shè)計(jì)試驗(yàn)課程序號(hào)試驗(yàn)項(xiàng)目編號(hào)試驗(yàn)類型試驗(yàn)名稱學(xué)時(shí)必做選做學(xué)分?jǐn)?shù)基本操作驗(yàn)證綜合設(shè)計(jì)內(nèi)容提要10十111213四、試驗(yàn)內(nèi)容安排:

試驗(yàn)一VisualC++6.0開發(fā)環(huán)境應(yīng)用入門

(驗(yàn)證性試驗(yàn)2學(xué)時(shí))

1.目的要求:

了解VisualC++6.0的特點(diǎn),熟悉了解VisualC++6.0的開發(fā)環(huán)境,學(xué)習(xí)使用VisualC++6.0編寫標(biāo)準(zhǔn)的C++控制臺(tái)應(yīng)用程序。2.試驗(yàn)內(nèi)容:

123456789一二三函數(shù)的應(yīng)用四類與對(duì)象五C++程序的結(jié)構(gòu)六數(shù)組、指針與字符串七繼承與派生八多態(tài)性九群體類和群體數(shù)據(jù)的組織泛型程序設(shè)計(jì)與C++標(biāo)準(zhǔn)模板庫十流內(nèi)庫與輸入、輸一出十異常處理二十Windows應(yīng)用程三序框架VisualC++開發(fā)環(huán)境入門C++簡單程序設(shè)計(jì)2426246242222√√√√√√√√√√√√√√√√熟悉VC++開發(fā)環(huán)境基本算法結(jié)構(gòu)√函數(shù)設(shè)計(jì)、模板函數(shù)√類的設(shè)計(jì)與使用√√作用域與生存期,靜態(tài)成員三種常見編程元素的使用√派生類的設(shè)計(jì)與使用√運(yùn)算符重載、動(dòng)態(tài)多態(tài)√群體類的設(shè)計(jì)√STL庫的使用√常用輸入輸出方法√異常處理機(jī)制的設(shè)計(jì)VC開發(fā)Windows程序方法使用VisualC++來建立一個(gè)非圖形化的標(biāo)準(zhǔn)C++程序,編譯、運(yùn)行教材中的例3-3,用公式法求解PI的數(shù)值,并嘗試?yán)闷渌椒ㄇ蠼獠@得一致的結(jié)果。

π=16arctan(1/5)-4arctan(1/239)

arctan(x)=x-x3/3+x5/5-x7/7+?求π=?

#includeusingnamespacestd;intmain(){

doublea,b;

doublearctan(doublex);a=16.0*arctan(1/5.0);b=4.o*aarctan(1/239.0);cout1e-15){

f=e/I;

r=(i%4==1)?r+f:r-f;e=e*sqr;I+=2;}

returnr;}

#include#includemain(){ints=1;

floatn=1,t=1,pi=0;while(fabs(t)1e-4){

pi=pi+t;n=n+2;s=-s;t=s/n;}pi=pi*4;

printf(\}

1

3.主要儀器設(shè)備及軟件:PC+Windows2000+VC6.0

試驗(yàn)二C++簡單程序設(shè)計(jì)試驗(yàn)(驗(yàn)證性試驗(yàn)4學(xué)時(shí))

1.目的要求:

會(huì)編寫簡單的C++程序;復(fù)習(xí)基本數(shù)據(jù)類型變量和常量的應(yīng)用;復(fù)習(xí)運(yùn)算符與表達(dá)式的應(yīng)用;復(fù)習(xí)結(jié)構(gòu)化程序設(shè)計(jì)基本控制結(jié)構(gòu)的應(yīng)用;復(fù)習(xí)自定義數(shù)據(jù)類型的應(yīng)用;練習(xí)使用簡單的輸入輸出;觀測(cè)頭文件的作用;學(xué)會(huì)使用VC6.0開發(fā)環(huán)境中的debug調(diào)試功能;熟練程序設(shè)計(jì)中的技巧;2.試驗(yàn)內(nèi)容:

1)給定一個(gè)字符變量輸出其二進(jìn)制形式。例如chara=’a’;其二進(jìn)制為00100001。#includeusingnamespacestd;

intmain(){

charch;

intj,k[8]={0};

cout>ch;

for(j=0;j=0;j--){coutusingnamespacestd;

intmain(){charch;intj,k[8]={0};cout>ch;for(j=0;j=0;j--){cout

}

k[j]=k[j]^1;}

cout=0;j--){cout

enumcolor{red=0,yellow,blue,green,black};boolisNum(inti){

intj=0;

for(intk=0;k>kreturnj==3?true:false;}

voidprintResult(inti){

for(intk=0;k>k

caseyellow:printf(\break;caseblue:printf(\break;casegreen:printf(\break;caseblack:printf(\break;default:

printf(\break;}}

printf(\}

voidmain(){

intj=0;

printf(\可能的方案有:\\n\for(inti=0;iusingnamespacestd;

intFibonacci(inti){

if(i==1)return0;else{if(i==2)return1;

elsereturnFibonacci(i-1)+Fibonacci(i-2);}}

intmain(){intn,j,i;cin>>n;

for(i=1;iusingnamespacestd;intMAX1(inta,intb){

if(a>=b)returna;elsereturnb;}

intMAX1(inta,intb,intc){

if(a>=b){if(a=b)returna;elsereturnb;}

doubleMAX1(doublea,doubleb,doublec){

if(a>=b){if(a>a>>b;

cout>a>>b>>c;

cout>i>>j;

cout>i>>j>>k;

coutusingnamespacestd;

voidSHENGC(doublei,doublej){

if(i>i>>j;SHENGC(i,j);}

3.主要儀器設(shè)備及軟件:PC+Windows2000+VC6.0

試驗(yàn)四類與對(duì)象試驗(yàn)(設(shè)計(jì)性試驗(yàn)4學(xué)時(shí))

1.目的要求:

把握類的定義和使用;把握類對(duì)象的聲明;復(fù)習(xí)具有不同訪問屬性的成員的訪問方式;觀測(cè)構(gòu)造函數(shù)和析構(gòu)函數(shù)的執(zhí)行過程;學(xué)習(xí)類組合使用方法;使用VC++的debug調(diào)試功能

觀測(cè)程序流程,跟蹤觀測(cè)類的構(gòu)造函數(shù)、析構(gòu)函數(shù)、成員函數(shù)的執(zhí)行順序。2.試驗(yàn)內(nèi)容:

1)定義一個(gè)CPU類,包含等級(jí)(Rank)、頻率(frequency)、電壓(voltage)等屬性,有兩個(gè)公有成員函數(shù)run、stop。其中,rank為枚舉類型CPU__Rank,定義為enumCPU_Rank{P1=1,P2,P3,P4,P5,P6,P7},frequency為單位是MHz的整型數(shù),voltage為浮點(diǎn)型的電壓值。觀測(cè)構(gòu)造函數(shù)和析構(gòu)函數(shù)的調(diào)用順序。

#includeusingnamespacestd;

enumCPU_Rank{P1=1,P2,P3,P4,P5,P6,P7};classCPU{

public:CPU();~CPU();voidrun(enumCPU_Rankr,intf,doublev);voidstop();private:enumCPU_RankRank;intfrequency;doublevoltage;};

CPU::CPU(){

coutusingnamespacestd;

classCPU{public:CPU(){coutusingnamespacestd;classbody{

public:body(){cout>i>>j;a.set(i,j);a.show();}

4)(選做)設(shè)計(jì)一個(gè)用于人事管理的People(人員)類??紤]到通用性,這里只抽象出所有類型人員都具有的屬性:number(編號(hào))、sex(性別)、birthday(出生日期)、id(身份證號(hào))等等。其中“出生日期〞定義一個(gè)“日期〞類內(nèi)嵌子對(duì)象。用成員函數(shù)實(shí)現(xiàn)對(duì)人員信息錄入和顯示。要求包括:構(gòu)造函數(shù)和析構(gòu)函數(shù)、拷貝構(gòu)造函數(shù)、內(nèi)聯(lián)成員函數(shù)、類組合。

3.主要儀器設(shè)備及軟件:PC+Windows2000+VC6.0

試驗(yàn)五C++程序的結(jié)構(gòu)試驗(yàn)(設(shè)計(jì)性試驗(yàn)2學(xué)時(shí))

1.目的要求:

觀測(cè)程序運(yùn)行中變量的作用域、生存期和可見性;學(xué)習(xí)類的靜態(tài)成員的使用;學(xué)習(xí)多文件結(jié)構(gòu)在C++程序中的使用。2.試驗(yàn)內(nèi)容:

1)運(yùn)行下面的程序,觀測(cè)變量X、Y的值。(刪除)

//lab5_1.cpp#includevoidfnl();intx=1,y=2;intmain(){coutusingnamespacestd;

classClient{

private:

staticcharSeverName[10];staticintClientnum;public:Client(){cout>SeverName;}voidshow();};

intClient::Clientnum=0;

charClient::SeverName[10]=\//Client.cpp

voidClient::show(){

coutusingnamespacestd;

classbody{

public:body(){cout>body::i;coutbody::i)cout>i>>j;a.set(i,j);a.show();}

4)定義Boat;和Car兩個(gè)類,二者都有weight屬性,定義二者的一個(gè)友元函數(shù)totalWeight(),計(jì)算二者的和。

#includeusingnamespacestd;

classBoat{

public:Boat(){coutweight=i;}

voidCar::set(doublei){

this->weight=i;}

doubleTotalweight(classBoat

m=j.weight+k.weight;

returnm;}

intmain(){

doublej;Boatb;Carc;

cout>j;b.set(j);

cout>j;c.set(j);

cout

usingnamespacestd;

classpoint{

public:point(){cout>p[i][j];}}

voidpoint::show(){inti,j;

for(i=0;iusingnamespacestd;

classzhuz{

public:zhuz(){cout>p[i][j];}}

voidshow(){inti,j;for(i=0;iusingnamespacestd;

classzhuz{

public:zhuz(){cout

/*zhuz(zhuzp=newint[3][3];for(i=0;i>p[i][j];}}

voidshow(){inti,j;for(i=0;iusingnamespacestd;

voidString(char*a,char*b){

char*p;p=a;

while(*p!=NULL)p++;

while(*b!=NULL){*p=*b;p++;b++;}

*p=*b;}

intmain(){

charshuz1[20];charshuz2[20];

cout>shuz1;

cout>shuz2;

String(shuz1,shuz2);

cout#includeusingnamespacestd;

intmain(){

stringshuz1=\

cout>shuz1;

cout>shuz2;shuz1+=shuz2;

cout

usingnamespacestd;

classBody{

public:Body(){cout>k;

Body*people=newBody[k];for(i=0;i>a;people[i].Gethigh(a);cout>b;people[i].Getweight(b);}

cout10)(選做)修改試驗(yàn)4中的選做試驗(yàn)中的people(人員)類。具有的屬性如下:姓名charname[11]、編號(hào)charnumber[7]、性別charsex[3]、生日birthday、身份證號(hào)charid[16]。其中“出生日期〞定義為一個(gè)“日期〞類內(nèi)嵌對(duì)象。用成員函數(shù)實(shí)現(xiàn)對(duì)人員信息的錄入和顯示。要求包括:構(gòu)造函數(shù)和析構(gòu)函數(shù)、拷貝構(gòu)造函數(shù)、內(nèi)嵌構(gòu)造函數(shù)、內(nèi)聯(lián)成員函數(shù)、類組合。在測(cè)試程序中定義people類的對(duì)象數(shù)組,錄入數(shù)據(jù)并顯示,觀測(cè)構(gòu)造函數(shù)和析構(gòu)函數(shù)的調(diào)用順序。

3.主要儀器設(shè)備及軟件:Windows2000+VC6.0

試驗(yàn)七繼承與派生試驗(yàn)

(驗(yàn)證性試驗(yàn)4學(xué)時(shí))

1.目的要求:

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

1)定義一個(gè)基類Animal,有私有整型成員變量age,構(gòu)造其派生類dog,在其成員函數(shù)SetAge(intn)中直接給age賦值,看看會(huì)有什么問題,把a(bǔ)ge改為公有或保護(hù)成員變量,還會(huì)有問題嗎?編程試試看,說明白什么原則?

#includeusingnamespacestd;

classAnimal{

public:Animal(){coutusingnamespacestd;

classBasClass{

public:BasClass(){

coutusingnamespacestd;classvehicle{

public:vehicle(){cout>i>>j;MaxSpeed=i;Weight=j;}voidStop(){cout人員姓名編號(hào)性別出生日期身份證號(hào)函數(shù)日期年月日函數(shù)學(xué)生班號(hào)函數(shù)教師職務(wù)部門函數(shù)研究生專業(yè)導(dǎo)師函數(shù)助教生

圖7-1試驗(yàn)任務(wù)4的類圖

3.主要儀器設(shè)備及軟件:PC+Windows2000+VC6.0

試驗(yàn)八多態(tài)性試驗(yàn)(設(shè)計(jì)性試驗(yàn)2學(xué)時(shí))

1.目的要求:

把握運(yùn)算符重載的方法;學(xué)習(xí)使用虛函數(shù)實(shí)現(xiàn)動(dòng)態(tài)多態(tài)性。2.試驗(yàn)內(nèi)容:

1)定義Point類,有坐標(biāo)_x,_y兩個(gè)成員變量;對(duì)Point類重載“++〞(自增)、“--〞(自減)運(yùn)算符,實(shí)現(xiàn)對(duì)坐標(biāo)的改變。(提醒:注意前++和后++)

#includeusingnamespacestd;classpoint{

public:point(){

cout>i>>j;a.set(i,j);a.show();++a;a.show();--a;a.show();a++;a.show();a--;a.show();}

2)定義一個(gè)車(vehicle)基類,有Run、Stop等虛成員函數(shù),由此派生出自行車(bicycle)類、汽車(motorcar)類,從bicycle到motorcar派生出摩托車(motorcycle)類,它們都有Run、Stop等成員函數(shù),利用基類指針或引用虛函數(shù),觀測(cè)虛函數(shù)的作用,說說多態(tài)的含義,假使不采用虛函數(shù)會(huì)是什么樣的結(jié)果?#includeusingnamespacestd;classvehicle{

public:vehicle(){coutRun();p->Stop();}

intmain(){vehiclea0,*p;bicyclea1;motorcara2;

}

m

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論