// 刷新滑动屏幕时的菜品展示
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 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录