《程序設(shè)計(jì)基礎(chǔ)課程設(shè)計(jì)》題目77382_第1頁(yè)
《程序設(shè)計(jì)基礎(chǔ)課程設(shè)計(jì)》題目77382_第2頁(yè)
《程序設(shè)計(jì)基礎(chǔ)課程設(shè)計(jì)》題目77382_第3頁(yè)
《程序設(shè)計(jì)基礎(chǔ)課程設(shè)計(jì)》題目77382_第4頁(yè)
《程序設(shè)計(jì)基礎(chǔ)課程設(shè)計(jì)》題目77382_第5頁(yè)
已閱讀5頁(yè),還剩1頁(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)介

1、題目1 使用菜單選擇程序 菜單是應(yīng)用程序的界面,控制語(yǔ)句用來(lái)改變程序執(zhí)行的順序,是實(shí)現(xiàn)結(jié)構(gòu)化程序設(shè)計(jì)的基礎(chǔ)。設(shè)計(jì)一個(gè)比較實(shí)用的菜單,通過(guò)菜單選擇不同的功能。 設(shè)計(jì)分為兩步:首先設(shè)計(jì)一個(gè)含有多個(gè)菜單項(xiàng)的菜單演示程序,然后再為這些菜單項(xiàng)配上相應(yīng)的功能。一、設(shè)計(jì)一個(gè)菜單程序 (1)菜單內(nèi)客程序運(yùn)行后,給出6個(gè)菜單項(xiàng)的內(nèi)容和輸入提示。 1FindNum 2FindRoot 3Detective 4Bear 5Diamond 6Goodbye! Input 1-6: ()設(shè)計(jì)要求使用數(shù)字1-6來(lái)選擇菜單項(xiàng),其他輸人則不起作用。二、增加菜單項(xiàng)的處理功能 以設(shè)計(jì)的菜單為基礎(chǔ),增加菜單項(xiàng)的處理功能。菜單項(xiàng)設(shè)計(jì)

2、要求 這其實(shí)是5道編程題,目的是鍛煉使用控制語(yǔ)句的能力。 ()FindNum 一只老鼠咬壞了賬本,公式中符號(hào)口代表是被老鼠咬掉的地方。要想恢復(fù)下面的等式,應(yīng)在口中填上哪個(gè)相同的數(shù)字? 3口×6237=口3×3564 利用計(jì)算機(jī)的計(jì)算速度快的特點(diǎn),把所有可能的數(shù)都試一下,從中找出符合條件的數(shù)。這就是所謂的窮舉法。 某位的數(shù)字只有0-9個(gè)數(shù)字,顯然已經(jīng)排除了為0的可能性,將1-9種可能性拿來(lái)試驗(yàn),即可找到合適的數(shù)字。由此可見(jiàn),就是尋找滿足下式面的i值: (30+i)×6237=(10×i+3)×3564 ()FindRoot 這里要求編制一個(gè)求方程

3、ax2+bx+c=0的根的程序。一般將系數(shù)設(shè)計(jì)成float型,可以把變量設(shè)為double型,使用庫(kù)函數(shù)sqrt求平方根,sqrt在頭文件math.h中定義。假設(shè) d=b×b4×a×c可以根據(jù)d大于、等于或小于零來(lái)決定求解方法。 if(d0)/有兩個(gè)不相等的實(shí)數(shù)解else if ( d = = 0 ) /有兩個(gè)相等的實(shí)數(shù)解 else /有兩個(gè)不相等的虛數(shù)解()Detective這是一道偵探題。一輛汽車憧人后逃跑。4個(gè)目擊者提供如下線索: 甲:牌照三、四位相同; 乙:牌號(hào)為31xxxx; 丙:牌照五、六位相同; ?。喝涣皇且粋€(gè)整數(shù)的平方。為了從這些線索中求出牌照號(hào)

