⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 public.c

📁 福建博洋教育C/C++软件项目实战:POS收银系统
💻 C
字号:
#include <time.h>
#include <stdio.h>
#include "public.h"
#include "link.h"
#include "oradb.h"
/*=====================================================
function:去除左空格
=====================================================*/
void LeftTrim(char *str)
{
	int len;
	int i;
	len=strlen(str);
	for(i=0;i<len;i++)
	{
		if(str[i]==32)
			continue;
		else
		{
			strcpy(str,&str[i]);
			break;
		}
	}
}
/*=========================================================
function:去除右空格
===========================================================*/
void RightTrim(char *str)
{
	int len,i;
	len=strlen(str)-1;
	for(i=len;i>=0;i--)
	{
		if(str[i]==32)
			continue;
		else
		{
			str[i+1]='\0';
			break;
		}
	}
}
/*========================================
function:去除左右空格
========================================*/
void Trim(char *str)
{
	LeftTrim(str);
	RightTrim(str);
}

/*=====================================================
function:获取数据库登陆配置文件
=======================================================*/
void get_dba_cnf(char *usr,char *pwd)
{
	FILE *fp;
	int confcount = 0;
	char buffer[128];
	int len = 0;
	int i = 0;
	int j = 0;
	int flag=0;
	char getStr[2][20]={'\0'};
	fp = fopen("pos.conf","r");
	while( fgets(buffer,128,fp)!= NULL)
	{
		if (buffer[0]=='\r' || buffer[0]=='\n' || buffer[0]=='#')   //删除空行和注释行
		{
			memset(buffer,'\0',sizeof(buffer));
			continue;
		}
		len = strlen(buffer);
		i = len -1;
		while(buffer[i]==' ' || buffer[i]=='\r' || buffer[i]=='\n')  //找到尾部第1个不是空格的
 		{
			i--;
		}
		buffer[i+1] = '\0';	//去除右空格		
		while(buffer[i]!=' ')
		{
			i--;
		}
		strcpy(getStr[j],&buffer[i+1]);
		j++;		
	}	
	strcpy(usr,getStr[0]);
	strcpy(pwd,getStr[1]);
}

/*==========================================================
function:错误日志打印
============================================================*/
void elog(char *msg,char *fname,int len)
{
	time_t curTime;
	struct tm *tblock;
	FILE *fp;
	char *pathname;
	int slen;
	char str_tm[22];
	pathname=(fname!=NULL)?fname:"msg.log";
	slen=(len)?len:strlen(msg);
	curTime=time(NULL);
	tblock=localtime(&curTime);
	strftime(str_tm,sizeof("[2002-01-01 00:00:00]"),"[%Y-%m-%d %H:%M:%S]",tblock);
	if ((fp=fopen(pathname,"a"))!=NULL)
	{
		fwrite(str_tm,sizeof(char),strlen(str_tm),fp);
		fwrite(msg,sizeof(char),slen,fp);
		fwrite("\n",sizeof(char),strlen("\n"),fp);
		fclose(fp);
	}
}
/*==========================================================
function:判断条形码是否输过
return:返回当前条码的下标
============================================================*/
int code_in_list(char *bar_code)
{
	int i=1;
	for (; i<=salelist.count; i++)
	{
		NODE *n=salelist.get_node_by_index(&salelist,i);	
		PRODUCT *pro_info=(PRODUCT *)malloc(sizeof(PRODUCT));
		pro_info=(PRODUCT *)n->data;
		if ( strcmp(bar_code,pro_info->bar_code)==0 )
		{	
			return i;
		}
	}	
	return 0;	
}

/*================================================
function:实际收银价格
=================================================*/
float real_cash()
{
	int i=1;
	float sum=0;
	PRODUCT *pro_info=(PRODUCT *)malloc(sizeof(PRODUCT));
	NODE *n=NULL;
	for (; i<=salelist.count; i++)
	{		
		n=salelist.get_node_by_index(&salelist,i);		
		if (n!=NULL)
		{
			pro_info=(PRODUCT *)n->data;
		}			
		if (pro_info!=NULL)
		{		
			sum+=pro_info->sale_price*pro_info->count;					
		}		
	}
	return sum;

}
/*=========================================
function:判断是否是float型字符串
===========================================*/
int is_float(char *str)
{
	int len=0 ,i ,j=0 ;
	len = strlen(str);
	if (str[0] == '.') 
		return 0;
	for(i=0;i<len;i++)
		if (isdigit(str[i]) || str[i] == '.') {
			if (str[i] == '.') {
				j++;
			}
			if (j>=2) {
				break;
			}
			continue;
		}
		else
			break;
	if (i != len) {
		return 0;
	}
	else
		return 1;
}

/*=======================================
function:判断是否是闰年
========================================*/
int leap_year(int year)
{
	if((year%400==0) || (year%4==0 && year%100!=0))
	{
		return 1;
	}
	else
	{
		return 0;
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -