作業描述:1. 本次作業要求將四則運算的核心部分採取棧的知識進行解決。即表示式生成的合法性檢驗、表示式結果計算。 2. 學習c++介面程式設計,可以學qt、mfc或者vs,選擇其一即可,用部落格記錄學習到的知識以及心得體會。不知道為什麼當時做作業四的時候要解釋演算法……就不重複貼了。請點:演算法及實現
**裡也有很詳盡的注釋,流程圖也很清楚,不贅述了。
重點講一下c++介面程式設計吧。
我先花了點時間去看了一下mfc,mfc全稱microsoft foundation classes,也就是微軟基礎類庫。它是vc++的核心,vc++全稱是visual c++,是由微軟提供的c++開發工具。mfc很徹底的用c++封裝了windows sdk(software development kit,軟體開發工具包)中的結構和功能,提供了乙個應用程式框架,此應用程式框架為軟體開發者提供了方便的操作手段,完成一些例行工作,提高開發效率。
下面是mfc的畫風:
void cadditiondlg::onbnclickedaddbutton()
效果圖如下:
mfc是很典型的c++語法。在稍微了解了mfc中,我認為c#完全可以替代mfc的功能。而且c#也是物件導向的語言,寫c#時也能,並且很多語法比純c++的mfc簡易許多。之前看過c#的網路公開課,然而很多東西當時還沒有理解,現在藉著這個作業的機會重拾了那堂公開課。
我實現了乙個非常簡易的「自動出題器」,功能是這樣的:有三個按鈕——出題、判定和清空。
按下出題
後,產生乙個很簡單的算式,然後使用者可以在旁邊的空白文字框中輸入答案。然後按下判定
,會在下面的文字列表中顯示本次答題的情況,如果回答錯誤還會顯示正確答案,並統計做題的情況。
按清空
後會清空所有資料。
下面貼上**:
int a, b;
string op;
int result;
static int numright = 0, numwrong = 0;
random rnd = new random();
private void btnnew_click(object sender, eventargs e)
op = "/";result = a / b;break;
}label1.text = a.tostring();
label2.text = op;
label3.text = b.tostring();
textbox1.text = "";
}private void btnjudge_click(object sender, eventargs e)
else
listbox1.items.add(display);
labelright.text = numright.tostring();
labelwrong.text = numwrong.tostring();
} private void btnclear_click(object sender, eventargs e)
}}c#的介面程式設計,很基礎的部分都是很好學的。c#**的書寫也是行雲流水(很多都是系統自動生成,不需要寫很多**),也有圖形化操作介面幫助設定各種屬性等等。
看到上面的簡易出題器,之後的工作只需要把我們之前寫的生成複雜表示式的邏輯整合到新的c#程式中即可。
那最後安利一波我以前看過,現在重拾的唐大仕老師的c#課程。mooc是好東西呀,要多看mooc。
《物件導向程式設計》課程作業八
emmm.轉眼又到學期末了。從寒假到這次結束,經歷的部落格及編碼作業的過程 時間過得好快啊,過年的時候在家裡用草稿紙上寫著函式原型和功能分塊,和朋友討論具體實現的細節 感覺寒假就在昨天一樣。部落格的話,不僅僅寫了這次作業,還積累了很多別的東西,這份收穫是可喜的。這次編碼是把所學知識做了一次真實的應用...
《物件導向程式設計》課程作業七
題目描述 請將隨機生成數字 表示式的部分設計成 乙個random基類,基類中有random 方法。並由該基類派生出randomnumber類 randomoperation類,繼承並覆蓋父類方法。學習簡單工廠模式,思考能否將該模式運用到題目的第一點要求中。include includeusing n...
《物件導向程式設計》課程作業四
ooa object oriented analysis,物件導向分析 從客觀存在的事務和事務之間的關係,歸納出有關物件 包括物件的屬性和行為 以及物件之間的聯絡,並將具有相同屬性和行為的物件用乙個類 class 來表示。建立乙個能夠反映真實情況的需求模型。ood object oriented d...