除整數外,還要實現真分數的四則運算java
①主要函數:c++
char getSignal(); //獲取隨機運算符函數編程
int random(double,double); //獲取隨機數函數小程序
int getResult(int,int,char); //結果計算函數c#
int takeTest(); //題目生成函數瀏覽器
②主函數框架
void main()dom
{編程語言
int n,a,right=0;函數
double percent;
printf("Please enter the number of the test:");
scanf("%d",&n);
for(int i=0;i<n;i++)
{
a=takeTest();
right=right+a;
}
printf("Powerful!\n");
printf("The number of right:%d\n",right);
percent=((double)right*100.00)/(double)n;
printf("The percent of right:%0.2f %%\n",percent);
}
③獲取隨機運算符函數:
char getSignal()
{
char signal[4]={'+','-','*','/'};
srand((unsigned)time(NULL));
return signal[rand()%4];
}
④獲取隨機數函數:
int random(double start, double end)
{
return (int)(start+(end-start)*rand()/(RAND_MAX+ 1.0));
}
⑤結果計算函數:
int getResult(int num1,int num2,char signal)
{
int res;
switch(signal)
{
case '+':
res=num1+num2;break;
case '-':
res=num1-num2;break;
case '*':
res=num1*num2;break;
case '/':
res=num1/num2;break;
default:
printf("運算符錯誤!\n");
}
return res;
}
⑥題目生成函數:
int takeTest()
{
int get;
int num1,num2,a;
char signal;
srand((unsigned)time(NULL));
signal=getSignal();
num1=random(0,1000);
num2=random(1,1000);
if(signal=='-')
{
if(num1<num2)
{
int temp;
temp=num1;
num1=num2;
num2=temp;
}
}
if(signal=='/')
{
if(num2==0)
{
int temp;
temp=num1;
num1=num2;
num2=temp;
}
}
printf("%d%c%d=",num1,signal,num2);
scanf("%d",&get);
fflush(stdin); //清空輸入緩衝區
if(getResult(num1,num2,signal)==get)
{
printf("You're right!\n");
a=1;
}
else
{
printf("It's wrong!\n");
printf("The right answer is: %d\n",getResult(num1,num2,signal));
a=0;
}
return a;
}
支持多個運算符
# include <stdio.h>
int main(void)
{
double a, b;
int chose;
printf("歡迎使用個人計算器\n");
while (1)
{
printf("********************\n");
printf("一、兩數相加\n");
printf("二、兩數相減\n");
printf("三、兩數相乘\n");
printf("四、兩數相除\n");
printf("五、退出\n");
printf("********************\n");
scanf("%d", &chose);
/* if (chose<1 || chose>5)
{
printf("你的輸入有誤,請從新輸入!\n");
continue;
}*/
switch (chose)
{
case 1:
printf("請輸入第一個數字:\n");
scanf("%lf", &a);
printf("請輸入第二個數字:\n");
scanf("%lf", &b);
printf("%lf+%lf = %lf\n", a, b, a+b);
break;
case 2:
printf("請輸入第一個數字:\n");
scanf("%lf", &a);
printf("請輸入第二個數字:\n");
scanf("%lf", &b);
printf("%lf-%lf = %lf\n", a, b, a-b);
break;
case 3:
printf("請輸入第一個數字:\n");
scanf("%lf", &a);
printf("請輸入第二個數字:\n");
scanf("%lf", &b);
printf("%lf*%lf = %lf\n", a, b, a*b);
break;
case 4:
printf("請輸入第一個數字:\n");
scanf("%lf", &a);
printf("請輸入第二個數字:\n");
scanf("%lf", &b);
printf("%lf/%lf = %lf\n", a, b, a/b);
break;
case 5:
printf("再見!\n");
return ;
default:
printf("你的輸入有誤,請從新輸入!\n");
continue;
}
}
}
2.博客做業:我是呂越新,一名計算機應用技術專業的大二學生,我想經過對構建之法的學習,瞭解軟件相關知識,從需求分析到最後軟件投入市場過程當中如何提升軟件質量,瞭解相關流程,針對不一樣章節提煉出有內涵的東西,充分利用教材,彌補知識上的空缺,除了課上時間學習外,還要花費5小時閒暇時光在本書上,好好預習,複習,提升學習知識的能力,和小組成員共同進步,學會合做和互相配合,實現雙贏。
3.快速看完整章教材,列出你不懂的5-10個問題,發佈在你的我的博客上。
1我在《構建之法》第三版的26頁看到這樣一段話「若是用隨機數以增長測試的真實性,好嗎?
答:通常狀況下很差,若是某個隨機數致使程序出錯,可是下一次運行又不能重複這一錯誤,則於事無補。咱們仍是要用隨機數等辦法「增長測試真實性」,但不是在單元測試中。單元測試不能解決全部問題,沒必要指望它會發現全部的缺陷。
2.單元測試是應在最基本的功能/參數上驗證程序的正確性
答:單元測試應該測試程序中最基本的單元—如在c++/c#/java中的類,在此基礎上,能夠測試一些系統中最基本的功能點(這些功能由幾個基本點組成),從面向對象設計原理出發,系統中最基本的功能點也該由一個類及其方法來表現。單元測試API中的每個方法及每個參數。
3.單元測試應覆蓋全部代碼路徑
單元測試應覆蓋所測單元的代碼路徑,包括錯誤處理路徑。爲了保證代碼覆蓋率,單元測試必須測試公開的和私有的函數/方法。(基本路徑測試法是在程序控制流圖的基礎上,經過分析控制構造的環路複雜性,導出基本可執行路徑集合,從而設計測試用例的方法)。
4.單元測試必需要用最熟悉代碼的人(程序的做者來寫)
代碼的做者最瞭解代碼的目的、特色和實現的侷限性。因此,寫單元測試沒有比做者更適合的人選了。根據我實踐的經驗,本身的錯誤和缺點每每很難由本身發現,即便發現所需花費的時間成本也比較大。因此,才須要互測、互評。代碼的做者雖然熟悉代碼,但腦中傾向於驗證代碼的正確性而不是檢查錯誤。有些疏忽很明顯但容易視而不見,心中想象的代碼是完美的,而屏幕上的代碼卻有失誤。羅傑老師在第一節課時也提到,通常公司的開發人員和測試人員比例是1:1,有時甚至可能達到1:7.可見測試人員不可或缺。開發人員同時做測試人員既越俎代庖又效率低下。因此,我不是很理解和信服書做者的觀點。
5.對於「迴歸測試」中的"迴歸」,咱們能夠將其理解爲「迴歸到之前不正常的狀態」。
迴歸測試最好要自動化,由於這樣就能夠對於每個構建快速運行全部迴歸測試,以保證儘早發現問題。單元測試是迴歸測試的基礎。在專一於模塊基本功能的單元測試以外,還有功能測試------從用戶的角度檢車功能完成得怎麼樣。在微軟的實踐中,在一個項目的最後穩定階段,全部人都要參加全面的測試工做,把之前發現並修復的Bug找出來,一個一個驗證,以保證全部已經修復過的Bug的確獲得了修復,而且每在最後一個版本中"復發",這是一個大規模的,全面的「迴歸測試」。
4.
一 遊戲類軟件
遊戲有不少種類,分類方式有不少。好比說按照遊戲內容分,分爲射擊遊戲,益智遊戲,策略遊戲休閒遊戲......等等。還能夠按照遊戲平臺分類,遊戲大小分類,運行方式分類等多種分類方式。本類軟件能夠說是最受歡迎的軟件,幾乎人人都會使用,可是每一個人玩的都不盡相同,由於人的喜愛不一樣。遊戲最大的樂趣在於,它能夠實現現實中咱們想作卻不能作的事。
二. 工具類軟件
我對工具類軟件是這樣理解的:任何對咱們有幫助做用的軟件,好比WinRar它是咱們壓縮文件的工具,瀏覽器是咱們上網的工具,暴風影音是咱們看視頻的工具,我第一次使用這類軟件是大一初,決定我使用它有這麼幾個條件:1.互聯網購物興起。2.我擁有了本身的銀行卡。3.淘寶網是我國最大的網購平臺,支付寶對應淘寶。4.移動支付的快捷方便。
我國如今有超過四億的智能機用戶,使用移動平臺支付的有不到2個億,因此還有很大的發展空間,在將來20年,還會大行其道。
三 系統類軟件
我對系統類軟件不是很瞭解,在這裏先科普一下:系統軟件是指控制和協調計算機及外部設備,支持應用軟件開發和運行的系統,是無需用戶干預的各類程序的集合,主要功能是調度,監控和維護計算機系統;負責管理計算機系統中各類獨立的硬件,使得它們能夠協調工做 我第一次使用是時2016年,當時使用的是智能手機Android系統。緣由很簡單蘋果手機價格高,安卓更加親民。
軟件工程是教那些不會開發複雜項目的人怎樣去編程的學科。當學習一門編程語言時,咱們會在學習過程當中試着編寫一些小程序,這些程序可能只有幾十行代碼,而當咱們編寫的程序變得複雜,須要成千上萬行代碼和複雜的邏輯結構時,咱們會發現本身變得又不會編程了;就會試着像之前同樣按本身所想去實現這個複雜的程序,可是當程序的代碼愈來愈多,結構愈來愈複雜時,會發現出現的錯誤也愈來愈多,同時很難去修改,甚至可能會出現不能修復的錯誤。因此,一個複雜系統的開發,須要一套規範的管理方法去管理這個開發的過程,軟件工程就是關於怎樣管理開發過程的學科。軟件工程會使你知道怎樣去作需求分析以瞭解程序須要實現的功能,怎樣去作系統設計以構建程序的框架,怎樣測試以驗證程序功能的正確等。你能夠經過軟件工程的指導去實現一個結構清晰、可維護和健壯的程序。軟件工程會教給你如何從工程的角度去完成一個項目的開發,如何處理開發過程當中的各類問題,如何創造一個完美的軟件系統。
6.你所在的學校有計算機科學專業和軟件工程專業麼?相關專業的教學計劃和畢業出路有什麼不一樣?
有,關於軟件工程的教學計劃有軟件測試和軟件開發,學習的相關軟件知識更側重於測試,相對於開發的偏寫代碼的不一樣,測試行業試講開發人員寫的程序進行測試,檢測其程序是否存高危bug,並能及時的使開發人員修正錯誤,減小軟件開發須要使用的資金,同時軟件測試也不必定須要很強的專業能力,相對開發對來講更但願測試一類的工做。