色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

C語言設計學習,教你如何將LCD菜單對象化

Linux閱碼場 ? 來源:未知 ? 作者:佚名 ? 2017-11-17 06:11 ? 次閱讀

這是我十三年前讀研究生的時候寫的系列文章《C語言嵌入式系統編程修煉》系列文章中的一小節,是一個用面向對象,把LCD上面菜單,對象化的例子。該文章原始出處:

http://soft.yesky.com/lesson/188/2023188.shtml

菜單操作無數人為之絞盡腦汁的問題終于出現了,在這一節里,我們將看到,在C語言中哪怕用到一丁點的面向對象思想,軟件結構將會有何等的改觀!筆者曾經是個笨蛋,被菜單搞暈了,給出這樣的一個系統:

要求以鍵盤上的"← →"鍵切換菜單焦點,當用戶在焦點處于某菜單時,若敲擊鍵盤上的OK、CANCEL鍵則調用該焦點菜單對應之處理函數。我曾經傻傻地這樣做著:

/* 按下OK鍵 */void onOkKey(){/* 判斷在什么焦點菜單上按下Ok鍵,調用相應處理函數 */Switch(currentFocus){case MENU1:menu1OnOk();break;case MENU2:menu2OnOk();break;…}}/* 按下Cancel鍵 */void onCancelKey(){/* 判斷在什么焦點菜單上按下Cancel鍵,調用相應處理函數 */Switch(currentFocus){case MENU1:menu1OnCancel();break;case MENU2:menu2OnCancel();break;…}}

終于有一天,我這樣做了:

/* 將菜單的屬性和操作"封裝"在一起 */typedef struct tagSysMenu{char *text; /* 菜單的文本 */BYTE xPos; /* 菜單在LCD上的x坐標 */BYTE yPos; /* 菜單在LCD上的y坐標 */void (*onOkFun)(); /* 在該菜單上按下ok鍵的處理函數指針 */void (*onCancelFun)(); /* 在該菜單上按下cancel鍵的處理函數指針 */}SysMenu, *LPSysMenu;

當我定義菜單時,只需要這樣:

static SysMenu menu[MENU_NUM] ={{"menu1", 0, 48, menu1OnOk, menu1OnCancel},{" menu2", 7, 48, menu2OnOk, menu2OnCancel},{" menu3", 7, 48, menu3OnOk, menu3OnCancel},{" menu4", 7, 48, menu4OnOk, menu4OnCancel}…};

OK鍵和CANCEL鍵的處理變成:

/* 按下OK鍵 */void onOkKey(){menu[currentFocusMenu].onOkFun();}/* 按下Cancel鍵 */void onCancelKey(){menu[currentFocusMenu].onCancelFun();}

程序被大大簡化了,也開始具有很好的可擴展性!我們僅僅利用了面向對象中的封裝思想,就讓程序結構清晰,其結果是幾乎可以在無需修改程序的情況下在系統中添加更多的菜單,而系統的按鍵處理函數保持不變。
面向對象,真神了!


聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • C語言
    +關注

    關注

    180

    文章

    7618

    瀏覽量

    138664
  • LCD菜單
    +關注

    關注

    0

    文章

    2

    瀏覽量

    6365

原文標題:C語言對象化設計的實例——LCD菜單

