干支、生肖查询器 v3.0(增加公元前年份的查询)

2024-02-20 09:58

本文主要是介绍干支、生肖查询器 v3.0(增加公元前年份的查询),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

//main.cpp//***************************************
//*程序名:判断干支与生肖    
//*功  能:输入公元纪年,判断干支与生肖 
//*编制人:刘聪          
//*创建时间:2017年1月24日
//*修改时间:2017年9月22日(v2.0)(v3.0) 
//***************************************
#include <iostream>  
#include <cstring>
#include <cstdlib>
#include "class.h"
using namespace std;  int main()  
{    int GetInteger();void JudgeYear(int year);cout << "***********************************************************" << endl << endl; while(1){cout << "正数代表公元后,负数代表公元前。" << "请输入需要判断的年号:";  int year = GetInteger();cout << endl;if(year == 0){system("pause");  return 0;  }else{if(year > 0){JudgePositive obj;obj.JudgeYear(year);cout << endl;cout << "***********************************************************" << endl; cout << endl << "若要退出程序,请直接按数字0;否则请继续输入。" << endl << endl;	}else{JudgeNegative obj;obj.JudgeYear(year);cout << endl;cout << "***********************************************************" << endl; cout << endl << "若要退出程序,请直接按数字0;否则请继续输入。" << endl << endl;}}}return 0;  
}  int GetInteger(){    char buf[100] = {0};    while(strlen(buf) == 0)  //用户直接输入回车     cin.getline(buf, 100);    return atoi(buf);  //atoi函数是cstring头文件自带的     
}    


//class.h#ifndef class_h
#define class_hclass Judge{
public:virtual void JudgeYear(int year) = 0;
};class JudgePositive:public Judge{
public:void JudgeYear(int year);
};class JudgeNegative:public Judge{
public:void JudgeYear(int year);
};#endif

//class.cpp#include <iostream>
#include "class.h"
using namespace std;void JudgePositive::JudgeYear(int year){int a, b, c;a = year % 10 + 7;if(a > 10) a = a - 10; c = b = year % 12 + 9;if(b > 12) c = b = b - 12;  cout << year << "年是‘";  switch( a ){  case 1:cout<<"甲";break;  case 2:cout<<"乙";break;  case 3:cout<<"丙";break;  case 4:cout<<"丁";break;  case 5:cout<<"戊";break;  case 6:cout<<"己";break;  case 7:cout<<"庚";break;  case 8:cout<<"辛";break;  case 9:cout<<"壬";break;  case 10:cout<<"癸";break;  default:;break;  }  switch( b ){  case 1:cout<<"子";break;  case 2:cout<<"丑";break;  case 3:cout<<"寅";break;  case 4:cout<<"卯";break;  case 5:cout<<"辰";break;  case 6:cout<<"巳";break;  case 7:cout<<"午";break;  case 8:cout<<"未";break;  case 9:cout<<"申";break;  case 10:cout<<"酉";break;  case 11:cout<<"戌";break;  case 12:cout<<"亥";break;  default:;break;  }   switch( c ){  case 1:cout<<"鼠";break;  case 2:cout<<"牛";break;  case 3:cout<<"虎";break;  case 4:cout<<"兔";break;  case 5:cout<<"龙";break;  case 6:cout<<"蛇";break;  case 7:cout<<"马";break;  case 8:cout<<"羊";break;  case 9:cout<<"猴";break;  case 10:cout<<"鸡";break;  case 11:cout<<"狗";break;  case 12:cout<<"猪";break;  default:;break;  }  cout<<"年’。";  
}void JudgeNegative::JudgeYear(int year){int a, b, c;a = year % 10 - 7;if(a < -10) a = a + 10; c = b = year % 12 - 9;if(b < -12) c = b = b + 12;  cout << year << "年是‘";  switch( a ){  case -1:cout<<"丁";break;  case -2:cout<<"丙";break;  case -3:cout<<"乙";break;  case -4:cout<<"甲";break;  case -5:cout<<"癸";break;  case -6:cout<<"壬";break;  case -7:cout<<"辛";break;  case -8:cout<<"庚";break;  case -9:cout<<"己";break;  case -10:cout<<"戊";break;  default:;break;  }  switch( b ){  case -1:cout<<"巳";break;  case -2:cout<<"辰";break;  case -3:cout<<"卯";break;  case -4:cout<<"寅";break;  case -5:cout<<"丑";break;  case -6:cout<<"子";break;  case -7:cout<<"亥";break;  case -8:cout<<"戌";break;  case -9:cout<<"酉";break;  case -10:cout<<"申";break;  case -11:cout<<"未";break;  case -12:cout<<"午";break;  default:;break;  }   switch( c ){  case -1:cout<<"蛇";break;  case -2:cout<<"龙";break;  case -3:cout<<"兔";break;  case -4:cout<<"虎";break;  case -5:cout<<"牛";break;  case -6:cout<<"鼠";break;  case -7:cout<<"猪";break;  case -8:cout<<"狗";break;  case -9:cout<<"鸡";break;  case -10:cout<<"猴";break;  case -11:cout<<"羊";break;  case -12:cout<<"马";break;  default:;break;  }  cout<<"年’。";  
}


