软件工程第四次作业-四则运算试题生成
四則運(yùn)算試題生成
博客園地址:http://www.cnblogs.com/liuyaoze/
git地址:https://git.coding.net/Vector121/f4.git
要求1:
(1)給出每個(gè)功能的重點(diǎn)、難點(diǎn)、編程收獲。
功能1. 四則運(yùn)算
重點(diǎn):實(shí)現(xiàn)四則運(yùn)算中的計(jì)算功能。
難點(diǎn):當(dāng)程序出現(xiàn)除法時(shí),易出現(xiàn)除零bug。于是我們采用沖擊隨機(jī)數(shù)的方法來(lái)解決這個(gè)問(wèn)題。
編程收獲:這個(gè)功能的實(shí)現(xiàn),讓我對(duì)使用堆棧進(jìn)行中后綴表達(dá)式變換的過(guò)程更加熟悉,同時(shí)發(fā)現(xiàn)了自己編程不規(guī)范的一些問(wèn)題,比如命名寫在一起,學(xué)會(huì)了隨機(jī)數(shù)random函數(shù)的用法。
操作:打開(kāi)控制臺(tái),cd到工程的路徑中C:\Users\Administrator\Documents\Visual Studio 2013\Projects\f4\f4\bin\Debug。然后鍵入f4并按格式輸入結(jié)果后,實(shí)現(xiàn)了功能1的要求,并實(shí)現(xiàn)了對(duì)輸入格式是否合法使用?進(jìn)行判斷,詳細(xì)可見(jiàn)附圖。
功能2.支持括號(hào)
重點(diǎn):加括號(hào)的方法,除法有所變化
難點(diǎn):在哪個(gè)位置加括號(hào),怎么不讓括號(hào)出現(xiàn)4個(gè)。
編程收獲:直到這次作業(yè)我才知道原來(lái)計(jì)算加個(gè)括號(hào)有這么難。我們采用隨機(jī)加給兩個(gè)數(shù)的方法使用三種情況,加括號(hào)的情況,不加括號(hào)的情況,將加完括號(hào)的算試與未加括號(hào)的數(shù)字用位置對(duì)調(diào)的方法來(lái)進(jìn)行隨機(jī)生成試題。
功能3.限定題目數(shù)量,"精美"打印輸出,避免重復(fù)
重點(diǎn):如何打印整齊,避免試題重復(fù)
難點(diǎn):如何避免試題重復(fù)。使用了將算試存入數(shù)組進(jìn)行匹配的方式進(jìn)行判斷,通過(guò)IsNotSame函數(shù)實(shí)現(xiàn)了功能。
編程收獲:知道如何精美輸出,使用Console.WriteLine("{0,-30}{1}",str,sum)便可實(shí)現(xiàn)對(duì)輸出變量位置的確定。
操作:按作業(yè)要求分別鍵入f4 -c 3,f4 -c 5,得到如下面兩圖,實(shí)現(xiàn)了限定題目數(shù)量,"精美"打印輸出,避免重復(fù)。
(2)結(jié)對(duì)編程體會(huì):
這次編程首先我要感謝我的隊(duì)友楊梓瑞同學(xué),這次結(jié)對(duì)我覺(jué)得很有意義。與自己編程不同,很多編程時(shí)遇到的問(wèn)題都可以互相討論,得到比自己獨(dú)自編程時(shí)更佳的結(jié)果,加強(qiáng)了自己的編程效率和勁頭。同時(shí)我能學(xué)習(xí)到我伙伴的良好編程習(xí)慣,以及編程思路,并進(jìn)而發(fā)現(xiàn)很多自己身上的陋習(xí)。比如說(shuō)注釋格式,編程時(shí)用到的快捷鍵。這種愉快的合作方式十分有趣,希望呦吼還能有機(jī)會(huì)和我的小伙伴一起合作。
(3)至少5項(xiàng)在編碼、爭(zhēng)論、復(fù)審等活動(dòng)中花費(fèi)時(shí)間較長(zhǎng),給你較大收獲的事件。
1.在編寫本程序之前,我們首先討論了編寫程序所用的語(yǔ)言,我們最后選擇使用C#語(yǔ)言作為本程序的編程語(yǔ)言。
2.在將中綴表達(dá)式變成后綴表達(dá)式時(shí),我們本來(lái)以為會(huì)有那種直接實(shí)現(xiàn)的棧的函數(shù),經(jīng)過(guò)在網(wǎng)上搜索后,我們發(fā)現(xiàn)這個(gè)功能還是得自己實(shí)現(xiàn),最后我們討論出可行的解決方法實(shí)現(xiàn)了這個(gè)功能。
3.生成試題加入括號(hào)后,我們碰到了難點(diǎn),如何能實(shí)現(xiàn)括號(hào)結(jié)果出現(xiàn)0時(shí),不讓括號(hào)里的數(shù)成為除數(shù),我們產(chǎn)生了很多想法,最后討論出結(jié)果解決了問(wèn)題,這里也花費(fèi)了很長(zhǎng)時(shí)間。
4.給變量起名字也是個(gè)有意思且費(fèi)時(shí)的事情,我們查找了很多單詞,確定下最適合當(dāng)函數(shù)名的單詞,修改了不少格式上的問(wèn)題,這都花了一些時(shí)間。
5.在測(cè)試生成試題結(jié)果的時(shí)候,我們發(fā)現(xiàn)我們的計(jì)算結(jié)果和程序運(yùn)算的結(jié)果并不相同,經(jīng)過(guò)查找最后發(fā)現(xiàn)這個(gè)錯(cuò)誤是因?yàn)樵谟?jì)算后綴表達(dá)式的時(shí)候?qū)?shù)寫反了,僅僅很小的一個(gè)錯(cuò)誤便費(fèi)了我們不少時(shí)間。
要求2:楊梓瑞(左)和我交流討論時(shí)的照片。
轉(zhuǎn)載于:https://www.cnblogs.com/liuyaoze/p/7649944.html
總結(jié)
以上是生活随笔為你收集整理的软件工程第四次作业-四则运算试题生成的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 浅谈nvme sata pci-e m.
- 下一篇: 软件体系结构的第二次实验(解释器风格与管