文章出處:【微信號:LinuxDev,微信公眾號:Linux閱碼場】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    C語言lcd上創建菜單對象實例分享

    這是我十三年前讀研究生的時候寫的系列文章《C語言嵌入式系統編程修煉》系列文章中的一小節,是一個用面向對象,把LCD上面菜單
    的頭像 發表于 11-14 05:23 ?6248次閱讀

    如何將LCD與STM32F103C8T6 STM32開發板連接并編程

    在本教程中,我們學習如何將16×2 LCD顯示器與STM32F103C8T6 STM32開發板連接,并使用Arduino IDE對其進行編
    的頭像 發表于 11-09 16:18 ?1.4w次閱讀
    <b class='flag-5'>如何將</b><b class='flag-5'>LCD</b>與STM32F103<b class='flag-5'>C</b>8T6 STM32開發板連接并編程

    如何將柔性傳感器與樹莓派連接并在LCD屏幕上顯示其值

    在這個項目中,我們學習如何將柔性傳感器與樹莓派連接并在LCD屏幕上顯示其值。
    的頭像 發表于 12-31 09:33 ?4119次閱讀
    <b class='flag-5'>如何將</b>柔性傳感器與樹莓派連接并在<b class='flag-5'>LCD</b>屏幕上顯示其值

    求教如何將Labview的程序轉換為C語言

    求教如何將Labview的程序轉換為C語言啊,申請軟件著作權要用
    發表于 12-24 13:04

    單片機c語言下如何實現lcd多級菜單

    萌新求助,關于單片機c語言lcd多級菜單的一種實現方法
    發表于 10-15 06:36

    怎樣用C語言去實現LCD多級菜單

    LCD菜單實現的功能有哪些?怎樣用C語言去實現LCD多級菜單呢?
    發表于 10-19 08:13

    嵌入式編程中C語言的模塊和模擬面向對象的相關資料推薦

    模塊嵌入式編程中需要對程序進行模塊劃分的"劃"是規劃的意思,意指怎樣合理的一個很大的軟件劃分為一系列功能獨立的部分合作完成系統的需求。C語言作為一種結構
    發表于 12-15 08:51

    單片機C語言LCD菜單的方法實現

    由于C語言的結構性和模塊,采用C語言編寫的程序容易閱讀和維護,還有很好的可移植性。本文介紹一種用C
    發表于 03-14 11:32 ?400次下載

    單片機C語言LCD菜單的實現

    介紹了在C 語言環境下,在LCD 液晶顯示屏上實現多級嵌套菜單的一種簡便方法,提出了一個結構緊湊、實用的程序模型。
    發表于 09-28 13:57 ?556次下載

    使用C語言實現LCD多級菜單的方法資料和程序免費下載

    由于C 語言的結構性和模塊,采用C 語言編寫的程序容易閱讀和維護,還有很好的可移植性。本文介紹一種用C
    發表于 08-06 17:33 ?20次下載
    使用<b class='flag-5'>C</b><b class='flag-5'>語言</b>實現<b class='flag-5'>LCD</b>多級<b class='flag-5'>菜單</b>的方法資料和程序免費下載

    如何使用單片機C語言實現LCD的多級菜單

    介紹了在C 語言環境下,在LCD 液晶顯示屏上實現多級嵌套菜單的一種簡便方法,提出了一個結構緊湊、實用的程序模型。
    發表于 12-04 17:15 ?35次下載
    如何使用單片機<b class='flag-5'>C</b><b class='flag-5'>語言</b>實現<b class='flag-5'>LCD</b>的多級<b class='flag-5'>菜單</b>

    談談如何將機器學習引入自動

    今天,筆者嘗試通過一個一般性方法的介紹來談談如何將機器學習引入自動,同時對機器學習的相關概念做一個梳理。
    的頭像 發表于 10-09 15:55 ?2431次閱讀

    為什么要用C語言實現面向對象

    對象的編程語言,但面向對象的概念是在C語言階段就有了,而且應用到了很多地方,比如某些操作系統內核、通信協議等。 面向
    的頭像 發表于 11-05 18:05 ?1800次閱讀
    為什么要用<b class='flag-5'>C</b><b class='flag-5'>語言</b>實現面向<b class='flag-5'>對象</b>

    C語言是如何實現面向對象

    C++是 面向對象 的編程語言,但面向對象的概念是在C語言階段就有了,而且應用到了很多地方,比
    的頭像 發表于 12-24 17:08 ?2w次閱讀
    <b class='flag-5'>C</b><b class='flag-5'>語言</b>是如何實現面向<b class='flag-5'>對象</b>的

    基于單片機及C語言LCD多級菜單

    介紹了在C 語言環境下,在LCD 液晶顯示屏上實現多級嵌套菜單的一種簡便方法,提出了一個結構緊湊、實用的程序模型。
    發表于 05-24 11:00 ?64次下載
    主站蜘蛛池模板: 云南14学生真实初次破初视频 | 欧美xxxav| 日本美女毛茸茸 | 色婷婷国产精品视频一区二区 | 永久免费看mv网站入口 | MD传媒MD0021在线观看 | 精品视频一区二区三三区四区 | 5G年龄确认我已满18免费 | 久久精品国产视频澳门 | 午夜国产一区在线观看 | 伦理 电影在线观看百度影音 | 色婷婷五月综合久久中文字幕 | 99国产精品久久久久久久日本竹 | 久久ZYZ资源站无码中文动漫 | youjizz护士 | 高清一区二区亚洲欧美日韩 | 成人在线视频网站 | 超级最爽的乱淫片免费 | 果冻传媒2021在线观看 | 女性BBWBBWBBWBBW | 婷婷亚洲AV色香蕉蜜桃 | 亚洲国产精品特色大片观看 | 一区二区三区无码高清视频 | 欧美MV日韩MV国产网站 | 我们中文在线观看免费完整版 | 亚洲嫩草AV永久无码精品无码 | 在线观看国产高清免费不卡 | 99热久久精品国产一区二区 | 叮当成人社区 | 99久久久免费精品国产 | 国产麻豆精品人妻无码A片 国产麻豆精品久久一二三 国产麻豆精品传媒AV国产在线 | 欧美性猛交xxxxxxxx软件 | 一本色道久久综合亚洲精品 | 亚洲精品喷白浆在线观看 | 99亚洲精品自拍AV成人软件 | 久久精品黄AA片一区二区三区 | 极品少妇高潮啪啪无码吴梦 | 热热久久这里只有精品 | qvod电影网| 国精产品一区一区三区有 | 欧美一区二区三区免费播放 |