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

📄 cashier.c

📁 在LINUX下实现的一个超市的收银系统
💻 C
字号:
#include "extern.h"#include "struct.h"/*=========销售函数=========*/void Cashier(){			char buf[20];	int ch,temp;	int scroll_no;		InitLink();	struct Sell *buffer;	scroll_no=1;	//获取系统时间	time_t currTime;	struct tm *tblock;	currTime=time(NULL);	tblock=localtime(&currTime);	strftime(System_Time, sizeof("[2008-08-08 00:00:00]"), "%Y%m%d%H%M%S", tblock );	  	    sell_main_win = newwin(25,80,0,0);	WINDOW * win = sell_main_win;    wbkgd(win,COLOR_PAIR(6));    wattron(win,COLOR_PAIR(6));	//打印出主销售窗口    box(win,0,0);    mvwprintw(win,0,30,"欢迎光临沃尔玛超市");    mvwprintw(win,1,1,"收银员:");	mvwprintw(win,1,9,"%s",EMP_NAME);	    mvwprintw(win,1,18,"等级:");	if(3 == EMP_GRADE)	{		mvwprintw(win,1,24,"中级职员");	}	else if(2 == EMP_GRADE)	{		mvwprintw(win,1,24,"高级职员");	}	else	{		mvwprintw(win,1,24,"低级职员");	}	//打印交易号	mvwprintw(win,1,36,"交易号:%s",BUSINESS_NO);		//打印系统时间    mvwprintw(win,1,54,"时间:%s",System_Time);    mvwhline(win,2,1,0,78);	    mvwprintw(win,3,1,"序号     条形码     商品名称             规格   单位   单价   数量   金额");    mvwhline(win,4,1,0,78);    mvwhline(win,20,1,0,78);    mvwprintw(win,21,1,"条形码:");    mvwprintw(win,21,55,"销售状态:");    mvwhline(win,22,1,0,78);    mvwprintw(win,23,1,"F2:新增明细 F3:删除明细 F4:收银 F5:挂单 F6:取单 F7:撤单 F8:退货 F9:退出");    wrefresh(win);	//打印输入条形码窗口	WINDOW *input_win = subwin(win,1,20,21,9);	wbkgd(input_win,COLOR_PAIR(5));		//打印详细销售信息窗口	sellinfo_win = subwin(win,15,78,5,1);	wbkgd(sellinfo_win,COLOR_PAIR(6));    wattron(sellinfo_win,COLOR_PAIR(6));	touchwin(win);    wrefresh(sellinfo_win);	scrollok(sellinfo_win,1);		//要求输入条形码	keypad(input_win,TRUE);	echo();	temp=0;	do	{		ch = mvwgetch(input_win,0,0+temp);    		if((isprint(ch)) && (!isspace(ch)))		{			BAR_CODE[temp] = ch;			temp++;			if(temp >=19)			{				temp=19;			}		}		//用户确定后,查询有没有商品存在		if(ch == '\n')		{			keypad(input_win,FALSE);			BAR_CODE[temp] = '\0';			//判断是否有相同的商品,如果有,数量+1,金额=数量*单价			buffer = IsTheSameMer(BAR_CODE);			if(buffer != NULL)			{				buffer->mer_amount = buffer->mer_amount+1;				buffer->total_money = buffer->mer_amount * buffer->sell_price;				PrintSellInfo();					SELL_STATE = 1;				mvwprintw(win,21,65,"正常");								touchwin(win);				wrefresh(win);				wrefresh(input_win);				wrefresh(sellinfo_win);				wclrtoeol(input_win);//清除输入的条形码数据				temp=0;				memset(BAR_CODE,0,sizeof(BAR_CODE));				keypad(input_win,TRUE);				continue;			}			//如果返回1,打印商品信息			if(SearchBarCode(BAR_CODE,MER_NAME,MER_UNIT,MER_SPEC,&MER_PRICE,&MER_STOCK))			{				MER_AMOUNT = 1;				TOTAL_MONEY = MER_PRICE * MER_AMOUNT;				//如果大于15行,滚屏				if(scroll_no>15)				{					scroll(sellinfo_win);					scroll_no--;				}				//保存数据到结构体					InputDateToStruct(BAR_CODE,MER_NAME,MER_UNIT,MER_SPEC,MER_PRICE,MER_AMOUNT,TOTAL_MONEY);												PrintSellInfo();//调用打印信息函数								SELL_STATE = 1;				mvwprintw(win,21,65,"正常");								touchwin(win);				wrefresh(win);				wrefresh(input_win);				wrefresh(sellinfo_win);											wclrtoeol(input_win);//清除输入的条形码数据				temp=0;				memset(BAR_CODE,0,sizeof(BAR_CODE));				keypad(input_win,TRUE);				scroll_no++;								continue;			}			//跳出提示,商品不存在			else			{				ShowMessage("       商品不存在,请重新输入");				wclrtoeol(input_win);//清除输入的条形码数据				temp=0;				memset(BAR_CODE,0,sizeof(BAR_CODE));				keypad(input_win,TRUE);				touchwin(win);				wrefresh(win);				continue;			}		}		else if(ch == KEY_BACKSPACE)		{			if(temp > 0)			{				--temp;				wmove(input_win,0,0+temp);				wclrtoeol(input_win);			}			else			{				wmove(input_win,0,0);				wclrtoeol(input_win);			}		}		//输入F2,新增明细,AddDetail()		if(ch == KEY_F(2))		{			AddDetail();						SELL_STATE = 1;			mvwprintw(win,21,65,"正常");							touchwin(win);			wrefresh(win);			wrefresh(input_win);			wrefresh(sellinfo_win);										wclrtoeol(input_win);//清除输入的条形码数据			temp=0;			memset(BAR_CODE,0,sizeof(BAR_CODE));			keypad(input_win,TRUE);			scroll_no++;							continue;		}		//输入F3,删除明细		if(ch == KEY_F(3))		{			DelDetail();		}		//输入F4,收银		if(ch == KEY_F(4))		{			GetMoney();			continue;		}		//输入F5,挂单		if(ch == KEY_F(5))		{			Hang_List();//挂单		}		//输入F6,取单		if(ch == KEY_F(6))		{				Take_List();//取单		}		//输入F7,撤单		if(ch == KEY_F(7))		{			CancelOrder();		}		//输入F8,退货		if(ch == KEY_F(8))		{			Good_Return();		}		//输入F9,退出		if(ch == KEY_F(9))		{			//判断是否有挂单,如果有的话,不允许退出			if(1 == Hang_List_State)			{				ShowMessage("     还有单号没有结账,不允许退出");				touchwin(sell_main_win);				wrefresh(sell_main_win);				continue;			}			if(1 == SELL_STATE)			{				ShowMessage("     还有单号没有结账,不允许退出");				touchwin(sell_main_win);				wrefresh(sell_main_win);				continue;			}			//退出系统			wclear(win);			wrefresh(win);			ShowMessage("             正在退出......");			delwin(win);			endwin();			exit(0);					}		else		{			continue;		}	}while(1);			noecho();    endwin();    exit(0);}

⌨️ 快捷键说明

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