《C語(yǔ)言配套資源》-任務(wù)1-9:菜單交互調(diào)用輸出各種形狀九九乘法表函數(shù)_第1頁(yè)
《C語(yǔ)言配套資源》-任務(wù)1-9:菜單交互調(diào)用輸出各種形狀九九乘法表函數(shù)_第2頁(yè)
《C語(yǔ)言配套資源》-任務(wù)1-9:菜單交互調(diào)用輸出各種形狀九九乘法表函數(shù)_第3頁(yè)
《C語(yǔ)言配套資源》-任務(wù)1-9:菜單交互調(diào)用輸出各種形狀九九乘法表函數(shù)_第4頁(yè)
《C語(yǔ)言配套資源》-任務(wù)1-9:菜單交互調(diào)用輸出各種形狀九九乘法表函數(shù)_第5頁(yè)
已閱讀5頁(yè),還剩13頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

CONTENTS1任務(wù)1-9:菜單交互調(diào)用輸出各種形狀九九乘法表函數(shù)操作步驟2知識(shí)點(diǎn)1-22多重循環(huán)34【例1-9-1】任意位置,輸出任意大小菱形的通用函數(shù)【例1-9-2】打印輸出1~30之間所有的素?cái)?shù)的函數(shù)【例1-9-3】“百錢(qián)買(mǎi)百雞”問(wèn)題函數(shù)56【例1-9-4】編寫(xiě)找出3對(duì)選手對(duì)陣名單的函數(shù)任務(wù)1-9:菜單交互調(diào)用輸出各種形狀九九乘法表函數(shù)操作步驟1C語(yǔ)言項(xiàng)目化教程(項(xiàng)目引領(lǐng)、任務(wù)驅(qū)動(dòng))主講:朱香衛(wèi)教授任務(wù)1-9:菜單交互調(diào)用輸出各種形狀九九乘法表函數(shù)----任務(wù)描述

請(qǐng)編寫(xiě)5個(gè)函數(shù)分別實(shí)現(xiàn)輸出1.左下角99表、2.右上角99表、3.左上角99表及4.右下角99表及輸出5.矩形九九乘法表,并實(shí)現(xiàn)菜單項(xiàng)人機(jī)交互響應(yīng)調(diào)用這5個(gè)函數(shù),功能菜單如圖所示。

如圖所示矩形九九乘法表被2條紅色及綠色對(duì)角線劃分成4個(gè)三角形的九九乘法表,這4個(gè)三角形的九九乘法表分別為1.左下角99表、2.右上角99表、3.左上角99表及4.右下角99表。C語(yǔ)言項(xiàng)目化教程(項(xiàng)目引領(lǐng)、任務(wù)驅(qū)動(dòng))主講:朱香衛(wèi)教授1.創(chuàng)建工程項(xiàng)目及項(xiàng)目主文件(main.c)

(1)打開(kāi)d盤(pán)上的d:\CLanguageProgram\StuScoreManagementSystem文件夾,在文件夾下找到StuScoreManagementSystem.dsw工作空間文件。任務(wù)1-9:菜單交互調(diào)用輸出各種形狀九九乘法表函數(shù)操作步驟

(2)創(chuàng)建項(xiàng)目工程

選擇“File”→“New”菜單命令,新建一個(gè)項(xiàng)目類型為“Win32ConsoleApplication”項(xiàng)目,項(xiàng)目名稱為:task1_9,注意選擇將task1_9項(xiàng)目添加到當(dāng)前的工作空間(StuScoreManageSystem),即單擊“Addtocurrentworkspace”單選按鈕。新建的task1_9項(xiàng)目為活動(dòng)的項(xiàng)目,為保險(xiǎn)起見(jiàn),可以在task1_9項(xiàng)目上單擊右鍵,將該項(xiàng)目設(shè)置為活動(dòng)的項(xiàng)目(SetasActiveProject快捷菜單)。

