青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

2007年1月25日

今天無意中學到了一個小的知識點,故趕緊寫下來以防遺忘.
?在很多的對話框操作中,我們經常要用到在一個對話框中調用另一個對話框的函數或變量.可以用如下方法來解決.
??? HWND hWnd=::FindWindow(NULL,_T("Sphere"));????? //得到對話框的句柄
? ?C***Dialog* pWnd= (C***Dialog*)FromHandle(hWnd); //由句柄得到對話框的對象指針
?? pWnd->xxx( );???????????????????????????????????????????? //調用C***Dialog中的函數xxx();

posted @ 2007-01-25 14:55 瘋蝶雨人 閱讀(4585) | 評論 (2)編輯 收藏


2007年1月16日

面向對象,就是,思考問題的方法,以對象為主體,眼睛看什么都是對象
說[對象],其實還是不好懂,因為這個概念是直接從英文翻譯過來的
對中國人也許說,面向東西,面向物體(抽象的物體),面向事物,之類的翻譯或許更好理解
為什么說是面向對象呢,是為了和[面向過程]相對
以前[面向對象]的程序概念等還沒有出來前
程序的設計都是在想怎樣才能一步一步的解決問題,所以思維方式是過程,或是說步驟,早期的C語言呀BASIC呀的都是,匯編就更是了
而[面向對象]的基本是,如何設計一個個能動的物體(OBJECT對象)他們有不同的功能,之后的問題就是如何擺弄這些積木似的東西,相互組合調用各個對象的他們自己擅長的功能(術語叫METHOD,方法),最后完成一個大的目的(當然步驟,和過程,解決問題的先后順序等,還是存在的)

為什么要面向對象的思考方法和概念?
是為了提高開發效率
為什么能提高效率?因為面向對象的設計中,都是在設計一個個的物件(OBJECT),共同的地方,可以重復利用
C語言也有庫什么的,為什么非要弄個新的,這么難懂的概念?
面向對象還有C語言等沒有的很多新的概念,如繼承,接口等,利用這些概念也可以提高開發的效率,減少重復開發
小的項目里也許體現不出來面向對象的優勢
大的項目就很有用了(也許只能在實際開發中去體會了)

面向過程的開發,人迎合機器的工作方式
面向對象,人更多的去集中抽象現實中的問題,以人的思維方式為本位,減少了對機器物理構造或工作方式的迎合,可以用更多的經歷去考慮怎么解決問題,怎么實現某些功能

posted @ 2007-01-16 09:23 瘋蝶雨人 閱讀(493) | 評論 (1)編輯 收藏


2007年1月11日

最近在網上看到一個求解數學表達式程序,感覺很不錯,故拿出來修改之后供大家一起分享.
程序如下:
#include <ctype.h> //打開庫文件
#include <stdio.h>
#include <iostream.h>
#include <malloc.h>
#include <process.h>
#include <string.h>

#define error 0
#define ok 1
typedef struct{
? int *base;
? int *top;
? int stacksize;
}sqstack;

class CExpression
{
public:
?CExpression();
?~CExpression();
public:
?void initstack(sqstack &s);
?int gettop(sqstack &s);
?void push(sqstack &s,int e);
?int pop(sqstack &s,int &e);
?int setfind(char a,char b[]); //查找a在b中的位置
?char precede(char op1,char op2,int &flag); //比較op1和op2的優先級
??? int numlink(int opd,int ops,int &flag); //數字與字符串的連接
?int operate(int n1,char o,int n2,int &flag);//運算
??????????? /*
??????????? flag為一個標志變量,
??????????? 1為表達式有誤!除數為0!
??????????? 2為表達式的值過大或過小
??????????? 3為未知類型的錯誤,可能沒有這一點
??????????? 但為了容錯,還是要加上這一點
?-*/
public:
?sqstack opnd;
?sqstack optr;
private:
?sqstack s;
};

CExpression::CExpression()
{
?s.top=s.base;
}

CExpression::~CExpression()
{
}

void CExpression::initstack(sqstack &s)
{
?s.base=(int *)malloc(10*sizeof(int));
?if(!s.base) exit(1);
?s.top=s.base;
?s.stacksize=100;
}

int CExpression::gettop(sqstack &s)
{
?int e;
?e=*(s.top-1);
?return e;
}

void CExpression::push(sqstack &s,int e)
{
??? if(s.top-s.base>=s.stacksize)
?{
??s.base=(int*)realloc(s.base,(s.stacksize+10*sizeof(int)));
??if(!s.base)
???exit(2);
??s.top=s.base+s.stacksize;
??s.stacksize+=10;
?}
?*s.top++=e;
}

