




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院《C高級(jí)語言程序設(shè)計(jì)》課程設(shè)計(jì)報(bào)告(2013/2014學(xué)年第一學(xué)期)學(xué)生姓名:白小軍學(xué)生專業(yè):軟件工程學(xué)生班級(jí):122002班學(xué)生學(xué)號(hào):201220040201指導(dǎo)教師:胡春霞2013年12月24日第一章功能需求描述1.1功能列表簡(jiǎn)易繪圖程序的功能如下:1.1.1提供8種顏色1.1.25種畫筆的大?。ó嫷亩际菆A)1.1.3清屏和退出1.2功能說明1.2.1初始有默認(rèn)選的畫筆顏色為黑色,默認(rèn)的大小為最小1.2.2繪制的過程中實(shí)際顯示的是一個(gè)實(shí)心圓1.2.3選擇畫筆的大小實(shí)際為選擇所畫圓的半徑的像素大小1.3操作界面1.4操作方法執(zhí)行程序后,彈出繪圖窗口:有默認(rèn)的顏色畫筆和大小,可以選擇畫筆的顏色,畫筆的大小,在空白區(qū)域點(diǎn)鼠標(biāo)左鍵來繪圖,再增加清屏和退出功能。第二章設(shè)計(jì)描述2.1任務(wù)分解說明voidIndex(void);//初始化繪圖voidLoadimg(void);//載入圖片voidScolor(void);//設(shè)置右邊欄選擇顏色voidBrush_size(void);//設(shè)置畫筆大小的顯示voidart(void);//程序畫圖核心函數(shù)2.2主要數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)說明MOUSEMSGm;//定義全局獲取鼠標(biāo)信息的變量詳細(xì)如下structMOUSEMSG{UINTuMsg;//當(dāng)前鼠標(biāo)消息boolmkCtrl;//Ctrl鍵是否按下boolmkShift;//Shift鍵是否按下boolmkLButton;//鼠標(biāo)左鍵是否按下boolmkMButton;//鼠標(biāo)中鍵是否按下boolmkRButton;//鼠標(biāo)右鍵是否按下intx;//當(dāng)前鼠標(biāo)x坐標(biāo)inty;//當(dāng)前鼠標(biāo)y坐標(biāo)intwheel;//鼠標(biāo)滾輪滾動(dòng)值};"當(dāng)前鼠標(biāo)消息"可能是以下值:WM_MOUSEMOVE鼠標(biāo)移動(dòng)消息WM_MOUSEWHEEL鼠標(biāo)滾輪撥動(dòng)消息WM_LBUTTONDOWN左鍵按下消息WM_LBUTTONUP左鍵彈起消息WM_LBUTTONDBLCLK左鍵雙擊消息WM_MBUTTONDOWN中鍵按下消息WM_MBUTTONUP中鍵彈起消息WM_MBUTTONDBLCLK中鍵雙擊消息WM_RBUTTONDOWN右鍵按下消息WM_RBUTTONUP右鍵彈起消息WM_RBUTTONDBLCLK右鍵雙擊消息2.3主要函數(shù)接口說明2.3.1主函數(shù)接口及包含的函數(shù)接口intWINAPIWinMain(HINSTANCEhInstance,HINSTANCEhPrevInstance,LPSTRlpCmdLine,intnShowCmd)//程序的入口{ Index();//初始化繪圖 Loadimg();//載入圖片 Scolor();//設(shè)置右邊欄選擇顏色 Brush_size();//設(shè)置畫筆大小的顯示 art();//程序畫圖核心函數(shù) closegraph();//關(guān)閉繪圖屏幕 return0;}2.3.2載入圖片函數(shù)接口voidLoadimg(void){ loadimage(&img,"圖片位置"); putimage(橫坐標(biāo),縱坐標(biāo),&img); }2.3.3設(shè)置右邊欄選擇顏色函數(shù)接口voidScolor(void){ setfillcolor(填充顏色); fillrectangle(左上角橫坐標(biāo),左上角縱坐標(biāo),右下角橫坐標(biāo),右下角縱坐標(biāo));}第三章算法描述3.1主要函數(shù)的程序流程圖圖3.1.1主函數(shù)流程圖圖3.1.2初始繪圖界面流程圖圖3.1.2初始繪圖界面流程圖第四章開發(fā)過程描述4.1源代碼/*時(shí)間:2013年12月24日22:35:281.該程序?qū)崿F(xiàn)畫圖的基本功能:可選擇提供的8種顏色,5種畫筆的大?。ó嫷亩际菆A),以及兩種額外功能,清屏和退出2.運(yùn)用了WinMain函數(shù)來實(shí)現(xiàn)窗口程序3.運(yùn)用graphics.h庫(kù)來實(shí)現(xiàn)繪圖操作*/#include<graphics.h>//繪圖庫(kù)頭文件MOUSEMSGm;//定義全局獲取鼠標(biāo)信息的變量詳細(xì)如下/*structMOUSEMSG{UINTuMsg;//當(dāng)前鼠標(biāo)消息boolmkCtrl;//Ctrl鍵是否按下boolmkShift;//Shift鍵是否按下boolmkLButton;//鼠標(biāo)左鍵是否按下boolmkMButton;//鼠標(biāo)中鍵是否按下boolmkRButton;//鼠標(biāo)右鍵是否按下intx;//當(dāng)前鼠標(biāo)x坐標(biāo)inty;//當(dāng)前鼠標(biāo)y坐標(biāo)intwheel;//鼠標(biāo)滾輪滾動(dòng)值};*//*"當(dāng)前鼠標(biāo)消息"可能是以下值:WM_MOUSEMOVE鼠標(biāo)移動(dòng)消息WM_MOUSEWHEEL鼠標(biāo)滾輪撥動(dòng)消息WM_LBUTTONDOWN左鍵按下消息WM_LBUTTONUP左鍵彈起消息WM_LBUTTONDBLCLK左鍵雙擊消息WM_MBUTTONDOWN中鍵按下消息WM_MBUTTONUP中鍵彈起消息WM_MBUTTONDBLCLK中鍵雙擊消息WM_RBUTTONDOWN右鍵按下消息WM_RBUTTONUP右鍵彈起消息WM_RBUTTONDBLCLK右鍵雙擊消息*/voidIndex(void);//初始化繪圖聲明voidLoadimg(void);//載入圖片聲明voidScolor(void);//設(shè)置右邊欄選擇顏色的聲明voidBrush_size(void);//設(shè)置畫筆大小的顯示的聲明voidart(void);//程序畫圖核心函數(shù)的聲明/*用VC6.0來寫,而且要寫窗口類程序,VC6.0提供了一個(gè)專門用作窗口類程序的入口函數(shù)WinMain()函數(shù)原型intWINAPIWinMain(HINSTANCEhInstance,HINSTANCEhPrevInstance,LPSTRlpCmdLine,intnCmdShow);*/intWINAPIWinMain(HINSTANCEhInstance,HINSTANCEhPrevInstance,LPSTRlpCmdLine,intnShowCmd)//程序的入口{ Index();//初始化繪圖 Loadimg();//載入圖片 Scolor();//設(shè)置右邊欄選擇顏色 Brush_size();//設(shè)置畫筆大小的顯示 art();//程序畫圖核心函數(shù) closegraph();//關(guān)閉繪圖屏幕 return0;}//初始化繪圖voidIndex(void){ initgraph(800,600);//初始化800x600的繪圖屏幕 setbkcolor(WHITE);//設(shè)置白色背景 cleardevice();}//載入圖片voidLoadimg(void){ IMAGEimg; loadimage(&img,"E:\\c語言源文件\\c語言課程設(shè)計(jì)\\小軍畫圖\\1.jpg"); putimage(740,0,&img); loadimage(&img,"E:\\c語言源文件\\c語言課程設(shè)計(jì)\\小軍畫圖\\2.jpg"); putimage(740,527,&img); loadimage(&img,"E:\\c語言源文件\\c語言課程設(shè)計(jì)\\小軍畫圖\\3.jpg"); putimage(30,573,&img); loadimage(&img,"E:\\c語言源文件\\c語言課程設(shè)計(jì)\\小軍畫圖\\4.jpg"); putimage(740,570,&img); loadimage(&img,"E:\\c語言源文件\\c語言課程設(shè)計(jì)\\小軍畫圖\\5.jpg"); putimage(670,570,&img);}//設(shè)置右邊欄選擇顏色voidScolor(void){ setfillcolor(RGB(255,255,255));//設(shè)置填充顏色白 fillrectangle(750,10,790,50);//填充左上角(750,10)右下角(790,50)的矩形 setfillcolor(RGB(0,0,0));//黑 fillrectangle(750,60,790,100); setfillcolor(RGB(0,0,255));//藍(lán) fillrectangle(750,110,790,150); setfillcolor(RGB(0,255,0));//綠 fillrectangle(750,160,790,200); setfillcolor(RGB(0,255,255));//淺藍(lán) fillrectangle(750,210,790,250); setfillcolor(RGB(255,0,0));//紅 fillrectangle(750,260,790,300); setfillcolor(RGB(255,0,255));//紫紅 fillrectangle(750,310,790,350); setfillcolor(RGB(255,255,0));//黃 fillrectangle(750,360,790,400); }//設(shè)置畫筆大小的顯示voidBrush_size(void){ for(inti=1;i<=5;i++) { setfillcolor(BLACK);//設(shè)置填充顏色 solidcircle(80+30*i,580,i*3);//填充圓心坐標(biāo)為(80+30*i,580)半徑為i*3個(gè)像素的大小 }}//程序畫圖核心函數(shù)voidart(void){ inta=3;//設(shè)置初始化(默認(rèn))畫筆大小(圓心半徑的像素) fillrectangle(750,480,790,520);//設(shè)置初始currentcolor顯示為黑色 while(true) { m=GetMouseMsg();//GetMouseMsg()來獲取鼠標(biāo)的信息 switch(m.uMsg) { caseWM_LBUTTONDOWN://如果鼠標(biāo)左鍵按下 if(m.x>740) { if(m.y>570) return;//如果鼠標(biāo)坐標(biāo)x>740,y>570,即點(diǎn)中Exit選項(xiàng),退出函數(shù),否則,永遠(yuǎn)不會(huì)終止 switch(int(m.y/50)) { case0:setfillcolor(RGB(255,255,255));break; case1:setfillcolor(RGB(0,0,0));break; case2:setfillcolor(RGB(0,0,255));break; case3:setfillcolor(RGB(0,255,0));break; case4:setfillcolor(RGB(0,255,255));break; case5:setfillcolor(RGB(255,0,0));break; case6:setfillcolor(RGB(255,0,255));break; case7:setfillcolor(RGB(255,255,0));break; } fillrectangle(750,480,790,520);//點(diǎn)了某個(gè)圖中的顏色后,先設(shè)置填充顏色,再在currentcolor上面顯示出所選擇的顏色 } else { if(m.x>95&&m.x<245&&m.y>565&&m.y<595) { setcolor(WHITE); rectangle(65+30*(a/3),565,95+30*(a/3),595);//將上一次的黑色矩形框消除(用白色矩形框代替) switch(int((m.x-95)/30)) { case0:a=3;break; case1:a=6;break; case2:a=9;break; case3:a=12;break; case4:a=15;break;//選擇畫筆的大小 } setcolor(BLACK); rectangle(65+30*(a/3),565,95+30*(a/3),595);//將選擇的畫筆用一個(gè)黑色的矩形方框框起來 } else if(m.x>670&&m.x<730&&m.y>570&&m.y<600)//如果選中清屏選項(xiàng) { setfillcolor(WHITE);//設(shè)置白色填充色 solidrectangle(0,0,740,564);//將整個(gè)可涂區(qū)域清白 setfillcolor(BLACK);//設(shè)置默認(rèn)的黑色填充色 } else if(m.x<750&&m.y<550) solidcircle(m.x,m.y,a);//在可涂區(qū)域用所選擇的顏色,畫筆大小畫一個(gè)實(shí)心圓,半徑為a } break; caseWM_MOUSEMOVE://鼠標(biāo)移動(dòng)信息 if(m.mkLButton&&m.x<725&&m.y<550)//如果在可涂的最大區(qū)域內(nèi),并且鼠標(biāo)左鍵按下
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年成都貨運(yùn)從業(yè)資格考試題目大全及答案解析
- 老年人痤瘡的日常護(hù)理
- 2025年武漢貨運(yùn)從業(yè)資格考試題庫(kù)及答案解析
- 肺穿刺后傷口護(hù)理查房
- 婦產(chǎn)科護(hù)理培訓(xùn)
- 財(cái)務(wù)分析師的職責(zé)與技能要求計(jì)劃
- 全面掌握花藝師考試試題及解析
- 項(xiàng)目管理中的團(tuán)隊(duì)協(xié)作分析計(jì)劃
- 牙髓病的健康宣教
- 護(hù)理倫理學(xué)人衛(wèi)版
- 2025年滁州市城投交通控股有限公司招聘19人筆試參考題庫(kù)附帶答案詳解
- 創(chuàng)新創(chuàng)業(yè)案例分析-大疆
- 2025年天津市濱城海洋文化旅游發(fā)展有限公司招聘筆試參考題庫(kù)附帶答案詳解
- 50套普通話試題及答案
- 幼兒園獲獎(jiǎng)公開課:大班科學(xué)《色彩的擁抱》課件
- 入團(tuán)考試模擬100題及答案
- 華東醫(yī)藥股份有限公司放射性核素暫存庫(kù)建設(shè)項(xiàng)目報(bào)告表
- 2025年官方策劃標(biāo)準(zhǔn)離婚協(xié)議書(民政局版)
- 2025年第六屆(中小學(xué)組)國(guó)家版圖知識(shí)競(jìng)賽測(cè)試題庫(kù)及答案
- 2024年洛陽(yáng)科技職業(yè)學(xué)院?jiǎn)握新殬I(yè)技能測(cè)試題庫(kù)標(biāo)準(zhǔn)卷
- 安保服務(wù)智慧安防平臺(tái)構(gòu)建及管理策略實(shí)施計(jì)劃
評(píng)論
0/150
提交評(píng)論