收藏 分销(赏)

毕业论文uc-gui点菜系统.doc

上传人:可**** 文档编号:2139015 上传时间:2024-05-18 格式:DOC 页数:55 大小:246.50KB
下载 相关 举报
毕业论文uc-gui点菜系统.doc_第1页
第1页 / 共55页
毕业论文uc-gui点菜系统.doc_第2页
第2页 / 共55页
毕业论文uc-gui点菜系统.doc_第3页
第3页 / 共55页
毕业论文uc-gui点菜系统.doc_第4页
第4页 / 共55页
毕业论文uc-gui点菜系统.doc_第5页
第5页 / 共55页
点击查看更多>>
资源描述

1、郑州轻工业学院课 程 设 计 任 务 书题目 基于ucgui的点菜系统设计 专业、班级 电子信息科学与技术09-1班 学号 姓名 主要内容、基本要求、主要参考文献等:1. 课程说明随着信息化技术的不断发展,电子菜单开始出现在一些高档餐厅,与传统菜单相比,电子菜单可以节省制作成本和人力成本,并能实现无线下单。可以随需变更菜品信息,灵活进行菜品促销,帮助饭店有效提升品牌形象和服务水平,增加菜品销量,提高营业收益。其强大的后台管理功能,让饭店管理者运筹帷幄,省心省力。本次课程设计利用GUI函数制作一个简单的电子菜单,实现基本的查阅、点菜、菜价计算、付账等功能,旨在熟悉掌握C语言和对系统函数的灵活运用

2、。2、主要内容(1)掌握LCD显示图形的方法,掌握LCD显示字符的方法。(2) 了解汉字库的组织方式,汉字显示的原理,学习LCD的显示原理和控制办法。(3) 完成点菜系统的点菜,菜价计算,账单打印功能。3、基本要求(1) 编写图形显示函数,在LCD上显示图形(2) 编写HZK16读取函数,在LCD上显示汉字(3) 菜单程序设计,实现菜单的选择操作。 4功能说明此菜单共有16道菜,在首界面显示4道菜的信息,报告菜名、价格、份数,还可以增加、减少或退选某道菜,相应地其份数会发生改变。通过点击上下翻页三角键,可以查看其余12道菜(可循环),选中某道菜之后,菜名会变红色,起提示作用。点击“OK”键,说

3、明点菜结束,进入第二界面。第二界面有菜单的简单显示,包括菜名、价格和份数,还有合计花费。另外,增加了“修改”和“重选”两个功能键,点击“修改”键,系统会跳转到第一界面,对点菜情况进行修改;点击“重选”键,会出现一个提示画面:真的要重选吗,点击“确定”,则系统跳回第一界面,重新点菜;点击“取消”,提示画面消失。若点击“详细菜单”键,系统跳转到第三界面。第三界面罗列了每道菜的菜名、价格、份数,还有花费情况,如果顾客没有异议,点击“确认付账”后,会出现一个提示画面:谢谢光临,欢迎下次再来,系统将在 秒后跳回主菜单。计时3秒钟。如果点击“返回”键,则系统回到第二界面。5.程序及其注释#include

4、GUI.h#include GUI_Protected.h#include #include #include #define countof(Array) (sizeof(Array)/sizeof(Array0)const GUI_POINT aPoints0=0,-15,30,15,-30,15;const GUI_POINT aPoints1=-30,-15,30,-15,0,15;int s,ms,ms1,ss;int number17=0;/份数int change=0;/界面变换标志位int cnt=0;int flag=0;/第二界面重选标志位int time=0;/time用

5、来控制显示第一界面静止的部分int flag21=0;/第二界面切换到第一界面标志位int time1=0;/控制显示第二界面静止的部分int time2=0;/控制显示第二界面重选确认窗口int time3=0;/控制显示第三界面静止的部分int flag3=0;/控制显示第三界面确认付账int flag31=0;int cancel=0;/第二界面重选取消标志位GUI_PID_STATE TouchState;char menu17100=麻婆豆腐,辣子鸡丁,东坡肘子,豆瓣鲫鱼,口袋豆腐,酸菜干鱼,夫妻肺片,蚂蚁上树,叫化香鸡,茄汁鱼卷,鱼香肉丝,干煸冬笋,魔芋烧鸭,锅贴鱼片,麻辣肉丁,鱼

