跪求大佬~ 南京理工大学 程序设计基础(Ⅰ) SPOC | 学校专有课程 编程作业 第4章作业1

南京理工大学 程序设计基础(Ⅰ) SPOC | 学校专有课程 编程作业 第4章作业1

第一题

二元一次方程的求解(100分) *

感谢 #include<xyz 分享的代码!

题目内容:
求一元二次方程ax^2+bx+c=0的根。根据提示输入系数a、b、c的值,显示方程的根。注意a为0、b为0、实数根、复数根等不同情况。

输入格式:
依次输入a、b和c的 值

输出格式:
见样例,两个根之间用一个空格分隔

输入样例1:
0 2 4

输出样例1:
x=-2

输入样例2:
1 2 3

输出样例2:
x1=-1+1.41421i x2=-1-1.41421i

输入样例3:
1 4 3

输出样例3:
x1=-1 x2=-3

输入样例4:
0 0 4

输出样例4:
It’s not an equation.

输入样例5:
2 4 2

输出样例5:
x1=-1 x2=-1

#include<iostream>
#include<cmath>
using namespace std;


int main(){
	float a, b, c;
	cin >> a >> b >> c;
	if (a == 0 && b == 0 && c != 0) {
		cout << "It's not an equation."; 
		return 0;
	}
	
	if (a == 0) cout << "x=" << -c / b;
	else if (b * b - 4 * a * c > 0){
		cout << "x1=" << (-b + sqrt(b * b - 4 * a * c)) / (2 * a) << " ";
		cout << "x2=" << (-b - sqrt(b * b - 4 * a * c)) / (2 * a);
	}
	else {
		cout << "x1=" << (-b / (2 * a)) << "+" << sqrt(4 * a * c - b * b) / 2 * a << "i ";
		cout << "x2=" << (-b / (2 * a)) << "-" << sqrt(4 * a * c - b * b) / 2 * a << "i";
	}
	return 0;
}

第二题
**个人所得税的计算(100分)

结果有误,扣40分!为什么呀?呜呜呜~~~

题目内容:根据以下个人所得税计算方法,完成一个工资个人所得税计算器。**

工资个税计算公式:
全月应纳税额 = (月收入 – 五险一金 – 3500) × 适用税率 - 速算扣除数

其中,适用税率和速算扣除率如表所示。

输入格式:
从键盘依次输入月收入和五险一金

输出格式:
输出相应的全月应纳税额(>=0元),所有金额到小数点后两位。

输入样例:
10000 2220

输出样例:
全月应缴税额为323.00元

补充:
在C++中,要实现小数点后固定位数显示,需要用到头文件中的setprecision()函数。可自行运行以下程序体会该函数的作用:

#include <iostream>
#include <iomanip>
//用setprecision(n)设置精度,其中n表示精确到小数点后n位
using namespace std;
int main()
{
        cout<<fixed<<setprecision(2)<<123.8888<<endl;
        cout<<fixed<<setprecision(2)<<12<<endl;
        return 0;
}

答案:

#include<iostream>
#include <iomanip>
using namespace std;

int main() {

	float income, insurance, money;
	cin >> income >> insurance;
	money = income - insurance - 3500;

	if (money <= 1500 && money >= 0) cout << fixed << setprecision(2) << "全月应缴税额为" << money * 0.03 - 0 << "元";
	else if (money <= 4500 && money * 0.1 - 105 >= 0) cout << fixed << setprecision(2) << "全月应缴税额为" << money * 0.1 - 105 << "元";
	else if (money <= 9000 && money * 0.2 - 555 >= 0) cout << fixed << setprecision(2) << "全月应缴税额为" << money * 0.2 - 555 << "元";
	else if (money <= 35000 && money * 0.25 - 1005 >= 0) cout << fixed << setprecision(2) << "全月应缴税额为" << money * 0.25 - 1005 << "元";
	else if (money <= 55000 && money * 0.3 - 2755 >= 0) cout << fixed << setprecision(2) << "全月应缴税额为" << money * 0.3 - 2755 << "元";
	else if (money <= 80000 && money * 0.35 - 5505 >= 0) cout << fixed << setprecision(2) << "全月应缴税额为" << money * 0.35 - 5505 << "元";
	else if (money > 80000 && money * 0.1 - 13505 >= 0) cout << fixed << setprecision(2) << "全月应缴税额为" << money * 0.45 - 13505 << "元";
	else cout << "全月应缴税额为0.00元";

	system("pause");
	return 0;
}

第三题
某年某月某日是该年中的第几天(100分)
题目内容:计算某年某月某日是该年中的第几天。

输入格式:
依次输入年、月和日

输出格式:
输出这一天是该年中的第几天。注意年月日合法性的判定和闰年的计算

输入样例1:
2009 3 2