int CExpression::pop(sqstack &s,int &e)
{
?if(s.top==s.base)return error;
?e=*--s.top;
?return ok;
}

int CExpression::setfind(char a,char b[])
{
?int i,j;
?i=-1,j=0;
?while(b[j]!='\0')
??if(a==b[j++]) {i=j-1;break;}
??return i;
}

char CExpression::precede(char op1,char op2,int &flag) //比較op1和op2的優先級
{
?int i,j;
?char st1[8]={"+-*/()#"}; //運算符初始化
?char st2[7][8]={">><<<>>",">><<<>>",">>>><>>", //比較操作初始化
??">>>><>>","<<<<<= ",">>>> >>","<<<<< ="};
?i=setfind(op1,st1);j=setfind(op2,st1);
?if (i>-1 && j>-1) //如果你所輸入的運算符不在+-*/()#內,返回ERROR
?{return st2[i][j];flag=ok;}
?else flag=error;
?return error;
}

int CExpression::numlink(int opd,int ops,int &flag){ //數字與字符串的連接
?int aa=ops;
?ops=ops*10+opd-48;
?if (ops<0 && aa>0 || aa>214748364)
??flag=error; else flag=ok; //flag=0,說明ops已經過大,
?return ops;
}

int CExpression::operate(int n1,char o,int n2,int &flag){ //運算
??????????? /*
??????????? flag為一個標志變量,
??????????? 1為表達式有誤!除數為0!
??????????? 2為表達式的值過大或過小
??????????? 3為未知類型的錯誤,可能沒有這一點
??????????? 但為了容錯,還是要加上這一點
?-*/
?
?int result=0;
?switch (o){
?case '+': //加法運算
??flag=0;result=n1+n2;
??if (n1>=0 && n2>=0 && result<0 || n1<=0 && n2<=0 && result>0)
???//兩個大于0的數相加,和小于0,或兩個小于0的數相加,和大于0,返回錯誤
??{flag=2;return error;}
??else
??{flag=0;return result;}
??break;
?case '-': //減法運算
??flag=0;result=n1-n2;
??if (n1>=0 && n2<0 && result<0 || n1<=0 && n2>0 && result>0)
???//一個大于0的數減一個小于0 的數,和小于0或一個小于0 的數減去一個大于0的數,返回錯誤
???
??{flag=2;return error;}
??else
??{flag=0;return result;}
??break;
?case '*': //乘法運算
??flag=0;result=n1*n2;
??if (n1>=0 && n2>=0 && result<0 || n1<=0 && n2<=0 && result>0)
???//兩個大于0的數相乘,積小于0,或兩個小于0的數相乘,積大于0,返回錯誤
??{flag=2;return error;}
??else
??{flag=0;return result;}
??break;
?case '/': //除法運算
??if(n2!=0) //如果被除數為0要返加ERROR
??{flag=0;return n1/n2;break;}
??else
???//除數為0,返回錯誤
??{flag=1;return error;break;}
?}
?flag=3;return error;
}

