我是靠谱客的博主 懦弱金毛,最近开发中收集的这篇文章主要介绍C++ 入门项目 Demo 点餐系统,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

写了一个C++的入门项目点餐系统,用到的技能包括
正则表达式校验(int,double,数字是否在允许的输入范围)
vector (取值,存值)
map(取值,存值)
set(取值,存值)
time.h(time_t的日期时间操作)
字符串的操作(string转成double,int,char)
class 和 struct的一般用法(例如重载操作运算符)
标准库的一些用法,例如输入输出等等

操作环境是 centOS(linux)

想要下载代码可以到GitHub

https://github.com/howard789/OrderDishes

 

bool RegUtil::isValid(char *str, char *patterm)
{
	char ebuff[256];
	regex_t reg;
	int cflag = REG_EXTENDED | REG_NEWLINE | REG_NOSUB;
	int status = 0;
	status = regcomp(&reg, patterm, cflag);

	if (status != 0) {
		regerror(status, &reg, ebuff, 256);
		cout << ebuff << endl;
		return false;
	}
	status = regexec(&reg, str, 0, NULL, 0);
	if (status == 0) {
		return true;
	}
	else {
		return false;
	}
}


bool RegUtil::isPositiveDouble(char *str)
{
	char *patterm = "^[+]?[0-9]+[.]?[0-9]+$";
	return isValid(str, patterm);
}

bool RegUtil::isPositiveDouble(string str) {
	return isPositiveDouble(StringUtils::stringToChar(str));
}

double RegUtil::returnDoubleIfValid(string num, double minNum, double maxNum)
{
	string temp;
	if (num.at(0) == '-') {
		temp = num.substr(1, num.length());
	}
	else {
		temp = num;
	}
	bool validDouble = isPositiveDouble(temp);
	double result;
	if (validDouble) 
	{
		result= StringUtils::stringToDouble(num);
		if (result ==0) {
			cout << "can not be zero 不可为零!" << endl;
			return 0;
		}
		if (result > maxNum&&maxNum != -1) {
			cout << "bigger than maxNum allowed 输入的数字超过最大值" << endl;
			return 0;
		}
		if (result < minNum&&minNum != -1) {
			cout << "smaller than minNum allowed 输入的数字小于最小值" << endl;
			return 0;
		}
		return result;
	}
	else 
	{
		cout<<"illegal input 输入的字符不合法"<<endl;
		return 0;
	}
};

 

 

 

 

 

 

 

 

 

 

 

 

 

最后

以上就是懦弱金毛为你收集整理的C++ 入门项目 Demo 点餐系统的全部内容,希望文章能够帮你解决C++ 入门项目 Demo 点餐系统所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(65)

评论列表共有 0 条评论

立即
投稿
返回
顶部