4、碼,只要求出后四位再加上310000即可。這四位又是前兩位相同,后兩位也相同,互相又不相同并且是某個(gè)整數(shù)的平方的數(shù)??梢匀匀皇褂酶F舉法,利用計(jì)算機(jī)的計(jì)算速度快的特點(diǎn),把所有可能的數(shù)都試一下,從中找出符合條件的數(shù)。因?yàn)楹竺?位數(shù),1000的平方根>31,所以窮舉實(shí)驗(yàn)時(shí)不需從1開(kāi)始,而是從31開(kāi)始尋找一個(gè)整數(shù)的平方。下面直接使用for語(yǔ)句格式,給出算法思想。 for ( i=1 ; i<=9 ; i+) for ( j=0 ; j<=9 ; i) if ( i != j ) k = i *1000 + i * 100 + j * 10 + j; for ( c = 31 ; c

5、* c < k ; c +) if ( c * c = = k) cout<<”牌照號(hào)碼是:”<<310000 + k; ()Bear本題是一個(gè)笑話,話說(shuō)有一只狗熊到玉米地里掰玉米,一邊掰一邊吃。第一天吃了一半,又拿走一個(gè)回去喂小狗熊。第二天又去吃了剩下的一半,走時(shí)仍然帶一個(gè)回去喂小狗熊。以后每天都吃前一天剩下的一半,拿走一個(gè)。到第十天時(shí),地里只剩下一個(gè)玉米。求地里一共有多少玉米。這里可以使用回溯算法。假設(shè)狗熊每次吃掉的為x2,則第10天時(shí)的x2=1,第9天地里剩下的玉米xl = (x2 + l) ×2,這也是狗熊在第8天時(shí)吃掉的玉米數(shù)量。因此可以使用如

6、下算法描述: int day =10,x2=1,x1; while(day>0) x1=(x2+1)×2; x2=xl; day-; ()Diamond本題要求編制打印以下圖案的程序,注意題目還要求在左邊留出一定空格。 通過(guò)觀察圖像的組成特點(diǎn),可以把它們解剖成兩部分:上面4行和下面3行。上面行按遞增計(jì)數(shù),下面則按遞減計(jì)數(shù)。假設(shè)第一個(gè)“”距左邊15個(gè)空格,使用字符“1”模擬的顯示圖形如如下:111111111111111*11111111111111*1111111111111*111111111111*1111111111111*11111111111111*111111111

7、111111*()Goodbye!這里除了輸出一個(gè)簡(jiǎn)單的信息之外,還必須結(jié)束程序運(yùn)行。題目2 用結(jié)構(gòu)數(shù)組設(shè)計(jì)職工文件 本章課程設(shè)計(jì)的目的是學(xué)習(xí)使用結(jié)構(gòu)數(shù)組建立職工檔案信息文件。為了節(jié)省篇幅,設(shè)計(jì) 不要求使用多文件編程,但要求使用頭文件和菜單,并組成一個(gè)工程文件。功能設(shè)計(jì)要求:(1)建立wkrs職工數(shù)據(jù)結(jié)構(gòu),結(jié)構(gòu)含有姓名、序號(hào)、性別和年齡信息。(2)設(shè)計(jì)一個(gè)readin函數(shù),以便采用問(wèn)答式輸入10個(gè)職工的信息。并建立一個(gè)文件用來(lái)存儲(chǔ)這10個(gè)職工的信息,約定文件名為workers。(3)編寫一個(gè)display函數(shù),要求使用結(jié)構(gòu)指針作為參數(shù),用來(lái)輸出職工文件的內(nèi)容。(4)建立wks職工簡(jiǎn)明數(shù)據(jù)結(jié)構(gòu),

8、結(jié)構(gòu)只含有姓名和年齡信息。(5)編制一個(gè)srt函數(shù),根據(jù)wks結(jié)構(gòu)建立的職工情況,把職工姓名和工資信息抽出來(lái),另外建一個(gè)只含職工姓名和年齡的文件,約定文件名為wk_saw。(6)編制一個(gè)delwk函數(shù),可以從簡(jiǎn)明數(shù)據(jù)文件wk_saw中刪去指定的職工記錄,如果文件里沒(méi)有要?jiǎng)h去的職工,則輸出沒(méi)有這個(gè)職工的信息。如果將內(nèi)容全部剛除,則給出一個(gè)已經(jīng)刪空的提示信息并退出該操作。(7)將上述函數(shù)編制在一個(gè)文件里,共用一個(gè)頭文件。 (8)用一個(gè)簡(jiǎn)單的菜單提供上述操作。菜單信息為:1輸入數(shù)據(jù)2顯示原始數(shù)據(jù)3制作簡(jiǎn)明數(shù)據(jù)4刪除簡(jiǎn)明數(shù)據(jù) 5退出運(yùn)行 左邊數(shù)字對(duì)應(yīng)功能選擇請(qǐng)選1-5:題目3 學(xué)生成績(jī)管理程序設(shè)計(jì)一個(gè)

