初步實現出題軟體

2022-05-25 04:39:10 字數 2111 閱讀 2037

設計思路

首先看到題目嘛最初寫了乙個類似1+1= 或者1-1= 的隨機生成算式的**:

int a,b,c,s,s1;

srand(time(null));

a=rand()%9+1;

b=rand()%9+1;

c=rand()%4+1;

switch(c)

scanf("%d",&s1);

if(s==s1)printf("回答正確!\n");

else printf("回答錯誤!答案是: %d\n",s);

來計算生成的算式。因此,我也順帶在裡面加了乙個計算器的功能。不過,我這裡有幾個解決難點的做法有點不好。

第一,真分數我做不到直接用排列組合的方式弄出,我的思路是重新定義乙個真分數的生成函式,然後呼叫。但是最好的方法應該是函式過載吧。

第二,除號塊是一大難點,畢竟隨機出來的,無法確定結果,題目卻要求整數結果,我的解決方案就是每次結果都要進行一次判斷是否為整數,然後不是整數進行重新隨機,這樣導致的結果就是除號出現的機率不會很大。

思路也就這些了吧,具體可以看我的**。

**規範:

函式含義

check()

計算結果

judge()

判斷結果是否為整數

fraction()

隨機生成真分數

rand()

隨機生成混合算式

randnum()

隨機數字

randsym()

隨機數字(1~4)

symbol()

找出對應符號

程式實現和結果測試的截圖:

提交日誌截圖:

分工

協作證據截圖

由於各自都要滿自己的事情,所以做這個作業也是有點煩,每次都是在半夜用qq催來催去,然後第二天不是我出去有事就是隊友出去有事,不過還好題目不是很難。

然後每次寫完自己的事,上傳,跟隊友說一聲有新任務了,大概就是這樣的吧。在合作過程中,除了**還有就是github的協作功能弄了半天才弄好。

由於語言的差異,隊友不擅長c++嘛,但是題目又要要求c++最好,所以只能把**寫的c和c++混合,能讓隊友看懂,必要時還要給他解釋一下什麼意思。但是在合作過程也感覺非常開心,偶爾會發生一些很有趣的事情。不過我最大的體會就是活到老,學到老。在和搭檔合作的過程中一起思考,一起討論,一起學習git的協作功能。

雖然感覺有點累,但是這些足以撫慰我了。

C 根據復合實現出 有乙個 或 根據某物實現出

20180326 c 根據復合實現出 有乙個 或 根據某物實現出 20180326 c 根據復合實現出 有乙個 或 根據某物實現出 復合 復合是型別間的一種關係,當某種型別的物件裡含有別種型別的物件,這就是復合關係,eg class address 某人的位址 class phonenumber c...

A 初步實現

由前幾天寫的acm 改了下,昨天下午寫的但再儲存最短路徑時有點問題,剛把最短路徑儲存改好了.加了個4方向還是8方向,在障礙物邊上是否拐角繞行.這裡面和 a 障礙拐角 4方向8方向 include include include include using namespace std int r,c ...

oracle 觸發器 實現出入庫

用語言實現 好處 1 可以減少對資料庫的訪問。2 可移植性好。壞處 1 操作起來考慮的東西較多,修改一處就要修改別一處。也就是說是相互關聯的。如果少改了某一處,很可能使資料不一致。用觸發器實現 好處 1 可以使程式設計師從複雜的相互關聯中解放出來,把精力放在複雜的業務上。壞處 1 可移植性差。下面我...