(3)創(chuàng)建C源代碼文件在VC++集成開(kāi)發(fā)環(huán)境下選擇“File”→“New”菜單命令,在出現(xiàn)新建文件對(duì)話框中輸入main.c文件名,然后單擊“OK”按鈕,則新建了C語(yǔ)言的main.c源文件。C語(yǔ)言項(xiàng)目化教程(項(xiàng)目引領(lǐng)、任務(wù)驅(qū)動(dòng))主講:朱香衛(wèi)教授任務(wù)1-9:菜單交互調(diào)用輸出各種形狀九九乘法表函數(shù)操作步驟2.編寫(xiě)程序源代碼、編譯、組建、運(yùn)行程序(1)編輯main.c源程序文件

在工作空間視圖中task1_9項(xiàng)目“SourceFiles”文件夾中雙擊main.c文件,打開(kāi)main.c文件,在空的代碼編輯窗口中輸入如下代碼:即將任務(wù)1-8中task1_8項(xiàng)目中的main.c的源代碼全部復(fù)制到該項(xiàng)目中的main.c空文件中。(2)然后在main.c中,將main()函數(shù)體中菜單改為任務(wù)1-9中的菜單;C語(yǔ)言項(xiàng)目化教程(項(xiàng)目引領(lǐng)、任務(wù)驅(qū)動(dòng))主講:朱香衛(wèi)教授任務(wù)1-9:菜單交互調(diào)用輸出各種形狀九九乘法表函數(shù)操作步驟(4)從右表還可以找到的規(guī)律:每一行當(dāng)列號(hào)小于行號(hào)時(shí),輸出1個(gè)制表符,否則輸出九九乘法表相應(yīng)的一項(xiàng)內(nèi)容項(xiàng)。(3)然后在main.c中,將main()函數(shù)體中將5個(gè)函數(shù)名聲明及函數(shù)體改為實(shí)現(xiàn)任務(wù)1-9功能的函數(shù)。

下面舉一函數(shù)實(shí)現(xiàn)的過(guò)程,余下的4個(gè)函數(shù)請(qǐng)參照實(shí)現(xiàn)分析輸出2.右上角99表的外循環(huán)i及內(nèi)循環(huán)的j之間的關(guān)系。根據(jù)下面要輸出的效果圖,可以找出列號(hào)j隨行號(hào)i的變化規(guī)律如右表所示:即:外循環(huán)i與內(nèi)循環(huán)j的關(guān)系是j從等于行號(hào)i開(kāi)始。j的規(guī)律:for(j=i;j<=9;j++)每一行輸出都要先確定輸出位置:都是從最左邊開(kāi)始,要空出行號(hào)減1(即i-1)個(gè)制表符\t位置才開(kāi)始輸出內(nèi)容。內(nèi)循環(huán)k的規(guī)律:for(k=0;k<i-1;k++)i行j列從最左邊何位置開(kāi)始輸出行(k循環(huán))K<i-1i=1j=1,2,3,4,5,6,7,8,90個(gè)\t(最左邊開(kāi)始)K<0i=2j=2,3,4,5,6,7,8,91個(gè)\t(最左邊1個(gè)\t開(kāi)始)K<1i=3j=3,4,5,6,7,8,92個(gè)\t(最左邊2個(gè)\t開(kāi)始)K<2i=4j=4,5,6,7,8,93個(gè)\t(最左邊3個(gè)\t開(kāi)始)k<3i=5j=5,6,7,8,94個(gè)\t(最左邊4個(gè)\t開(kāi)始)k<4i=6j=6,7,8,95個(gè)\t(最左邊5個(gè)\t開(kāi)始)k<5i=7j=7,8,96個(gè)\t(最左邊6個(gè)\t開(kāi)始)k<6i=8j=8,97個(gè)\t(最左邊7個(gè)\t開(kāi)始)k<7i=9j=98個(gè)\t(最左邊8個(gè)\t開(kāi)始)k<8(5)編譯源文件(6)連接應(yīng)用程序(7)運(yùn)行應(yīng)用程序知識(shí)點(diǎn)1-22多重循環(huán)2在循環(huán)體語(yǔ)句中又包含有另一個(gè)完整的循環(huán)結(jié)構(gòu)的形式,稱為循環(huán)的嵌套。嵌套在循環(huán)體內(nèi)的循環(huán)體稱為內(nèi)循環(huán),外面的循環(huán)稱為外循環(huán)。如果內(nèi)循環(huán)體中又有嵌套的循環(huán)語(yǔ)句,則構(gòu)成多重循環(huán)。while、do...while、for三種循環(huán)都可以互相嵌套,下表列出了幾種常用的雙重循環(huán)嵌套的格式:知識(shí)點(diǎn)1-22多重循環(huán)C語(yǔ)言項(xiàng)目化教程(項(xiàng)目引領(lǐng)、任務(wù)驅(qū)動(dòng))主講:朱香衛(wèi)教授

