天天看點

軟體工程第一次作業

一、背景

    阿超有個兒子上國小二年級,老師每天讓家長給孩子出30道加減法題,雖然不多,但是每天都做也算是個負擔,阿超作為一個老牌程式員當然想用計算機來解決這個小問題,目前對于這個問題對于任何語言都不是問題,比如:

      C/C++、C#、Java、Python、VB、JavaScript、Perl……

    具體要求如下:

  • 能自動生成國小四則運算題目(注意是給國小生用的,要是結果出現負數的話他們會迷茫的!)
  • 除了整數外,還要支援真分數的四則運算

    請大家用任何一種自己擅長的語言來編寫這段程式,并把程式的介紹和自己編寫的過程寫一個部落格

二、分析

   (一) 自己擅長的是c語言,準備用c語言,支援真分數運算,如果用C語言,我們可以這麼考慮,a,b,c,d随機生成。可以生成菜單,然後選擇自己想要的運算,加減乘除四則運算均可以。

(二)當進行一次運算之後可以實作選擇選擇檢視答案或者是進行下一題。然後可以進行不同的操作。

(三)輸入一個數,知道出題的數目,随機産生的題數目,多輸也會提示輸入錯誤。

三、代碼部分

我用的是C語言寫的:

#include<stdio.h>

#include<stdlib.h>

#include<time.h>

main()

{

int a,b,op,os;

printf(" [國小生四則運算]\n");

aq1: printf("選擇您想挑戰的運算法則\n");

printf("1.加法 2.減法 3.乘法 4.除法\n");

scanf("%d",&op);

switch(op)

aq: case 1:

srand((unsigned)time(NULL));

a=rand()%100+1;b=rand()%100+1;

printf("題目為:%d + %d = ?\n\n",a,b);

printf("1.檢視答案 2.做下一題\n");

scanf("%d",&os);

if(os==1)

{printf("%d + %d =%d\n\n\n",a,b,a+b);

goto aq1;

}

else

goto aq;

break;

at: case 2:a=rand()%100+1;b=rand()%100+1;

printf("題目為:%d - %d = ?\n\n",a,b);

{printf("%d - %d =%d\n\n\n",a,b,a-b);

goto at;

aq2: case 3:

printf("題目為:%d * %d = ?\n\n",a,b);

{printf("%d * %d =%d\n\n\n",a,b,a*b);

goto aq2;

aq3: case 4:

printf("題目為:%d / %d = ?\n\n",a,b);

{printf("%d / %d =%d\n\n\n",a,b,a/b);

goto aq3;