第八周 C++实践 分支程序设计

本文包含多个C++编程实例,如分段函数计算、个人所得税计算、定期存款利息计算等,涉及条件判断、数学运算和基本输入输出操作。
/*
* Copyright (c) 2016,北京建筑大学测绘学院
* All rights reserved.
* 文件名称:第八周项目.cpp
* 作    者:书写未来的code
* 完成日期:2016 年 1 月 30 日
* 版 本 号:v1.0
*
* 标题:第8周项目
*/

//第8周项目6:本月有几天?
#include "stdafx.h"
#include <iostream>
using namespace std;
int main()
{
	bool leap = true;
	int year,month,day;
	cout << "请输入年份和月份:";
	cin >> year >> month;
	//判断是否为闰年
	if (year % 4 != 0)
	{
		leap = false;
	}
	else if (year % 100 != 0)
	{
		leap = true;
	}
	else if (year % 400 == 0)
	{
		leap = true;
	}
	else
	{
		leap = false;
	}
	//判断所在月中某一个月有多少天
	switch (month)
	{
	case 1:
	case 3:
	case 5:
	case 7:
	case 8:
	case 10:
	case 12:
		day = 31;
		break;
	case 2:
		if (leap)
		{
			day = 29;
		}
		else
		{
			day = 28;
		}
		break;
	case 4:
	case 6:
	case 9:
	case 11:
		day = 30;
	default:
		break;
	}
	cout << year << "年中" << month << "月有" << day << "天。" << endl;
	return 0;
}




//第8周项目5:定期存款利息计算器
#include "stdafx.h"
#include <iostream>
#include <cmath>
using namespace std;
int main()
{
	double dSalary, interest, rate, date, sum;
	int k;
	cout << "欢迎使用利息计算器!" << endl;
	cout << "请输入存款金额:";
	cin >> dSalary;
	cout << "======存款期限======" << endl;
	cout << "1. 3个月\n2. 6个月\n3. 一年\n4. 二年\n5. 三年\n6. 五年\n";
	cout << "请输入存款期限的代号:";
	cin >> k;
	switch (k)
	{
	case 1:
		date = 0.25; rate = 0.031; break;
	case 2:
		date = 0.5; rate = 0.033; break;
	case 3:
		date = 1; rate = 0.035; break;
	case 4:
		date = 2; rate = 0.044; break;
	case 5:
		date = 3; rate = 0.05; break;
	case 6:
		date = 5; rate = 0.055; break;
	default:
		break;
	}
	interest = dSalary*rate*date;
	sum = dSalary + interest;
	cout << "到期利息为" << interest << "元," << "本息合计共" << sum << "元。" << endl;
	cout << "感谢您的使用,欢迎下次光临!" << endl;
	return 0;
}


//第8周项目4:个人所得税计算器
#include "stdafx.h"
#include <iostream>
#include <cmath>
using namespace std;
int main()
{
	double dSalary, dTax = 0, dNetIncome = 0;
	double rate;
	double delt,k;
	cout << "请输入您本月的收入总额(元):";
	cin >> dSalary;
	// 下面求解应缴个人所得税dTax和税后收入dNetIncome
	delt = dSalary - 3500;
	if (delt <= 1500)
	{
		rate = 0.03; k = 0;
	}
	else if (delt <= 4500)
	{
		rate = 0.1; k = 105;
	}
	else if (delt <= 9000)
	{
		rate = 0.1; k = 105;
	}
	else if (delt <= 35000)
	{
		rate = 0.25; k = 1005;
	}
	else if (delt <= 55000)
	{
		rate = 0.3; k = 2755;
	} 
	else if (delt <= 80000)
	{
		rate = 0.35; k = 5505;
	}
	else
	{
		rate = 0.45;
		k = 5505;
	}
	dTax = (dSalary - 3500)*rate - k;
	dNetIncome = dSalary - dTax;
	cout << "您本月应缴个人所得税 " << dTax << " 元,税后收入是 " << dNetIncome << " 元。\n";
	cout << "依法纳税,共享繁荣。谢谢使用!\n" << endl;
	return 0;
}

//第8周项目3:多分段函数求值,请用if~else~语句的嵌套,实现这个多分支的程序;
#include "stdafx.h"
#include <iostream>
#include <cmath>
using namespace std;
int main()
{
	double x, y;
	cout << "Input x:";
	cin >> x;
	int t;
	t = (x < 2) + (x < 6) + (x < 10);
	switch (t)
	{
	case 3:
		y = x;
		break;
	case 2:
		y = x*x + 1;
		break;
	case 1:
		y = sqrt(x + 1);
		break;
	case 0:
		y = 1 / (x + 1);
		break;
	default:
		break;
	}
	cout << "y = " << y << endl;
	return 0;
}


//第8周项目3:多分段函数求值,请用if~else~语句的嵌套,实现这个多分支的程序;
#include "stdafx.h"
#include <iostream>
#include <cmath>
using namespace std;
int main()
{
	double x, y;
	cout << "Input x:";
	cin >> x;
	if (x < 2)
	{
		y = x;
	}
	else if (x >= 2 && x < 6)
	{
		y = x*x + 1;
	}
	else if (x >= 6 && x < 10)
	{
		y = sqrt(x + 1);
	}
	else
	{
		y = 1 / (x + 1);
	}
	cout << "y = " << y << endl;
	return 0;
}

