📄 backmanager.c
字号:
if(!Search_Account_Id(del_acc_id))//查询是否有这个帐户 { ShowMessage(" 你输入的帐号不存在"); touchwin(del_acc_win); wrefresh(del_acc_win); wclrtoeol(acc_id_win); continue; } break; }while (1); //进行删除帐号操作,员工表里面删除 //int Del_Account_From_Db(char *account_id); if(Del_Account_From_Db(del_acc_id)) { ShowMessage(" 删除帐号成功,按任意键返回"); touchwin(del_acc_win); wrefresh(del_acc_win); } else { ShowMessage(" 删除帐号失败,按任意键返回"); touchwin(del_acc_win); wrefresh(del_acc_win); } noecho(); ch = mvwgetch(del_acc_win,5,20); echo(); delwin(del_acc_win);}/*===============修改密码=====================*/void Mod_Password(){ char mod_id[20]; char old_pwd[20]; char new_pwd[20]; int ch; char buf[20]; int buf1; int temp; temp = 0; WINDOW *mod_pwd_win = newwin(9,40,8,20); WINDOW *acc_id_win = subwin(mod_pwd_win,1,20,10,33); WINDOW *old_pwd_win = subwin(mod_pwd_win,1,20,12,33); WINDOW *new_pwd_win = subwin(mod_pwd_win,1,20,14,33); wbkgd(mod_pwd_win,COLOR_PAIR(9)); wbkgd(acc_id_win,COLOR_PAIR(10)); wbkgd(old_pwd_win,COLOR_PAIR(10)); wbkgd(new_pwd_win,COLOR_PAIR(10)); box(mod_pwd_win,0,0); mvwprintw(mod_pwd_win,0,16,"修改密码"); mvwprintw(mod_pwd_win,2,4,"帐户ID:"); mvwprintw(mod_pwd_win,4,4,"原密码:"); mvwprintw(mod_pwd_win,6,4,"新密码:"); wrefresh(mod_pwd_win); echo(); //输入帐号ID do { memset(mod_id,0,sizeof(mod_id)); mvwgetnstr(acc_id_win,0,0,mod_id,20); if(!Search_Account_Id(mod_id))//查询帐号是否已经存在了 { ShowMessage(" 你输入的帐号不存在"); touchwin(mod_pwd_win); wrefresh(mod_pwd_win); wclrtoeol(acc_id_win); continue; } break; }while (1); //输入原密码 keypad(old_pwd_win,TRUE); temp=0; do { wmove(old_pwd_win,0,0); wclrtoeol(old_pwd_win); do { //输入密码 ch = mvwgetch(old_pwd_win,0,0+temp); if((isprint(ch)) && (!isspace(ch))) { mvwaddch(old_pwd_win,0,0+temp,'*'); wrefresh(old_pwd_win); old_pwd[temp] = ch; temp++; if(temp >=12) { break; } } if(temp >=6 && ch == '\n') { break; } else if(ch == KEY_BACKSPACE) { if(temp > 0) { --temp; wmove(old_pwd_win,0,0+temp); wclrtoeol(old_pwd_win); } else { wmove(old_pwd_win,0,0); wclrtoeol(old_pwd_win); } } }while(1); //验证输入的帐号密码是否正确 if(!CheckUserLogin(mod_id,old_pwd,buf,&buf1)) { ShowMessage(" 验证失败,你输入的密码错误"); touchwin(mod_pwd_win); wrefresh(mod_pwd_win); wclrtoeol(old_pwd_win); memset(old_pwd,0,sizeof(old_pwd)); temp=0; continue; } break; }while (1); //输入新密码 keypad(new_pwd_win,TRUE); temp=0; do { //输入密码 ch = mvwgetch(new_pwd_win,0,0+temp); if((isprint(ch)) && (!isspace(ch))) { mvwaddch(new_pwd_win,0,0+temp,'*'); wrefresh(new_pwd_win); new_pwd[temp] = ch; temp++; if(temp >=12) { break; } } if(temp >=6 && ch == '\n') { break; } else if(ch == KEY_BACKSPACE) { if(temp > 0) { --temp; wmove(new_pwd_win,0,0+temp); wclrtoeol(new_pwd_win); } else { wmove(new_pwd_win,0,0); wclrtoeol(new_pwd_win); } } }while(1); //保存新密码 if(Save_New_Pwd_To_Db(mod_id,new_pwd)) { ShowMessage(" 修改密码成功,按任意键返回"); touchwin(mod_pwd_win); wrefresh(mod_pwd_win); } else { ShowMessage(" 修改密码失败,按任意键返回"); touchwin(mod_pwd_win); wrefresh(mod_pwd_win); } noecho(); ch = mvwgetch(mod_pwd_win,8,20); echo(); delwin(mod_pwd_win);}/*===============销售记录查询==================*/void SellRecordSearch(){ char str[20]; WINDOW *rec_sea_win = newwin(11,40,8,20); WINDOW *choice_win = subwin(rec_sea_win,1,10,16,39); wbkgd(rec_sea_win,COLOR_PAIR(9)); wbkgd(choice_win,COLOR_PAIR(10)); do { box(rec_sea_win,0,0); mvwprintw(rec_sea_win,0,14,"销售记录查询"); mvwprintw(rec_sea_win,2,12,"1.单品销售查询"); mvwprintw(rec_sea_win,4,12,"2.单日销售查询"); mvwprintw(rec_sea_win,6,12,"0.返回上级菜单"); mvwprintw(rec_sea_win,8,12,"请选择:"); wrefresh(rec_sea_win); echo(); mvwgetnstr(choice_win,0,0,str,10); noecho(); if(strlen(str)>1) { ShowMessage(" 输入错误,请重新输入"); memset(str,0,sizeof(str)); wclrtoeol(choice_win); refresh(); continue; } if(!strncmp("1",str,1)) { delwin(rec_sea_win); clear(); refresh(); //单品销售查询 Mer_Sell_Search(); } else if(!strncmp("2",str,1)) { delwin(rec_sea_win); clear(); refresh(); Day_Sell_Search(); } else if(!strncmp("0",str,1)) { ShowMessage(" 正在返回后台管理菜单......"); delwin(rec_sea_win); clear(); refresh(); BackManager(); } else { ShowMessage(" 输入错误,请重新输入"); memset(str,0,sizeof(str)); wclrtoeol(choice_win); refresh(); continue; } }while (1);}/*==========单品销售查询==============*/void Mer_Sell_Search(){ // 单品销售记录打印的是,条形码,商品名称,,单价,一共销售了多少总金额,盈利=(销售金额-进价)*数量 char mer_name[20];//商品名称 float sell_price;//销售单价 int total_sell;//一共销售了多少 float total_money;// 总金额 float payoff;//盈利 float stock_price;//进价 char start_date[20]; char end_date[20]; char bar_code[20]; char ch; int i,j,temp; i=0; j=0; temp=0; WINDOW *mer_sell_search_win = newwin(9,40,7,20); WINDOW *start_date_win = subwin(mer_sell_search_win,1,20,9,36); WINDOW *end_date_win = subwin(mer_sell_search_win,1,20,11,36); WINDOW *bar_code_win = subwin(mer_sell_search_win,1,20,13,36); wbkgd(mer_sell_search_win,COLOR_PAIR(9)); wbkgd(start_date_win,COLOR_PAIR(10)); wbkgd(end_date_win,COLOR_PAIR(10)); wbkgd(bar_code_win,COLOR_PAIR(10)); box(mer_sell_search_win,0,0); mvwprintw(mer_sell_search_win,0,14,"单品销售查询"); mvwprintw(mer_sell_search_win,2,6,"起始日期:"); mvwprintw(mer_sell_search_win,4,6,"结束日期:"); mvwprintw(mer_sell_search_win,6,4,"商品条形码:"); wrefresh(mer_sell_search_win); echo(); //输入开始日期 do { memset(start_date,0,sizeof(start_date)); mvwgetnstr(start_date_win,0,0,start_date,20); //在oracle中对日期进行演出 if(!Is_Date_Right(start_date)) { ShowMessage(" 你输入的日期错误,请重新输入"); touchwin(mer_sell_search_win); wrefresh(mer_sell_search_win); wclrtoeol(start_date_win); continue; } break; }while (1); //输入结束日期 do { memset(end_date,0,sizeof(end_date)); mvwgetnstr(end_date_win,0,0,end_date,20); if(!Is_Date_Right(end_date)) { ShowMessage(" 你输入的日期错误,请重新输入"); touchwin(mer_sell_search_win); wrefresh(mer_sell_search_win); wclrtoeol(end_date_win); continue; } //如果start_date>=end_date,返回真,等于返回0 if(strcmp(start_date,end_date)>0) { ShowMessage(" 结束日期必须比起始日期大"); touchwin(mer_sell_search_win); wrefresh(mer_sell_search_win); wclrtoeol(end_date_win); continue; } break; }while (1); //输入商品条形码 do { memset(bar_code,0,sizeof(bar_code)); mvwgetnstr(bar_code_win,0,0,bar_code,20); if(!SearchBarCode(bar_code,MER_NAME,MER_UNIT,MER_SPEC,&MER_PRICE,&MER_STOCK)) { ShowMessage(" 商品不存在,请重新输入"); touchwin(mer_sell_search_win); wrefresh(mer_sell_search_win); wclrtoeol(bar_code_win); refresh(); continue; } break; }while (1); //判读读取数据库数据是否成功 if(Search_Mer_Info(bar_code,mer_name,&sell_price,&stock_price) && Stat_Mer_Sell_Amount(bar_code,&total_sell,start_date,end_date)) { ShowMessage(" 查询数据成功,按任意键打印记录"); touchwin(mer_sell_search_win); wrefresh(mer_sell_search_win); temp = 1; } else { ShowMessage(" 不存在销售记录,任意键返回"); touchwin(mer_sell_search_win); wrefresh(mer_sell_search_win); } if(1 == temp) { noecho(); ch = mvwgetch(mer_sell_search_win,8,20); echo(); delwin(mer_sell_search_win); clear(); refresh(); //计算出盈利和销售总金额 payoff = (sell_price - stock_price)*total_sell; total_money = sell_price * total_sell; //打印出界面 WINDOW *sell_info_win = newwin(7,80,9,0); wbkgd(sell_info_win,COLOR_PAIR(6)); box(sell_info_win,0,0); mvwprintw(sell_info_win,1,1,"条形码 商品名称 商品单价 商品数量 销售总金额 总盈利"); mvwhline(sell_info_win,2,1,0,78); mvwprintw(sell_info_win,4,1,"%s",bar_code); mvwprintw(sell_info_win,4,11,"%s",mer_name); mvwprintw(sell_info_win,4,28,"%.2f",sell_price); mvwprintw(sell_info_win,4,39,"%d",total_sell); mvwprintw(sell_info_win,4,51,"%.2f",total_money); mvwprintw(sell_info_win,4,66,"%.2f",payoff); wrefresh(sell_info_win); ShowMessage(" 打印完毕,任意键返回"); touchwin(sell_info_win); wrefresh(sell_info_win); noecho(); ch = mvwgetch(sell_info_win,5,40); echo(); delwin(sell_info_win); clear(); refresh(); SellRecordSearch(); } noecho(); ch = mvwgetch(mer_sell_search_win,8,20); echo(); delwin(mer_sell_search_win); clear(); refresh(); SellRecordSearch();}/*==============单日销售查询==================*/void Day_Sell_Search(){ float day_total_sell;//当日的销售总金额 float day_total_payoff;//当日总盈利 char sell_date[20];//当日的销售日期 int temp; char ch; temp = 0; day_total_payoff=0.0f; WINDOW *day_sell_search_win = newwin(5,40,10,20); WINDOW *sell_date_win = subwin(day_sell_search_win,1,20,12,36); wbkgd(day_sell_search_win,COLOR_PAIR(9)); wbkgd(sell_date_win,COLOR_PAIR(10)); box(day_sell_search_win,0,0); mvwprintw(day_sell_search_win,0,14,"单日销售查询"); mvwprintw(day_sell_search_win,2,6,"销售日期:"); wrefresh(day_sell_search_win); echo(); do { memset(sell_date,0,sizeof(sell_date)); mvwgetnstr(sell_date_win,0,0,sell_date,20); if(!Is_Date_Right(sell_date)) { ShowMessage(" 你输入的日期错误,请重新输入"); touchwin(day_sell_search_win); wrefresh(day_sell_search_win); wclrtoeol(sell_date_win); continue; } break; }while (1); //判断输入的日期当天是否有数据,若有的话,进行查询 if(Day_Total_Sell_Money(sell_date,&day_total_sell) && Today_Total_Payoff(sell_date,&day_total_payoff) ) { ShowMessage(" 查询数据成功,任意键打印销售记录"); touchwin(day_sell_search_win); wrefresh(day_sell_search_win); temp = 1; } else { ShowMessage(" 当日没有销售记录,任意键返回"); touchwin(day_sell_search_win); wrefresh(day_sell_search_win); } if(1 == temp) { noecho(); ch = mvwgetch(day_sell_search_win,4,20); echo(); delwin(day_sell_search_win); refresh(); WINDOW *sell_info_win = newwin(7,40,9,20); wbkgd(sell_info_win,COLOR_PAIR(6)); box(sell_info_win,0,0); mvwprintw(sell_info_win,1,1,"销售日期 销售总金额 总盈利"); mvwhline(sell_info_win,2,1,0,38); mvwprintw(sell_info_win,4,1,"%s",sell_date); mvwprintw(sell_info_win,4,13,"%.2f",day_total_sell); mvwprintw(sell_info_win,4,27,"%.2f",day_total_payoff); wrefresh(sell_info_win); ShowMessage(" 打印完毕,任意键返回"); touchwin(sell_info_win); wrefresh(sell_info_win); noecho(); ch = mvwgetch(sell_info_win,5,20); echo(); delwin(sell_info_win); clear(); refresh(); SellRecordSearch(); } noecho(); ch = mvwgetch(day_sell_search_win,4,20); echo(); delwin(day_sell_search_win); refresh(); SellRecordSearch(); }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -