![面向?qū)ο蟪绦蛟O(shè)計(jì)(C)實(shí)驗(yàn)指導(dǎo)書(shū)_第1頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-3/14/937a573f-a947-4b1a-b4ab-fb0712bab0fb/937a573f-a947-4b1a-b4ab-fb0712bab0fb1.gif)
![面向?qū)ο蟪绦蛟O(shè)計(jì)(C)實(shí)驗(yàn)指導(dǎo)書(shū)_第2頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-3/14/937a573f-a947-4b1a-b4ab-fb0712bab0fb/937a573f-a947-4b1a-b4ab-fb0712bab0fb2.gif)
![面向?qū)ο蟪绦蛟O(shè)計(jì)(C)實(shí)驗(yàn)指導(dǎo)書(shū)_第3頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-3/14/937a573f-a947-4b1a-b4ab-fb0712bab0fb/937a573f-a947-4b1a-b4ab-fb0712bab0fb3.gif)
![面向?qū)ο蟪绦蛟O(shè)計(jì)(C)實(shí)驗(yàn)指導(dǎo)書(shū)_第4頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-3/14/937a573f-a947-4b1a-b4ab-fb0712bab0fb/937a573f-a947-4b1a-b4ab-fb0712bab0fb4.gif)
![面向?qū)ο蟪绦蛟O(shè)計(jì)(C)實(shí)驗(yàn)指導(dǎo)書(shū)_第5頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-3/14/937a573f-a947-4b1a-b4ab-fb0712bab0fb/937a573f-a947-4b1a-b4ab-fb0712bab0fb5.gif)
版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、1/22面向?qū)ο蟪绦蛟O(shè)計(jì)(C+)課程實(shí)驗(yàn)指導(dǎo)書(shū)安陽(yáng)工學(xué)院計(jì)算機(jī)科學(xué)與信息工程學(xué)院軟件工程教研室2018.9編號(hào):課程總學(xué)時(shí):64實(shí)驗(yàn)學(xué)時(shí):32課程總學(xué)分:3.5實(shí)驗(yàn)學(xué)分:先修課程:C語(yǔ)言程序設(shè)計(jì)適用專(zhuān)業(yè):計(jì)算機(jī)科學(xué)與技術(shù),網(wǎng)絡(luò)工程,軟件工程一、本課程實(shí)驗(yàn)的主要目的與任務(wù)面向?qū)ο蟪绦蛟O(shè)計(jì)(C+)是計(jì)算機(jī)專(zhuān)業(yè)學(xué)生的一門(mén)專(zhuān)業(yè)基礎(chǔ)課。C+是一種高效而又實(shí)用的程序設(shè)計(jì)語(yǔ)言,它既可以進(jìn)行過(guò)程化程序設(shè)計(jì),也可以進(jìn)行面向?qū)ο蟪绦蛟O(shè)計(jì),因此成為了編程人員最廣泛使用的工具。主要任務(wù)是介紹C+語(yǔ)言中的數(shù)據(jù)類(lèi)型,運(yùn)算,語(yǔ)句結(jié)構(gòu)及其程序設(shè)計(jì)的基本方法。使學(xué)生掌握一門(mén)高級(jí)程序設(shè)計(jì)語(yǔ)言,了解面向?qū)ο蟪绦蛟O(shè)計(jì)的基本概念與方法
2、,進(jìn)而學(xué)會(huì)利用C+語(yǔ)言學(xué)會(huì)解決一般應(yīng)用問(wèn)題,從而掌握面向voidmain()2/22對(duì)象程序設(shè)計(jì)的基本知識(shí)和基本技能。并為后續(xù)的專(zhuān)業(yè)課程奠定程序設(shè)計(jì)基礎(chǔ)。實(shí)驗(yàn)1C+基礎(chǔ)一、實(shí)驗(yàn)?zāi)康?.加強(qiáng)學(xué)生掌握C+的基本知識(shí)點(diǎn);2.加強(qiáng)學(xué)生掌握I/O流;3加強(qiáng)學(xué)生進(jìn)一步理解函數(shù)的用法;4理解引用的概念及應(yīng)用。三、實(shí)驗(yàn)內(nèi)容1.用函數(shù)返回值實(shí)現(xiàn)統(tǒng)計(jì)A類(lèi)學(xué)生和B類(lèi)學(xué)生個(gè)數(shù), 平均分大于等于80的為A類(lèi),其余為B類(lèi)。四. 實(shí)驗(yàn)指導(dǎo)1.參考程序:#includeintmain()coutMynameisJone。coutcout2。coutendl。2.參考程序:#include#include/要用到格式控制符do
3、ubleamount=22.0/7。coutamountendl。coutsetprecision(0)amountendlsetprecision(1)amountendlsetprecision(2)amountendlsetprecision(3)amountendlsetprecision(4)amountendl。coutsetiosflags(ios:fixed)。coutsetprecision(8)amountendl。coutsetiosflags(ios:scientific)amountendl。coutsetprecision(6)。重新設(shè)置成原默認(rèn)設(shè)置3.參考程序:#
4、include#includeintmain()(intnumber=1001。coutDecimal:decnumberendl3/22Hexadecimal:hexnumberendlOctal:octnumberendl。return04.參考程序:#include#includeintmain()(coutsetfill(*)setw21endlsetw(3)21endlsetw(4)21endlcoutsetfill()。/恢復(fù)默認(rèn)設(shè)置return05.參考程序:#include#includevoidmain()(coutsetiosflags(ios:right)setw(5)1
5、setw(5)2setw(5)3endl。coutsetiosflags(ios:left)setw(5)1setw(5)2setw(5)3endl。6.參考程序:#includevoidmain()(constfloatPI=3.1415926f。floatr。floatz,s。coutr。z=2*PI*r。s=PI*r*r。cout圓的周長(zhǎng)為:zendl。cout圓的面積為:sendl。7.參考程序:#includeusingnamespacestd。intarray64=60,80,90,75,(75,85,65,77,80,88,90,98,(89,100,78,81,(62,68,6
6、9,75,(85,85,77,91。int&level(intgrade,intsize,int&tA,int&tB)。intmain()(inttypeA=0,typeB=0。intstudent=6。intgradesize=4。for(inti=0。istudent。i+)/處理所有的學(xué)生level(arrayi,gradesize,typeA,typeB)+。/函數(shù)調(diào)用作為左值coutnumberoftypeAistypeAendl。coutnumberoftypeBistypeBendl。/system(PAUSE)。return0。int&level
7、(intgrade,intsize,int&tA,int&tB)intsum=0。for(inti=0。i=80)returntA。/typeAstudentelsereturntB。/typeBstudent5/22運(yùn)行結(jié)果:NE八教學(xué)面向?qū)背绦蛟撝?I)程序代瑪?shù)?章待nunberoFtypeAis3nunheroftvpeBis3請(qǐng)按任意鍵繼續(xù)-實(shí)驗(yàn)2類(lèi)和對(duì)象1、實(shí)驗(yàn)?zāi)康模赫莆疹?lèi)的定義,根據(jù)具體需求設(shè)計(jì)類(lèi);深入理解C+中類(lèi)的封裝性;會(huì)根據(jù)類(lèi)創(chuàng)建各種對(duì)象;掌握對(duì)象的各種成員的使用方法。2、實(shí)驗(yàn)內(nèi)容定義一個(gè)滿(mǎn)足如下要求的Date類(lèi)。(1)用下面的格式輸出日期:日/月/年;
8、(2)可運(yùn)行在日前上加一天操作;(3)設(shè)置日期。參考代碼:#includeclassDatepublic:voidDisplay()。voidAddOneDay()。voidSetDay(inty,intm,intd)。protected:boolLegal(inty,intm,intd)。boolIsLeapYear(inty)。intyearintmonthintday6/22。voidDate:Display()(coutday/month/year9999|y1|d1|m12)returnfalseintdayLimit=31。switch(m)case4:case6:case9:ca
9、se11:dayLimit-。if(m=2)dayLimit=IsLeapYear(y)?29:28。return(ddayLimit)?false:trueboolDate:IsLeapYear(inty)(return!(y%4)&(y%100)|!(y%400)。intmain()(Dated。d.SetDay(2018,2,28)。d.Display()。d.AddOneDay()。7/22d.Display()。system(PAUSE)。運(yùn)行結(jié)果:實(shí)驗(yàn)3繼承與派生1、實(shí)驗(yàn)?zāi)康模豪斫饫^承的概念,學(xué)習(xí)如何使用基類(lèi)成員,了解基類(lèi)成員在派生類(lèi)中的訪問(wèn)控制;理解類(lèi)的派生對(duì)代碼復(fù)用的作
10、用。2、實(shí)驗(yàn)內(nèi)容:設(shè)計(jì)一個(gè)人員類(lèi)person和一個(gè)日期類(lèi)date,由人員類(lèi)派生出學(xué)生類(lèi)Student和教師類(lèi)professor,學(xué)生類(lèi)和教師類(lèi)的數(shù)據(jù)成員birthday為日期類(lèi)。參考代碼:#include#includeusingnamespacestd。classdate(public:date()(coutyearmonthday。voiddisplay()8/22(coutyear-month-day。private:intyear。intmonth。intday。classperson(protected:char*name。public:person。person:person()(
11、charnamestr50。coutnamestrname=newcharstrlen(namestr)+1。strcpy(name,namestr)。classstudent:publicperson(private:intID。intscoredatebirthdaypublic:student()(coutIDcoutscorevoiddisplay()(coutThebasicinformation:endlcoutIDtnametscoretbirthday.display()coutendl。classprofessor:publicperson9/22(public:profes
12、sor()(coutNo。coutmajorvoiddisplay()(coutThebasicinformation:endlcouttNotnametmajortbirthday.display()。coutendlprivate:intNocharmajor10。datebirthdayintmain()(studentstustu.display()professorprofprof.display()system(PAUSE)。return0運(yùn)行結(jié)果:10/22實(shí)驗(yàn)4多態(tài)1、實(shí)驗(yàn)?zāi)康模赫莆蘸瘮?shù)的概念及應(yīng)用方法;理解多態(tài)性的運(yùn)用和作用。2、實(shí)驗(yàn)內(nèi)容:新建一個(gè)基類(lèi)shape類(lèi)是一個(gè)表示形
13、狀的抽象類(lèi),area()為求圖形面積的函數(shù)。請(qǐng)從shape類(lèi)派出矩形類(lèi)(rectangle)、三角形類(lèi)(triangle)、圓類(lèi)(circles)、并給出具體的求面積函數(shù)。參考代碼:#include#includeusingnamespacestd。classshapepublic:virtualdoublearea()=0。virtualvoiddisplay()=0。shape()。classrectangle:publicshapepublic:rectangle(doublea=1,doubleb=1)x=a。y=b。doublearea()returnx*y。voiddisplay(
14、)(coutarea()endl。private:doublex。doubley。classtriangle:publicshape(11/22public:triangle(doublea=1,doubleb=1,doublec=1)(x=a。y=b。z=c。doublearea()(doublel=(x+y+z)/2。return(sqrt(l-x)*(l-y)*(l-z)*l)。voiddisplay()(coutarea()endlprivate:doublexdoubleydoublezclasscircles:publicshape(public:circles(doubleR=1
15、)(r=R。doublearea()(return3.14*r*r。voiddisplay()(coutarea()display()。p=newtriangle(3,4,5)。p-display()。p=newcircles(2)。p-display()。system(PAUSE)。return0。運(yùn)行結(jié)果:實(shí)驗(yàn)5運(yùn)算符重載1、實(shí)驗(yàn)?zāi)康模赫莆者\(yùn)算符重載的概念及使用方法,掌握特殊運(yùn)算符的重載要求和方法。2、實(shí)驗(yàn)內(nèi)容:定義整數(shù)集合類(lèi)intSet,實(shí)現(xiàn)如下功能:定義類(lèi)的構(gòu)造函數(shù),并根據(jù)需要可以定義多個(gè)構(gòu)造函數(shù)。(1)Clear函數(shù):清空整數(shù)集合(2)IsEmpty():整數(shù)集合是否空集;(3)Is
16、MemberOf():判斷某個(gè)整數(shù)是否在整數(shù)集合內(nèi)(4)Operator+:增加一個(gè)整數(shù)到整數(shù)集合中(5)Operator-:從整數(shù)集合中刪除一個(gè)整數(shù)元素;(6)Operator=:判斷兩個(gè)整數(shù)集合是否相等;(7)Operator*:求兩個(gè)整數(shù)結(jié)合的交集;(8)Operator+:求兩個(gè)整數(shù)集合的交集;(9)Operator=:整數(shù)集合的對(duì)象之間的賦值;(10)Operator:輸出整數(shù)集合中的元素。提示:類(lèi)intSet可以用數(shù)組的方式定義整數(shù)集合。例如:intelement200:保存整數(shù)集合數(shù)據(jù);13/22intElementNum:指示整數(shù)集合的最后一個(gè)元素位置注意:一個(gè)整數(shù)集合中不允許
17、有相同元素存在,二是集合中的元素沒(méi)有順序。參考代碼:#includeusingnamespacestd。classintSetpublic:intSet()。intSet(inta,intsize)。voidClear()。boolIsEmpty()。boolIsMemberOf(inta)。booloperator+(inta)。booloperator-(inta)。booloperator=(intSet&set)。intSetoperator+(intSet&set)。intSetoperator*(intSet&set)。voidoperator=(intSe
18、t&set)。friendostream&operator(ostream&,intSet&)。protected:intelement100。intElementNum。初始化整數(shù)集合元素intSet:intSet()for(inti=0。i=100)ElementNum=99。elseElementNum=size-1。for(inti=0。i=ElementNum。i+)elementi=ai。for(inti=size。i100。i+)elementi=0。14/22/清空整數(shù)集合元素voidintSet:Clear()(for(inti=0。i100。
19、i+)(elementi=0。ElementNum=-1。判斷整數(shù)集合是否為空boolintSet:IsEmpty()(if(ElementNum=-1)returnfalse。elsereturntrue。/判斷元素是否在整數(shù)集合中boolintSet:IsMemberOf(inta)(for(inti=0。iElementNum。i+)if(elementi=a)returntrue。returnfalse/往集合中增加一個(gè)元素boolintSet:operator+(inta)(if(IsMemberOf(a)returntrueelse(if(ElementNum=99)returnf
20、alseelse(ElementNum+。elementElementNum=a。returntrue/從集合中刪除一個(gè)元素boolintSet:operator-(inta)15/22(intpos。if(!IsMemberOf(a)returnfalse。for(inti=0。i=ElementNum。i+)(if(elementi=a)(pos=i。break。for(inti=pos。iElementNum。i+)elementi=elementi+1。ElementNum-returntrue/判斷兩個(gè)整數(shù)集合是否相等boolintSet:operator=(intSet&s
21、et)(boolEqual。if(ElementNum!=set.ElementNum)returnfalse。for(inti=0。i=ElementNum。i+)(Equal=false。for(intj=0。jset.ElementNum。j+)(if(elementi=set.elementi)(Equal=true。break。if(!Equal)returnfalse。returntrue。16/22/求兩個(gè)集合的交集intSetintSet:operator+(intSet&set)(inta100,size=0。for(inti=0。i=ElementNum。i+)fo
22、r(intj=0。j=set.ElementNum。j+)(if(elementi=set.elementj)(asize=elementi。size+。breakoreturnintSet(a,size)。求兩個(gè)集合的并集intSetintSet:operator*(intSet&set)(inta100,size。for(inti=0。i=ElementNum。i+)ai=elementi。size=ElementNum+1。for(inti=0。i=set.ElementNum。i+)if(IsMemberOf(set.elementi)continueelse(if(size=
23、99)breakasize=set.elementi。size+returnintSet(a,size)整數(shù)集合對(duì)象間賦值voidintSet:operator=(intSet&set)(for(inti=0。i=set.ElementNum。i+)elementi=set.elementi。ElementNum=set.ElementNum。/輸出整數(shù)集合中的元素ostream&operator(ostream&os,intSet&s)(for(inti=0。i=s.ElementNum。i+)oselementis.elementiendl。returnos
24、。intmain()(inta7=1,2,3,4,5,6,7。intb6=5,6,7,8,9,0。intSetS1(a,7),S2(b,6),S3。S3=S1+S2。coutS3。system(PAUSE)。return0。17/22運(yùn)行結(jié)果:實(shí)驗(yàn)6輸入輸出流1、實(shí)驗(yàn)?zāi)康模赫莆樟鞯母拍?掌握文件的打開(kāi)與關(guān)閉;掌握文件的讀寫(xiě)操作;2、實(shí)驗(yàn)內(nèi)容:定義一個(gè)學(xué)生類(lèi),包含學(xué)生的學(xué)號(hào)、姓名和成績(jī)等基本信息,將學(xué)生信息寫(xiě)入二進(jìn)制文件student.dat中,實(shí)現(xiàn)對(duì)學(xué)生信息的顯示、查詢(xún)和刪除等基本功能。參考代碼:#include#includeusingnamespacestd。classStudent(pr
25、ivate:longNo。char*Name。intScore。18/22public:Student(longstu_no=0,char*stu_name=NULL,intstu_score=0)。longGetNo()。char*GetName()。intGetScore()。voidShowStudent()。Student:Student(longstu_no,char*stu_name,intstu_score)(No=stu_no。Name=stu_name。Score=stu_score。voidStudent:ShowStudent()(coutNotNametScoreend
26、l。longStudent:GetNo()(returnNochar*Student:GetName()(returnNameintStudent:GetScore()(returnScoreintmain()(Studentstu3=Student(200907001,Liming”,70),Student(200907002,Hujun”,80),Student(200907003,Wangtian,90)。inti,k,pos。fstreaminfile,outfile。outfile.open(Students.dat”,ios:out|ios:binary|ios:trunc)。if
27、(!outfile)cerrFileopenerror!endl。exit(1)。for(i=0。i3。i+)19/22outfile.write(char*)&stui,sizeof(stui)outfile.close()coutStudents.dat:endl。infile.open(Students.dat,ios:in|ios:binary)。for(i=0。i3。i+)infile.read(char*)&stui,sizeof(Student)coutstui.GetNo()tstui.GetName()tstui.GetScore()endlinfile.cl
28、ose()infile.open(Students.dat,ios:in|ios:binary)。coutkpos=(k-1)*sizeof(Student)。infile.seekg(pos)。infile.read(char*)&stui,sizeof(Student)。coutstui.GetNo()tstui.GetName()tstui.GetScore()endlinfile.close()。coutDeletetheSecondrecord!endl。infile.open(Students.dat,ios:in|ios:binary|ios:trunc)。for(i=0。i3。i+)if(i!=1)outfile.wr
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年春八年級(jí)歷史下冊(cè) 第11課 城鄉(xiāng)人民生存狀態(tài)的滄桑巨變說(shuō)課稿1(pdf) 川教版
- Unit 2 Understanding each other Project 說(shuō)課稿-2023-2024學(xué)年高中英語(yǔ)牛津譯林版(2020)選擇性必修第四冊(cè)
- Unit 6 Meet my family Part B Let's talk Let's learn大單元整體說(shuō)課稿表格式-2024-2025學(xué)年人教PEP版英語(yǔ)四年級(jí)上冊(cè)
- 2024年秋七年級(jí)生物上冊(cè) 3.5.2 綠色植物的呼吸作用說(shuō)課稿 (新版)新人教版001
- 葡萄園立柱施工方案
- 2023三年級(jí)數(shù)學(xué)下冊(cè) 三 美麗的街景-兩位數(shù)乘兩位數(shù)信息窗1 美麗的街燈第2課時(shí)說(shuō)課稿 青島版六三制
- 預(yù)制水泥臨時(shí)圍墻施工方案
- 臨時(shí)合同范例復(fù)制
- 西安電動(dòng)推拉雨棚施工方案
- 2024秋一年級(jí)語(yǔ)文上冊(cè) 漢語(yǔ)拼音 11 ie üe er說(shuō)課稿 新人教版
- 2024美團(tuán)簡(jiǎn)化版商家合作合同標(biāo)準(zhǔn)文本一
- 2025年貴州黔源電力股份有限公司招聘筆試參考題庫(kù)含答案解析
- 《休閑食品加工技術(shù)》 課件 1 休閑食品生產(chǎn)與職業(yè)生活
- 春季開(kāi)學(xué)安全第一課
- 2025年新生兒黃疸診斷與治療研究進(jìn)展
- 廣東大灣區(qū)2024-2025學(xué)年度高一上學(xué)期期末統(tǒng)一測(cè)試英語(yǔ)試題(無(wú)答案)
- 2025年四川中煙工業(yè)限責(zé)任公司招聘110人高頻重點(diǎn)提升(共500題)附帶答案詳解
- 課題申報(bào)書(shū):數(shù)智賦能高職院校思想政治理論課“金課”實(shí)踐路徑研究
- 公司安全生產(chǎn)事故隱患內(nèi)部報(bào)告獎(jiǎng)勵(lì)工作制度
- H3CNE認(rèn)證考試題庫(kù)官網(wǎng)2022版
- 感統(tǒng)訓(xùn)練培訓(xùn)手冊(cè)(適合3-13歲兒童)
評(píng)論
0/150
提交評(píng)論