//第8周项目2:加班费,要不要?
#include "stdafx.h"
#include <iostream>
using namespace std;
int main()
{
	double rate, hour,salary;
	cout << "Input rate,hour:";
	cin >> rate >> hour;
	if (hour <= 40)
	{
		salary = rate*hour;
	}
	else
	{
		salary = rate*1.5*(hour-40) + rate*40;
	}
	cout << "salary = " << salary << endl << endl;
	return 0;
}


//第8周项目1:求分段函数的值
#include "stdafx.h"
#include <iostream>
using namespace std;
int  main()
{
	int x, y;
	cout << "请输入x的值:";
	cin >> x;
	if (x >= 1)
	{
		y = x - 1;
	}
	else
	{
		y = 1 - x;
	}
	cout << "y = " << y << endl;
	return 0;
}



//阅读下面的两段程序,用“人脑”运行写出输出结果,再在计算机或手机上运行程序,对比自己写出的结果,进行反思。
#include "stdafx.h"
#include <iostream>
using namespace std;

int  main()
{
	int a = 1, b = 2, c = 3;
	if (a <= c)
		if (b == c)
			cout << "a = " << a << endl;
		else
			cout << "b = " << b << endl;
	cout << "c = " << c << endl;
	return 0;
}



#include "stdafx.h"
#include <iostream>
using namespace std;
int main()
{
	int i = 10, j, m = 0, n = 0;
	j = i % 3;
	switch (j)
	{
	case 0: m++;
		break;
	case 1:
	case 2: n++;//这句执行完,n的值就会加1。
		break;
	default: cout << "i=" << i << endl;
	}
	cout << "m = " << m << ",n = " << n << endl;
	return 0;
}


基于51单片机,实现对直流电机的调速、测速以及正反转控制。项目包含完整的仿真文件、源程序、原理图和PCB设计文件,适合学习和实践51单片机在电机控制方面的应用。 功能特点 调速控制:通过按键调整PWM占空比,实现电机的速度调节。 测速功能:采用霍尔传感器非接触式测速,实时显示电机转速。 正反转控制:通过按键切换电机的正转和反转状态。 LCD显示:使用LCD1602液晶显示屏,显示当前的转速和PWM占空比。 硬件组成 主控制器:STC89C51/52单片机(与AT89S51/52、AT89C51/52通用)。 测速传感器:霍尔传感器,用于非接触式测速。 显示模块:LCD1602液晶显示屏,显示转速和占空比。 电机驱动:采用双H桥电路,控制电机的正反转和调速。 软件设计 编程语言:C语言。 开发环境:Keil uVision。 仿真工具:Proteus。 使用说明 液晶屏显示: 第一行显示电机转速(单位:转/分)。 第二行显示PWM占空比(0~100%)。 按键功能: 1键:加速键,短按占空比加1,长按连续加。 2键:减速键,短按占空比减1,长按连续减。 3键:反转切换键,按下后电机反转。 4键:正转切换键,按下后电机正转。 5键:开始暂停键,按一下开始,再按一下暂停。 注意事项 磁铁和霍尔元件的距离应保持在2mm左右,过近可能会在电机转动时碰到霍尔元件,过远则可能导致霍尔元件无法检测到磁铁。 资源文件 仿真文件:Proteus仿真文件,用于模拟电机控制系统的运行。 源程序:Keil uVision项目文件,包含完整的C语言源代码。 原理图:电路设计原理图,详细展示了各模块的连接方式。 PCB设计:PCB布局文件,可用于实际电路板的制作。
【四旋翼无人机】具备螺旋桨倾斜机构的全驱动四旋翼无人机:建模与控制研究(Matlab代码、Simulink仿真实现)内容概要:本文围绕具备螺旋桨倾斜机构的全驱动四旋翼无人机展开研究,重点进行了系统建模与控制策略的设计与仿真验证。通过引入螺旋桨倾斜机构,该无人机能够实现全向力矢量控制,从而具备更强的姿态调节能力和六自由度全驱动特性,克服传统四旋翼欠驱动限制。研究内容涵盖动力学建模、控制系统设计(如PID、MPC等)、Matlab/Simulink环境下的仿真验证,并可能涉及轨迹跟踪、抗干扰能力及稳定性分析,旨在提升无人机在复杂环境下的机动性与控制精度。; 适合人群:具备一定控制理论基础和Matlab/Simulink仿真能力的研究生、科研人员及从事无人机系统开发的工程师,尤其适合研究先进无人机控制算法的技术人员。; 使用场景及目标:①深入理解全驱动四旋翼无人机的动力学建模方法;②掌握基于Matlab/Simulink的无人机控制系统设计与仿真流程;③复现硕士论文级别的研究成果,为科研项目或学术论文提供技术支持与参考。; 阅读建议:建议结合提供的Matlab代码与Simulink模型进行实践操作,重点关注建模推导过程与控制器参数调优,同时可扩展研究不同控制算法的性能对比,以深化对全驱动系统控制机制的理解。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大观矩阵

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值