输出样例1:
这是2009年的第61天

输入样例2:
2009 3 32

输出样例2:
日期有误

#include<iostream>
using namespace std;

int main(){
	int year, month, day;
	cin >> year >> month >> day;
	
	//判断闰年
	if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) {
		switch (month){
			case 1:
				if (day > 0 && day <= 31) {
				cout << "这是" << year << "年的第" << day << "天";
				}
				else cout << "日期有误";
				break;
			case 2:
				day += 31;
				if (day > 0 && day <= 60) {
				cout << "这是" << year << "年的第" << day << "天";
				}
				else cout << "日期有误";
				break;
			case 3:
				day += 60;
				if (day > 0 && day <= 91) {
				cout << "这是" << year << "年的第" << day << "天";
				}
				else cout << "日期有误";
				
				break;
			case 4:
				day += 91;
				if (day > 0 && day <= 121) {
				cout << "这是" << year << "年的第" << day << "天";
				}
				else cout << "日期有误";
				
				break;
			case 5:
				day += 121;
				if (day > 0 && day <= 152) {
				cout << "这是" << year << "年的第" << day << "天";
				}
				else cout << "日期有误";
				
				break;
			case 6:
				day += 152;
				if (day > 0 && day <= 182) {
				cout << "这是" << year << "年的第" << day << "天";
				}
				else cout << "日期有误";
				
				break;
			case 7:
				day += 182;
				if (day > 0 && day <= 213) {
				cout << "这是" << year << "年的第" << day << "天";
				}
				else cout << "日期有误";
				break;
			case 8:
				day += 213;
				if (day > 0 && day <= 244) {
				cout << "这是" << year << "年的第" << day << "天";
				}
				else cout << "日期有误";
				break;
			case 9:
				day += 244;
				if (day > 0 && day <= 274) {
				cout << "这是" << year << "年的第" << day << "天";
				}
				else cout << "日期有误";
				break;
			case 10:
				day += 274;
				if (day > 0 && day <= 305) {
				cout << "这是" << year << "年的第" << day << "天";
				}
				else cout << "日期有误";
				break;
			case 11:
				day += 305;
				if (day > 0 && day <= 335) {
				cout << "这是" << year << "年的第" << day << "天";
				}
				else cout << "日期有误";
				break;
			case 12:
				day += 335;
				if (day > 0 && day <= 366) {
				cout << "这是" << year << "年的第" << day << "天";
				}
				else cout << "日期有误";
				break;
			default:
				cout << "日期有误";
		}
	}
	else {
		switch (month){
			case 1:
				if (day > 0 && day <= 31) {
				cout << "这是" << year << "年的第" << day << "天";
				}
				else cout << "日期有误";
				break;
			case 2:
				day += 31;
				if (day > 0 && day <= 59) {
				cout << "这是" << year << "年的第" << day << "天";
				}
				else cout << "日期有误";
				break;
			case 3:
				day += 59;
				if (day > 0 && day <= 90) {
				cout << "这是" << year << "年的第" << day << "天";
				}
				else cout << "日期有误";
				
				break;
			case 4:
				day += 90;
				if (day > 0 && day <= 120) {
				cout << "这是" << year << "年的第" << day << "天";
				}
				else cout << "日期有误";
				
				break;
			case 5:
				day += 120;
				if (day > 0 && day <= 151) {
				cout << "这是" << year << "年的第" << day << "天";
				}
				else cout << "日期有误";
				
				break;
			case 6:
				day += 151;
				if (day > 0 && day <= 181) {
				cout << "这是" << year << "年的第" << day << "天";
				}
				else cout << "日期有误";
				
				break;
			case 7:
				day += 181;
				if (day > 0 && day <= 212) {
				cout << "这是" << year << "年的第" << day << "天";
				}
				else cout << "日期有误";
				break;
			case 8:
				day += 212;
				if (day > 0 && day <= 243) {
				cout << "这是" << year << "年的第" << day << "天";
				}
				else cout << "日期有误";
				break;
			case 9:
				day += 243;
				if (day > 0 && day <= 273) {
				cout << "这是" << year << "年的第" << day << "天";
				}
				else cout << "日期有误";
				break;
			case 10:
				day += 273;
				if (day > 0 && day <= 304) {
				cout << "这是" << year << "年的第" << day << "天";
				}
				else cout << "日期有误";
				break;
			case 11:
				day += 304;
				if (day > 0 && day <= 334) {
				cout << "这是" << year << "年的第" << day << "天";
				}
				else cout << "日期有误";
				break;
			case 12:
				day += 334;
				if (day > 0 && day <= 365) {
				cout << "这是" << year << "年的第" << day << "天";
				}
				else cout << "日期有误";
				break;
			default:
				cout << "日期有误";
		}
	} 
	 
	return 0;
}
  • 4
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值