组合按键的软件设计(c语言)

需求:
  根据用户的四个按键的(上下左右)显示对应的内容,左右键切换显示项目名称,上下键切换切换该项目的具体信息条目。另外有一个无符号整型变量上的每一位用于控制项目的显示与否,该位为1则显示对应项目,反之则不显示该项目。

  组合按键采用面向对象的思想,加上数据结构中的双向链表,这样的组合按键需求十分容易实现。

  下面是对上述需求的模型化:
  Linux终端用于显示,键盘上的w、s、a、d键和箭头符号分别表示上下左右按键。左右按键用于切换显示附近的银行名称,上下键用于切换显示该银行的具体信息,如地址、当前排队人数等。另外show_ctl变量对应的位用于控制对应的银行是否显示。

  编码如下:

#include <stdio.h>

#define KEY_UP      192
#define KEY_DOWN    193
#define KEY_LEFT    195
#define KEY_RIGHT   194

//封装显示结构体
typedef void (*SHOW_FUN)(void);
typedef struct _tag_bank
{
    struct _tag_bank* pre;
    struct _tag_bank* next;
    SHOW_FUN    showFunc[10];
    size_t      subScrMaxIndex;
    size_t      subScrIndex;
}bankItem_t;

bankItem_t *current_bankItem = NULL;

void agricultural_bank_func1() { printf("------------ 中国农业银行 ------------ \n");}
void agricultural_bank_func2(){ printf("1. 地址: xx街道xxx号\n");}
void agricultural_bank_func3(){ printf("2. 当前排队人数: 5人\n"); }
void agricultural_bank_func4() { printf("3. 上班时间: 9:30 ~ 17:30\n"); } 

void icbc_bank_func1() { printf("-------------- 工商银行 --------------\n"); }
void icbc_bank_func2() { printf("1. 地址: yy街道yyy号\n"<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值