01內(nèi)層循環(huán)

02內(nèi)層循環(huán)

03內(nèi)層循環(huán)

04內(nèi)層循環(huán)

05內(nèi)層循環(huán)

06內(nèi)層循環(huán)

因?yàn)閮?nèi)循環(huán)嵌套在外循環(huán)中,是外循環(huán)的循環(huán)體,而這個(gè)外循環(huán)的循環(huán)體本身又是循環(huán)結(jié)構(gòu),所以在雙重循環(huán)體語(yǔ)句嵌套中,外循環(huán)每循環(huán)一次,內(nèi)循環(huán)要完整地循環(huán)結(jié)束才進(jìn)行外循環(huán)的下一次循環(huán),直至外循環(huán)循環(huán)結(jié)束?!纠?-9-1】任意位置,輸出任意大小菱形的通用函數(shù)3編寫(xiě)可在任意位置,輸出任意大小菱形的通用函數(shù)Diamond(),要求如下:1.根據(jù)用戶通過(guò)鍵盤(pán)人機(jī)對(duì)話輸入菱形的總行數(shù)(菱形的特點(diǎn):總行數(shù)與總列數(shù)相同,且必須是奇數(shù),所以輸入菱形的總行數(shù)為奇數(shù))。2.根據(jù)用戶通過(guò)鍵盤(pán)人機(jī)對(duì)話輸入菱形輸出的起始位置(輸入要從第幾個(gè)制表符位置開(kāi)始輸出菱形)。在任意位置,輸出任意大小菱形的效果圖如下圖所示?!纠?-9-1】任意位置,輸出任意大小菱形的通用函數(shù)C語(yǔ)言項(xiàng)目化教程(項(xiàng)目引領(lǐng)、任務(wù)驅(qū)動(dòng))主講:朱香衛(wèi)教授程序設(shè)計(jì)思路分析:

設(shè)菱形的總行數(shù)為total_row,總列數(shù)為total_column,當(dāng)前行為row,當(dāng)前列為column,輸出菱形制表符起始位置個(gè)數(shù)為ks_tab_num。上半部分與下半部分有如下規(guī)律:

1.對(duì)于上半部分(包括中間一行),當(dāng)前行與當(dāng)前列滿足如下關(guān)系輸出星號(hào):column>=(total_column+1)/2-(row-1)(第row行最左邊的星號(hào))并且column<=(total_column+1)/2+(row-1)(第row行最右邊的星號(hào))不滿足上述條件,則輸出空格。2.對(duì)于下半部分,當(dāng)前行與當(dāng)前列滿足如下關(guān)系輸出星號(hào):

