99精品伊人亚洲|最近国产中文炮友|九草在线视频支援|AV网站大全最新|美女黄片免费观看|国产精品资源视频|精彩无码视频一区|91大神在线后入|伊人终合在线播放|久草综合久久中文

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

多分支選擇結(jié)構(gòu)程序設(shè)計(jì)的思想與實(shí)現(xiàn)方法

AGk5_ZLG_zhiyua ? 來源:未知 ? 作者:佚名 ? 2017-09-14 14:14 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

周立功教授數(shù)年之心血之作《程序設(shè)計(jì)與數(shù)據(jù)結(jié)構(gòu)》以及《面向AMetal框架與接口編程(上)》。書本內(nèi)容公開后,在電子行業(yè)掀起一片學(xué)習(xí)熱潮。經(jīng)周立功教授授權(quán),本公眾號(hào)特對(duì)《程序設(shè)計(jì)與數(shù)據(jù)結(jié)構(gòu)》一書內(nèi)容進(jìn)行連載,愿共勉之。

第二章為程序設(shè)計(jì)技術(shù),本文為2.2.5 結(jié)構(gòu)體數(shù)組。

>>>2.2.5 結(jié)構(gòu)體數(shù)組

下面將以控制臺(tái)菜單選項(xiàng)為例,介紹多分支選擇結(jié)構(gòu)程序設(shè)計(jì)的思想與實(shí)現(xiàn)方法。一般來說,菜單欄至少包括新建文件、打開文件、保存文件和退出4項(xiàng)基本功能。比如:

如果使用函數(shù)指針,這4個(gè)函數(shù)的調(diào)用形式如下:

而新建文件、打開文件、保存文件和退出都可以作為字符串"新建文件"、"打開文件"、"保存文件"和"退出"存儲(chǔ)在char數(shù)組中。比如:

基于此,可以先聲明一個(gè)結(jié)構(gòu)體類型CmdEntry,其聲明如下:

接著定義一個(gè)結(jié)構(gòu)體數(shù)組作為函數(shù)表,分別用于存儲(chǔ)菜單函數(shù)的入口地址和菜單信息。其聲明如下:

在這里,將cmdArray聲明為一個(gè)內(nèi)含10個(gè)元素的數(shù)組,數(shù)組的每個(gè)元素都是一個(gè)CmdEntry類型的數(shù)組,因此cmdArray[0]是第一個(gè)CmdEntry類型的結(jié)構(gòu)體變量,cmdArray[1]是第2個(gè)CmdEntry類型的結(jié)構(gòu)體變量,以此類推。cmyArray是數(shù)組名,該數(shù)組中的每個(gè)元素都是CmdEntry類型的結(jié)構(gòu)體變量。

為了標(biāo)識(shí)結(jié)構(gòu)體數(shù)組中的成員,可以采用訪問單獨(dú)結(jié)構(gòu)體的規(guī)則:在結(jié)構(gòu)體名后面加一個(gè)點(diǎn)運(yùn)算符,再在點(diǎn)運(yùn)算符后面加上成員名。比如:

注意,數(shù)組下標(biāo)緊跟在cmyArray后面,不是成員名后面。比如:

使用cmdArray[2].cHelp的原因是:cmdArray[2]是結(jié)構(gòu)體變量名,正如cmdArray[1]是一個(gè)結(jié)構(gòu)體變量名。使用cmdArray[3].cHelp的原因是cmdArray[3]是結(jié)構(gòu)體變量名,如同cmdArray[0]是另一個(gè)變量名。由于數(shù)組變量名代表數(shù)組首元素的地址,因此下面兩個(gè)語句是等價(jià)的:

那么*pCmdEntry=cmdArray[0],因?yàn)?和*是一對(duì)逆運(yùn)算符,所以可以做以下替換:

由于.運(yùn)算符比*運(yùn)算符的優(yōu)先級(jí)高,因此必須使用圓括號(hào)。順帶提一下,下面的表達(dá)式代表什么?

這是cmdArray數(shù)組第1個(gè)結(jié)構(gòu)體變量(cmdArray[0]部分)中的第2個(gè)字符(cHelp[1]部分),這個(gè)字符為“建”。這個(gè)示例指出,點(diǎn)運(yùn)算符右側(cè)的下標(biāo)作用于各個(gè)成員,點(diǎn)運(yùn)算符左側(cè)的下標(biāo)作用于結(jié)構(gòu)體數(shù)組。最后總結(jié)一下:

根據(jù)上面的定義,即可用以下方式獲得相應(yīng)函數(shù)的入口地址。比如:

即pfuncmd函數(shù)指針指向CreateFile()函數(shù),其調(diào)用形式如下:

