日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > windows >内容正文

windows

c语言程序设计平时作业代刷,C语言程序设计——小学生口算刷题系统

發布時間:2025/3/11 windows 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 c语言程序设计平时作业代刷,C语言程序设计——小学生口算刷题系统 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

程序函數關系圖

函數功能及全局變量介紹

代碼中已有詳細注釋的地方不再進行解釋。

全局變量

Cut( )函數

此函數用于分割界面,使界面更為美觀。

Start( )函數

此函數集成了開始菜單,年級的輸入,為了營造一個快樂而刺激的刷題體驗,程序與用戶有很多互動。

Number( )函數

由于出題時要非常注重題目的難度,因此控制隨機數的位數極其重要,因此單獨封裝成一個函數處理。

myRand( )函數

同上,很多時候生成的隨機數需要控制范圍,為了提高準確性,簡化判斷機制,單獨封裝函數來達成生成隨機數的目的。

correctMessage( )函數

incorrectMessage( )函數

Questions( )函數

此函數是出題的中樞函數,集成了我設置的所有題型,并且出口對接著其他函數共同完成出題。

出題注意:

所有的題目中不能出現答案的得數是負數;

三年級之前的小學生還沒有學習交換律、結合律和分配律,命題的時候不能考查這些,及運算過程不能存在負數中間量;

涉及除法運算時,除數不能為0;

除法運算的得數不能出現小數,三年級前的普通學生并不能很好地進行這種運算;

出題時需要注意控制得數的位數,不能將題目搞得太難;

出含有乘法、除法運算的題目時,必須顯示數學符號“×”和“÷”,否則小學生看不懂。

Game( )函數

此函數集成了題目量控制、判斷答案正誤及超時作答、中途退出的功能。

judgment( )函數

此函數用于分析用戶的作答情況,并給出一些提示和建議,并確認是否開啟下一輪練習。

Timer( )函數

此函數用于獲取現在的時間。

outTime( )函數

Prepare( )函數

此函數用于確認用戶的習題量,并給出溫馨提示,做好答題準備。

Ending( )函數

Addition( )函數

Subtraction( )函數

Multiplication( )函數

Division( )函數

Remainder( )函數

fourOperations( )函數

主函數

集成了菜單函數、準備函數、題量控制及裁判函數、結算函數和結束函數。

運行效果,測試用例

開始頁面

一年級題目

出題時由系統隨機出題,我并沒有完全按照作業要求出題,例如整十數減整十數的減法這類題,本質上是一位數加一位數,因此我對一些題型做了歸并處理。

一年級的題型有:

1/2位數 + 1位數;

1/2位數 - 1位數;

3個1位數的加減法運算。

二年級題目

出題時由系統隨機出題,我并沒有完全按照作業要求出題,例如尾數是0三位數加法(和在一千以內的)這類題,本質上是二位數加二位數,因此我對一些題型做了歸并處理。

二年級的題型有:

九九乘法表及其逆運算;

2位數與2位數的加減運算;

求余運算;

簡易的四則運算。

三年級題目

出題時由系統隨機出題,我并沒有完全按照作業要求出題,例如一位數乘一位這類題,本質上是九九乘法表,因此我對一些題型做了歸并處理。

三年級的題型有:

3位數與兩位數加減法運算(含連續進/退位);

兩位數乘一位數;

被除數是三位數求余運算;

考慮優先級的四則運算。

非法輸入

隨機給出習題量

生成習題量的方式是生成一個兩位的隨機數。

超時作答

超時作答的判定方式為單題答題結束時間減去開始時間超過15秒。

結算并開啟下一輪練習

系統將會根據正確率100%、80%、60%、60%以下四種情況進行判定,同時對超時率30%以上也有判定。

調試碰到問題及解決辦法

Q1:有時候出題時會同時打出兩道題目。

A1:出題時,主要使用了switch多分支結構,由于該結構的特性,在缺少break語句時會繼續執行下一個case,就會出現同時出了兩道題的情況,補上break即可。

Q2:四則運算題時,會出現題目的中間量為負數的情況。

A2:利用循環生成題目,如果遇到會出現這種情況的數據,則重新生成。

Q3:出除法題時,會出現得數含有小數的情況,然而三年級之前的學生較難處理這類題。

A3:所有的除法題改為用乘法的逆運算出題。

Q4:出除法題時,會出出除零運算的題。

A4:利用我自己寫的隨機數函數,就不會出現數字0。

Q5:出題時,最后一種題型的題目不出現。

A5:我忘記了我自己的隨機數函數的生成范圍是開區間,修改上即可。

Q6:非法數據作答時,系統會直接跑完所有循環。

A6:由于這種情況系統不會崩潰,并且也可以實現強行退出,再加上實力問題,所以暫時沒有處理。

Q7:如何實現計時功能?

A7:原計劃是判斷作答時間如果超過15秒就直接判錯,但是由于實力問題暫時不能實現,只能做到用戶作答之后判斷是否超時。

Q8:如何做到重開一輪練習?

A8:原計劃是想使用“goto”語句,但是后來想一想,只需要在主函數套個循環即可,因此重構了菜單函數,重新定義一個準備函數將原本的題量輸入的部分放進去。

Q9:在不利用bug的情況下如何實現強退?

A9:原計劃是想使用“goto”語句,但是后來想一想,只需要操作習題量,如果輸入負數,就直接讓題號加到習題量的上限,讓系統誤以為題目出完了即可。

Q10:為了避免猝不及防的開始,想要在開始練習之前設置倒計時。

A10:與舍友討論之后,學習了Sleep函數實現這個功能。

Q11:出題函數被老師指出代碼重復率很高。

A11:將不同的題型分別用函數封裝,通過控制傳入的參數達到控制難度的效果。

總結

以上是生活随笔為你收集整理的c语言程序设计平时作业代刷,C语言程序设计——小学生口算刷题系统的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。