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 &