久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 4126|回復: 4
打印 上一主題 下一主題
收起左側

求一份LCD菜單的設計(代碼和結果圖)

[復制鏈接]
跳轉到指定樓層
樓主
ID:160171 發表于 2017-4-21 16:03 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
12黑幣
留個QQ給我

最佳答案

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:61002 發表于 2017-4-21 16:03 | 只看該作者
QQ753388438
回復

使用道具 舉報

板凳
ID:160513 發表于 2017-4-21 16:18 | 只看該作者
這個真沒有
回復

使用道具 舉報

地板
ID:61002 發表于 2017-4-21 16:22 | 只看該作者
http://blog.csdn.net/longbiao831/article/details/40918587
你可以試試這個,我用著挺好的
回復

使用道具 舉報

5#
ID:61002 發表于 2017-4-21 16:23 | 只看該作者
  1. #include <stdio.h>  
  2. #include <string.h>  
  3.   
  4. #define Null 0  
  5. char over=0; //結束標志  
  6.   
  7. //結構體類型定義   
  8. struct MenuItem      
  9. {   
  10.     char MenuCount; //結構體數組的元素個數   
  11.     char *DisplayString;  //當前LCD顯示的信息   
  12.     void (*Subs)();  //執行的函數的指針.   
  13.     struct MenuItem *Childrenms;  //指向子節點的指針   
  14.     struct MenuItem *Parentms;  //指向父節點的指針   
  15. };   
  16.   
  17. //函數聲明   
  18. void Nop(void);   
  19. void DoSomething(struct MenuItem *manyou);   
  20. void GameOver(void);   
  21. void Locate(struct MenuItem *manyou);   
  22. void Run(struct MenuItem *manyou);  
  23.   
  24. //====================================   
  25. //結構體聲明   
  26. struct MenuItem m0_main[4];   
  27. struct MenuItem m1_file[5];   
  28. struct MenuItem m1_edit[4];   
  29. struct MenuItem m1_view[2];   
  30. struct MenuItem m2_font[3];   
  31. struct MenuItem m1_help[3];  
  32.   
  33. //====================================   
  34. //結構體實現   
  35. struct MenuItem m0_main[4]=   
  36. {   
  37.     {4,"file",Nop,m1_file,Null},   
  38.     {4,"edit",Nop,m1_edit,Null},   
  39.     {4,"view",Nop,m1_view,Null},   
  40.     {4,"help",Nop,m1_help,Null},   
  41. };  
  42.   
  43. struct MenuItem m1_file[5]=   
  44. {   
  45.     {5,"open",DoSomething,Null,m0_main},   
  46.     {5,"save",DoSomething,Null,m0_main},   
  47.     {5,"save as",DoSomething,Null,m0_main},   
  48.     {5,"print",DoSomething,Null,m0_main},   
  49.     {5,"exit",GameOver,Null,m0_main},   
  50. };  
  51.   
  52. struct MenuItem m1_edit[4]=   
  53. {   
  54.     {4,"undo",DoSomething,Null,m0_main},   
  55.     {4,"redo",DoSomething,Null,m0_main},   
  56.     {4,"copy",DoSomething,Null,m0_main},   
  57.     {4,"paste",DoSomething,Null,m0_main},   
  58. };  
  59.   
  60. struct MenuItem m1_view[2]=   
  61. {   
  62.     {2,"font",Nop,m2_font,m0_main},   
  63.     {2,"color",DoSomething,Null,m0_main},   
  64. };  
  65.   
  66. struct MenuItem m2_font[3]=   
  67. {   
  68.     {3,"songti",DoSomething,Null,m1_view},   
  69.     {3,"heiti",DoSomething,Null,m1_view},   
  70.     {3,"youyuan",DoSomething,Null,m1_view},   
  71. };  
  72.   
  73. struct MenuItem m1_help[3]=   
  74. {   
  75.     {3,"index",DoSomething,Null,m0_main},   
  76.     {3,"online",DoSomething,Null,m0_main},   
  77.     {3,"about",DoSomething,Null,m0_main},   
  78. };  
  79.   
  80. //====================================   
  81. //函數實現   
  82. void Locate(struct MenuItem *manyou)   
  83. {   
  84.     printf("Now we at %s\n" ,manyou->DisplayString);   
  85. }  
  86.   
  87. void Run(struct MenuItem *manyou)   
  88. {   
  89.     (*(manyou->Subs))(manyou);   
  90. }  
  91.   
  92. void Nop(void)   
  93. {}  
  94.   
  95. void DoSomething(struct MenuItem *manyou)   
  96. {   
  97.     printf("we have done %s\n" ,manyou->DisplayString);   
  98. }  
  99.   
  100. void GameOver(void)   
  101. {   
  102.     over=1;   
  103.     printf("Now Game is Over ");   
  104.     getchar();   
  105. }  
  106.   
  107. //====================================   
  108. //主函數   
  109. int main(int argc, char *argv[])   
  110. {   
  111.     char charin; //輸入的字符   
  112.     char menuid[3]={0,0,0}; //某一級的菜單的偏移量的記錄數組   
  113.     char i=0; //上面數組的下標值  
  114.   
  115.     struct MenuItem *manyou; //漫游,在菜單中漫游  
  116.   
  117.     manyou=&m0_main[0]; //開始的位置   
  118.     Locate(manyou); //輸出  
  119.   
  120.     while (!over) //如果還沒完   
  121.     {   
  122.         charin=getchar(); //讀取鍵盤字符   
  123.         switch (charin) //根據字符跳轉   
  124.         {   
  125.         case '0': //到同級菜單的后一項   
  126.             {   
  127.                 menuid[i]++;   
  128.                 if (menuid[i]>manyou->MenuCount-1) menuid[i]=0;//可以看到MenuCount項是必要的   
  129.                 Locate(manyou+menuid[i]);   
  130.                 break;   
  131.             }   
  132.         case '1': //到同級菜單的前一項   
  133.             {   
  134.                 if (menuid[i]==0) menuid[i]=manyou->MenuCount-1;//可以看到MenuCount項是必要的   
  135.                 else menuid[i]--;   
  136.                 Locate(manyou+menuid[i]);   
  137.                 break;   
  138.             }   
  139.         case '+': //到下一級菜單,無下級時執行某功能   
  140.             {   
  141.                 if ((manyou+menuid[i])->Childrenms !=Null)   
  142.                 {   
  143.                     manyou=(manyou+menuid[i])->Childrenms;   
  144.                     i++;   
  145.                     menuid[i]=0;   
  146.                     Locate(manyou+menuid[i]);   
  147.                 }   
  148.                 else   
  149.                 {   
  150.                     Run(manyou+menuid[i]);   
  151.                 }   
  152.                 break;   
  153.             }   
  154.         case '-': //到上一級菜單,無上級時給出些提示   
  155.             {   
  156.                 if ((manyou+menuid[i])->Parentms !=Null)   
  157.                 {   
  158.                     manyou=(manyou+menuid[i])->Parentms;   
  159.                     i--;   
  160.                     Locate(manyou+menuid[i]);   
  161.                 }   
  162.                 else   
  163.                 {   
  164.                     printf("You are at the top of menu");   
  165.                 }   
  166.                 break;   
  167.             }   
  168.         default:  break;   
  169.         }   
  170.     }   
  171.     return 0;   
  172. }
