亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? 教學--第十四章 程序的文件結構.htm

?? 《白話c++網頁版》是一本用淺顯易懂的并具有點幽默的語調來講述c++的高深的內容
?? HTM
?? 第 1 頁 / 共 4 頁
字號:
      <P>... ...</P>
      <P>int main(int argc, char* argv[])
      <P>{
      <P>&nbsp;&nbsp; char ch;
      <P>&nbsp;&nbsp; int count; //求總和或平均值時,需要輸入的成績個數
      <P>
      <P> 
      <P>&nbsp;&nbsp; do
      <P>&nbsp;&nbsp; {
      <P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cout &lt;&lt; "1)求總和" &lt;&lt; endl;
      <P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cout &lt;&lt; "2)求平均" &lt;&lt; endl;
      <P>&nbsp;&nbsp;&nbsp;&nbsp; 
      <P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cout &lt;&lt; "請選擇(1 或 2)";
      <P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cin &gt;&gt; ch;
      <P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
      <P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //輸入有誤,重輸:
      <P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if(ch != '1' &amp;&amp; ch != '2')
      <P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {
      <P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cout &lt;&lt; 
      "輸入有誤,請重新輸入!" &lt;&lt; endl;
      <P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; continue;
      <P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }
      <P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
      <P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cout &lt;&lt; "請輸入個數:";
      <P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cin &gt;&gt; count;
      <P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
      <P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //根據用戶的選擇,調用不同函數:
      <P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; switch(ch)
      <P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {
      <P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; case '1' :
      <P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
      CalcTotal(count); <FONT color=#ff0000>//需要調用的函數之一</FONT>
      <P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
      break;
      <P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; case '2' :
      <P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
      CalcAverage(count); <FONT color=#ff0000>//需要調用的函數之一</FONT>
      <P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
      break;
      <P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }
      <P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
      <P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //是否繼續:
      <P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cout &lt;&lt; "是否繼續?(y/n)";
      <P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cin &gt;&gt; ch;
      <P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
      <P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //確保轉換為大寫:
      <P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ch = ToUpper(ch); <FONT 
      color=#ff0000>//需要調用的函數之一</FONT>
      <P>&nbsp;&nbsp; }
      <P>&nbsp;&nbsp; while(ch == 'Y');
      <P>&nbsp;&nbsp; 
      <P>&nbsp;&nbsp; return 0;
      <P>}
      <P> </P>
      <P>代碼中,紅色部分的注釋表明,主函數main()需要調用到三個自定義函數。但現在我們一個也沒有定義。和往常把所有的函數定義在同一個代碼文件中不同,今天我們需要把它們分開到不同的代碼文件。</P>
      <P> </P>
      <P><B>第二個文件:mainfunc.cpp</B> 存放和計算有關的兩個過程(函數)。</P>
      <P>先看:CalcTotal()和CalcAverage()。這兩個函數我們將在mainfunc.cpp文件內定義。你可能又忘了“定義”這個術語?呵,就是“實現”,更白點,就是在mainfunc.cpp文件內“寫”這兩個函數。</P>
      <P> </P>
      <P>下面是mainfunc.cpp的內容。在我們輸入以下代碼時,mainfunc.cpp已經有了一些必要的內容,下面的代碼,除了“#include 
      ..”一行在文件最首外,其它均在原有內容之后添加。</P>
      <P> </P>
      <P>#include &lt;iostream.h&gt; //在文件最首行</P>
      <P>... ...</P>
      <P>//---------------------------------------------------------------------------
      <P>//求總和的過程
      <P>//參數:n 用戶需要輸入的個數
      <P>void CalcTotal(int n)
      <P>{
      <P>&nbsp;&nbsp; int num;
      <P>&nbsp;&nbsp; int sum = 0;
      <P>&nbsp;&nbsp; 
      <P>&nbsp;&nbsp; for(int i=0;i&lt;n;i++)
      <P>&nbsp;&nbsp; {
      <P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cout &lt;&lt; "請輸入第" &lt;&lt; i+1 
      &lt;&lt;"個整數:";
      <P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cin &gt;&gt; num;
      <P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
      <P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sum += num;
      <P>&nbsp;&nbsp; }
      <P>&nbsp;&nbsp; 
      <P>&nbsp;&nbsp; cout &lt;&lt; "總和為:" &lt;&lt; sum &lt;&lt; endl;
      <P>}
      <P>//---------------------------------------------------------------------------
      <P>//求平均值的過程
      <P>//參數:n 用戶需要輸入的個數
      <P>void CalcAverage(int n)
      <P>{
      <P>&nbsp;&nbsp; int num;
      <P>&nbsp;&nbsp; int sum = 0;
      <P>&nbsp;&nbsp; float ave;
      <P>
      <P>&nbsp;&nbsp; for(int i=0;i&lt;n;i++)
      <P>&nbsp;&nbsp; {
      <P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cout &lt;&lt; "請輸入第" &lt;&lt; i+1 
      &lt;&lt;"個整數:";
      <P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cin &gt;&gt; num;
      <P>&nbsp;&nbsp; 
      <P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sum += num;
      <P>&nbsp;&nbsp; }
      <P>
      <P>&nbsp;&nbsp; //注意不要除0出錯:
      <P>&nbsp;&nbsp; if( n &gt;=0 )
      <P>&nbsp;&nbsp; {
      <P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ave = (float)sum / n;
      <P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cout &lt;&lt; "平均值:" &lt;&lt; ave 
      &lt;&lt; endl;
      <P>&nbsp;&nbsp; }
      <P>&nbsp;&nbsp; else
      <P>&nbsp;&nbsp; {
      <P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cout &lt;&lt; "個數為0,不能求平均。" &lt;&lt; 
      endl;
      <P>&nbsp;&nbsp; }
      <P>}
      <P>//---------------------------------------------------------------------------
      <P> 
      <P><B>第三個文件:assifunc.cpp</B> 用以存放輔助作用的函數,現在只有一個。
      <P>現在還差一個函數:ToUpper()。這個函數用來將用戶輸入的某個小寫字母轉換為大寫。當然,如果用戶輸入的不是小寫字母,那就不用轉換。和上面的兩個函數不同,它需要返回值。
      <P>我們把ToUpper()函數單獨放在assifunc.cpp里。同樣,下面的代碼加在該文件中原有的代碼之后。不過本文件不需要include 
      &lt;iostream.h&gt; ,因為沒有用到 cin,cout等。
      <P> 
      <P>//小寫字母轉換為大寫 </P>
      <P>//參數: c 待轉換的字符 </P>
      <P>//返回值: 轉換后的字符,如果原字符不是小寫字母,則為原字符</P>
      <P>char ToUpper(char c) </P>
      <P>{ </P>
      <P>&nbsp;&nbsp; int ca = 'A' - 'a'; //大寫字母和小寫字母之間差距多少?<BR><BR></P>
      <P>&nbsp;&nbsp; if(c &gt;= 'a' &amp;&amp; c &lt;= 'z') </P>
      <P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; c += ca;<BR> </P>
      <P>&nbsp;&nbsp; return c; </P>
      <P>}</P>
      <P> 
      <P>至此,所有自定義函數都已完成<B>定義</B>(實現),而三個文件的主要內容也以確定。讓我們看看示意圖:
      <P> 
      <P><IMG src="教學--第十四章 程序的文件結構.files/ls14.h4.gif" border=0></P>
      <P> </P>
      <P>main.cpp中的main()函數調用了三個函數。回憶我們學習過的“如何調用函數”的知識,當前代碼在調用一個函數時,必須能“看到”這個函數。盡管CalcTotal()、CalcAverage()、ToUpper()三個函數所在文件都在同一工程里,但是在main.cpp里的代碼,還是看不到它們。想一想我們以前說的“請修理工”的比喻。現在情況是:在你所住的小區,甚至就是同一樓道里,就有一個電視修理工,但可惜你們互不認識,所以當你電視壞了,想“調用”一個修理工時,你還是找不到修理工。哎!要是有它的名片就好了。</P>
      <P>讓我們試試看,按Ctrl + F9,編輯該工程。出錯!</P>
      <P><IMG src="教學--第十四章 程序的文件結構.files/ls14.h5.gif" border=0></P>
      <P>正好是三個錯。分別告訴我們調用了三個沒有定義的函數(Call to undefined function ...)。</P>
      <P> </P>
      <P>(如果你出現的是一堆錯,那有可能是你沒有在前兩個文件內最首行寫:</P>
      <P>“#include &lt;iostream.h&gt;”</P>
      <P>或者是你有些代碼輸入有誤。)</P>
      <P> </P>
      <P>如何消除這三個錯?兩種方法。</P>
      <P>第一種方法就是以前我們在講“如何調用函數”的時候所說的,直接在調用直接聲明要調用的函數。這里寫出代碼,算做是一次復習,然后我們將講該方法不好之處。</P>
      <P> </P>
      <P>在 main.cpp 的 main()函數之前加入如下三行函數聲明:</P>
      <P> </P>
      <P><B>void CalcTotal(int n);</B></P>
      <P><B>void CalcAverage(int n);</B></P>
      <P><B>char ToUpper(char c);</B></P>
      <P> </P>
      <P>int main(int argc, char* argv[])</P>
      <P>{</P>
      <P>&nbsp;&nbsp; ... ...</P>
      <P>}</P>
      <P> </P>
      <P>(上例中,盡管你可以將三行函數聲明寫在 main()函數體內,但不建議這樣做)。</P>
      <P> </P>
      <P>如果你一切輸入正確的話,現在按Ctrl + F9 或 F9將可以完成編譯或運行。</P>
      <P>對于現在這個工程,這種方法確實也不能指責它有何不利之處。問題在于,如果我們還有其它文件中代碼需要調用到這三個函數,我們就不得不在其它文件中也一一寫上這三行聲明。所以另一種方法是:把源文件中需要對外“共享”的函數聲明統一寫到某個頭文件,然后凡是需要用到的其它文件,直接使用“#include"語句來包含該頭文件,從而獲得這些函數聲明。</P>
      <P> </P>
      <H3><A name=14.3>14.3</A> 如何寫頭文件</H3>
      <P> </P>
      <P>在CB中,如果你通過上小節的方法新建個單元文件,那么CB將自動同時生成源文件和頭文件。其實在CB里,源文件和頭文件合稱為單元文件,它們有相同的文件名,而擴展名一者為.cpp,另一為.h。</P>
      <P> </P>
      <H4><A name=14.3.1>14.3.1</A> 在頭文件內加入函數聲明</H4>
      <P> </P>
      <P><B>頭文件:mainfunc.h</B></P>
      <P>CalcTotal()和CalcAverage()函數定義在 
      mainfunc.cpp文件里,所以它們的聲明最好寫在對應的頭文件mainfunc.h內。</P>
      <P>下面我們就來看如何在頭文件mainfunc.h 內增加函數聲明。</P>
      <P>一開始,頭文件內有以下這些代碼。另外,我增加了一行用于標明我們新加的代碼應寫在哪里。</P>
      <P>//---------------------------------------------------------------------------<BR><BR></P>
      <P>#ifndef mainfuncH </P>
      <P>#define mainfuncH </P>
      <P>//--------------------------------------------------------------------------- 
      </P>
      <P><FONT color=#ff0000>/* !!!頭文件中,我們新增的代碼必須寫在此處!!!&nbsp; */</FONT></P>

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日日嗨av一区二区三区四区| 99久久伊人网影院| 欧美三级电影在线看| 亚洲综合图片区| 欧美三级欧美一级| 亚洲v中文字幕| 日韩精品一区在线观看| 国产真实乱对白精彩久久| 久久午夜电影网| 成人三级伦理片| 亚洲狠狠丁香婷婷综合久久久| 在线精品视频免费播放| 国产成人在线影院 | www.欧美.com| 国产精品传媒视频| 欧美日本乱大交xxxxx| 蜜桃视频免费观看一区| 久久久久国产精品厨房| 色综合久久中文综合久久97| 日韩国产精品久久久| 久久久久久久久久久久久女国产乱| 成人性生交大片| 一区二区三区四区不卡在线 | 欧美日韩五月天| 久久国产人妖系列| 国产精品欧美极品| 欧美精品自拍偷拍动漫精品| 韩国欧美国产1区| 一区二区成人在线| 26uuu精品一区二区| 色综合亚洲欧洲| 免费精品视频在线| 亚洲人成伊人成综合网小说| 91精品国产91热久久久做人人| 粉嫩aⅴ一区二区三区四区 | 婷婷国产在线综合| 国产精品麻豆视频| 日韩免费在线观看| 欧美专区亚洲专区| 成人黄色一级视频| 秋霞国产午夜精品免费视频| 国产精品传媒入口麻豆| 日韩欧美国产一区二区三区| 97成人超碰视| 国产乱妇无码大片在线观看| 午夜日韩在线观看| 中文字幕电影一区| 精品久久久久久亚洲综合网 | 国产日产精品1区| 欧美精品欧美精品系列| 99久免费精品视频在线观看| 国模娜娜一区二区三区| 石原莉奈一区二区三区在线观看| 国产精品伦理一区二区| 精品欧美一区二区在线观看| 欧美亚洲一区三区| aaa欧美日韩| 国产精品一级二级三级| 日韩av午夜在线观看| 亚洲午夜久久久久久久久电影网 | 久久午夜色播影院免费高清| 91精品国产综合久久久久| 欧美在线免费观看视频| 99热国产精品| 97久久精品人人爽人人爽蜜臀| 国产一本一道久久香蕉| 蜜桃91丨九色丨蝌蚪91桃色| 午夜精品福利视频网站| 亚欧色一区w666天堂| 亚洲国产精品麻豆| 一区二区三区四区视频精品免费 | 欧美日韩视频专区在线播放| 一本久道中文字幕精品亚洲嫩| 国产成人aaa| 国产精品1区2区| 国产精品77777| 国产精品18久久久久久久网站| 国产一区二区三区在线观看免费视频| 久久精工是国产品牌吗| 久久精品国产77777蜜臀| 免费精品视频在线| 精品一区二区在线观看| 国产一区二区三区电影在线观看| 国产专区欧美精品| 国产精品影视天天线| 国产精品原创巨作av| 成人精品免费视频| av在线不卡电影| 99re热这里只有精品免费视频| 99久久综合色| 色婷婷狠狠综合| 欧美日韩亚洲丝袜制服| 8x8x8国产精品| 久久日一线二线三线suv| 欧美国产一区二区| 一区免费观看视频| 亚洲综合免费观看高清完整版在线| 一区二区三区在线观看欧美 | 久久国产尿小便嘘嘘尿| 国产毛片精品视频| 99久久精品免费看| 欧美福利视频导航| 久久久久久日产精品| 亚洲欧洲av一区二区三区久久| 樱桃视频在线观看一区| 免费看黄色91| www.欧美亚洲| 91超碰这里只有精品国产| 久久久久久久综合日本| 自拍视频在线观看一区二区| 午夜影院在线观看欧美| 国产在线精品国自产拍免费| 一本一本大道香蕉久在线精品 | 久久丁香综合五月国产三级网站| 国产精品一区二区久久精品爱涩| 色哟哟精品一区| 日韩精品最新网址| 亚洲欧洲精品天堂一级| 日本中文字幕一区二区有限公司| 国产黄色成人av| 在线精品视频一区二区| 久久嫩草精品久久久精品一| 亚洲自拍偷拍麻豆| 国产成人在线免费| 欧美日韩亚洲不卡| 国产欧美1区2区3区| 肉色丝袜一区二区| av在线不卡电影| 日韩欧美高清在线| 一区二区三区 在线观看视频| 久久福利视频一区二区| 欧美性生活一区| 中文欧美字幕免费| 久久99精品久久久久久久久久久久 | 国产午夜精品久久| 琪琪一区二区三区| 在线观看www91| 欧美激情资源网| 蜜臀av一级做a爰片久久| 91黄视频在线| 中文一区二区在线观看| 国产综合久久久久久久久久久久| 欧美午夜在线观看| 综合久久综合久久| 国产一区二区0| 91精品国产综合久久久久久| 亚洲精品免费在线观看| 成人自拍视频在线观看| 精品国产伦一区二区三区观看方式| 亚洲黄网站在线观看| voyeur盗摄精品| 国产丝袜欧美中文另类| 精品一区精品二区高清| 欧美一卡二卡三卡| 日韩精品电影一区亚洲| 在线亚洲欧美专区二区| 亚洲精品视频在线观看免费| 不卡视频在线看| 国产欧美日韩精品一区| 国产麻豆成人精品| 久久久久久综合| 国产精品一区二区在线观看网站 | 久久午夜电影网| 国内久久精品视频| 精品国免费一区二区三区| 蜜臀精品一区二区三区在线观看| 欧美精品三级日韩久久| 五月天国产精品| 91精品久久久久久蜜臀| 老司机精品视频一区二区三区| 日韩欧美国产高清| 精品一区二区三区视频 | 欧美国产精品中文字幕| 成人免费va视频| 欧美国产1区2区| 99久久精品免费| 一区二区三区在线观看动漫| 欧美亚洲另类激情小说| 午夜精品久久久久影视| 欧美日本一区二区三区| 美女诱惑一区二区| 精品国产成人系列| 国产成人亚洲综合色影视| 国产精品久99| 色婷婷久久久久swag精品 | 久久综合综合久久综合| 欧美sm美女调教| 成人一二三区视频| 亚洲精品视频免费看| 欧美电影在哪看比较好| 国产一二三精品| 亚洲区小说区图片区qvod| 欧美日韩一卡二卡三卡| 激情欧美一区二区| 亚洲欧洲另类国产综合| 欧美午夜理伦三级在线观看| 精品一区二区日韩| 国产女人水真多18毛片18精品视频| 成人免费毛片a| 亚洲一二三级电影|