column>=(total_column+1)/2-(total_row-row)(第row行最左邊的星號(hào))并且column<=(total_column+1)/2+(total_row-row)(第row行最右邊的星號(hào))不滿足上述條件,則輸出空格。在任意位置,輸出任意大小菱形的通用函數(shù)的代碼如下:【例1-9-1】任意位置,輸出任意大小菱形的通用函數(shù)C語(yǔ)言項(xiàng)目化教程(項(xiàng)目引領(lǐng)、任務(wù)驅(qū)動(dòng))主講:朱香衛(wèi)教授【例1-9-2】打印輸出1~30之間所有的素?cái)?shù)的函數(shù)4分析:素?cái)?shù)的定義:素?cái)?shù)又稱質(zhì)數(shù)。所謂素?cái)?shù)是指除了1和它本身以外,不能被任何整數(shù)整除的數(shù)。判斷一個(gè)整數(shù)n是否是素?cái)?shù),只需把n被2~n-1之間的每一個(gè)整數(shù)去除,如果都不能被整除,那么n就是一個(gè)素?cái)?shù)。根據(jù)分析,實(shí)現(xiàn)【例1-9-2】打印輸出1~30之間所有的素?cái)?shù)的函數(shù)prime_number()及main()函數(shù)調(diào)用prime_number()函數(shù)的代碼如下:【例1-9-2】打印輸出1~30之間所有的素?cái)?shù)的函數(shù)C語(yǔ)言項(xiàng)目化教程(項(xiàng)目引領(lǐng)、任務(wù)驅(qū)動(dòng))主講:朱香衛(wèi)教授【例1-9-3】“百錢(qián)買(mǎi)百雞”問(wèn)題函數(shù)5

中國(guó)古代數(shù)學(xué)家張丘建在他的《算經(jīng)》中提出了一個(gè)著名的“百錢(qián)百雞問(wèn)題”:一只公雞值五錢(qián),一只母雞值三錢(qián),三只小雞值一錢(qián),現(xiàn)在要用百錢(qián)買(mǎi)百雞,請(qǐng)問(wèn)公雞、母雞、小雞各多少只?【例1-9-3】“百錢(qián)買(mǎi)百雞”問(wèn)題函數(shù)C語(yǔ)言項(xiàng)目化教程(項(xiàng)目引領(lǐng)、任務(wù)驅(qū)動(dòng))主講:朱香衛(wèi)教授如果用數(shù)學(xué)的方法解決百錢(qián)買(mǎi)百雞問(wèn)題,可將該問(wèn)題抽象成方程式組。設(shè)公雞x只,母雞y只,小雞z只,得到如下方程式組:根據(jù)以上分析,可以使用三層循環(huán)嵌套來(lái)解決此問(wèn)題。實(shí)現(xiàn)【例1-9-3】“百錢(qián)買(mǎi)百雞”問(wèn)題函數(shù)baiyuanmaibaiji()函數(shù)的代碼如下:5x+3y+1/3z=1000<=x,y,z<=100x+y+z=100【例1-9-4】編寫(xiě)找出3對(duì)選手對(duì)陣名單的函數(shù)6

兩個(gè)乒乓球隊(duì)進(jìn)行比賽,各出3人。甲隊(duì)為A,B,C三人,乙隊(duì)為X,Y,Z三人。已抽簽決定比賽名單。有人向隊(duì)員打聽(tīng)比賽的名單。A說(shuō)他不和X比,C說(shuō)他不和X,Z比,請(qǐng)編程序找出3對(duì)選手的對(duì)陣名單。【例1-9-4】編寫(xiě)找出3對(duì)選手對(duì)陣名單的函數(shù)C語(yǔ)言項(xiàng)目化教程(項(xiàng)目引領(lǐng)、任務(wù)驅(qū)動(dòng))主講:朱香衛(wèi)教授分析:實(shí)際上甲乙隊(duì)抽簽問(wèn)題,可以轉(zhuǎn)化成求:A,B,C變量值的問(wèn)題。A,B,C變量值的范圍可能是'X','Y','Z'三個(gè)字符中的任意一個(gè),所以變量A,B,C分別從'X','Y','Z'三個(gè)字符中進(jìn)行遍歷(循環(huán)),利用已知的

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論