復制代碼
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国产综合网址 | av午夜激情 | 蜜臀网| 日韩综合在线播放 | 日本国产精品视频 | 精品日韩在线 | 一二三四在线视频观看社区 | 成人在线视频网站 | xx性欧美肥妇精品久久久久久 | 久久久精选| 亚洲午夜精品一区二区三区 | 国产一区视频在线 | 观看av| 欧美一区二区在线观看视频 | 亚洲视频免费观看 | 成人午夜在线 | 久热免费 | 亚洲国产网址 | 精品久久久久久久久久久久久久 | 亚洲成人一级 | 在线观看中文字幕视频 | 欧美久久一级特黄毛片 | 欧美最猛黑人xxxⅹ 粉嫩一区二区三区四区公司1 | 黄色片免费在线观看 | 成人精品网 | 夜夜精品浪潮av一区二区三区 | 欧美一级在线 | 在线资源视频 | 亚洲精品不卡 | 黄色片a级 | 一区二区在线 | 亚洲精品一区在线 | 亚洲成人日韩 | 亚洲综合天堂 | 久久久久久一区 | 久久99精品久久久久婷婷 | 国产日韩欧美一区 | 久久91精品国产一区二区三区 | 91精品国产日韩91久久久久久 | 免费的av网站 | 一区二区在线看 |