这篇关于干支、生肖查询器 v3.0(增加公元前年份的查询)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/727843

相关文章

MySQL索引的优化之LIKE模糊查询功能实现

《MySQL索引的优化之LIKE模糊查询功能实现》:本文主要介绍MySQL索引的优化之LIKE模糊查询功能实现,本文通过示例代码给大家介绍的非常详细,感兴趣的朋友一起看看吧... 目录一、前缀匹配优化二、后缀匹配优化三、中间匹配优化四、覆盖索引优化五、减少查询范围六、避免通配符开头七、使用外部搜索引擎八、分

SQL表间关联查询实例详解

《SQL表间关联查询实例详解》本文主要讲解SQL语句中常用的表间关联查询方式,包括:左连接(leftjoin)、右连接(rightjoin)、全连接(fulljoin)、内连接(innerjoin)、... 目录简介样例准备左外连接右外连接全外连接内连接交叉连接自然连接简介本文主要讲解SQL语句中常用的表

MySQL高级查询之JOIN、子查询、窗口函数实际案例

《MySQL高级查询之JOIN、子查询、窗口函数实际案例》:本文主要介绍MySQL高级查询之JOIN、子查询、窗口函数实际案例的相关资料,JOIN用于多表关联查询,子查询用于数据筛选和过滤,窗口函... 目录前言1. JOIN(连接查询)1.1 内连接(INNER JOIN)1.2 左连接(LEFT JOI

MySQL 中查询 VARCHAR 类型 JSON 数据的问题记录

《MySQL中查询VARCHAR类型JSON数据的问题记录》在数据库设计中,有时我们会将JSON数据存储在VARCHAR或TEXT类型字段中,本文将详细介绍如何在MySQL中有效查询存储为V... 目录一、问题背景二、mysql jsON 函数2.1 常用 JSON 函数三、查询示例3.1 基本查询3.2

MySQL中的交叉连接、自然连接和内连接查询详解

《MySQL中的交叉连接、自然连接和内连接查询详解》:本文主要介绍MySQL中的交叉连接、自然连接和内连接查询,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、引入二、交php叉连接(cross join)三、自然连接(naturalandroid join)四

mysql的基础语句和外键查询及其语句详解(推荐)

《mysql的基础语句和外键查询及其语句详解(推荐)》:本文主要介绍mysql的基础语句和外键查询及其语句详解(推荐),本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋... 目录一、mysql 基础语句1. 数据库操作 创建数据库2. 表操作 创建表3. CRUD 操作二、外键

Mybatis 传参与排序模糊查询功能实现

《Mybatis传参与排序模糊查询功能实现》:本文主要介绍Mybatis传参与排序模糊查询功能实现,本文通过实例代码给大家介绍的非常详细,感兴趣的朋友跟随小编一起看看吧... 目录一、#{ }和${ }传参的区别二、排序三、like查询四、数据库连接池五、mysql 开发企业规范一、#{ }和${ }传参的

浅谈mysql的sql_mode可能会限制你的查询

《浅谈mysql的sql_mode可能会限制你的查询》本文主要介绍了浅谈mysql的sql_mode可能会限制你的查询,这个问题主要说明的是,我们写的sql查询语句违背了聚合函数groupby的规则... 目录场景:问题描述原因分析:解决方案:第一种:修改后,只有当前生效,若是mysql服务重启,就会失效;

MySQL多列IN查询的实现

《MySQL多列IN查询的实现》多列IN查询是一种强大的筛选工具,它允许通过多字段组合快速过滤数据,本文主要介绍了MySQL多列IN查询的实现,具有一定的参考价值,感兴趣的可以了解一下... 目录一、基础语法:多列 IN 的两种写法1. 直接值列表2. 子查询二、对比传统 OR 的写法三、性能分析与优化1.

SpringBoot项目使用MDC给日志增加唯一标识的实现步骤

《SpringBoot项目使用MDC给日志增加唯一标识的实现步骤》本文介绍了如何在SpringBoot项目中使用MDC(MappedDiagnosticContext)为日志增加唯一标识,以便于日... 目录【Java】SpringBoot项目使用MDC给日志增加唯一标识,方便日志追踪1.日志效果2.实现步