6、香茄饼;/菜名int price17=12,16,30,28,10,25,35,8,50,14,20,8,46,32,16,15;/菜价int count_time() ms=(GUI_GetTime()-ms1)/100; ms%=10; if(ms=9) ss+;GUI_Delay(100); s=3-ss;return s;int count_number(int x)/计算位数int y=0;if(x=0) return 1;while(x0)x=x/10; y+;return y;void display1()/第一界面显示函数 int i; GUI_SetBkColor(GUI_Y

7、ELLOW); if(time=0) time=1;GUI_SetFont(&GUI_FontHZ24);/声明字库 GUI_SetColor(GUI_RED);GUI_DispStringHCenterAt(欢迎光临二毛菜馆,150,10);GUI_SetFont(&GUI_FontHZ16);/声明字库GUI_DispStringHCenterAt(菜名,30,40);GUI_DispStringHCenterAt(价格,115,40);GUI_DispStringHCenterAt(选项,195,40);GUI_DispStringHCenterAt(份数,290,40); GUI_Se

8、tColor(GUI_BLACK); GUI_SetColor(GUI_BLUE); LCD_L0_FillRect(141,59,174,76); LCD_L0_FillRect(141,89,174,106); LCD_L0_FillRect(141,119,174,136); LCD_L0_FillRect(141,149,174,166); GUI_SetBkColor(GUI_BLUE); GUI_SetColor(GUI_WHITE); GUI_DispStringHCenterAt(增加,158,60); GUI_DispStringHCenterAt(增加,158,90); G

9、UI_DispStringHCenterAt(增加,158,120); GUI_DispStringHCenterAt(增加,158,150); LCD_L0_FillRect(181,59,214,76); LCD_L0_FillRect(181,89,214,106); LCD_L0_FillRect(181,119,214,136); LCD_L0_FillRect(181,149,214,166); GUI_DispStringHCenterAt(减少,198,60); GUI_DispStringHCenterAt(减少,198,90); GUI_DispStringHCenterA

10、t(减少,198,120); GUI_DispStringHCenterAt(减少,198,150); LCD_L0_FillRect(221,59,254,76); LCD_L0_FillRect(221,89,254,106); LCD_L0_FillRect(221,119,254,136); LCD_L0_FillRect(221,149,254,166); GUI_DispStringHCenterAt(退选,238,60); GUI_DispStringHCenterAt(退选,238,90); GUI_DispStringHCenterAt(退选,238,120); GUI_Di

11、spStringHCenterAt(退选,238,150); GUI_SetColor(GUI_BLUE); LCD_L0_FillRect(271,59,300,76); LCD_L0_FillRect(271,89,300,106); LCD_L0_FillRect(271,119,300,136); LCD_L0_FillRect(271,149,300,166);GUI_SetBkColor(GUI_BLUE); GUI_SetColor(GUI_WHITE); GUI_DispStringAt(份,298,60); GUI_DispStringAt(份,298,90); GUI_Di

12、spStringAt(份,298,120); GUI_DispStringAt(份,298,150);GUI_SetBkColor(GUI_BLUE);GUI_SetColor(GUI_BLUE);LCD_L0_FillRect(260,180,310,220); GUI_FillPolygon(aPoints0,countof(aPoints0),40,205); GUI_FillPolygon(aPoints1,countof(aPoints1),110,205);GUI_SetBkColor(GUI_BLUE); GUI_SetColor(GUI_WHITE); GUI_DispStri

13、ngHCenterAt(OK,295,190);GUI_SetFont(&GUI_FontHZ24);/声明字库 GUI_SetBkColor(GUI_YELLOW);GUI_SetColor(GUI_BLACK);GUI_DispStringHCenterAt(第,180,190);GUI_DispStringHCenterAt(页,235,190); GUI_SetFont(&GUI_FontHZ24);/声明字库 GUI_SetColor(GUI_BLACK); GUI_DispDecAt(cnt+1,200,190,1); GUI_SetFont(&GUI_FontHZ16);/声明字

14、库 GUI_SetColor(GUI_YELLOW); for(i=0;i0)GUI_SetColor(GUI_RED); GUI_DispStringHCenterAt(menucnt*4+i,40,60+30*i);/显示菜名 GUI_SetColor(GUI_BLACK); GUI_DispDecAt(pricecnt*4+i,105,60+30*i,2);/显示价格 GUI_SetBkColor(GUI_BLUE); GUI_SetColor(GUI_WHITE); GUI_DispDecAt(numbercnt*4+i,275,60+30*i,2);/显示份数 GUI_SetBkCo

