【C语言及程序设计】项目1-24-4:个人所得税计算器if语句版
                                                            生活随笔
收集整理的這篇文章主要介紹了
                                【C语言及程序设计】项目1-24-4:个人所得税计算器if语句版
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.                        
                                對比筆者和老師的code
筆者:
1 // 個人所得稅計算器if語句版.cpp: 2 問題描述:https://blog.csdn.net/sxhelijian/article/details/43918271 3 // 4 5 #include "stdafx.h" 6 7 8 int main() 9 { 10 double dSalary, dTax = 0, dNetIncome = 0; 11 printf("請輸入您本月的收入總額(元):"); 12 scanf_s("%lf", &dSalary); 13 // 下面求解應繳個人所和稅dTax和稅后收入dNetIncome 14 15 if (dSalary <= 3500) 16 { 17 dTax = 0; 18 dNetIncome = dSalary; 19 } 20 else 21 { 22 if (dSalary <= 5000) 23 { 24 dTax = (dSalary - 3500) *3.0 / 100 - 0; 25 dNetIncome = dSalary - dTax; 26 } 27 else 28 { 29 if (dSalary <= 8000) 30 { 31 dTax = (dSalary - 3500) *10.0 / 100 - 105; 32 dNetIncome = dSalary - dTax; 33 } 34 else 35 { 36 if (dSalary <= 12500 ) 37 { 38 dTax = (dSalary - 3500) *20.0 / 100 - 555; 39 dNetIncome = dSalary - dTax; 40 } 41 else 42 { 43 if (dSalary <= 38500) 44 { 45 dTax = (dSalary - 3500) *25.0 / 100 - 1005; 46 dNetIncome = dSalary - dTax; 47 } 48 else 49 { 50 if (dSalary <= 58500) 51 { 52 dTax = (dSalary - 3500) *30.0 / 100 - 2755; 53 dNetIncome = dSalary - dTax; 54 } 55 else 56 { 57 if (dSalary <= 83500) 58 { 59 dTax = (dSalary - 3500) *35.0 / 100 - 5505; 60 dNetIncome = dSalary - dTax; 61 } 62 else 63 { 64 dTax = (dSalary - 3500) *45.0 / 100 - 13505; 65 dNetIncome = dSalary - dTax; 66 } 67 } 68 } 69 } 70 } 71 } 72 } 73 74 75 printf("您本月應繳個人所和稅 %.2lf 元,稅后收入是 %.2lf 元。\n", dTax, dNetIncome); 76 printf("依法納稅,共享繁榮。謝謝使用!\n"); 77 return 0; 78 }?
老師:
1 #include <stdio.h> 2 int main ( ) 3 { 4 double dSalary,dTax=0,dNetIncome=0; //請欣符合匈牙利命名法的變量名 5 double dValue; //在模板基礎上加一個變量,表示超出起征點的收入 6 double dRate, dOffset; //分別表示稅率和速算扣除數 7 printf("請輸入您本月的收入總額(元):"); 8 scanf("%lf", &dSalary); 9 // 下面求解應繳個人所和稅dTax和稅后收入dNetIncome 10 dValue = dSalary - 3500; //在起征點基礎上考慮納稅 11 if(dValue <= 0.0) 12 dTax = 0.0; //不需要交稅 13 else 14 { 15 if(dValue <= 1500) 16 dRate = 0.03, dOffset = 0.0; //這一組if語句用于得到稅率和速算扣除數 17 else if(dValue <= 4500) 18 dRate = 0.1, dOffset = 105.0; 19 else if(dValue <= 9000) 20 dRate = 0.2, dOffset = 555.0; 21 else if(dValue <= 35000) 22 dRate = 0.25, dOffset = 1005.0; 23 else if(dValue <= 55000) 24 dRate = 0.3, dOffset = 2755.0; 25 else if(dValue <= 80000) 26 dRate = 0.35, dOffset = 5505.0; 27 else 28 dRate = 0.45, dOffset = 13505.0; 29 dTax = dValue * dRate - dOffset; //計算所得稅,體會將“確定參數”與“計算”分開的好處:思路更明晰,不易在計算公式上犯大錯 30 } 31 dNetIncome = dSalary-dTax; //計算稅后收入 32 printf("您本月應繳個人所和稅 %.2lf 元,稅后收入是 %.2lf 元。\n", dTax, dNetIncome); 33 printf("依法納稅,共享繁榮。謝謝使用!\n"); 34 return 0; 35 }?
感想:
1.這個問題非常簡單,所以筆者的code還算湊合,但是老師的code明顯更優(更容易閱讀與維護),因為其中體現了“模塊化”的編程思維(我感覺這類似 C++的面向對象的思維,即OOP),所以小問題也蘊含著大道理;
?
2.程序中的bug 基本上可以分成三種:語法錯誤、運行錯誤、邏輯錯誤。其中最棘手的錯誤是邏輯錯誤。
但事實上,語法錯誤中也有一種非常棘手的錯誤,那就是 編譯器不會報錯的語法錯誤,程序規模一大,極其難以排查,如
if( x = 100 )if(); //單分支這些錯誤,有些聰明的編譯器(如vs的最新版)也能查出來,但不聰明的就不會提示出來了。要避免這樣的錯誤,只有靠經驗與養成良好的編程習慣(convention)。
if( 100 == x )if(){ }//單分支?
?
?
?
?
=
轉載于:https://www.cnblogs.com/miyazakehime/p/9123102.html
總結
以上是生活随笔為你收集整理的【C语言及程序设计】项目1-24-4:个人所得税计算器if语句版的全部內容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: Matlab中的eig函数和Opecv中
- 下一篇: Visual Studio的下载安装
