題目:自動生成四則運算題目編程
主要功能:能夠生成20之內除整數之外,支持真分數的四則運算,生成須要的題數量,題目隨機。框架
設計思想:首先,我先從編寫最簡單的部分開始入手,將須要生成的8種可能出現的題目格式編寫出來基本代碼以下:編程語言
#include<stdio.h> int main() { int a,b,x,y,; printf("%d+%d=\n",a,b); printf("%d-%d=\n",a,b); printf("%d*%d=\n",a,b); printf("%d/%d=\n",a,b); printf("%d/%d+%d/%d=\n",a,x,b,y); printf("%d/%d-%d/%d=\n",a,x,b,y); printf("%d/%d*%d/%d=\n",a,x,b,y); printf("%d/%d/%d/%d=\n",a,x,b,y); }
將以上代碼編寫完畢後,運行,會發現a,b,x,y這四個數的數值會很是大,因此接下來我選擇去定義數值的大小,rand()語句來定義數值大小,雖然本身能夠簡單寫出rand()定義數值大小的代碼,可是在編寫程序隨機出現次數的地方,遇到了麻煩,一開始我編寫的程序只能固定生成一個數值,一直都是1/7-=這個題目,在這裏我遇到了瓶頸,在加上本身的基礎知識並不牢固,因此無從下手,這之間我參考了網上,主要是百度知道爲主,觀看其餘人在編寫這個程序時遇到的問題,找到了基本入手的框架。在後來,經過學習,本身試着添加了能夠管理生成題目數量的功能。學習
參考網頁:url
http://zhidao.baidu.com/link?url=wKnpo3-cgxWvaEfToguP3pdLzNX4hsT1n70TWgjuSjdInjISfFXaoTVIq4WjD30V_qY0_HKTNYHA9GVuhWDp-qspa
在此網頁上,在回答的好心人裏我看到了,使程序能夠隨機生成須要次數的語句設計
#include <time.h> srand((unsigned)time(NULL)); for (i=0;i<10;i++)
參照,這個網頁所給的框架,通過對本身程序的修改最終將總體程序完成了一個隨機生成題目數目和題的程序。
源代碼:
#include<stdio.h>
#include<stdlib.h>
#include <time.h>
main(){
int a,b,x,y,i,j,z;
srand( (unsigned)time( NULL ) );
printf("題目數量:");
scanf("%d",&i);
for(j=0;j<i;j++)
{
a=rand()%20;
b=rand()%20;
x=rand()%20;
y=rand()%20;
z=rand()%7;
switch(z){
case 0:printf("%d+%d=\n",a,b);break;
case 1:printf("%d-%d=\n",a,b);break;
case 2:printf("%d*%d=\n",a,b);break;
case 3:printf("%d/%d=\n",a,b);break;
case 4:printf("%d/%d+%d/%d=\n",a,x,b,y);break;
case 5:printf("%d/%d-%d/%d=\n",a,x,b,y);break;
case 6:printf("%d/%d*%d/%d=\n",a,x,b,y);break;
case 7:printf("%d/%d/%d/%d=\n",a,x,b,y);break;
}
}
}
程序運行截圖:code
總結:blog
一開始我只是作了生成一個隨機題目的程序便發到了博客裏,可是我看了別的同窗還添加了能夠管理生成題目數量的功能,我以爲個人程序並不夠好,便經過學習試着添加了這個功能,讓個人程序更加完善了。經過此次做業,個人收穫不少,由於本身的基礎並非很好,因此,有些代碼能夠說並不知道,經過此次編寫題目生成程序,讓我學到了不少新的代碼,最深入的就是編寫隨機生成題目數目的代碼:ci
#include<time.h> srand( (unsigned)time( NULL ) ); for( j = 0; j < i;j++ )
在編程中我也遇到了不少問題,好比在最後一步設計輸入題目數量的時候,無論怎樣輸入數量題目只能生成一道題,最後,通過本身上網查看資料和同窗的幫助解決了問題,緣由是本身少定義了一個變量,switch語句和以前定義題目數量時使用的變量重複,致使程序出現了錯誤。此次做業也讓我認識到,只有不斷重複的練習,才能真正掌握其中運用的語言,通過大一的c語言學習,到如今已經好久沒用過了,也有不少知識點有所遺忘,我也好好複習了以前的知識。此次編程做業,我瞭解到本身的不少不足,和其它一些學習優秀的同窗比,我應該多向他們學習,用更多地時間去多練習下編程語言,其實此次的做業我雖然完成了,可是也有不少須要改進的地方,看別的同窗編的程序,還新增長了問答系統。在課下,我會多看看這些人編的程序,看看這些功能是如何實現的,本身也學習下。此次做業所運用的編程語言知識,我也會多加練習,將其完全掌握理解。