c語言課程設計報告-簡易繪圖_第1頁
c語言課程設計報告-簡易繪圖_第2頁
c語言課程設計報告-簡易繪圖_第3頁
c語言課程設計報告-簡易繪圖_第4頁
c語言課程設計報告-簡易繪圖_第5頁
已閱讀5頁,還剩13頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

計算機科學與技術學院《C高級語言程序設計》課程設計報告(2013/2014學年第一學期)學生姓名:白小軍學生專業:軟件工程學生班級:122002班學生學號:201220040201指導教師:胡春霞2013年12月24日第一章功能需求描述1.1功能列表簡易繪圖程序的功能如下:1.1.1提供8種顏色1.1.25種畫筆的大小(畫的都是圓)1.1.3清屏和退出1.2功能說明1.2.1初始有默認選的畫筆顏色為黑色,默認的大小為最小1.2.2繪制的過程中實際顯示的是一個實心圓1.2.3選擇畫筆的大小實際為選擇所畫圓的半徑的像素大小1.3操作界面1.4操作方法執行程序后,彈出繪圖窗口:有默認的顏色畫筆和大小,可以選擇畫筆的顏色,畫筆的大小,在空白區域點鼠標左鍵來繪圖,再增加清屏和退出功能。第二章設計描述2.1任務分解說明voidIndex(void);//初始化繪圖voidLoadimg(void);//載入圖片voidScolor(void);//設置右邊欄選擇顏色voidBrush_size(void);//設置畫筆大小的顯示voidart(void);//程序畫圖核心函數2.2主要數據結構設計說明MOUSEMSGm;//定義全局獲取鼠標信息的變量詳細如下structMOUSEMSG{UINTuMsg;//當前鼠標消息boolmkCtrl;//Ctrl鍵是否按下boolmkShift;//Shift鍵是否按下boolmkLButton;//鼠標左鍵是否按下boolmkMButton;//鼠標中鍵是否按下boolmkRButton;//鼠標右鍵是否按下intx;//當前鼠標x坐標inty;//當前鼠標y坐標intwheel;//鼠標滾輪滾動值};"當前鼠標消息"可能是以下值:WM_MOUSEMOVE鼠標移動消息WM_MOUSEWHEEL鼠標滾輪撥動消息WM_LBUTTONDOWN左鍵按下消息WM_LBUTTONUP左鍵彈起消息WM_LBUTTONDBLCLK左鍵雙擊消息WM_MBUTTONDOWN中鍵按下消息WM_MBUTTONUP中鍵彈起消息WM_MBUTTONDBLCLK中鍵雙擊消息WM_RBUTTONDOWN右鍵按下消息WM_RBUTTONUP右鍵彈起消息WM_RBUTTONDBLCLK右鍵雙擊消息2.3主要函數接口說明2.3.1主函數接口及包含的函數接口intWINAPIWinMain(HINSTANCEhInstance,HINSTANCEhPrevInstance,LPSTRlpCmdLine,intnShowCmd)//程序的入口{ Index();//初始化繪圖 Loadimg();//載入圖片 Scolor();//設置右邊欄選擇顏色 Brush_size();//設置畫筆大小的顯示 art();//程序畫圖核心函數 closegraph();//關閉繪圖屏幕 return0;}2.3.2載入圖片函數接口voidLoadimg(void){ loadimage(&img,"圖片位置"); putimage(橫坐標,縱坐標,&img); }2.3.3設置右邊欄選擇顏色函數接口voidScolor(void){ setfillcolor(填充顏色); fillrectangle(左上角橫坐標,左上角縱坐標,右下角橫坐標,右下角縱坐標);}第三章算法描述3.1主要函數的程序流程圖圖3.1.1主函數流程圖圖3.1.2初始繪圖界面流程圖圖3.1.2初始繪圖界面流程圖第四章開發過程描述4.1源代碼/*時間:2013年12月24日22:35:281.該程序實現畫圖的基本功能:可選擇提供的8種顏色,5種畫筆的大小(畫的都是圓),以及兩種額外功能,清屏和退出2.運用了WinMain函數來實現窗口程序3.運用graphics.h庫來實現繪圖操作*/#include<graphics.h>//繪圖庫頭文件MOUSEMSGm;//定義全局獲取鼠標信息的變量詳細如下/*structMOUSEMSG{UINTuMsg;//當前鼠標消息boolmkCtrl;//Ctrl鍵是否按下boolmkShift;//Shift鍵是否按下boolmkLButton;//鼠標左鍵是否按下boolmkMButton;//鼠標中鍵是否按下boolmkRButton;//鼠標右鍵是否按下intx;//當前鼠標x坐標inty;//當前鼠標y坐標intwheel;//鼠標滾輪滾動值};*//*"當前鼠標消息"可能是以下值:WM_MOUSEMOVE鼠標移動消息WM_MOUSEWHEEL鼠標滾輪撥動消息WM_LBUTTONDOWN左鍵按下消息WM_LBUTTONUP左鍵彈起消息WM_LBUTTONDBLCLK左鍵雙擊消息WM_MBUTTONDOWN中鍵按下消息WM_MBUTTONUP中鍵彈起消息WM_MBUTTONDBLCLK中鍵雙擊消息WM_RBUTTONDOWN右鍵按下消息WM_RBUTTONUP右鍵彈起消息WM_RBUTTONDBLCLK右鍵雙擊消息*/voidIndex(void);//初始化繪圖聲明voidLoadimg(void);//載入圖片聲明voidScolor(void);//設置右邊欄選擇顏色的聲明voidBrush_size(void);//設置畫筆大小的顯示的聲明voidart(void);//程序畫圖核心函數的聲明/*用VC6.0來寫,而且要寫窗口類程序,VC6.0提供了一個專門用作窗口類程序的入口函數WinMain()函數原型intWINAPIWinMain(HINSTANCEhInstance,HINSTANCEhPrevInstance,LPSTRlpCmdLine,intnCmdShow);*/intWINAPIWinMain(HINSTANCEhInstance,HINSTANCEhPrevInstance,LPSTRlpCmdLine,intnShowCmd)//程序的入口{ Index();//初始化繪圖 Loadimg();//載入圖片 Scolor();//設置右邊欄選擇顏色 Brush_size();//設置畫筆大小的顯示 art();//程序畫圖核心函數 closegraph();//關閉繪圖屏幕 return0;}//初始化繪圖voidIndex(void){ initgraph(800,600);//初始化800x600的繪圖屏幕 setbkcolor(WHITE);//設置白色背景 cleardevice();}//載入圖片voidLoadimg(void){ IMAGEimg; loadimage(&img,"E:\\c語言源文件\\c語言課程設計\\小軍畫圖\\1.jpg"); putimage(740,0,&img); loadimage(&img,"E:\\c語言源文件\\c語言課程設計\\小軍畫圖\\2.jpg"); putimage(740,527,&img); loadimage(&img,"E:\\c語言源文件\\c語言課程設計\\小軍畫圖\\3.jpg"); putimage(30,573,&img); loadimage(&img,"E:\\c語言源文件\\c語言課程設計\\小軍畫圖\\4.jpg"); putimage(740,570,&img); loadimage(&img,"E:\\c語言源文件\\c語言課程設計\\小軍畫圖\\5.jpg"); putimage(670,570,&img);}//設置右邊欄選擇顏色voidScolor(void){ setfillcolor(RGB(255,255,255));//設置填充顏色白 fillrectangle(750,10,790,50);//填充左上角(750,10)右下角(790,50)的矩形 setfillcolor(RGB(0,0,0));//黑 fillrectangle(750,60,790,100); setfillcolor(RGB(0,0,255));//藍 fillrectangle(750,110,790,150); setfillcolor(RGB(0,255,0));//綠 fillrectangle(750,160,790,200); setfillcolor(RGB(0,255,255));//淺藍 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); }//設置畫筆大小的顯示voidBrush_size(void){ for(inti=1;i<=5;i++) { setfillcolor(BLACK);//設置填充顏色 solidcircle(80+30*i,580,i*3);//填充圓心坐標為(80+30*i,580)半徑為i*3個像素的大小 }}//程序畫圖核心函數voidart(void){ inta=3;//設置初始化(默認)畫筆大小(圓心半徑的像素) fillrectangle(750,480,790,520);//設置初始currentcolor顯示為黑色 while(true) { m=GetMouseMsg();//GetMouseMsg()來獲取鼠標的信息 switch(m.uMsg) { caseWM_LBUTTONDOWN://如果鼠標左鍵按下 if(m.x>740) { if(m.y>570) return;//如果鼠標坐標x>740,y>570,即點中Exit選項,退出函數,否則,永遠不會終止 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);//點了某個圖中的顏色后,先設置填充顏色,再在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);//將選擇的畫筆用一個黑色的矩形方框框起來 } else if(m.x>670&&m.x<730&&m.y>570&&m.y<600)//如果選中清屏選項 { setfillcolor(WHITE);//設置白色填充色 solidrectangle(0,0,740,564);//將整個可涂區域清白 setfillcolor(BLACK);//設置默認的黑色填充色 } else if(m.x<750&&m.y<550) solidcircle(m.x,m.y,a);//在可涂區域用所選擇的顏色,畫筆大小畫一個實心圓,半徑為a } break; caseWM_MOUSEMOVE://鼠標移動信息 if(m.mkLButton&&m.x<725&&m.y<550)//如果在可涂的最大區域內,并且鼠標左鍵按下

溫馨提示

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

評論

0/150

提交評論