15、lor(GUI_YELLOW); if(GUI_TOUCH_GetState(&TouchState) if(TouchState.x10)&(TouchState.x190)&(TouchState.y220)/上一页 cnt-; if(cnt80)&(TouchState.x190)&(TouchState.y3) cnt=0; while(GUI_TOUCH_GetState(&TouchState); if(TouchState.x260)&(TouchState.x180)&(TouchState.y141)&(TouchState.x59)&(TouchState.y99)numb

16、ercnt*4=99; while(GUI_TOUCH_GetState(&TouchState); if(TouchState.x141)&(TouchState.x89)&(TouchState.y99)numbercnt*4+1=99; while(GUI_TOUCH_GetState(&TouchState); if(TouchState.x141)&(TouchState.x119)&(TouchState.y99)numbercnt*4+2=99; while(GUI_TOUCH_GetState(&TouchState); if(TouchState.x141)&(TouchSt

17、ate.x149)&(TouchState.y99)numbercnt*4+3=99; while(GUI_TOUCH_GetState(&TouchState); if(TouchState.x181)&(TouchState.x59)&(TouchState.y76)/减少1 numbercnt*4-;if(numbercnt*4181)&(TouchState.x89)&(TouchState.y106)/减少2 numbercnt*4+1-;if(numbercnt*4+1181)&(TouchState.x119)&(TouchState.y136)/减少3 numbercnt*4+

18、2-;if(numbercnt*4+2181)&(TouchState.x149)&(TouchState.y166)/减少4 numbercnt*4+3-;if(numbercnt*4+3221)&(TouchState.x59)&(TouchState.y221)&(TouchState.x89)&(TouchState.y221)&(TouchState.x119)&(TouchState.y221)&(TouchState.x149)&(TouchState.y166)/退选4 numbercnt*4+3=0; while(GUI_TOUCH_GetState(&TouchState)

19、; void display2()/第二界面显示函数int i,sum=0,r,count=0;for(i=0;i16;i+)sum+=pricei*numberi;if(time1=0)time1=1; GUI_SetColor(GUI_BLUE); LCD_L0_FillRect(170,10,230,40); LCD_L0_FillRect(250,10,310,40); LCD_L0_FillRect(160,210,280,240); LCD_L0_FillRect(20,210,140,240); GUI_SetFont(&GUI_FontHZ16);/声明字库 GUI_SetBk

20、Color(GUI_BLUE); GUI_SetColor(GUI_WHITE); GUI_DispStringHCenterAt(修改,200,20); GUI_DispStringHCenterAt(重选,280,20); GUI_DispStringHCenterAt(合计,180,215); GUI_DispStringHCenterAt(详细菜单,80,215); GUI_DispDecAt(sum,215,215,count_number(sum); GUI_DispStringHCenterAt(元,270,215); GUI_SetFont(&GUI_FontHZ24);/声明

21、字库 GUI_SetBkColor(GUI_YELLOW); GUI_SetColor(GUI_BLACK); GUI_DispStringHCenterAt(您,20,20); GUI_DispStringHCenterAt(的,60,20); GUI_DispStringHCenterAt(帐,100,20); GUI_DispStringHCenterAt(单,140,20); if(cancel=0)cancel=1; r=40; for(i=0;i0) if(50+count*20190) r=190;count=0;/换列显示GUI_DispStringHCenterAt(menu

22、i,r,50+count*20);/显示菜单GUI_DispDecAt(numberi,r+40,50+count*20,2);GUI_DispStringHCenterAt(*,r+70,50+count*20);GUI_DispDecAt(pricei,r+75,50+count*20,2);count+; if(flag=1) if(time2=0) time2=1; GUI_SetColor(GUI_RED); LCD_L0_FillRect(50,80,280,200); GUI_SetColor(GUI_BLACK); LCD_L0_FillRect(90,140,150,180)

23、; LCD_L0_FillRect(170,140,230,180); GUI_SetBkColor(GUI_RED); GUI_SetColor(GUI_WHITE); GUI_SetFont(&GUI_FontHZ24);/声明字库 GUI_DispStringHCenterAt(真的要重选吗,160,110); GUI_SetBkColor(GUI_BLACK); GUI_DispStringHCenterAt(确定,120,150); GUI_DispStringHCenterAt(取消,200,150); if(GUI_TOUCH_GetState(&TouchState) if(T

24、ouchState.x90)&(TouchState.x140)&(TouchState.y180)/确定 change=0; GUI_SetBkColor(GUI_YELLOW); GUI_Clear(); time=0; flag=0; for(i=0;i170)&(TouchState.x140)&(TouchState.y180)/取消 change=1; flag=0; time2=0; GUI_SetColor(GUI_YELLOW); LCD_L0_FillRect(50,80,280,200); r=40; for(i=0;i0) if(50+count*20190) r=19

25、0;count=0;/换列显示GUI_DispStringHCenterAt(menui,r,50+count*20);/显示菜单GUI_DispDecAt(numberi,r+40,50+count*20,2);GUI_DispStringHCenterAt(*,r+70,50+count*20);GUI_DispDecAt(pricei,r+75,50+count*20,2);count+; while(GUI_TOUCH_GetState(&TouchState); if(GUI_TOUCH_GetState(&TouchState) if(TouchState.x170)&(Touch

26、State.x10)&(TouchState.y250)&(TouchState.x10)&(TouchState.y20)&(TouchState.x210)&(TouchState.y240)/详细菜单change=2;GUI_SetBkColor(GUI_YELLOW); GUI_Clear();time3=0; while(GUI_TOUCH_GetState(&TouchState); void display3()/第三界面显示函数int r,count=0,i,sum;if(time3=0)time3=1; GUI_SetColor(GUI_BLUE); LCD_L0_FillR

27、ect(20,200,140,240); LCD_L0_FillRect(180,200,300,240); GUI_SetFont(&GUI_FontHZ16);/声明字库 GUI_SetBkColor(GUI_BLUE); GUI_SetColor(GUI_WHITE); GUI_DispStringHCenterAt(确认付账,80,215); GUI_DispStringHCenterAt(返回,240,215); r=30; for(i=0;i0) sum=numberi*pricei; if(50+count*20190) r=190;count=0;/换列显示GUI_DispSt

28、ringHCenterAt(menui,r,10+count*20);GUI_DispDecAt(numberi,r+30,10+count*20,2);GUI_DispStringHCenterAt(*,r+55,10+count*20);GUI_DispDecAt(pricei,r+60,10+count*20,2); GUI_DispStringHCenterAt(=,r+90,10+count*20);GUI_DispDecAt(sum,r+100,10+count*20,count_number(sum);count+; if(flag3=1) flag3=0; GUI_SetCol

29、or(GUI_GREEN); LCD_L0_FillRect(40,20,280,180); GUI_SetBkColor(GUI_GREEN); GUI_SetColor(GUI_RED); GUI_SetFont(&GUI_FontHZ24);/声明字库 GUI_DispStringHCenterAt(谢谢光临,155,30); GUI_DispStringHCenterAt(欢迎下次再来,155,70); GUI_DispStringAt(系统将在,80,110); GUI_DispStringAt(秒后,215,110); GUI_DispStringAt(跳回主菜单,90,150);

30、 if(flag31=1) if(count_time()0) GUI_DispDecAt(count_time(),190,110,1); else if(count_time()=0) GUI_DispDecAt(count_time(),190,110,1); change=0; time=0; flag31=0; ss=0; for(i=0;i20)&(TouchState.x200)&(TouchState.y180)&(TouchState.x200)&(TouchState.y240)/返回 change=1; time1=0; time2=0; cancel=0; GUI_Se

31、tBkColor(GUI_YELLOW); GUI_Clear(); while(GUI_TOUCH_GetState(&TouchState); void MainTask(void) int count=0; GUI_Init(); GUI_SetBkColor(GUI_YELLOW); GUI_Clear(); while(1) if(change=0) display1();/显示第一界面 GUI_Delay(100); else if(change=1) display2();/显示第二界面 else if(change=2) display3();/显示第三界面 6.课程设计心得通

32、过本次课程设计,我切身感受到嵌入式系统的强大,而我所掌握的知识不及九牛一毛,一开始写程序的时候,比较中规中矩,仅仅完成了基本功能,而且对于一些按键的设计也有些瑕疵。后来,跟同学交流和上网查找资料,在原来的基础上,做了一些改进:界面规划得更加合理了,上下翻页键由原来的方框形设计成了三角形,这样界面显得更加人性化;另外,还增加了一些新的功能,如界面自动跳转功能等。在设计的过程中,当然出现了很多的问题,甚至有时候,不知道怎么去解决,但我还是一直坚持了下来,培养了我的耐性和严谨性,同时通过查阅资料,进一步锻炼了我的自学能力,让我学到了很多新的知识。我觉得这个课程设计有两个关键点,一是设法使界面不闪,我们知道,当界面不停刷新的时候,会出现“闪动”现象,影响美观。那么怎么解决呢?我的方法是,找出静止的部分和动态的部分,对于前者,只需显示一次;对于后者,不停刷新显示,并且尽量设置更多的静态部分。当然,这样一来,程序势必会变得麻烦一些,可以看到,在程序里,我设置了不下于10

展开阅读全文
相似文档                                   自信AI助手自信AI助手
猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 学术论文 > 毕业论文/毕业设计

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服