[linux]基于C语言的自动售货机系统

1 项目描述

本次项目是基于Linux环境的交叉编译arm-linux-gcc,在GEC6818arm开发板上运行,运用C语言的相关知识利用链表存储商品信息和购物车功能,用户通过触摸屏点击事件选择和购买商品。

2 项目需求

项目需求

3 搭建环境

开发环境:
Linux
开发工具:
arm-linux-gcc、Notepad++
其他工具:
font库
编程实现:
通过开源代码编译器notepad++编写代码,利用arm-linux-gcc交叉编译,再通过LINUX平台的SSH服务器将编译生成的程序文件传输到开发板中,最后执行。

4 技术描述

  • C语言
  • font库的使用
  • 触摸屏
  • 双向循环链表
  • 文件IO

5 概要设计

整体项目框架设计图如下:
概要设计

6 主界面

实现思路:
创建链表存取所有商品信息(商品名称,数量,价格),利用触摸屏事件,先确定商品页,再判断每件商品所在坐标。当用户点击商品坐标时,判断出该坐标为第几页第几个商品再切换界面显示商品信息。或者点击购物车,进入购物车界面。
实体效果:
界面一
界面一

具体部分代码:

while(1)
	{
		//显示主界面一
		printf("\n");
		show_pohoto("yinliao.bmp");		
		tmp_x=0;
		tmp_y=0;
		
       page=yinliao_list(fd,head,head2);//判断用户点击的是第几页的第几个商品,返回页数。(全局变量X,Y保存用户点击的坐标)

       printf("页数=%d\n",page);

	     while(1)
	   {
	           tmp_x=x,tmp_y=y;
			   printf("x=%d y=%d\n",tmp_x,tmp_y);//打印x,y的坐标
			 
			 if(page==1)//显示点击的商品
			 {
				 if(tmp_y>60 &&tmp_y<200 &&tmp_x>80 &&tmp_x<170)//显示第一页第一商品
				 {				            	
                        tmp=seek_pos(head,1);//获取节点						
		                sprintf(buff,"//shangping/%s",tmp->pic_name);//拼接路径		 
						show_pohoto(buff);//显示第一个商品
                        show_num(tmp->num);//字库显示该商品数量				
                        add_shoppingcar(head,head2,tmp,tmp_x,tmp_y,fd,xy);//加入购物车链表	 
						break;												
				 }
				
				else if(tmp_y>60 &&tmp_y<200 && tmp_x>300 &
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值