滑动屏幕菜品展示与管理员修改价格功能
// 刷新滑动屏幕时的菜品展示
void Refresh_interface(void)
{
char buf[4];
bzero(buf,4);
sprintf(buf,"%d/2",page);
info_p c = Info_init(buf,30,20,425,460);
showfont1(c);
if(page == 1)
{
info_p one = Info_init(' 长沙臭豆腐 45 ',120,20,160,250);
info_p two = Info_init(' 玉带虾仁 55 ',120,20,330,250);
info_p the = Info_init(' 油焖大虾 88 ',120,20,500,250);
info_p fou = Info_init(' 一锅鲜 68 ',120,20,670,250);
info_p fiv = Info_init(' 锡纸烤鸭 75 ',120,20,160,435);
info_p six = Info_init(' 蒜蓉虾球 50 ',120,20,330,435);
info_p sen = Info_init(' 山药炖鸡 56 ',120,20,500,435);
info_p eig = Info_init(' 三鲜汤 20 ',120,20,670,435);
showfont1(one);
showfont1(two);
showfont1(the);
showfont1(fou);
showfont1(fiv);
showfont1(six);
showfont1(sen);
showfont1(eig);
}
if(page == 2)
{
info_p one = Info_init(' 软酥炸鸡 66 ',120,20,160,250);
info_p two = Info_init(' 清江烤鱼 88 ',120,20,330,250);
info_p the = Info_init(' 清炒时蔬 25 ',120,20,500,250);
info_p fou = Info_init(' 梅菜扣肉 49 ',120,20,670,250);
info_p fiv = Info_init(' 毛血旺 59 ',120,20,160,435);
info_p six = Info_init(' 红烧牛蛙 35 ',120,20,330,435);
info_p sen = Info_init(' 红槽排骨 50 ',120,20,500,435);
info_p eig = Info_init(' 红扒鸡翅 78 ',120,20,670,435);
showfont1(one);
showfont1(two);
showfont1(the);
showfont1(fou);
showfont1(fiv);
showfont1(six);
showfont1(sen);
showfont1(eig);
}
/*if(page == 3)
{
info_p one = Info_init(' 宫保鸡丁 89 ',120,20,160,250);
showfont1(one);
}*/
}
void intte(list head)
{
list p = head;
lcd_open();
for(j=0 ; j<2 ; j++)
{
for(i=0 ; i<4 ; i++)
{
p=p->next;
lcd_draw_jpg(130+(170*i),100+(190*j),p->data);
}
}
while(1)
{
Refresh_interface();
int a = Get_slide(&x, &y, head);
if(a == 1)
{
if(page == 1)
{
page = 2;
}
else page = 1;
for(i=0 ; i<17 ; i++)
{
p=p->prev;
}
for(j=0 ; j<2 ; j++)
{
for(i=0 ; i<4 ; i++)
{
p = p->next;
if(p == head)
{
i--;
continue;
}
lcd_draw_jpg(130+(170*i),100+(190*j),p->data);
}
}
}
else if(a == 2)
{
if(page == 1)
{
page = 2;
}
else page = 1;
for(j=0 ; j<2 ; j++)
{
for(i=0 ; i<4 ; i++)
{
p = p->next;
if(p == head)
{
i--;
continue;
}
lcd_draw_jpg(130+(170*i),100+(190*j),p->data);
}
}
}
else if(a == 3)
{
show_next(head);
break;
}
else if(a == 0)
{
list p = NULL;
int sum = 0;
for(p = head->next; p != head; p = p->next)
{
if(p->flag == 1)//菜品数量有变动就显示到已点菜栏
{
if(flag1 == 1)//判断是否点击重新选择,是,已点菜品数量清0
{
p->num=0;
}
a++;
int len = strlen(p->data);
char name[128];
bzero(name,128);
strncpy(name,p->data,len-4);
int b = 25*a;
info_p e = Info_init(name,90,20,0,b);
showfont1(e);
char s[3];
bzero(s,3);
sprintf(s,"%d",p->num);
info_p f = Info_init(s,30,20,90,b);
showfont1(f);
sum += (p->price*p->num);
}
else continue;
char buf1[5];
bzero(buf1,5);
sprintf(buf1,"%d",sum);
info_p d = Info_init(buf1,74,20,50,0);
showfont1(d);
}
}
flag1 = 0;
}
ts_close();
lcd_close();
}
// 管理员修改菜品价格功能
void Modify_price(list head)
{
int num;
int price;
printf("请输入要修改价格的菜品编号:");
scanf("%d", &num);
list p = head->next;
int flag = 0; // 标记是否找到菜品
while (p != head) {
if (p->num == num) {
flag = 1;
printf("请输入新的价格:");
scanf("%d", &price);
p->price = price;
printf("修改成功!\n");
break;
}
p = p->next;
}
if (flag == 0) {
printf("未找到对应菜品!\n");
}
}
在主函数中调用 Modify_price(head) 函数即可实现管理员修改菜品价格的功能。
例如:
int main() {
// 初始化菜品链表
list head = create_list();
// ... 其他操作
// 管理员修改菜品价格
Modify_price(head);
// ... 其他操作
return 0;
}
原文地址: https://www.cveoy.top/t/topic/qtAD 著作权归作者所有。请勿转载和采集!