日期:

​//判断闰年
bool isLeapYear(int year) { return (year%4 == 0 && year%100 != 0) || year%400 == 0; }
//计算日期从当年1月1日算起的天数
int getDayofYear(const Date date){int year=date.year, month=date.month, day=date.day;int i, sum=day;int a[13] = {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};int b[13] = {0, 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};if (isLeapYear(year))for(i=0; i<month; i++)   sum += b[i];elsefor(i=0; i<month; i++)   sum += a[i];/*int c[13] = {0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334, 365}int d[13] = {0, 31, 60, 91, 121, 152, 182, 213, 244, 274, 305, 335, 366}if (isLeapYear(year))sum += d[i];elsesum += c[i];*/return sum;
}
//计算两个日期之间相差的天数
int getDayDiffer(const Date today,const Date anyday){int year=today.year, sum=0;if(today.year>anyday.year){//today的年份比anyday大sum+=getDayofYear(today);//先算出today当前年份的剩余天数--year;while(year>anyday.year){//中间年份可以直接循环相加if(isLeapYear(year)){sum+=366;--year;}else{sum+=365;--year;}}//执行到这一步一定year=anyday.yearif(isLeapYear(year))//算出anyday.year的那一年还剩多少天sum+=366-getDayofYear(anyday);elsesum+=365-getDayofYear(anyday);}else if(today.year==anyday.year){//两个日期为同一年sum+=getDayofYear(today)-getDayofYear(anyday);}else{//today的年份比anyday小sum+=getDayDiffer(anyday,today);}if(sum>=0)return sum;elsereturn 0-sum;
}
/*
将AD-1月1日作为公共基准日期,用f(y/m/d, 1/1/1)表示两个日期相距的天数,可将其分解为三部分:
f(y/m/d, 1/1/1) = f(y/1/1, 1/1/1) + f(y/m/1, y/1/1) + f(y/m/d, y/m/1)
其中:
f(y/1/1, 1/1/1) = 365(y-1) + ⌊(y-1)/4⌋ - ⌊(y-1)/100⌋ + ⌊(y-1)/400⌋
f(y/m/d, y/m/1) = d - 1
f(y/m/1, y/1/1) = getDayOfYear( )
*/// 格式转换:2020 2 2 ==> 2020/02/02
void Date::reFormat(){char m[3],d[3];if(month<10){m[0]='0';m[1]=month+48;m[2]='\0';}if(day<10){d[0]='0';d[1]=day+48;d[2]='\0';}if(month>=10 && day>=10)cout<<year<<'/'<<month<<'/'<<day<<endl;else if(month>=10 && day<10)cout<<year<<'/'<<month<<'/'<<d<<endl;else if(month<10 && day>=10)cout<<year<<'/'<<m<<'/'<<day<<endl;else if(month<10 && day<10)cout<<year<<'/'<<m<<'/'<<d<<endl;
}//明天的日期
void Date::addOneDay(){if(day == 31){if(month == 12) { year++; month=1; day=1; }else { month++; day=1; }}else if(day == 30){if(month==4 || month==6 || month==9 || month==11) {month++; day=1;}else {day++;}}else if(month==2 && (day==28||day==29)){if(day == 29) {month++; day=1;}else if((year%100!=0&&year%4==0) || (year%400==0)) {day++;}else {month++; day=1;}}else{day++;}
}//将15位身份证转换为18位
class PID{string id,birth;
public:PID(string idNo,string birthDay){//对birth进行格式转换:"2012 1 2" ==> "2012.01.02"istringstream istr(birthDay);string str;while(istr >> str){if(str.length() == 1)str = ".0" + str;else if(str.length() == 2)str = "." + str;birth += str;}//将id转换成18位,本来就是18位不需要操作if(idNo.length() == 18);else{str = birth;str.erase(str.find('.'),1);str.erase(str.find('.'),1);id = idNo.substr(0,6) + str + idNo.substr(12,3);int sum = 0;//最后一位为前17位之和个位上的数字,用X代替0for(auto x:id)sum += (int(x)-'0');sum = sum % 10;if(sum == 0)sum += 'X' - '0';id += char(sum + '0');}}
};

复数加减法:

class Complex{int real,imaginary;
public:void Sum(Complex cpl){cout<<"sum:";if((imaginary+cpl.imaginary)==1){if((real+cpl.real)==0)cout<<'i'<<endl;elsecout<<noshowpos<<real+cpl.real<<"+i"<<endl;}else if((imaginary+cpl.imaginary)==-1){if((real+cpl.real)==0)cout<<"-i"<<endl;elsecout<<noshowpos<<real+cpl.real<<"-i"<<endl;}else if((imaginary+cpl.imaginary)==0)cout<<noshowpos<<real+cpl.real<<endl;else if((real+cpl.real)==0)cout<<noshowpos<<imaginary+cpl.imaginary<<'i'<<endl;elsecout<<noshowpos<<real+cpl.real<<showpos<<imaginary+cpl.imaginary<<'i'<<endl;}void Remainder(Complex cpl){cout<<"remainder:";if((imaginary-cpl.imaginary)==1){if((real-cpl.real)==0)cout<<'i'<<endl;elsecout<<noshowpos<<real-cpl.real<<"+i"<<endl;}else if((imaginary-cpl.imaginary)==-1){if((real-cpl.real)==0)cout<<"-i"<<endl;elsecout<<noshowpos<<real-cpl.real<<"-i"<<endl;}else if((imaginary-cpl.imaginary)==0)cout<<noshowpos<<real-cpl.real<<endl;else if((real-cpl.real)==0)cout<<noshowpos<<imaginary-cpl.imaginary<<'i'<<endl;elsecout<<noshowpos<<real-cpl.real<<showpos<<imaginary-cpl.imaginary<<'i'<<endl;}
};

求二元一次方程的根:

void print(float x){if(x<0)cout<<fixed<<setprecision(2)<<showpos<<x;elsecout<<fixed<<setprecision(2)<<noshowpos<<x;
}
void print(float x,float y){if(x==0)cout<<fixed<<setprecision(2)<<noshowpos<<y<<'i';elsecout<<fixed<<setprecision(2)<<noshowpos<<x<<fixed<<setprecision(2)<<showpos<<y<<'i';
}
class Equation{float a,b,c;
public:void getRoot(){float delta=b*b-4*a*c;if(delta==0){cout<<"x1=x2=";print((-b)/(2*a));cout<<endl;}else if(delta>0){cout<<"x1=";print( (-b+sqrt(delta))/(2*a) );cout<<' ';cout<<"x2=";print( (-b-sqrt(delta))/(2*a) );cout<<endl;}else{cout<<"x1=";print( -b/(2*a) , sqrt(-delta)/(2*a) );cout<<' ';cout<<"x2=";print( -b/(2*a) , -sqrt(-delta)/(2*a) );cout<<endl;}}
};

C++:日期操作、复数加减法、求二元一次方程的根相关推荐

  1. 编写程序,求二元一次方程的根(三种形式)

    主要一考察的是对if else的掌握情况,尤其是考察对{}的配对掌握关系的理解:代码如下 #include"stdio.h" #include"math.h" ...

  2. c语言 求二元一次方程的解

    求二元一次方程的解 ax+by=cdx+ey=f输入格式:在一行中给出a.b.c.d.e.f的值,都为整数.输出格式:无数解,输出0 0:无解输出-1 -1:有解,输出x.y的解,保留两位小数. #i ...

  3. 【MATLAB】求二元一次方程所有可能的解 + 画图

    MATLAB求二元一次方程所有可能的解 + 画图 画图 输出结果 相关知识点 示例函数:x.y均为正整数,x∈[0, 10], y∈[0, 100], z = 3 * y - x, 求z = 0时,x ...

  4. C语言:打印二元一次方程的根

    打印二元一次方程的根.通过对a和判别式的比较,输出二元一次方程的根. #include<stdio.h> #include<stdlib.h> #include<math ...

  5. c语言编程求二元一次方程组方程,二元一次方程组练习题 已知二元一次方程的三个系数,用C语言编程求方程的......

    导航:网站首页 > 二元一次方程组练习题 已知二元一次方程的三个系数,用C语言编程求方程的... 二元一次方程组练习题 已知二元一次方程的三个系数,用C语言编程求方程的... 相关问题: 匿名网 ...

  6. c语言用判别式求二元一次方程,C语言编写二元一次方程的判别式

    求列这两道题的二元一次方程 1.设甲速度为X乙速度为Y(2+2.5)X+2.5Y=363X+(2.3)Y=362.2人间为X3人为Y2人间每天2*353人间每天3*252X+3Y=702*35X+3* ...

  7. c语言求二元一次方程根,一个C语言求解二元一次方程根,求助!

    满意答案 aibaoqiqi 推荐于 2017.11.25 采纳率:42%    等级:12 已帮助:12214人 首先叫法错误,是一元二次方程求根,而不是二元一次方程求根. 其次,判别式小于0时,只 ...

  8. c语言用判别式求二元一次方程,二元一次方程-关于二元一次方程跟的判别式的所有情况 – 手机爱问...

    2013-09-12 一元二次方程所有解法是不是一样的答案 一元二次方程的解法有如下几种: 第一种:运用因式分解的方法,而因式分解的方法有:(1)十字相乘法(又包括二次项系数为1的和二次项系数不为1, ...

  9. c语言:求二元一次方程根的所有情况

    编写程序,任意输入一元二次方程的三个实系数a.b和c,计算并输出该方程所有可能的解.该一元二次方程为:ax2+bx+c=0 此题需要讨论delta和a,b,c取值的情况,通过if语句即可顺利求出 #i ...

最新文章

  1. 在mybatis中模糊查询有三种写法
  2. c语言socket实现ftp,C++ socket实现miniFTP
  3. js基础面试高频面点1:变量提升
  4. the final mapping would have more than 1 type
  5. java打印变量类型,冲刺7天拿下Offer!
  6. Docker常用命令操作——1)、镜像操作;2)、容器操作
  7. 告诉你Hadoop是什么
  8. JAVA 捕获异常所遇BUG
  9. 深度强化学习在时序数据压缩中的应用--ICDE 2020收录论文
  10. Namomo Spring Camp Div2 Week1 - 第三次打卡
  11. LeetCode[791] 自定义字符串排序
  12. G - Power Strings
  13. 什么U盘启动盘制作工具是纯净版的,没有捆绑软件和广告的?
  14. m3u8视频下载和转码mp4
  15. (第六章)hive之查询
  16. mysql 5.7 master、salve 切换
  17. Red Hat linux9 初装配置
  18. Windows Sever 2016 创建DNS服务器并配置转发器及条件转发器
  19. 多线程(之五:线程协作)
  20. 单片机应用程序开发QY-JXSY51

热门文章

  1. 听TED唐.泰普史考特讲区块链(从零开始学区块链 199)
  2. 新视野大学英语第三版第四册读写教程第二单元-真正的美
  3. vcg函数值_几个经典的数学库之一学习---VCGlib(2)
  4. 计算机网络-以太网,局域网,城域网,广域网,互联网,因特网,万维网的区分
  5. 智慧检察院公益诉讼云平台解决方案-合集
  6. YII2使用时出现The file or directory to be published does not exist
  7. Windows Server系统使用Windows图片查看器
  8. 10月份值得关注的10款P2E链游
  9. 【算力网络】算力网络的技术创新——运营服务关键技术
  10. 天网 20230112