引用
写一个能自动将地球上主流的日期格式转换成三进制形式的C++程序
你的程序应支持如下的日期格式:
dd-mm-yy
dd-Mon-yy
dd-mm-yyyy
dd-Mon-yyyy
除此以外的日期格式可被认为格式错误而不予转换。合法的月份的三位缩写为:Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov和Dec。
程序要求:
实现一个名为CternaryDate的类;
实现一个参数类型为一个string的引用的构造函数(或实现一个参数为char*的构造函数),参数为表示十进制日期的字符串;
实现一个名为IsValid()的成员方法,表明当前是否是一个正确的三进制日期对象;
实现三个名为TernaryYear()、TernaryMonth()和TernaryDay()的成员方法,返回三进制的年、月和日
实现前缀和后缀形态的++运算符,含义为计算当前日期的下一日(2月以28天计,不考虑闰年)。
输入文件:c:\1_in.txt。第一行为该文件中包含的日期的总数,然后依次每行为一个十进制日期的字符串。
输出文件:c:\1_out.txt。首行08XXXX应替换为本人的学号,第二行起每行输出一个三进制的日期,若对应该行的输入日期数据为偶数行,则使用++运算符补充输出一行该日期的下一日,格式为“The next date of 原日期 is 后一日”。若输入的十进制日期格式错误,则本行的输出为“Not Valid”;若同时错误数据也为偶数行,则忽略下一日的输出。
输入样例:C:\1_in.txt
3
20-Jun-75
03-05-70
05/01/2006
输出样例:C:\1_out.txt
Done by 08XXXX
202-20-2210
The next date of 202-20-2210 is 210-20-2210
10-12-2121
Not Valid
这个题目也太复杂了吧~~
基础知识:
1)文件输入输出 fstream
2) 字符串解析
string, find, substr
3) 面向对象的类创建,类的成员方法和成员变量
class CTernaryDate
{
public:
bool IsValid() const;
const char * TernaryYear(char *) const;
const char * TernaryMonth(char *) const;
const char * TernaryDay(char *) const;
private:
int year;
int month;
int day;
bool isValid;
};
4)带参构造函数
public:
CTernaryDate(const char * str);
5)运算符重载,++的前后置区别
CTernaryDate &operator ++();
CTernaryDate operator++(int);
6)<<运算符重载,它不是类的成员函数
std::ostream & operator<<(std::ostream & os, const CTernaryDate& date);
7)10进制转3进制
我用的是itoa中自带的三进制转换,如果不知道的话可以自己写
8)stl,find方法
我还用到stl的find方法,check是否是小月份
bool CTernaryDate::checkMonth(int month, int day)
{
if (month==0 || month>12) return false;
if (day>28 && month == 2) return false;
if( (find(&shortMonth[0], &shortMonth[5], month) != &shortMonth[5]) && day==31)
return false;
}
9)代码有点长,还要了解如何调试代码,才可能达到最后结果
分享到:
相关推荐
行政法与行政诉讼法考试题(0901_0907).pdf
中央电大开放本科计算机科学与技术专业面向对象程序设计试题_0901.pdf
0901六年级【语文(统编版)40】《草原》(第一课时)-练习题.pdf
【标题】:“西南大学复试真题”所涉及的知识点涵盖了西南大学研究生复试及保研考试的核心内容。在准备这类考试时,考生需要对以下几个关键领域有深入理解和掌握: 1. **学术研究能力**:复试通常会考察考生的学术...
在文档提供的题库中,每一套题都需要填写IP地址、子网掩码、地址类别、网络地址、直接广播地址、主机号以及子网内可用的第一个和最后一个IP地址。这要求考生不仅要掌握基本的IP地址知识,还要熟悉子网划分和计算方法...
在上述内容中提到的“计算机三级-网络技术-第2个大题题库-共26套题”,说明这是一个针对计算机三级网络技术考试的题库,包含了26套不同类型和难度的模拟试题。 3. POS技术和SDH协议: 在题库中提到了使用POS技术...
而像【0812Y2笔试新传】、【0901Y2笔试新传】、【09-2-22笔试】等文件名,通常根据考试的年份和批次进行区分,通过这些不同时间点的题目集合,考生能够洞察ACCP考试的变动趋势,把握可能的新知识点和考试热点。...
《企业人力资源管理统计》是一门涉及企业人力资源管理中数据收集、分析和应用的学科。这份试卷主要测试考生对企业人力资源管理统计的基本概念、方法和应用的掌握情况。以下是试卷中涉及的一些核心知识点: ...
计算机网络技术是IT行业的基础之一,它涉及到网络设计、网络部署、网络管理及故障排除等多方面的知识。计算机三级网络技术考试是中国计算机等级考试的一部分,旨在考查考生对网络基础知识及应用的掌握程度。...
文档中提到了与计算机三级网络技术相关的多个知识点,主要围绕Sniffer工具捕获数据包后如何进行分析。以下是对文档内容的详细解读和知识点梳理: 1. Sniffer工具的基本概念和作用:Sniffer,又称嗅探器,是一种用于...
0808到0901的子文件可能代表不同的考试日期或批次,每个文件可能包含一个或多个题目集,帮助你全面复习和掌握JSP的各个方面。 通过深入学习和练习这些考试题,你不仅可以巩固JSP的基础知识,还能提升解决实际问题的...
Python是一种广泛使用的高级编程语言,以其简洁明了的语法和强大的功能深受程序员喜爱。...这份"110道Python面试题汇总.pdf"将是你准备面试的重要参考资料,它覆盖了各个层面的问题,帮助你全面复习和巩固Python知识。
- 通过做题提高解题速度和准确性。 **1.4 物流工程与管理(125604)** - **考试科目:** 199管理类综合能力 - **主要内容:** 包括数学基础、逻辑推理和写作能力等部分。 - **备考技巧:** - 了解物流管理的基本...
【标题】"牛客面试真题附答案解析最新版-Java篇.rar" 是一份针对Java程序员面试准备的资源,包含了最新的面试题目以及详尽的答案解析。这份压缩包旨在帮助求职者提升Java技术栈,以便在后端开发职位的面试中表现出色...
高等数学同济第七版上册+习题全解指南+课后习题答案解析
选择题(共50分,每题2分) 1、在微机中,VGA的含义是( ) A微机型号 B 键盘型号 C 显示器标准 D 显示器型号 2、 数码相机属于外部设备中的( ) A输出设备 B 辅助存储设备 C 输入设备 D 随机存储设备 3、微机中...
只要会打字,就可快速建立自己的个性化购物网站,傻瓜式的操作,管理网站就像做选择题和填空题一样简单。全后台管理,彻底告别FTP。 无缝整合目前最为流行的“支付宝”接口,使用支付宝交易,买家、卖家都放心。 ...
以上内容概述了政治经济学领域的基本概念、理论观点以及相关知识点,涵盖了垄断价格、股份制企业、国际市场价值等重要概念,以及对单项选择题、多项选择题、判断题和简答题的回答解析。希望这些内容能够帮助您更好地...
《BAT机器学习面试刷题宝典》是一份涵盖了大量机器学习面试问题的综合资源,旨在帮助求职者在BAT(百度、阿里巴巴、腾讯)等顶级互联网公司的面试中取得成功。这份资料详细整理了从基础概念到高级算法,以及工程实践...
《社会保障学》是考研大纲中推荐的一本重要参考书,由赵曼主编,高等教育出版社出版。这本书涵盖了社会保障领域的核心概念、理论体系以及国内外社会保障制度的实践与发展。在准备考研的过程中,深入理解和掌握这本书...