實現(xiàn)一個簡單畫圖的功能_第1頁
實現(xiàn)一個簡單畫圖的功能_第2頁
實現(xiàn)一個簡單畫圖的功能_第3頁
實現(xiàn)一個簡單畫圖的功能_第4頁
實現(xiàn)一個簡單畫圖的功能_第5頁
已閱讀5頁,還剩12頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

實現(xiàn)一個簡單畫圖的功能第1頁,課件共17頁,創(chuàng)作于2023年2月問題的分析(面向對象分析)確定對象:名詞短語(候選者)顯示器熒光屏:一種輸出設備,不是對象圓心坐標:圓和弧的基本屬性,不是對象位置:即圓心坐標,不是對象半徑:圓和弧的基本屬性,不是對象圓(Circle):對象?。ˋrc):對象起始角度:弧的屬性,不是對象結束角度:弧的屬性,不是對象第2頁,課件共17頁,創(chuàng)作于2023年2月問題的分析(面向對象分析)確定屬性:確定對象的過程中發(fā)現(xiàn):圓的屬性:圓心坐標,半徑弧的屬性:圓心坐標,半徑,起始角度,結束角度借助于領域知識:圓和弧的屬性:可見性第3頁,課件共17頁,創(chuàng)作于2023年2月問題的分析(面向對象分析)確定服務:訪問屬性值:讀/寫圓心坐標(圓,?。┳x/寫半徑(圓,?。┳x/寫起始角度(弧)讀/寫結束角度(?。┳x/寫可見性(圓,?。╋@示(圓,?。╇[藏(圓,?。┑?頁,課件共17頁,創(chuàng)作于2023年2月問題的解決(面向對象設計)建立類層次:圓為父類,弧為子類進一步分析:點,位置定義屬性定義服務類圖第5頁,課件共17頁,創(chuàng)作于2023年2月程序設計(C++)自定義數(shù)據(jù)類型enumBoolean{false,true};定義類說明數(shù)據(jù)成員說明和定義成員函數(shù)成員函數(shù)構造函數(shù)第6頁,課件共17頁,創(chuàng)作于2023年2月完整的C++程序(1)

#include<graphics.h>#include<conio.h>enumBoolean{false,true};classLocation{ protected: intx; inty; public: Location(intInitX,intInitY); intGetX(); intGetY();};第7頁,課件共17頁,創(chuàng)作于2023年2月完整的C++程序(2)

classPoint:publicLocation{ protected: BooleanVisible; public: Point(intInitX,intInitY); voidShow(); voidHide(); BooleanIsVisible();};第8頁,課件共17頁,創(chuàng)作于2023年2月完整的C++程序(3)

classCircle:publicPoint{ protected: intRadius; public: Circle(intInitX,intInitY,intInitRadius); voidShow(); voidHide(); intGetRadius();};第9頁,課件共17頁,創(chuàng)作于2023年2月完整的C++程序(4)

classArc:publicCircle{ private: intStartAngle; intEndAngle; public: Arc(intInitX,intInitY,intInitRadius,intInitStartAngle,intInitEndAnagle); voidShow(); voidHide(); intGetStartAngle(); intGetEndAngle();};第10頁,課件共17頁,創(chuàng)作于2023年2月完整的C++程序(5)

Location::Location(intInitX,intInitY){ x=InitX; y=InitY;}intLocation::GetX(){ returnx;}intLocation::GetY(){ returny;}第11頁,課件共17頁,創(chuàng)作于2023年2月完整的C++程序(6)

Point::Point(intInitX,intInitY):Location(InitX,InitY){ Visible=false;}voidPoint::Show(){ Visible=true; putpixel(x,y,getcolor());}voidPoint::Hide(){ Visible=false; putpixel(x,y,getbkcolor());}Putpixel:在指定位置畫一像素getcolor:返回當前畫線顏色Getbkcolor:返回當前背景顏色第12頁,課件共17頁,創(chuàng)作于2023年2月完整的C++程序(7)

BooleanPoint::IsVisible(){ returnVisible;}Circle::Circle(intInitX,intInitY,intInitRadius):Point(InitX,InitY){ Radius=InitRadius;}Circle::Show(){ Visible=true; circle(x,y,Radius);}第13頁,課件共17頁,創(chuàng)作于2023年2月完整的C++程序(8)

voidCircle::Hide(){ intTempColor; TempColor=getcolor(); setcolor(getbkcolor()); Visible=false; circle(x,y,Radius); setcolor(TempColor);}intCircle::GetRadius(){ returnRadius;}setcolor:庫函數(shù)圖形屏幕函數(shù)

setcolor(color)

功能:將當前圖形屏幕的當前筆畫顏色置為color.第14頁,課件共17頁,創(chuàng)作于2023年2月完整的C++程序(9)

Arc::Arc(intInitX,intInitY,intInitRadius,intInitStartAngle,intInitEndAngle):Circle(InitX,InitY,InitRadius){ StartAngle=InitStartAngle; EndAngle=InitEndAngle;}voidArc::Show(){ Visible=true; arc(x,y,StartAngle,EndAngle,Radius);}intArc::GetStartAngle(){ returnStartAngle;}第15頁,課件共17頁,創(chuàng)作于2023年2月完整的C++程序(10)voidArc::Hide(){ intTempColor; TempColor=getcolor(); setcolor(getbkcolor()); Visible=false; arc(x,y,StartAngle,EndAngle,Radius); setcolor(TempColor);}intArc::GetEndAngle(){ returnEndAngle;}第16頁,課件共17頁,創(chuàng)作于2023年2月

voidmain(){

Circlec1(100,100,40),c2(200,300,20); Arca1(400,150,50,30,120); c1.Show(); c2.Show(); a1.Show(); getch(); closegraph();//關閉圖形系統(tǒng)

}graphdriver是指向圖形驅動

溫馨提示

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

最新文檔

評論

0/150

提交評論