9、實(shí)用的小型學(xué)生成績(jī)管理程序,它要求不用鏈表,而用數(shù)組來(lái)設(shè)計(jì)這個(gè)程序。它有查詢和檢索等功能,并且能夠?qū)χ付ㄎ募僮鳎部蓪⒍鄠€(gè)文件組成一個(gè)文件。功能設(shè)計(jì)要求 設(shè)計(jì)要求實(shí)現(xiàn)的功能較多,所以將它們分為幾個(gè)部分?jǐn)⑹觥?1建立文件 (1)可以使用默認(rèn)文件名或指定文件名將記錄存儲(chǔ)到文件; (2)文件保存成功返回0,失敗返回-1; (3)設(shè)置保存標(biāo)志savedTag作為是否已對(duì)記錄進(jìn)行存儲(chǔ)操作的信息; (4)寫同名文件將覆蓋原來(lái)文件的內(nèi)容; 2增加學(xué)生記錄 (1)可在已有記錄后面追加新的記錄; (2)可以隨時(shí)用它增加新的記錄,它們僅保存在結(jié)構(gòu)數(shù)組中; (3)可以將一個(gè)文件讀入,追加在已有記錄之后; (4)如

10、果已經(jīng)采取用文件追加的方式,在沒(méi)有保存到文件之前,將繼續(xù)保持文件追加狀態(tài),以便實(shí)現(xiàn)連續(xù)文件追加操作方式; (5)如果沒(méi)有記錄存在,給出提示信息。 3新建學(xué)生信息文件 (1)用來(lái)重新建立學(xué)生信息記錄; (2)如果已經(jīng)有記錄存在,可以覆蓋原記錄或者在原記錄后面追加,也可以將原有記錄信息保存到一個(gè)指定文件,然后重新建立記錄; (3)給出相應(yīng)的提示信息。 4顯示記錄 (1)如果沒(méi)有記錄可供顯示,給出提示信息;(2)可以隨時(shí)顯示內(nèi)存中的記錄;(3)顯示表頭。5文件存儲(chǔ)(1)可以按默認(rèn)名字或指定名字存儲(chǔ)記錄文件;(2)存儲(chǔ)成功返回0,否則返回-1;(3)更新存儲(chǔ)標(biāo)志。6讀取文件(1)可以按默認(rèn)名字或指定名

11、字將記錄文件讀入內(nèi)存;(2)讀取成功返回0,否則返回-1;(3)可以將指定或默認(rèn)文件追加到現(xiàn)有記錄的尾部;(4)可以將文件連續(xù)追加到現(xiàn)有記錄并更新記錄的名次。(5)更新存儲(chǔ)標(biāo)志。7刪除記錄(1)可以按“學(xué)號(hào)”、“姓名”或“名次”方式刪除記錄;(2)給出將被刪除記錄的信息,經(jīng)確認(rèn)后再刪除;(3)如果已經(jīng)是空表,刪除時(shí)應(yīng)給出提示信息并返回主菜單;(4)如果沒(méi)有要?jiǎng)h除的信息,輸出沒(méi)有找到的信息;(5)應(yīng)該更新其他記錄的名次;(6)刪除操作僅限于內(nèi)存,只有執(zhí)行存記錄時(shí),才能覆蓋原記錄;(7)更新存儲(chǔ)標(biāo)志。8修改記錄(1)可以按“學(xué)號(hào)”、“姓名”或“名次”方式修改記錄內(nèi)容;(2)給出將被修改記錄的信息,

12、經(jīng)確認(rèn)后進(jìn)行修改;(3)如果已經(jīng)是空表,應(yīng)給出提示信息并返回主菜單;(4)如果沒(méi)有找到需要修改的信息,輸出提示信息;(5)應(yīng)該同時(shí)更新其他記錄的名次;(6)修改操作僅限于內(nèi)存,只有進(jìn)行存儲(chǔ)操作時(shí),才能覆蓋原記錄;(7)更新存儲(chǔ)標(biāo)志。9查詢記錄(1)可以按“學(xué)號(hào)”、“姓名”或“名次”方式查詢記錄;(2)能給出查詢記錄的信息;(3)如果查詢的信息不存在,輸出提示信息。10對(duì)記錄進(jìn)行排序 (1)可以按學(xué)號(hào)進(jìn)行升序或降序排序; (2)可以按名稱進(jìn)行升序和降序排序; (3)可以按名次進(jìn)行升序和降序排序; (4)如果屬于選擇錯(cuò)誤,可以立即退出排序; (5)更新存儲(chǔ)標(biāo)志。 11頭文件 (1)使用條件編譯定義