void main()
{
?CExpression expression;
//?sqstack opnd; //用于存放運算數
//?sqstack optr; //用于存放運算符
?int theta; //用于存放一個運算符
?int a,b; //用于存放用于操作的兩個數
?int temp; //一個臨時的變量
?int flag2=0; //一個標志變量,用于判斷是否要連接數字
?int flag1; //一個標志變量,用于判斷表達式是否是無效的
?int cn=0; //用于存放字符的位置
?int ops=0; //用于存放當前的操作數
?char st1[255]; //表達式中最多有255個字符
?char c; //用于表示當前的字符
?for (a=0;a<255;a++) st1[a]='#'; //對數組初始化
?expression.initstack(expression.opnd); //對棧OPND初始化
?expression.initstack(expression.optr); //對棧OPTR初始化
?expression.push(expression.optr,'#');
?cin>>st1;
?temp=strlen(st1);
?if (st1[temp-1]!='#') st1[temp]='#'; //對表達式的結尾加入一個#
?
?c=st1[0];
?while(c!='#' || expression.gettop(expression.optr)!='#'){ //cout<<st1;
??
??c=st1[cn];
??if(isdigit(c)) {
???ops=expression.numlink(c,ops,temp);
???if (temp==ok)
???{
????if (flag2) expression.pop(expression.opnd,temp);
????flag2=1;
????expression.push(expression.opnd,ops);
????cn++;
????continue;
???}
???else
???{cout<<"表達式的值過大,無法計算!"<<endl;return;}
??}
??else{
???ops=0;
???flag2=0;
???temp=expression.precede(expression.gettop(expression.optr),c,temp); //temp為precede中的一個代號,為ok為正確的運算符比較,為error為錯誤的運算符比較
???if (temp==error) {cout<<"表達式有誤!無法求解!"<<endl;return;} //錯誤的運算符比較時,返回.
???switch (temp){
???case '<':
????expression.push(expression.optr,c);cn++;break; //如果為<,操作符入棧
???case '=':
????expression.pop(expression.optr,temp);cn++;break; //如果為=,操作符出棧
???case '>': //如果為>,執行運算操作
????expression.pop(expression.optr,theta);
????expression.pop(expression.opnd,b);
????expression.pop(expression.opnd,a);
????expression.operate(a,theta,b,flag1);
????if (flag1==1) {cout<<"表達式有誤!除數不能為0!"<<endl;return;}
????else if(flag1==2) {cout<<"表達式的值過大或過小,無法計算!"<<endl;return;}
????else if(flag1==3) {cout<<"未知道類型的錯誤!"<<endl;return;}
????expression.push(expression.opnd,expression.operate(a,theta,b,flag1));
????break;
???case ' ':
????cout<<"表達式有誤!無法求解!"<<endl;return;
???} //end switch
??} //end if
?} //end while
?a=expression.gettop(expression.opnd);
?cn=0;
?while(st1[cn]!='#') cout<<st1[cn++]; //輸出你所輸入字符串
?cout<<"=";
?cout<<a<<endl; //輸出最終結果
}

該程序的缺點是不能處理存在小數的表達式.

posted @ 2007-01-11 09:34 瘋蝶雨人 閱讀(1087) | 評論 (0)編輯 收藏


2007年1月10日

一直以來,都想找一些好的網站來學習,可一直沒有如愿,今天終于找到這樣的網站了.在這里要謝謝★Rosina★,是她介紹給我的.非常感謝!!!

posted @ 2007-01-10 15:15 瘋蝶雨人 閱讀(249) | 評論 (1)編輯 收藏


僅列出標題  

posts - 4, comments - 4, trackbacks - 0, articles - 0

