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

📄 possystem.h

📁 在linux平台下模拟超市的收银系统即POS机
💻 H
字号:
#include <ncurses.h>
#include "linklist.h"
#include "OracleDB.h"
#ifndef POSSYSTEM_H
#define POSSYSTEM_H
enum IsBorder{Yes,No};
enum Colore_Index{
				  Default,//默认不带有颜色
				  WHITE_BLACK,//白底黑字
				  BLACK_WHITE,//黑底白字
				  BLUE_WHITE,//蓝底白字
				  RED_WHITE,//红底白字
				  WHITE_RED,//白底红字
				  RED_BLACK//红底黑字
};
enum Dialog_Button_Index{
	Button_Yes,//只有'是'按钮
	Button_YesAndNo//有'是'跟'否'按钮
};

struct configInfo
{
    char keyname[128];
    char value[128];
};



typedef struct 
{
	char no[20];
}BillID;

#endif

WINDOW* CreateWindow(int hight,int width,int startY,int startX,enum IsBorder isBorder,enum Colore_Index index);
void printhline(WINDOW * win,int hight,int startY,int startX);
int GetStringLevelPrintSit(WINDOW * win,char * str);
void DestroyWindow(WINDOW * win);
int GetChar(WINDOW * win ,int startY,int startX);
//从指定窗口的指定位置读取指定个数的字符
int GetString(WINDOW * win,int startY,int startX,char *str,int strMaxLen);
void StringCenterPrint(WINDOW * win,int startY,char * str);//取得字符串
int GetPasswordString(WINDOW * win,int startY,int startX,char *str,int strMaxLen);//取得密码字符串
WINDOW * CreateButtonWindow(int startY,int startX,enum IsBorder isBorder,enum Colore_Index coloreIndex,char * str);
void IntoButtonWindow(WINDOW * win,enum Colore_Index coloreIndex);
void LeaveButtonWindow(WINDOW * win,enum Colore_Index coloreIndex);

//添加明细
int Add_List(int startY,int startX,saleProduct * salePro);

//新增明细窗口
int NewListWindow(int startY,int startX,char * title,char * barcode,int * amount);

//删除明细
int Del_List(int startY,int startX,saleProduct * salePro);

//删除明细窗口
int DelListWindow(int startY,int startX,char * title,saleProduct * salePro,int * amount);



//int NewListWindow(int startY,int startX,char * title);
int Message_Box(int hight,int width,int startY,int startX,enum Colore_Index coloreIndex,char *title,char * message);
//结帐窗口
int Reckoning_Window(int startY,int startX,float totalmoney);
int InputAdminPwdWin(int startY,int startX);
//退货窗口
int ReturningAProductWin(int startY,int startX);
int DialogWindow(int hight,int width,int startY,int startX,char * message,enum Colore_Index coloreIndex);
//Pos机的结帐窗口
int CreatePosReckoningWindow();
//登入窗口
int CreateLoginWindow(int higth,int width,int startY,int startX);
//取系统时间字符串
void GetSystemTime(char * timeString);
//读取配制文件  返回1就是读取失败 0就是成功 第一个参数是数据要存的指针,第二个是最多读取信息数 第三个指向是用来返回最终读取了多少条信息
int ReadConfigInfo(struct configInfo * config,int maxReadCount,int *alreadyReadCount);

//将选项反白
void option_reverse(WINDOW* win,int lines,int dir,int *cur,LINKLIST* linklist);
//取得任意数据指针
void * GetNodeData(LINKLIST* linklist,int cur);

//这边这两个函数是一对使用
int GetRollBill(int startY,int startX);
void ListOption_reverse(WINDOW* win,int cursorLocation,int currentRecNo,LINKLIST* linklist);

//将产品结构转换成出售商品结构
void ConverToSaleRec(product * pro,saleProduct * sale,int amount);
//出售商品反白
void saleRecord_reverse(WINDOW* win,int cursorLocation,int currentRecNo,LINKLIST* linklist);