13、頭文件; (2)函數(shù)原型聲明; (3)數(shù)據(jù)結(jié)構(gòu)及包含文件;12測(cè)試程序 (1)應(yīng)列出測(cè)試大綱對(duì)程序進(jìn)行測(cè)試; (2)應(yīng)保證測(cè)試用例測(cè)試到程序的各種邊緣情況是基本要求,希望通過(guò)對(duì)本章設(shè)計(jì)的理解,重新考慮如何改進(jìn)設(shè)計(jì)。題目4 鏈表信息管理設(shè)計(jì)的目的是學(xué)習(xí)建立鏈表,使用鏈表存儲(chǔ)結(jié)構(gòu)信息,增加鏈表結(jié)點(diǎn)及刪除鏈表結(jié)點(diǎn)等基本操作。實(shí)際設(shè)計(jì)時(shí),可以增加數(shù)據(jù)信息及檢索等功能。功能設(shè)計(jì)要求 設(shè)計(jì)要求實(shí)現(xiàn)如下功能: (1)本課程設(shè)計(jì)是將重點(diǎn)放在整體設(shè)計(jì)上,只選成員代號(hào)和電話。 (2)如果已經(jīng)有記錄,只能在其后追加。 (3)顯示整個(gè)記錄的內(nèi)容(含有新追加的新記錄)。 (4)使代號(hào)可由6位字符和數(shù)字的混合編碼組成,例

14、如下面的形式: A201 3405d 01001 (5)使電話號(hào)碼可由18位字符和數(shù)字組成,例如下面的形式: (86)-551-36994698345613900110011(6)可以刪除全部記錄,可以隨時(shí)增加新紀(jì)錄。(7)使用菜單實(shí)現(xiàn)增加、刪除和顯示等功能的選擇。 (8)使用宏定義動(dòng)態(tài)申請(qǐng)存儲(chǔ)空間。(9)測(cè)試程序。題目5 實(shí)用的小型通訊錄 設(shè)計(jì)一個(gè)實(shí)用的小型通訊錄程序,它是在鏈表程序的基礎(chǔ)上,增加查詢功能,并且能夠打開(kāi)指定文件或修改指定文件及將多個(gè)文件組成一個(gè)文件。功能設(shè)計(jì)要求 設(shè)計(jì)要求實(shí)現(xiàn)的功能較多,所以將它們分為幾個(gè)部分?jǐn)⑹觥?1建立文件 (1)存儲(chǔ)文件可以使

15、用默認(rèn)文件名或指定文件名; (2)可以不保存輸入記錄,但需要確認(rèn)是否保存輸入記錄; (3)如果已經(jīng)有文件,只能在其后追加; (4)新增的記錄可以不存人原文件中,也可以用原來(lái)的文件覆蓋內(nèi)存的內(nèi)容; (5)可以將兩個(gè)文件合并到一個(gè)文件中。 2文件的存取和顯示 (1)可以單獨(dú)存取文件; (2)可以隨時(shí)顯示內(nèi)存中記錄的全部?jī)?nèi)容; (3)可以直接存取默認(rèn)文件或指定文件。 3刪除記錄 (1)可以按“姓名”或“電話”方式刪除記錄并更新內(nèi)存鏈表內(nèi)容; (2)能給出被刪除記錄的信息; (3)如果已經(jīng)是空表,刪除時(shí)應(yīng)給出提示信息并返回主菜單; (4)如果沒(méi)有要?jiǎng)h除的信息,輸出沒(méi)有找到的信息; (5)刪除操作僅限于內(nèi)存,只有執(zhí)行存記錄時(shí),才能覆蓋原記錄; 4.查詢記錄(1)可以按“姓名”或“電話”方式查詢記錄; (2)能給出查詢記錄的信息;(3)如果查詢的信息不存在,輸出沒(méi)有找到的信息。 5.整體功能 (1)應(yīng)可以隨時(shí)檢索、刪除或增加新記錄,保存或取消新的記錄。 (2)使姓名可由16位字符和數(shù)字的混合編碼組成; (3)使電話號(hào)碼可由18位字符和數(shù)字組成; (4)將輸出

溫馨提示

  • 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)論