首页 > 代码库 > 【ThinkingInC++】70、防御性编程
【ThinkingInC++】70、防御性编程
第二章 防御性编程
猜字游戏
/** * 书本:【ThinkingInC++】 * 功能:实现一个猜谜的游戏 * 时间:2014年10月8日21:54:44 * 作者:cutter_point */ #include <cstdlib> #include <iostream> #include <string> using namespace std; int main() { cout<<"自己想出来一个数字,在1到100之间的,我来猜猜你的心思"<<endl <<"我将不断地猜测,知道猜到为止,但是你每次都要告诉我是高了还是低了"<<endl; int low=1, high=100; bool guessed=false; while(!guessed) //只要没有猜到,那么guessed就是false,那就不断执行 { //如果使用者玩阴的 if(low > high) { cout<<"fuck you! 能不能好好玩游戏,根本不纯在这个数字"<<endl; return EXIT_FAILURE; } int guess=(low+high)/2; //得到中间的值 cout<<"我猜这个数字是:"<<guess<<". "; cout<<"告诉我是高了(High)还是低了(Low),还是说我猜中了?(Equal)"<<endl; string response; cin>>response; switch(toupper(response[0])) { case 'H': high=guess-1; break; case 'L': low=guess+1; break; case 'E': guessed=true; break; default: cout<<"亲,您输入的数据有误!"<<endl; continue; } } cout<<"YES I got it!!!"<<endl; return EXIT_SUCCESS; //返回一个cstdlib里面的一个宏,表示程序的执行失败 }
自动检测
Date1.h
/** * 书本:【ThinkingInC++】 * 功能:时间类的构建 * 时间:2014年10月8日21:55:09 * 作者:cutter_point */ #ifndef DATE1_H_INCLUDED #define DATE1_H_INCLUDED #include <string> class Date { public: struct Duration //表示时间的一个句柄结构 { int years; int months; int days; //构造函数 Duration(int y, int m, int d) : years(y), months(m), days(d) {} }*dt; Date(); Date(int year, int month, int day) { dt=new Duration(year, month, day); } Date(const std::string&); int getYear() const { return dt->years; } int getMonth() const { return dt->months; } int getDay() const { return dt->days; } std::string toString() const; friend bool operator<(const Date&, const Date&); friend bool operator>(const Date&, const Date&); friend bool operator<=(const Date&, const Date&); friend bool operator>=(const Date&, const Date&); friend bool operator==(const Date&, const Date&); friend bool operator!=(const Date&, const Date&); friend Duration duration(const Date&, const Date&); }; #endif // DATE1_H_INCLUDED
测试程序1SimpleDateTest.cpp
/** * 书本:【ThinkingInC++】 * 功能:测试时间类 * 时间:2014年10月8日21:55:33 * 作者:cutter_point */ #include <iostream> #include "Date1.h" using namespace std; int nPass=0, nFail=0; void test(bool t) { if(t) nPass++; else nFail++; } //用来测试的函数 int main() { Date mybday(1951, 10, 1); test(mybday.getYear() == 1951); test(mybday.getMonth() == 10); test(mybday.getDay() == 1); cout<<"Passed: "<<nPass<<", Failed: "<<nFail<<endl; return 0; }
【ThinkingInC++】70、防御性编程
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。