//取单对话框
int HangBillDialog(int startY,int startX,LINKLIST *billList); 
//挂单项反白显示
void HandBillItem_reverse(WINDOW* win,int cursorLocation,int currentRecNo,LINKLIST* linklist);


//撤消挂单
int Cancle_Hang_Bill_Dialog(int startY,int startX,LINKLIST *billList);


/////////////////////////////////////////////////////////////
//								后台管理函数
//////////////////////////////////////////////////////////////////////////
//后台管理入口函数
int BackgroundManager();
//后台管理主窗口
int BackgroundManagerWin();
//在指定窗口的指定位置打印出反白字符串
void StringRevers(WINDOW *win,int startY,int startX,char * str);

//////////////////////////////////////////////////////////////////////////
//								商品管理
//////////////////////////////////////////////////////////////////////////
//帐户管理入口函数
int CommodityManager();
//帐户管理主窗口
int CommodityManagerWin();
//商品添加窗口
int AddCommodityManagerWin();
//修改商品窗口
int ModifyCommodityWin(char * bar_code,product * productInfo);
//商品条码输入窗口
int CommodityBarCodeInputWin(char * title,char * barcodeStr,product * productInfo);
//商品分页显示窗口
int CommodityPaginationShowWin();

//商品分页显示窗口
int CommodityPaginationShowWin();

//打印商品信息  参数recordNum是代表每页显示多少条记录
void PrintProductInfo(WINDOW * win,int pageNumber,int recordNum);

//////////////////////////////////////////////////////////////////////////
//								帐户管理
//////////////////////////////////////////////////////////////////////////
//帐户管理入口函数
int AccountManager();

//添加帐户窗口
int AccountManagerWin();
int AddAccountWin();


//修改帐户窗口
int ModifyAccountWin();

//帐户ID输入窗口
int AccountIDInputWin(char * title,char * staff_id,staff * pStaff);

//打印帐户信息  参数recordNum是代表每页显示多少条记录
void PrintStaffInfo(WINDOW * win,int pageNumber,int recordNum);

//帐户分页显示窗口
int StaffPaginationShowWin();



//////////////////////////////////////////////////////////////////////////
//								销售管理
//////////////////////////////////////////////////////////////////////////
//销售管理入口函数
int VenditionManager();
//销售管理窗口
int VenditionManagerWin();

//销售日期查询窗口
int SearchVenditionByDateWin();
//按帐户ID查询销售的窗口
int SearchVenditionByAccountIDWin();


//////////////////////////////////////////////////////////////////////////

//判断是否为空
int isNull(char* str);

//取得单精度的字符串,返回特殊键码
int GetFloat(WINDOW * win,int startY,int startX,char *str,int strMaxLen);

//取得数字字符串,返回特殊键码
int GetNumber(WINDOW * win,int startY,int startX,char *str,int strMaxLen);

//判断一个浮点型输入是否符合大于min,小于max,格式是否正确,正确返回1,格式错或为空返回0,太小返回-1,太大返回-2
int Float_Input_Validate(char *floatnum,float min,float max);


//判断一个数字型输入是否符合大于min,小于max,正确返回1,格式错或为空返回0,太小返回-1,太大返回-2
int Int_Input_Validate(char *floatnum,int min,int max);

//只允许字母和空格,符合返回1,不符返回0,太短返回-1,太长返回-2
int Char_Input_Validate(char *str,int min,int max);

//判断字符串min内是否为结束符,为结束符返回假
int Input_Short(char *str,int min);


//验证money(前提是屏蔽输入非法字符,只允许输入0-9和。)
int isFloat(char* str);


//按日期查询销售窗口
int SearchSaleByDateShowWin(char * startdate,char * enddate);

//按员工编号查询销售窗口
int SearchSaleByStaffIDShowWin(char * staff_id);


//判断是否是闰年
int IsLeapYear(int year);

//验证数值是否在给定范围
int CheckRange(int value,int start,int end);


//返回 1代表年错误 2代表月错误 ,3代表日错误
int checkDate(int year,int month, int day);








⌨️ 快捷键说明

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