1 项目描述
本次项目是基于Qt Creator实现编程,通过交叉编译arm-linux-g++,生成能够在GEC6818arm开发板上运行的文件…利用链表存取账户信息(姓名,性别,卡号,余额,账号,密码),通过QT中的多种控件制作界面UI,实现一个可多用户登录,能够购买不同类别产品,信息查看,充值的一卡通贩卖机系统…
2 项目需求
- 实现多用户登录 (链表、lineEdit控件、pushButton按钮)
- 实现用户名字、余额、照片显示 (label控件、信号与槽)
- 实现一卡通充值 (spinBox控件、QMessageBox消息框、信号与槽、pushButton按钮)
- 实现个人详细资料查看 (链表、QMessageBox消息框、pushButton按钮)
- 实现用户之间余额比较 (链表、QMessageBox消息框、pushButton按钮)
- 实现不同类别多种商品显示 (comboBox控件、listWidget、lineEdit、信号与槽)
- 实现商品购买 (pushButton按钮、QMessageBox消息框、链表)
3 搭建环境
开发环境
linux
开发工具
arm-Linux-g++、QT
编程实现
通过QT Create软件创建项目编写代码和绘制UI界面,利用arm-linux-g++交叉编译,再通过LINUX平台的SSH服务器将编译生成的程序文件传输到GEC6816开发板中,最后执行。
4 技术描述
- C++
- QT各种控件的使用
- QT界面UI的设计
- 链表
5 概要设计
整体项目框架设计图如下:
UI界面:
登录界面:
购买界面:
充值界面:
6 登录界面
实现思路
用户通过连接键盘外设,在文本框中输入的账号密码与链表保存的账号去对比,若输入的账号和密码与链表中用户的同时匹配,则登录成功进入购物界面,失败则提示用户,重新输入。
实体效果
账号、密码输入错误:登录失败
账号、密码输入正确:登陆成功
部分代码:
链表部分:
#include <iostream>
#include <cstring>
using namespace std;
struct node{ //节点类
string name;//名字
string num;//学号
string sex;//性别
int money;//余额
string account;//账号
string password;//密码
node *next;
node *prev;
};
class mylist
{
public:
node *head;//指向头结点
node *tail;//指向尾节点
int len;//链表长度
public:
mylist();//构造函数
mylist(const mylist &l);//拷贝函数
~mylist();//析构函数
void addNode( string name,string num, string sex,int money, string account, string password);//往尾部添加元素
void upSort();//升序排序
void findNode(int n);//查找某个节点
void delNode(int n);//删除某个节点
void showNode();//输出所有节点数据
int seek_account(string tmp_account,string tmp_pwd);//查找账号密码
node* max_compare();//查找最大余额者
node* min_compare();//查找最大余额者
};
#endif // MyLIST_H
登录按钮:
void Widget::on_pushButton_clicked()
{
//获取用户输入的账号密码
QString tmp_account=ui->lineEdit_zh->text();
QString tmp_pwd=ui->lineEdit_mm->text();
//类型转换
string account= tmp_account.toStdString();
string pwd= tmp_pwd.toStdString();
//登录成功
if(card.seek_account(account,pwd))
{
QMessageBox::information(this,"提醒",tr("登录成功"));
//隐藏界面
//this