Copyright © 瘋蝶雨人

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            欧美在线啊v| 国产手机视频一区二区| 一本色道久久88精品综合| 亚洲国产美女| 亚洲激情亚洲| av成人免费在线| 亚洲一级黄色片| 久久精品国产69国产精品亚洲| 久久久久久9| 欧美国产精品人人做人人爱| 欧美日韩免费在线观看| 国产精品久久中文| 伊人久久亚洲热| 日韩网站在线| 欧美在线观看视频一区二区| 玖玖综合伊人| 亚洲久久一区| 久久国产精品99精品国产| 欧美mv日韩mv国产网站app| 欧美日韩国产影院| 好吊色欧美一区二区三区四区| 亚洲人成网站777色婷婷| 亚洲一区二区三区四区在线观看 | 日韩网站在线| 欧美在线视屏| 亚洲肉体裸体xxxx137| 亚洲欧美另类在线| 欧美ed2k| 狠狠色综合播放一区二区| 一本色道久久综合狠狠躁的推荐| 欧美在线视频免费观看| 亚洲精品日韩在线观看| 久久精品二区三区| 国产精品swag| 亚洲人成网站777色婷婷| 99精品国产在热久久婷婷| 欧美丰满高潮xxxx喷水动漫| 久久久久在线观看| 日韩视频免费在线观看| 久久婷婷国产综合尤物精品| 国产精品免费看| 亚洲免费观看在线视频| 久色婷婷小香蕉久久| 亚洲女ⅴideoshd黑人| 欧美日韩国产精品一区| 亚洲国产视频一区二区| 欧美伊人影院| 亚洲丁香婷深爱综合| 亚洲主播在线播放| 欧美日韩福利视频| 亚洲精品在线视频| 亚洲电影在线看| 美日韩免费视频| 91久久精品国产91久久性色tv| 麻豆精品视频在线| 久久视频一区二区| 国产有码一区二区| 久久香蕉国产线看观看av| 欧美在线一级va免费观看| 国产网站欧美日韩免费精品在线观看| 亚洲专区在线视频| 亚洲一级免费视频| 国产日产高清欧美一区二区三区| 亚洲黄一区二区三区| 在线一区二区三区四区| 欧美精品一线| 日韩亚洲国产欧美| 亚洲国产成人一区| 欧美激情va永久在线播放| 亚洲国产精品一区| 欧美不卡在线视频| 你懂的视频欧美| 亚洲黄色在线视频| 亚洲三级影院| 国产精品普通话对白| 久久精彩免费视频| 久久人人精品| 亚洲精品一区二区三区樱花| 亚洲三级免费| 国产免费亚洲高清| 美女视频网站黄色亚洲| 欧美国产精品人人做人人爱| 亚洲男人的天堂在线aⅴ视频| 亚洲视频一区二区在线观看| 国产小视频国产精品| 亚洲第一毛片| 国产精品青草久久久久福利99| 久久先锋资源| 国产精品mm| 欧美激情第五页| 国产精品毛片a∨一区二区三区| 浪潮色综合久久天堂| 国产一区二区三区日韩| 免费高清在线视频一区·| 久久久久高清| 9人人澡人人爽人人精品| 亚洲一区在线播放| 亚洲国产高清aⅴ视频| 亚洲视频一区二区免费在线观看| 黄色一区二区三区四区| 99精品免费视频| 亚洲国产99| 亚洲一区欧美二区| 日韩写真视频在线观看| 久久精品噜噜噜成人av农村| 亚洲一区二区三区在线播放| 玖玖在线精品| 久久精品国产一区二区电影| 欧美肉体xxxx裸体137大胆| 亚洲第一主播视频| 一区二区亚洲精品国产| 欧美一区二区三区免费看| 亚洲一区二区三区四区五区午夜 | 蘑菇福利视频一区播放| 欧美亚洲不卡| 亚洲欧洲精品一区二区三区不卡| 红杏aⅴ成人免费视频| 亚洲视频一区二区| 一区二区三区欧美日韩| 欧美福利视频在线| 牛人盗摄一区二区三区视频| 国产一区二区三区久久悠悠色av | 国产美女精品在线| 一本到12不卡视频在线dvd| 91久久午夜| 男人的天堂亚洲| 欧美福利精品| 好看的日韩av电影| 亚洲免费一在线| 午夜欧美不卡精品aaaaa| 国产精品第一区| 亚洲久久成人| 亚洲性感激情| 国产精品成人在线观看| 一区二区欧美在线观看| 亚洲综合首页| 国产乱码精品一区二区三区五月婷 | 国产精品久久久久久av下载红粉 | 欧美v国产在线一区二区三区| 久久夜色撩人精品| 激情视频亚洲| 女仆av观看一区| 欧美成人自拍| 午夜精品福利一区二区蜜股av| 欧美激情中文字幕一区二区| 亚洲国产mv| 亚洲一区二区三区四区五区午夜| 国产精品免费观看视频| 久久激情中文| 欧美激情1区2区3区| 99国产精品久久久久久久| 欧美视频国产精品| 亚洲欧美成人一区二区三区| 久久精品日产第一区二区| 在线日韩av| 欧美日韩精品免费观看视一区二区 | 香蕉尹人综合在线观看| 久久精品一区二区三区中文字幕| 国内精品久久久久久久影视麻豆| 久久夜色精品| 亚洲精品日本| 欧美亚洲综合网| 136国产福利精品导航网址| 欧美久久久久久久| 午夜精品999| 亚洲国产91精品在线观看| 亚洲女人天堂成人av在线| 在线不卡a资源高清| 欧美久久久久| 久久xxxx| 99天天综合性| 美女主播精品视频一二三四| 一区二区三区精品视频| 国产一区二区三区不卡在线观看| 美女精品国产| 亚洲欧美国产精品va在线观看 | 亚洲欧美另类综合偷拍| 麻豆亚洲精品| 香蕉成人啪国产精品视频综合网| 亚洲欧洲日本mm| 国产一区二区三区黄| 欧美日韩国产一中文字不卡| 久久精品国内一区二区三区| 中文av一区特黄| 91久久久亚洲精品| 久久天天综合| 亚洲欧美清纯在线制服| 亚洲国产欧美一区二区三区久久| 国产精品久久久久久模特| 欧美成人综合| 久久天堂成人| 久久xxxx精品视频| 午夜亚洲福利在线老司机| 9国产精品视频| 亚洲精品中文字幕有码专区| 亚洲激情一区二区| 欧美高清视频在线| 欧美成人免费在线视频| 久久久免费精品视频| 久久国产精品99国产精|