½Ì°¸Ê×Ò³
¿Î³ÌÃû³Æ ÊÚ¿ÎÈÕÆÚ
¼ÆËã»úͼÐÎѧ 2013Äê 3 Ô ÈÕ µÚ ÖÜµÚ ´Î¿Î
ÊڿνÌʦ Êڿΰ༶
2010¼¶1°à
ÖÜ ´Î ¿Î Ìâ
VC++ 6.0 »æÍ¼»ù´¡
½ÌѧĿµÄ¡¢ÒªÇó
1.ÕÆÎÕ MFC ÉÏ»ú²Ù×÷²½Öè 2.Á˽â CDC Àà½á¹¹ºÍ GDI ¶ÔÏó 3.ÊìÁ·ÕÆÎÕ»ù±¾»æÍ¼º¯Êý
¿Î³ÌÀàÐÍ ÖØ ÄÑ
µã µã
ÀíÂÛ »ù±¾»æÍ¼º¯Êý VC++»æÖÆÍ¼ÐÎ
ѧʱ 2
½Ìѧ·½·¨ ½ÌѧÊÖ¶Î
ÀíÂÛÓëʵ¼ùÏà½áºÏµÄÒýµ¼¡¢Æô·¢Ê½½Ìѧ·½·¨ ¶àýÌåÓëÆäËü·½Ê½½áºÏ
½Ìѧ½ø³Ì£¨ÄÚÈݰ²ÅÅ¡¢Ê±¼ä·ÖÅä¡¢×÷ÒµµÈ£© 1. ÃæÏò¶ÔÏó³ÌÐòÉè¼Æ»ù´¡(10min) 2.
MFC ÉÏ»ú²Ù×÷²½Öè(10min)
3. »ù±¾»æÍ¼º¯Êý(75min) 4. С½á¡¢²¼ÖÃ×÷Òµ(5min)
1
½Ìѧ¹ý³Ì
2.1 ÃæÏò¶ÔÏó³ÌÐòÉè¼Æ»ù´¡
VC++ÓïÑÔ¿ª·¢µÄͼÐΣ¬ÓëʹÓà Turbo C ÓïÑÔ¿ª·¢µÄͼÐÎÏà±È£¬Óŵ㣺 £¨1£©¿ÉÒÔÏÔÊ¾Õæ²ÊÉ«£¬
£¨2£©¿ÉÒÔʵÏÖ½»»¥Ê½»æÍ¼¡£Èçͼ 2-1 ºÍ 2-2 Ëùʾ£¬
ͼ 2-1 Turbo C »æÖƵÄл¶û±ö˹»ùº£Ãà
ͼ 2-2 Visual
£Ã++ MFC ¿ò¼Ü»æÖƵÄл¶û±ö˹»ùº£Ãà
2.1.1 ÀàºÍ¶ÔÏó
ÀàÊÇÓû§×Ô¼º¶¨ÒåµÄÒ»ÖÖÊý¾ÝÀàÐÍ£¬ÊÇ·â×°ÊôÐԺͲÙ×÷µÄ»ù±¾µ¥Ôª¡£ ÀàµÄÊôÐÔÓÃÊý¾Ý³ÉÔ±±íʾ£¬ÀàµÄ²Ù×÷ÓóÉÔ±º¯Êý±íʾ¡£ ¶ÔÏóÊÇÓá°ÀࡱÀàÐͶ¨ÒåµÄ¡°±äÁ¿¡±£¬³ÆÎªÀàµÄʵÀý¡£ 1. ÀàµÄ¶¨Òå ¡¾¸ñʽ¡¿ class ÀàÃû {
public£º
Êý¾Ý³ÉÔ±ºÍ³ÉÔ±º¯ÊýµÄÉùÃ÷£» private£º
Êý¾Ý³ÉÔ±ºÍ³ÉÔ±º¯ÊýµÄÉùÃ÷£» protected£º
Êý¾Ý³ÉÔ±ºÍ³ÉÔ±º¯ÊýµÄÉùÃ÷£» }£»
ÀàµÄÌØµã£º
·â×°ÐÔºÍÒþ±ÎÌØÐÔ¡£ 2. Àà³ÉÔ±º¯ÊýµÄ¶¨Òå ¡¾¸ñʽ¡¿
ÀàÐÍ˵Ã÷·û ÀàÃû£º£º³ÉÔ±º¯ÊýÃû£¨<²ÎÊý±íÁÐ>£© {
2
º¯ÊýÌ壻
}
£º£ºÎª×÷ÓÃÓòÔËËã·û£¬Ö¸Ã÷¸Ã³ÉÔ±º¯ÊýÊÇÊôÓÚÄÄÒ»¸öÀàµÄ¡£ 3. ¶ÔÏóµÄ¶¨Òå ¡¾¸ñʽ¡¿
ÀàÃû ¶ÔÏó±íÁУ¨<²ÎÊý±íÁÐ>£©£»
Ò»¸öÀà±»¶¨Òåºó£¬²¢²»Õ¼ÓÃÄÚ´æ¿Õ¼ä£¬Ö»Óе±À౻ʵÀý»¯Îª¶ÔÏóºó£¬¶ÔÏó²ÅÕ¼ÓÃÄÚ´æ¿Õ ¼ä¡£
ÀàÊÇÓÀºãµÄ£¬¶ÔÏóÊÇÔÝʱµÄ£¬ÀàºÍ¶ÔÏóµÄ¹ØÏµ¾ÍÏóÈËÀàºÍÿ¸öÈ˵ĹØÏµÒ»Ñù£¬ÈËÀàÓÀÔ¶ ´æÔÚ£¬¶øÃ¿¸öÈ˶¼Óе®ÉúºÍËÀÍö¡£
2.1.2 ¹¹Ô캯ÊýºÍÎö¹¹º¯Êý
¹¹Ô캯ÊýºÍÎö¹¹º¯ÊýÊǸºÔð¶ÔÏóµÄ´´½¨ºÍ³·ÏúµÄÌØÊâ³ÉÔ±º¯Êý¡£¹¹Ô캯ÊýµÄ×÷ÓÃÊÇ´´½¨ ¶ÔÏóʱ¶ÔÊý¾Ý³ÉÔ±½øÐгõʼ»¯£¬Îö¹¹º¯ÊýµÄ×÷ÓÃÊdz·Ïú¶ÔÏóʱÇåÀí¶ÔÏóÕ¼ÓõÄÄÚ´æ¿Õ¼ä¡£ ¹¹Ô캯ÊýµÄÃû³ÆÓëÀàÃûÏàͬ£¬¶øÎö¹¹º¯ÊýµÄÃû³ÆÊÇÓɹ¹Ô캯ÊýÃû³ÆÇ°¼ÓÉÏÈ¡·´ÔËËã·û ¡°¡«¡±¹¹³É¡£
¹¹Ô캯ÊýºÍÎö¹¹º¯ÊýÊÇÌØÊâµÄ³ÉÔ±º¯Êý£¬¶þÕß¶¼Ã»ÓÐÊý¾ÝÀàÐͺͷµ»ØÖµÇÒ²»ÐèÒªÓû§µ÷
Óã¬ÔÚ´´½¨ºÍ³·Ïú¶ÔÏóʱÓÉϵͳ×Ô¶¯Ö´ÐС£ Àý 1 Éè¼ÆÒ»¸ö³¤·½ÐÎ Rect À࣬µ÷ÓÃÀàµÄ³ÉÔ±º¯Êý¼ÆË㳤·½ÐεÄÖܳ¤ºÍÃæ»ý¡£
#include\ class Rect//¶¨Ò峤·½ÐÎÀà{ public:
Rect(int,int);//ÉùÃ÷´ø²Î¹¹Ô캯Êý ~Rect();//ÉùÃ÷Îö¹¹º¯Êý double circum();//ÉùÃ÷Öܳ¤º¯Êý double area();//ÉùÃ÷Ãæ»ýº¯Êý private:
int length,width;//ÉùÃ÷³¤·½Ðεij¤¶ÈºÍ¿í¶È };
Rect::Rect(int len,int w) {//¶¨Òå´ø²Î¹¹Ô캯Êý
length=len; width=w;
cout<<\½¨Á¢¶ÔÏó\ }
Rect::~Rect(){//¶¨ÒåÎö¹¹º¯Êý
cout<<\³·Ïú¶ÔÏó\ }
3
double Rect::circum(){//¶¨ÒåÖܳ¤º¯Êý
return 2*(length+width); }
double Rect::area(){//¶¨ÒåÃæ»ýº¯Êý
return length*width; }
void main(){//Ö÷º¯Êý
Rect r(30,20),*p=&r;//¶¨Òå¶ÔÏóºÍ¶ÔÏóÖ¸Õë //ÓöÔÏóÊä³öÖܳ¤ºÍÃæ»ý
cout<<\Öܳ¤Îª£º\Êä³öÖܳ¤ cout<<\Ãæ»ýΪ£º\Êä³öÃæ»ý //ÓöÔÏóÖ¸ÕëÊä³öÖܳ¤ºÍÃæ»ý
cout<<\Öܳ¤Îª£º\Êä³öÖܳ¤ cout<<\Ãæ»ýΪ£º\Êä³öÃæ»ý }
ͼ 2-3 ³¤·½ÐεÄÊä³ö½á¹û
2.1.3 ¶ÔÏóµÄ¶¯Ì¬½¨Á¢ºÍÊÍ·Å
½¨Á¢¶ÔÏó£ºnew ³·Ïú¶ÔÏó£ºdelete ÀýÈ磺
½¨Á¢¶ÔÏó£ºRect *p£½new Rect(30,20);
Óà new ¶¯Ì¬·ÖÅäÖ¸¶¨´óСµÄ´æ´¢¿Õ¼äºó£¬·µ»ØÒ»¸öÖ¸Ïò¸Ã¶ÔÏóµÄÖ¸Õ룬¼´Ëù·ÖÅäµÄ´æ ´¢¿Õ¼äµÄÆðʼµØÖ·£¬¿ÉÒÔͨ¹ýÖ¸Õë p À´·ÃÎʸöÔÏó¡£ ÊͷŶÔÏó£ºdelete p;
Àý 2 ½¨Á¢Ò»¸öͼ 2-5 ËùʾµÄͰÀ࣬ÆäÖÐÊý¾Ý³ÉÔ± Scanline ΪɨÃèÏßµÄλÖã¬next Ϊָ ÏòÏÂÒ»½áµãµÄÖ¸Õë¡£Ç붯̬½¨Á¢Á½¸öͰ½áµã£¬²¢ÒÀ´ÎÊä³öÆäɨÃèÏßλÖᣠ#include\ class Bucket{//¶¨ÒåͰÀà
ScanLine public:
int ScanLine;//ÉùÃ÷ɨÃèÏßλÖÃ
Bucket *next;//ÉùÃ÷Ö¸ÏòÏÂһͰ½áµãµÄÖ¸Õë };*next void main(){
Bucket *Head=new Bucket,*CurrentB;//¶¨ÒåͰ½áµãµÄÍ·Ö¸Õë ºÍͰ½áµãµÄµ±Ç°Ö¸Õë
CurrentB=Head;//µ±Ç°Ö¸ÕëΪͰ½áµãµÄÍ·Ö¸Õ룬¿ªÊ¼¸øµÚÒ»¸ö ½áµã¸³Öµ
CurrentB->ScanLine=1;//µ±Ç°½áµã(µÚÒ»¸ö½áµã)µÄɨÃèÏßΪ 1 cout<<\µÚÒ»¸ö½áµãµÄɨÃèÏßλÖÃÊÇ£º\Êä³öµ±Ç°½áµãµÄɨÃèÏßÖÃ
ͼ 2-5 Ͱ½áµãÀà
4