由此可見,采用回調(diào)函數(shù)動(dòng)態(tài)綁定的方式,程序的可擴(kuò)展性得到了很大的提升。只需在“<標(biāo)注>1”處添加自定義的函數(shù),無需多處修改代碼,不僅可以很好地解決程序的可擴(kuò)展性問題,而且還大大地降低程序的出錯(cuò)幾率,詳見程序清單2.26。

程序清單2.26 控制臺(tái)菜單選項(xiàng)程序

請(qǐng)用bubbleSort()算法完成這個(gè)練習(xí),將employeeArray結(jié)構(gòu)體數(shù)組分別按下列要求排序并輸出:(1)按id從小到大排序;(2)按weight、age、height從小到大排序,相同時(shí)按id從小到大排序;(3)bloodType按A、B、O、AB順序排序,相同時(shí)按id從小到大排序。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴

原文標(biāo)題:周立功:結(jié)構(gòu)體數(shù)組的應(yīng)用

文章出處:【微信號(hào):ZLG_zhiyuan,微信公眾號(hào):ZLG致遠(yuǎn)電子】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    選擇結(jié)構(gòu)程序設(shè)計(jì)

    選擇結(jié)構(gòu)程序設(shè)計(jì)要設(shè)計(jì)選擇結(jié)構(gòu)程序,要考慮兩個(gè)方面的問題:一是在C語言中如何來表示條件,二是在C
    發(fā)表于 03-10 15:06

    結(jié)構(gòu)化匯編語言的監(jiān)控程序設(shè)計(jì)思想

    微型計(jì)算機(jī)控制技術(shù)_第五章第5章 常用應(yīng)用程序設(shè)計(jì) 本章以51單片機(jī)為基礎(chǔ),主要介紹結(jié)構(gòu)化匯編語言的監(jiān)控程序設(shè)計(jì)思想和實(shí)時(shí)測(cè)控系統(tǒng)中最常用的數(shù)字濾波技術(shù)、標(biāo)度變換、插值算法以及報(bào)警
    發(fā)表于 09-10 06:50

    選擇結(jié)構(gòu)程序設(shè)計(jì)

    實(shí)驗(yàn)  選擇結(jié)構(gòu)程序設(shè)計(jì) 一、實(shí)驗(yàn)?zāi)康?1)掌握邏輯表達(dá)式的正確書寫形式。(2)學(xué)會(huì)單分支和雙分支
    發(fā)表于 09-23 19:27 ?2191次閱讀

    匯編語言學(xué)習(xí)課件_程序基本結(jié)構(gòu)及其程序設(shè)計(jì)

    第五章 程序基本結(jié)構(gòu)及其程序設(shè)計(jì) 5.1 順序結(jié)構(gòu)及簡(jiǎn)單程序設(shè)計(jì) 5.2 分支
    發(fā)表于 12-31 10:41 ?0次下載

    關(guān)于分支及循環(huán)結(jié)構(gòu)程序設(shè)計(jì)實(shí)驗(yàn)資料.ppt下載

    關(guān)于分支及循環(huán)結(jié)構(gòu)程序設(shè)計(jì)實(shí)驗(yàn)資料
    發(fā)表于 04-17 17:53 ?2次下載

    C語言教程之選擇結(jié)構(gòu)程序設(shè)計(jì)資料概述和設(shè)計(jì)實(shí)例免費(fèi)下載

    本文檔的主要內(nèi)容詳細(xì)介紹的是C語言教程之選擇結(jié)構(gòu)程序設(shè)計(jì)資料概述和設(shè)計(jì)實(shí)例免費(fèi)下載包括了:1.if條件分支結(jié)構(gòu)2.switch-case開關(guān)
    發(fā)表于 09-19 17:21 ?8次下載
    C語言教程之<b class='flag-5'>選擇</b><b class='flag-5'>結(jié)構(gòu)</b><b class='flag-5'>程序設(shè)計(jì)</b>資料概述和設(shè)計(jì)實(shí)例免費(fèi)下載

    C++語言程序設(shè)計(jì)時(shí)如何控制語句?

    本文檔的主要內(nèi)容詳細(xì)介紹的是C++語言程序設(shè)計(jì)時(shí)如何控制語句?內(nèi)容包括了1 C++語句概述2 if語句實(shí)現(xiàn)選擇結(jié)構(gòu)3 switch語句實(shí)現(xiàn)
    發(fā)表于 09-20 14:51 ?2次下載
    C++語言<b class='flag-5'>程序設(shè)計(jì)</b>時(shí)如何控制語句?

    Visual Basic教程之順序,選擇,循環(huán)結(jié)構(gòu)程序設(shè)計(jì)資料免費(fèi)下載

    本文檔的主要內(nèi)容詳細(xì)介紹的是Visual Basic的控制結(jié)構(gòu)包括了:順序結(jié)構(gòu)程序設(shè)計(jì),選擇結(jié)構(gòu)程序設(shè)計(jì)
    發(fā)表于 10-12 16:44 ?3次下載
    Visual Basic教程之順序,<b class='flag-5'>選擇</b>,循環(huán)<b class='flag-5'>結(jié)構(gòu)</b>的<b class='flag-5'>程序設(shè)計(jì)</b>資料免費(fèi)下載

    C語言程序設(shè)計(jì)實(shí)用教程之如何選擇結(jié)構(gòu)程序設(shè)計(jì)

    本文檔的主要內(nèi)容詳細(xì)介紹的是C語言程序設(shè)計(jì)實(shí)用教程之如何選擇結(jié)構(gòu)程序設(shè)計(jì):1 關(guān)系運(yùn)算符和關(guān)系表達(dá)式 2 邏輯運(yùn)算符邏輯表達(dá)式 3 if語句 4 switch語句 5
    發(fā)表于 10-31 18:04 ?6次下載
    C語言<b class='flag-5'>程序設(shè)計(jì)</b>實(shí)用教程之如何<b class='flag-5'>選擇</b><b class='flag-5'>結(jié)構(gòu)</b><b class='flag-5'>程序設(shè)計(jì)</b>

    C語言程序設(shè)計(jì)教程之分支結(jié)構(gòu)程序設(shè)計(jì)的課件免費(fèi)下載

    本文檔的主要內(nèi)容詳細(xì)介紹的是C語言程序設(shè)計(jì)教程之分支結(jié)構(gòu)程序設(shè)計(jì)的課件免費(fèi)下載。
    發(fā)表于 12-10 17:16 ?6次下載
    C語言<b class='flag-5'>程序設(shè)計(jì)</b>教程之<b class='flag-5'>分支</b><b class='flag-5'>結(jié)構(gòu)</b><b class='flag-5'>程序設(shè)計(jì)</b>的課件免費(fèi)下載

    C語言程序設(shè)計(jì)教程之選擇結(jié)構(gòu)程序設(shè)計(jì)的資料說明

    本文檔的主要內(nèi)容詳細(xì)介紹的是C語言程序設(shè)計(jì)教程之選擇結(jié)構(gòu)程序設(shè)計(jì)的資料說明。
    發(fā)表于 02-21 14:26 ?4次下載
    C語言<b class='flag-5'>程序設(shè)計(jì)</b>教程之<b class='flag-5'>選擇</b><b class='flag-5'>結(jié)構(gòu)</b><b class='flag-5'>程序設(shè)計(jì)</b>的資料說明

    C++程序設(shè)計(jì)教程之程序設(shè)計(jì)初步資料說明

    ,6. 關(guān)系運(yùn)算和邏輯運(yùn)算,7. 選擇結(jié)構(gòu)和IF語句,8. 條件運(yùn)算符和條件表達(dá)式,9. 多分支選擇結(jié)構(gòu)和switch語句,10. 編寫
    發(fā)表于 03-14 14:48 ?7次下載
    C++<b class='flag-5'>程序設(shè)計(jì)</b>教程之<b class='flag-5'>程序設(shè)計(jì)</b>初步資料說明

    C語言的switch case多分支選擇語句的詳細(xì)資料說明

    1、switch-case開關(guān)語句是一種多分支選擇語句,用來實(shí)現(xiàn)多方向條件分支。雖然采用if-else條件判斷語句也可以實(shí)現(xiàn)多方向條件
    發(fā)表于 07-12 17:39 ?1次下載
    C語言的switch case<b class='flag-5'>多分支</b><b class='flag-5'>選擇</b>語句的詳細(xì)資料說明

    C語言程序設(shè)計(jì)第四講結(jié)構(gòu)程序設(shè)計(jì)選擇

    C語言程序設(shè)計(jì)第四講結(jié)構(gòu)程序設(shè)計(jì)選擇
    發(fā)表于 12-22 10:34 ?0次下載

    C程序設(shè)計(jì)基礎(chǔ)-分支結(jié)構(gòu)

    分支結(jié)構(gòu)簡(jiǎn)單說就是條件,利用人為或者程序選擇運(yùn)行某一段程序,下面采用一個(gè)例子來描述這種結(jié)構(gòu)。
    的頭像 發(fā)表于 03-02 10:06 ?1126次閱讀
    C<b class='flag-5'>程序設(shè)計(jì)</b>基礎(chǔ)-<b class='flag-5'>分支</b><b class='flag-5'>結(jié)構(gòu)</b>