第15周-專案1-平方根中的異常
問題及程式碼:
執行結果:
異常處理。
/*
*Copyright (c)2015,煙臺大學計算機與控制工程學院
*All rights reserved.
*檔名稱:Equation.cpp
*作 者:單昕昕
*完成日期:2015年6月17日
*版 本 號:v1.0
*問題描述:編寫一個程式,求輸入數的平方根。設定異常處理,當輸入負數時採用異常處理機制給出提示。
*程式輸入:各項係數。
*程式輸出:方程的平方根。
*/
#include <iostream>
#include <cmath>
using namespace std;
int main()
{
double a,b,c,d;
cout<<"請輸入一元二次方程ax^2+bx+c=0的各項係數:"<<endl;
cin>>a>>b>>c;
d=b*b-4*a*c;
try
{
if(d<0)
throw d;
if(a!=0&&b!=0&&c!=0)
cout<<"方程"<<a<<"x^2+"<<b<<"x+"<<c<<"=0"<<"的平方根:"<<(-b+sqrt(d))/(2*a)<<"和"<<(-b-sqrt(d))/(2*a)<<endl;
else if(a==0)
{
cout<<"方程"<<b<<"x";
if(c>0)
cout<<"+";
cout<<c<<"=0"<<"的根:"<<-c/b<<endl;
}
else if(b==0)
{
cout<<"方程"<<a<<"x^2";
if(c>0)
cout<<"+";
cout<<c<<"=0"<<"的平方根:"<<(-b+sqrt(d))/(2*a)<<"和"<<(-b-sqrt(d))/(2*a)<<endl;
}
else if(c==0)
{
cout<<"方程"<<a<<"x^2";
if(b>0)
cout<<"+";
cout<<b<<"x"<<"=0"<<"的平方根:"<<(-b+sqrt(d))/(2*a)<<"和"<<(-b-sqrt(d))/(2*a)<<endl;
}
}
catch(double)
{
cout<<"根的判別式小於0,原方程無實數根!"<<endl;
}
catch(int)
{
cout<<"根的判別式小於0,原方程無實數根!"<<endl;
}
return 0;
}
執行結果:
異常處理。
學習心得:
其實很簡單,就是對於係數為0 的特殊處理要麻煩一點。
一開始想用三目運算子,後來改了好久,發現還是老老實實用if-else語句方便阿!!
相關文章
- 第15周-閱讀專案1-異常處理&&名稱空間
- 第15周-閱讀專案2-異常處理&&名稱空間
- 第2周專案1-旱冰場造價
- 第14周-閱讀專案1-二進位制檔案的讀寫
- 第3周專案1-三角形類1
- 第15周-專案3-max帶來的衝突
- 第13周-專案1-小玩檔案-將文字檔案中的所有行加上行號後寫到新檔案中
- 第14周-專案1-用二進位制檔案處理學生成績
- 第15周-專案2-有些數的階乘不算了
- 第13周-閱讀專案1-標準輸入輸出物件及文字檔案物件
- SpringBoot專案中遇到的異常Spring Boot
- springboot專案中的異常處理Spring Boot
- 第2周專案2-長方柱類
- 第2周專案4-圖書館的書
- 關於專案中遇到的NullPointerException異常時處理手段NullException
- 第4周專案1-三角形類的建構函式(2)-預設建構函式函式
- 第13周-專案1-小玩檔案-用鍵盤輸入檔名,統計輸出檔案中每個字母、數字字元出現的次數字元
- 第2周專案3-時間類(1)
- 第2周專案3-時間類(2)
- 第4周專案2-分數類的雛形
- 第4周專案1-三角形類的建構函式(4)-使用引數初始化表函式
- 第13周-專案1-小玩檔案-用鍵盤輸入檔名,統計輸出類似下面的資料
- C與C++中的異常處理15 (轉)C++
- 第13周-閱讀專案3-對文字檔案的訪問
- 第4周專案1-三角形類的建構函式(1)-使用帶引數建構函式函式
- 第4周專案4-指向學生類的指標指標
- 第9周專案3輸出星號圖(3)
- 第14周-閱讀專案5-字串流物件字串物件
- 異常體系與專案實踐
- Java 中的異常Java
- java中的異常Java
- 第13周-專案2-用檔案儲存的學生名單
- 在大型軟體專案中如何處理錯誤和異常
- 專案分享九:客戶端的異常處理客戶端
- 第2周專案-課後實踐·閱讀程式(1)
- 第2周專案-課後實踐·閱讀程式(2)
- 第4周專案1-三角形類的建構函式(3)-使用有預設引數的建構函式函式
- J2EE專案異常處理