2011計(jì)算機(jī)程序訓(xùn)練題目及要求_第1頁(yè)
2011計(jì)算機(jī)程序訓(xùn)練題目及要求_第2頁(yè)
2011計(jì)算機(jī)程序訓(xùn)練題目及要求_第3頁(yè)
2011計(jì)算機(jī)程序訓(xùn)練題目及要求_第4頁(yè)
免費(fèi)預(yù)覽已結(jié)束,剩余71頁(yè)可下載查看

下載本文檔

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

文檔簡(jiǎn)介

計(jì)算機(jī)程序訓(xùn)練題目及要求一.訓(xùn)練目的:計(jì)算機(jī)程序設(shè)計(jì)訓(xùn)練是學(xué)習(xí)完《計(jì)算機(jī)程序設(shè)計(jì)》課程后進(jìn)行的?次全面的綜合性上機(jī)實(shí)驗(yàn)。其目的在于為學(xué)生提供了一個(gè)既動(dòng)手又動(dòng)腦,獨(dú)立實(shí)踐的機(jī)會(huì),將課本上的理論知識(shí)和實(shí)際有機(jī)的結(jié)合起來(lái),鍛煉學(xué)生的分析解決實(shí)際問(wèn)題的能カ。提高學(xué)生適應(yīng)實(shí)際,實(shí)踐編程的能力。二.設(shè)計(jì)要求:.按照給定題目獨(dú)立設(shè)計(jì)程序,上機(jī)調(diào)試通過(guò)。.寫(xiě)出設(shè)計(jì)報(bào)告提交報(bào)告的內(nèi)容如下:1)題目?jī)?nèi)容的描述2)應(yīng)用程序功能的詳細(xì)說(shuō)明3)輸入數(shù)據(jù)類(lèi)型、格式和內(nèi)容限制;4)主要模塊的算法描述?以程序流程圖的方式給出ー簡(jiǎn)要的語(yǔ)言描述5)結(jié)束語(yǔ)6)程序的源代碼清單7)報(bào)告的字?jǐn)?shù),不算源代碼清單不少于4頁(yè)按規(guī)定的模板封面輸出,不準(zhǔn)自定義封面格式提交報(bào)告的格式如下:1)正文宋體小四號(hào)字2)每個(gè)自然段開(kāi)始空兩格.3)文中英文用新羅馬(timenewroman),四號(hào)4)源程序清單用英文新羅馬五號(hào)5)提交報(bào)告封面使用《沈陽(yáng)理工大學(xué)課程設(shè)計(jì)(論文)》專(zhuān)用封面注:對(duì)于程序中未能實(shí)現(xiàn)的部分需要加以說(shuō)明。對(duì)于程序中所參考的部分代碼需要加以聲明,并說(shuō)明出處。三.訓(xùn)練題目:同學(xué)按學(xué)號(hào)選擇設(shè)計(jì)題目(任務(wù)書(shū)格式見(jiàn)附錄A)題目1題目:編制曲線軌跡動(dòng)畫(huà)程序要求:畫(huà)一?圓的外擺線,使ー個(gè)小五角星在曲線軌跡上移動(dòng)。,ハ.a+bx=(a4-b)cost-bcos 1y=(a+h)sinf—Osin 1ba,b,t由鍵盤(pán)輸入,輸入的數(shù)據(jù)送文件保存,按回車(chē)鍵程序結(jié)束。(功能延伸:改

變數(shù)據(jù)文件的內(nèi)容后,再根據(jù)數(shù)據(jù)文件里的數(shù)據(jù)繪制外擺線)題目2題目:編制曲線軌跡動(dòng)畫(huà)程序要求:畫(huà)一正八邊形,如下圖,再畫(huà)一個(gè)小圓使在其正八邊形邊上移動(dòng)。ハ邊形的大小和小圓移動(dòng)的速度由鍵盤(pán)輸入。并將輸入的數(shù)據(jù)送文件保存。按回車(chē)鍵程序結(jié)束。(功能延伸:改變數(shù)據(jù)文件的內(nèi)容后,再根據(jù)數(shù)據(jù)文件里的數(shù)據(jù)繪制正八邊形)題目3題目:在屏幕上繪制ー個(gè)動(dòng)態(tài)五角星要求:在屏幕上繪制ー個(gè)五角星,每按一次鍵盤(pán)轉(zhuǎn)九十度。用循環(huán)程序計(jì)算五角星的頂點(diǎn),畫(huà)直線完成。五角星顯示的位置、大小和轉(zhuǎn)動(dòng)的方向由鍵盤(pán)輸入,并將輸入的數(shù)據(jù)送文件保存。按回車(chē)鍵程序結(jié)束。(功能延伸:改變數(shù)據(jù)文件的內(nèi)容后,再根據(jù)數(shù)據(jù)文件里的數(shù)據(jù)繪制五角星)題目4題目:計(jì)算兩個(gè)5*5矩陣的乘積。要求:兩個(gè)5*5矩陣的數(shù)據(jù)由數(shù)據(jù)文件輸入,計(jì)算乘積存入另一個(gè)文件后再顯示出。題目5題目:繪制橢圓并使其旋轉(zhuǎn)要求:在屏幕上畫(huà)一個(gè)橢圓,要求每按一次鍵盤(pán),該橢圓轉(zhuǎn)動(dòng)30度。橢圓顯示的位置、大小和轉(zhuǎn)動(dòng)的方向由鍵盤(pán)輸入,并將輸入的數(shù)據(jù)送文件保存。按回車(chē)鍵程序結(jié)束。(功能延伸:改變數(shù)據(jù)文件的內(nèi)容后,再根據(jù)數(shù)據(jù)文件里的數(shù)據(jù)繪制橢圓)題目6題目:在屏幕上畫(huà)一個(gè)矩形要求:每按一次鍵盤(pán),該矩形轉(zhuǎn)動(dòng)45度。矩形的大小和轉(zhuǎn)動(dòng)的方向有鍵盤(pán)輸入,并將輸入的數(shù)據(jù)送文件保存,按回車(chē)鍵程序結(jié)束。(功能延伸:改變數(shù)據(jù)文件的內(nèi)容后,再根據(jù)數(shù)據(jù)文件里的數(shù)據(jù)繪制矩形)題目7題目:編制曲線軌跡動(dòng)畫(huà)程序要求:畫(huà)一三葉玫瑰線,使ー個(gè)小五角星在曲線上移動(dòng)。p=asin3。鍵盤(pán)輸入a、8和五角星大小,并存入文件,按回車(chē)鍵程序結(jié)束。(功能延伸:改變數(shù)據(jù)文件的內(nèi)容后,再根據(jù)數(shù)據(jù)文件里的數(shù)據(jù)繪制三葉玫瑰線)題目8題H繪制機(jī)械圖要求:.完成繪制右面機(jī)械圖(包括主視圖、左視圖、俯視圖,參數(shù)自擬)。 ! III.機(jī)械圖為參數(shù)化設(shè)計(jì),主視圖完全根據(jù)鍵盤(pán)輸入的尺寸參數(shù)繪 制,左視圖和俯視圖根據(jù)主視圖坐標(biāo)變換獲得,主視圖未表達(dá)的信息再次輸入尺寸參數(shù)在相應(yīng)的左視圖和俯視圖中予以完 .善。并將鍵盤(pán)輸入信息存入文件,以便再次繪制此圖。.畫(huà)出邊框和標(biāo)題欄。題目9題目繪制機(jī)械圖要求: ー卩ラ.K完成繪制右面機(jī)械圖(包括主視圖、左視圖、俯視圖,參數(shù)自擬)。 I」.].機(jī)械圖為參數(shù)化設(shè)計(jì),主視圖完全根據(jù)鍵盤(pán)輸入的尺寸參數(shù)繪制,左視圖和俯視圖根據(jù)主視圖坐標(biāo)變換獲得,主視圖未表達(dá)的信息再次輸入尺寸參數(shù)在相應(yīng)的左視圖和俯視圖中予以完善。并將鍵盤(pán)輸入信息存入文件,以便再次繪制此圖。.畫(huà)出邊框和標(biāo)題欄。題目10題目繪制機(jī)械圖要求:.完成繪制右面機(jī)械圖(包括主視圖、左視圖、俯視圖,參數(shù)自擬)。.機(jī)械圖為參數(shù)化設(shè)計(jì),主視圖完全根據(jù)鍵盤(pán)輸入的尺寸參數(shù)繪制,左視圖和俯視圖根據(jù)主視圖坐標(biāo)變換獲得,主視圖未表達(dá)的信息再次輸入尺寸參數(shù)在相應(yīng)的左視圖和俯視圖中予以完善。并將鍵盤(pán)輸入信息存入文件,以便再次繪制此圖。.畫(huà)出邊框和標(biāo)題欄。題目I1

.完成繪制右面機(jī)械圖(包括主視圖、左視圖、俯視圖,參數(shù)自擬)。.機(jī)械圖為參數(shù)化設(shè)計(jì),主視圖完全根據(jù)鍵盤(pán)輸入的尺寸參數(shù)繪制,左視圖和俯視圖根據(jù)主視圖坐標(biāo)變換獲得,主視圖未表達(dá)的信息再次輸入尺寸參數(shù)在相應(yīng)的左視圖和俯視圖中予以完善。并將鍵盤(pán)輸入信息存入文件,以便再次繪制此圖。.畫(huà)出邊框和標(biāo)題欄。題目12題目繪制機(jī)械圖要求:.完成繪制右面機(jī)械圖(包括主視圖、左視圖、俯視圖,參數(shù)自擬)。.機(jī)械圖為參數(shù)化設(shè)計(jì),主視圖完全根據(jù)鍵盤(pán)輸入的尺寸參數(shù)繪制,左視圖和俯視圖根據(jù)主視圖坐標(biāo)變換獲得,主視圖未表達(dá)的信息再次輸入尺寸參數(shù)在相應(yīng)的左視圖和俯視圖中予以完善。并將鍵盤(pán)輸入信息存入文件,以便再次繪制此圖。.畫(huà)出邊框和標(biāo)題欄。題目13題目繪制機(jī)械圖要求:.完成繪制右面機(jī)械圖(包括主視圖、左視圖、俯視圖,參數(shù)自擬)。.機(jī)械圖為參數(shù)化設(shè)計(jì),主視圖完全根據(jù)鍵盤(pán)輸入的尺寸參數(shù)繪制,左視圖和俯視圖根據(jù)主視圖坐標(biāo)變換獲得,主視圖未表達(dá)的信息再次輸入尺寸參數(shù)在相應(yīng)的左視圖和俯視圖中予以完善。.畫(huà)出邊框和標(biāo)題欄。題目14題目繪制機(jī)械圖要求:.完成繪制右面機(jī)械圖(包括主視圖、左視圖、俯視圖,參數(shù)自擬)。.機(jī)械圖為參數(shù)化設(shè)計(jì),主視圖完全根據(jù)鍵盤(pán)輸入的尺寸參數(shù)繪制,左視圖和俯視圖根據(jù)主視圖坐標(biāo)變換獲得,主視圖未表達(dá)的信息再次輸入尺寸參數(shù)在相應(yīng)的左視圖和俯視圖中予以完善。并將鍵盤(pán)輸入信息存入文件,以便再次繪制此圖。.畫(huà)出邊框和標(biāo)題欄。題目15

.完成繪制右面機(jī)械圖(包括主視圖、左視圖、俯視圖,參數(shù)自擬)。.機(jī)械圖為參數(shù)化設(shè)計(jì),主視圖完全根據(jù)鍵盤(pán)輸入的尺寸參數(shù)繪制,左視圖和俯視圖根據(jù)主視圖坐標(biāo)變換獲得,主視圖未表達(dá)的信息再次輸入尺寸參數(shù)在相應(yīng)的左視圖和俯視圖中予以完善。并將鍵盤(pán)輸入信息存入文件,以便再次繪制此圖。.畫(huà)出邊框和標(biāo)題欄。題目16題目:繪制機(jī)械圖并旋轉(zhuǎn)要求:采用C進(jìn)行程序設(shè)計(jì),完成下圖中右圖的繪制,并將該視圖做旋轉(zhuǎn)a角變換。00000000M=0000采用矩陣計(jì)算各坐標(biāo)點(diǎn),完成圖形繪制。其變換矩陣為:[し采用矩陣計(jì)算各坐標(biāo)點(diǎn),完成圖形繪制。題目I7題目繪制機(jī)械圖并旋轉(zhuǎn)要求:采用c語(yǔ)言完成上圖中左側(cè)視圖的圖形繪制(不繪制標(biāo)注),并將該視圖作沿各坐標(biāo)軸分別進(jìn)行0.5,1,2的比例變換并將變換后的圖形繪制出來(lái)。(坐標(biāo)原點(diǎn)在圖形左端面中心處)變換矩陣為:

A00000A0000001?采用矩陣計(jì)算各坐標(biāo)點(diǎn),完成圖形繪制。題目23,插補(bǔ)曲線y=l/4*x2,x£[-3,5]題目24題目:采用逐段比較法直線插補(bǔ)曲線y=5*x2+16*x-5,x£[-5,5]要求:允許誤差6允=0.1mm。計(jì)算各節(jié)點(diǎn),并將理論曲線及插補(bǔ)直線分別用不同顏色進(jìn)行繪制。并將節(jié)點(diǎn)計(jì)算結(jié)果輸出到文件中。算法簡(jiǎn)介:直線插補(bǔ),即采用多段直線近似逼近一曲線。當(dāng)曲線為單凸(凹)時(shí),取其左右兩個(gè)端點(diǎn)作為第一次線性逼近,計(jì)算插補(bǔ)誤差與6允相比較,當(dāng)不滿足時(shí),取區(qū)間的中點(diǎn)作為右端點(diǎn),進(jìn)行第二次逼近,如此循環(huán)直到△插W6允時(shí),即取該次的右端點(diǎn)作為一個(gè)插補(bǔ)點(diǎn)。如此循環(huán),求出其它節(jié)點(diǎn)。題目27題目:與利潤(rùn)有關(guān)的背包問(wèn)題要求:輸入N種貨物重量wkg及獲利p,輸出各種貨物及重量到文件。題目解釋?zhuān)憨`個(gè)商人帶著一個(gè)能裝mkg的背包去鄉(xiāng)下收購(gòu)貨物,準(zhǔn)備將這些貨物賣(mài)到城里獲利?,F(xiàn)有n種貨源,且知第i種貨物有川kg,可獲利出元。請(qǐng)編寫(xiě)算法幫助商人收購(gòu)貨物,以獲取最高的利潤(rùn)。題目32題目:實(shí)現(xiàn)算數(shù)表達(dá)式的計(jì)算要求:用戶輸入表達(dá)式,其中包括字符有:+、ー、?、/、)、(和數(shù)字,編程完成計(jì)算結(jié)果并打印出。題目33題目:學(xué)生信息管理系統(tǒng)設(shè)計(jì)要求:學(xué)生信息包括:學(xué)號(hào),姓名,年齡,性別,出生年月,地址,電話,E-mail等。試設(shè)計(jì)ー學(xué)生信息管理系統(tǒng),使之能提供以下功能:1)系統(tǒng)以菜單方式工作2)學(xué)生信息錄入功能(學(xué)生信息用文件保存)一ー輸入3)學(xué)生信息瀏覽功能一ー輸出4)排序功能5)按學(xué)號(hào)查詢(xún)6)按姓名查詢(xún)(可選)7)學(xué)生信息的刪除與修改(可選項(xiàng))題目34題目:學(xué)生選修課程系統(tǒng)設(shè)計(jì)假定有n門(mén)課程,每門(mén)課程有課程編號(hào),課程名稱(chēng),課程性質(zhì),總學(xué)時(shí),授課學(xué)時(shí),實(shí)驗(yàn)或上機(jī)學(xué)時(shí),學(xué)分,開(kāi)課學(xué)期等信息,學(xué)生可按要求(如總學(xué)分不得少于60)自由選課。試設(shè)計(jì)??選修課程系統(tǒng),使之能提供以下功能:1)系統(tǒng)以菜單方式工作

2)課程信息錄入功能(課程信息用文件保存)ーー輸入3)課程信息瀏覽功能ーー輸出4)査詢(xún)功能:(至少ーー種査詢(xún)方式) 算法5)按學(xué)分查詢(xún)6)按課程性質(zhì)查詢(xún)7)學(xué)生選修課程(可選項(xiàng))題目35題目:銷(xiāo)售管理系統(tǒng)某公司有四個(gè)銷(xiāo)售員(編號(hào):-4),負(fù)責(zé)銷(xiāo)售五種產(chǎn)品(編號(hào):1-5)。每個(gè)銷(xiāo)售員都將當(dāng)天出售的每種產(chǎn)品各寫(xiě)一張便條交上來(lái)。每張便條包含內(nèi)容:1)銷(xiāo)售員的代號(hào)2)產(chǎn)品的代號(hào)3)這種產(chǎn)品的當(dāng)天的銷(xiāo)售額每位銷(xiāo)售員每天可能上繳0-5張便條。假設(shè),收集到了上個(gè)月的所有便條,編寫(xiě)ー個(gè)處理系統(tǒng),讀取上個(gè)月的銷(xiāo)售情況(自己設(shè)定),進(jìn)行如下處理。1)計(jì)算上個(gè)月每個(gè)人每種產(chǎn)品的銷(xiāo)售額。2)按銷(xiāo)售額對(duì)銷(xiāo)售員進(jìn)行排序,輸出排序結(jié)果(銷(xiāo)售員代號(hào))3)統(tǒng)計(jì)每種產(chǎn)品的總銷(xiāo)售額,對(duì)這些產(chǎn)品按從高到底的順序,輸出排序結(jié)果(需輸出產(chǎn)品的代號(hào)和銷(xiāo)售額)4)輸出統(tǒng)計(jì)報(bào)表產(chǎn)品代號(hào)2345銷(xiāo)售之和產(chǎn)品代號(hào)2345銷(xiāo)售之和總和銷(xiāo)售員代號(hào) 11234每種產(chǎn)品之和題目37題目:采用C語(yǔ)言完成直齒圓柱齒輪參數(shù)化設(shè)計(jì)繪制要求:參閱機(jī)械設(shè)計(jì)教材完成相關(guān)計(jì)算工作。附錄A任務(wù)書(shū)模板沈陽(yáng)理工大學(xué)學(xué)院計(jì)算機(jī)程序訓(xùn)練任務(wù)書(shū)學(xué)生姓名 班級(jí) 學(xué)號(hào)設(shè)計(jì)題目具體內(nèi)容-- 設(shè)計(jì)要求按各個(gè)題目要求寫(xiě)二.技術(shù)要求.按照給定題目獨(dú)立設(shè)計(jì)程序,上機(jī)調(diào)試通過(guò)。.寫(xiě)出設(shè)計(jì)報(bào)告提交報(bào)告的內(nèi)容如下:1)題目?jī)?nèi)容的描述2)應(yīng)用程序功能的詳細(xì)說(shuō)明3)輸入數(shù)據(jù)類(lèi)型、格式和內(nèi)容限制;4)主要模塊的算法描述-以程序流程圖的方式給出ー簡(jiǎn)要的語(yǔ)言描述5)結(jié)束語(yǔ)6)程序的源代碼清單7)報(bào)告的字?jǐn)?shù),不算源代碼清單不少于4頁(yè)按規(guī)定的模板封面輸出,不準(zhǔn)自定義封面格式提交報(bào)告的格式如下:1)正文宋體小四號(hào)字2)每個(gè)自然段開(kāi)始空兩格.3)文中英文用新羅馬(timenewroman),四號(hào)4)源程序清單用英文新羅馬五號(hào)5)提交報(bào)告封面使用《沈陽(yáng)理工大學(xué)課程設(shè)計(jì)(論文)》專(zhuān)用封面注:對(duì)于程序中未能實(shí)現(xiàn)的部分需要加以說(shuō)明。對(duì)于程序中所參考的部分代碼需要加以聲明,并說(shuō)明出處。三.時(shí)間安排.接到題目后用課余時(shí)間設(shè)計(jì)程序,.第16—17周上機(jī)調(diào)試通過(guò)后,答辯,交報(bào)告(具體時(shí)間由各任課教師決定)。附錄B計(jì)算機(jī)程序訓(xùn)練設(shè)計(jì)報(bào)告(范例)目的:計(jì)算機(jī)程序設(shè)計(jì)訓(xùn)練是學(xué)習(xí)完《計(jì)算機(jī)程序設(shè)計(jì)》課程后進(jìn)行的一次全面的綜合性上機(jī)實(shí)驗(yàn)。其H的在于為學(xué)生提供了一個(gè)既動(dòng)手又動(dòng)腦,獨(dú)立實(shí)踐的機(jī)會(huì),將課本上的理論知識(shí)和實(shí)際有機(jī)的結(jié)合起來(lái),鍛煉學(xué)生的分析解決實(shí)際問(wèn)題的能力。提髙學(xué)生適應(yīng)實(shí)際,實(shí)踐編程的能力。內(nèi)容和要求:用C語(yǔ)言作為工具制作一個(gè)小型系統(tǒng)(具體內(nèi)容詳見(jiàn)附件上的題目)。所設(shè)計(jì)的系統(tǒng)應(yīng)包含輸入輸出、查詢(xún)等基本功能。根據(jù)課程設(shè)計(jì)1周時(shí)間的安排選擇適當(dāng)大小的設(shè)計(jì)課題,根據(jù)題H的基本需求,畫(huà)出流程圖,編寫(xiě)程序,并寫(xiě)出詳細(xì)的設(shè)計(jì)說(shuō)明書(shū)。最后上機(jī)調(diào)試通過(guò),并進(jìn)行驗(yàn)收,交上機(jī)報(bào)告和程序的原代碼。實(shí)驗(yàn)報(bào)告包含內(nèi)容一、題目編寫(xiě)?個(gè)通訊錄管理系統(tǒng)。二、問(wèn)題描述:addressbook.txt中按姓名順序存儲(chǔ)聯(lián)系人信息,聯(lián)系人信息包括姓名、單位、住宅電話、手機(jī)、電子郵件、通訊地址。本系統(tǒng)應(yīng)完成以下幾方面的功能:(1)讀入信息:從addressbook,txt中的聯(lián)系人信息導(dǎo)入鏈表中。(2)輸入新聯(lián)系人:從鍵盤(pán)輸入新的聯(lián)系人,并將它插入到鏈表的相應(yīng)位置。(3)顯示信息:顯示所有通訊錄里的條目。(4)查詢(xún):在文件中根據(jù)姓名査詢(xún)出聯(lián)系人的信息(5)存盤(pán):將鏈表中的信息寫(xiě)入addressbook,txt中。三、系統(tǒng)設(shè)計(jì)說(shuō)明(一)系統(tǒng)功能分析:1、系統(tǒng)用到的數(shù)據(jù)類(lèi)型程序設(shè)計(jì)ー?般由兩部分組成:算法和數(shù)據(jù)結(jié)構(gòu),合理地選擇和實(shí)現(xiàn)一個(gè)數(shù)據(jù)結(jié)構(gòu)和處理這些數(shù)據(jù)結(jié)構(gòu)具有同樣的重要性。在通訊錄管理程序中,由于預(yù)計(jì)記錄數(shù)相對(duì)于ー個(gè)單位的學(xué)生人數(shù)或職工人數(shù)來(lái)說(shuō)不會(huì)太大,除了能夠增加、保存外,更多的情況是查詢(xún),所以用靜態(tài)數(shù)組保存數(shù)據(jù),實(shí)現(xiàn)查詢(xún)。主要包括如下:^include<stdio.h>^include<malloc.h>〃得到指向大小為Size的內(nèi)存區(qū)域的首字節(jié)的指針〃ttinclude<string.h>^include<stdlib.h>〃標(biāo)準(zhǔn)庫(kù)函數(shù)〃^defineNULL0#defineLENsizeof(structtxlproject)〃計(jì)算字節(jié)〃intn;structtxlprojectcharname[100];charwork[100];charhandset[100];charemail[100];charaddress[100];structtxlproject*next;);structtxlproject*shifang(structtxlproject*head);/Z釋放內(nèi)存函數(shù)聲明2、main。主函數(shù)程序采用模塊化設(shè)計(jì),主函數(shù)程序的入口,各模塊獨(dú)立,可分塊調(diào)試,均由主函數(shù)控制調(diào)用。控制功能的實(shí)現(xiàn)通過(guò)循環(huán)執(zhí)行ー個(gè)開(kāi)關(guān)語(yǔ)句,該語(yǔ)句的條件值是通過(guò)調(diào)用主菜單得到的返回值(head),根據(jù)該值,調(diào)用相應(yīng)得各功能函數(shù)。*xianshi()通訊錄建立好以后,更頻繁的操作是顯示和查找記錄,本函數(shù)實(shí)現(xiàn)所有記錄功能。。4、?shifang()釋放函數(shù)為了內(nèi)存塊的合理利用,用釋放函數(shù)可以使內(nèi)存塊多次利用,而不會(huì)浪費(fèi)。5、printfO輸出函數(shù)直接利用輸出函數(shù)printf輸出字符串,在屏幕上顯示ー個(gè)菜單,并顯示ー個(gè)提示輸入選項(xiàng)。6,*chazhao()查找記錄查找指定姓名的紀(jì)錄,采用順序查找法。首先輸入要査找的姓名,然后順序查找結(jié)點(diǎn),如果沒(méi)有找到,則輸出沒(méi)有找到信息,否則,顯示找到的紀(jì)錄信息。因?yàn)槌绦蚨啻斡玫搅藮苏液惋@示記錄,所以編寫(xiě)了一個(gè)find。函數(shù),專(zhuān)門(mén)進(jìn)行查找。8、save。文件寫(xiě)入函數(shù)前面講到的數(shù)據(jù)輸入和輸出是以中端為對(duì)象的,當(dāng)程序關(guān)閉后,數(shù)據(jù)也丟失了,所以為了能隨時(shí)查閱數(shù)據(jù),必須將數(shù)據(jù)輸出到磁盤(pán)文件上保存起來(lái),使用時(shí)再?gòu)拇疟P(pán)中讀入到內(nèi)存中,這就用到了磁盤(pán)文件的讀寫(xiě)操作。*load()從文件中讀取記錄數(shù)據(jù)一旦輸入保存到磁盤(pán)文件后,更多的操作是將數(shù)據(jù)從文件讀入內(nèi)存,進(jìn)行顯示、查找等各項(xiàng)操作。將事先保存的紀(jì)錄文件addressbook,txt按rb方式打開(kāi),輸入目標(biāo)文件名,然后利用文件格式讀寫(xiě)函數(shù)將源文件中的信息寫(xiě)到目標(biāo)文件中。?paixu()排序按名字的首字母的大小排序。11、?insert()增加函數(shù)隨時(shí)增加需要的通訊錄,并實(shí)現(xiàn)保存。(二)系統(tǒng)包括的功能模塊,模塊功能描述,各模塊間的層次結(jié)構(gòu)(即相互.調(diào)用關(guān)系)以及

模塊之間的信息交換問(wèn)題。1、本程序是?個(gè)簡(jiǎn)單的通訊管理系統(tǒng)。2、程序?qū)崿F(xiàn)簡(jiǎn)單的如下功能:創(chuàng)建通訊錄,按姓名排序,綜合操作,保存,打開(kāi),退出。3、創(chuàng)建通訊錄包括創(chuàng)建姓名、職業(yè)、手機(jī)、email,通訊地址。如圖顯示:功能流程圖(三)算法設(shè)計(jì)1、創(chuàng)建通訊錄=? 程序說(shuō)明 *=*=?請(qǐng)及時(shí)保存創(chuàng)建完畢的通訊錄內(nèi)容! *=****1創(chuàng)建通訊錄*******2按名字排序*******3綜合操作*******4保存****請(qǐng)輸入職業(yè):學(xué)生請(qǐng)輸入手機(jī)輸入電子郵件:zhuming562l@請(qǐng)輸入通訊地址:浙江工商大學(xué)請(qǐng)輸入姓名:0本通訊錄現(xiàn)在共有3人:姓名ーー職業(yè) 手機(jī)ー——Emai1 通訊地址==金增強(qiáng) 學(xué)生大學(xué)==髙參 學(xué)生學(xué)==金增強(qiáng) 學(xué)生大學(xué)==髙參 學(xué)生學(xué)==朱明 學(xué)生大學(xué)gaocan569@ 浙江工商大zhuming5621@浙江工商

***1創(chuàng)建通訊錄*******2按名字排序*******3綜合操作*******4保存*******5打開(kāi)*******6退出****請(qǐng)輸入您選擇的操作:4請(qǐng)輸入保存后的文件名:address.txt保存完畢!本通訊錄現(xiàn)在共有3人: 姓名 職業(yè) 手機(jī) Email- 通訊地址jin86980743@浙江工商==金增強(qiáng)學(xué)生大學(xué)==高參學(xué)生gaocan569@浙江工商大學(xué)==朱明學(xué)生zhuming5621@浙江工商大學(xué)***1創(chuàng)建通訊錄*******2按名字排序*******3綜合操作*******4保存*******5打開(kāi)*******6退出****淸輸入您選擇的操作:四、數(shù)據(jù)流程圖五、程序源代碼ttinclude<stdio.h>ttinclude<malloc.h>〃得到指向大小為Size的內(nèi)存區(qū)域的首字節(jié)的指針〃#include<string.h>^include<stdlib.h>〃標(biāo)準(zhǔn)庫(kù)函數(shù)〃#defineNULL0^defineLENsizeof(structtxlproject)〃計(jì)算字節(jié)〃intn;structtxlproject{charname[100];charwork[100];charhandset[100];charemail[100];charaddress[100];structtxlproject*next;};structtxlproject*shifang(structtxlproject*head);/Z釋放內(nèi)存函數(shù)聲明//////////////Z創(chuàng)建函數(shù)〃〃〃“〃〃〃〃〃〃〃〃/structtxlproject*creat(void)(structtxlproject*head,*pl,*p2;charname[100];n=0;pl=(structtxlproject*)malloc(LEN);p2=pl; 〃強(qiáng)制內(nèi)存轉(zhuǎn)換〃printf("請(qǐng)輸入通訊錄的內(nèi)容!\n姓名輸入為〇時(shí)表示創(chuàng)建完畢!\n〃);printf(”請(qǐng)輸入姓名:");gets(name);if(strcmp(name,“〇')!二0)(strcpy(pl-)name,name);printf("請(qǐng)輸入職業(yè):“); gets(pl->work);printf("請(qǐng)輸入手機(jī):"); gets(pl->handset);printf("請(qǐng)輸入電子郵件:");gets(pl->email);printf("請(qǐng)輸入通訊地址:");gets(pl->address);head=NULL;while(l)n=n+l;if(n==l)head=pl;elsep2->next=pl;p2=pl;printf(”請(qǐng)輸入姓名:");gets(name);if(strcmp(name,"0")=0)(break;}else(pl=(structtxlproject*)malloc(LEN);strcpy(pl->name,name);printf(”請(qǐng)輸入職業(yè):");gets(pl->work);printf("請(qǐng)輸入手機(jī):");gets(pl->handset);printf("請(qǐng)輸入電子郵件:");gets(pl->email);printf("請(qǐng)輸入通訊地址:");gets(pl->address);}.)p2ー〉next=NULL;return(head);}else{return0;))////////////////Z輸出函數(shù)〃”〃〃〃〃〃〃〃/voidprint(structtxlproject*head)(structtxlproject*p;if(head!=NULL)(p二head;printf("本通訊錄現(xiàn)在共有%d人:、n",n);printf(" 姓名 職業(yè) 手機(jī) Emai1 通訊地址、n");pr-inil'(================================'nz/);doprintf(*==%s,p->name);printf("つ;TOC\o"1-5"\h\zprintf("如”,p->work);printf(" ");printf("%s",p->handset);printf(" ");printf("%s",p->emai1);printf(" ");printf("%s",p->address);printf(" \n");p=p->next;}while(p!=NULL);printf("================================\〇;elseprintf("通訊錄為空,無(wú)法輸出!'n");)////////////////////增加函數(shù)〃〃〃〃〃〃“〃〃〃〃〃/structtxlproject*insert(structtxlproject*head)(structtxlproject*p0,*pl,*p2;charname[100];pl=head;printf(〃請(qǐng)輸入增加的內(nèi)容:'n");printf(〃請(qǐng)輸入姓名:");gets(name);if(strcmp(name,"0")=0){printf("姓名不能為〇,增加失敗!'n");return(head);)else(p0=(structtxlproject*)malloc(LEN);strcpy(pO->name,name);printf("請(qǐng)輸入職業(yè):");gets(pO->work);printf("請(qǐng)輸入手機(jī):");gets(pO->handset);printf("請(qǐng)輸入電子郵件:");gets(p0ー>email);printf(〃請(qǐng)輸入通訊地址:");gets(pO->address);n=n+l;if(head==NULL)(head=pO;pO->next=NULL;return(head);)else(while(strcmp(pO->name,plー〉name)>0&&(pl->next!=NULL))(p2=pl;pl=pl-〉next;)if(strcmp(pO->name,plー〉name)く0||strcmp(pO-〉name,pl-〉name)==0){if(head==pl)(head=pO;Ielse(p2ー〉next=pO;)pO-〉next=pl;)else(pl-〉next二pO;pOー〉next二NULL;)return(head);///////////////Z顯示函數(shù)〃”〃〃〃〃〃〃〃〃/structtxlproject*xianshi(structtxlproject*head)structtxlproject*pl,*p2;charname[100];intm;if(head==NULL){printf("通訊錄為空,無(wú)法顯示!\n");return(head);}pl=head;m=0;printf(〃請(qǐng)輸入需要顯示人的姓名:“);gets(name);while(pl!=NULL)(whi1e((strcmp(p1->name,name))!=0&&plー〉next!=NULL)(p2=pl;pl=pl->next;}if(strcmp(pl->name,name)==0){m++;printf("%s的通訊內(nèi)容如下:'n",name);printf(" 姓名 職業(yè) 手機(jī) Email 通訊地址'n");printf(*=========-=—==========—======\n,z);printf("== pl->name);printf("つ;TOC\o"1-5"\h\zprintf('版”,pl->work);printf(" ");printf("%s",pl->handset);printf(" ");printf("%s",pl->email);printf(" ");printf("%s",pl->address);printf(" \n");printf("=================================\n");)pl=pl->next;if(m=0)printf("此人未在本通訊錄中!\n");return(head);}///////////////排序函數(shù)〃〃〃〃“〃〃〃〃〃/structtxlproject*paixu(structtxlproject*head)(structtxlproject*pl,*p2;inti,j;structtxlprojectl(charname[100];charwork[100];charhandset[100];charemai1[100];charaddress[100];);structtxlprojectlpx[200];structtxlprojectltemp;if(head==NULL){printf("通訊錄為空,無(wú)法排序!\n");return(head);}pl=head;for(i=0;i<n,pl!=NULL;i++)(strcpy(px[i].name,pl-ノname);strcpy(px[i].work,pl->work);strcpy(px[i].handset,pl->handset);strcpy(px[i].email,pl->email);strcpy(px[i].address,pl->address);p2=pl;pl二pl-ノnext;head=shifang(head);for(j=0;j<n-l;j++)for(i=j+l;i<n;i++)(if(strcmp(px[i].name,px[j].name)<0)(temp=px[i];px[i]=px[j];px[j]=temp;printf(〃按姓名排序后為:\n〃);print(head);return(head);/////////////姓名查找函數(shù)〃〃〃〃〃〃〃〃“〃/structtxlproject*chazhao(structtxlproject*head)(structtxlproject*pl,*p2;intm;charname[100];if(head==NULL)printf("通訊錄為空,無(wú)法分類(lèi)查找!\n〃);return(head);Ipl=head;printf("********************\n");printf(〃**請(qǐng)輸入需要查找的姓名**\n");printf("********************\n");m=0;gets(name);while(pl!=NULL)while(strcmp(pl->name,name)!=0&&pl->next!=NULL)p2=pl;pl=pl->next;)if(strcmp(pl->name,name)ニニ〇)(m++;printf("你查找的內(nèi)容是:'n");printf("+++++++++++++++++++++++++++++++++++\n");printf(*++%s%s%s %s %s\n*,pl->name,pl->work,pl->handset,pl->emai1,pl->address);printf("+++++++++++++++++++++++++++++++++++\n");}pl二pl->next;if(mニニ0)(printf("此人未在本通訊錄中!\n");.)break;}return(head);}////////////Z 釋放內(nèi)存函數(shù) 〃〃〃〃〃“〃〃/structtxlproject*shifang(structtxlproject*head)(structtxlproject*pl;while(head!=NULL){pl二head;head二head-〉next;free(pl);return(head);///////////// 文件寫(xiě)入函數(shù) 〃〃〃〃〃〃“〃〃〃voidsave(structtxlproject*head)(FILE*fp;structtxlproject*pl;chartong[100];if(head==NULL)(printf("通訊錄為空,無(wú)法存儲(chǔ)!\n");return;}printf(”請(qǐng)輸入保存后的文件名:“);gets(tong);fp=fopen("(tong).txt","w");if(fpニニNULL)(printf("cannotopenfile\n");return;}pl二head;fprintf(fp,"姓名職業(yè)手機(jī)Email通訊地址、n");for(;pl!=NULL;){fprintf(fp,"%s%s%s %s *s\n",plー〉name,pl->work,plー)handset,pl->email,pi-ノaddress);pl=pl->next;}printf("保存完畢!\n");fclose(fp);}//////////////// 文件讀出函數(shù) 〃〃〃〃〃“〃〃〃〃structtxlproject*load(structtxlproject*head)(FILE*fp;chartong[100];structtxlproject*pl,*p2;printf(〃請(qǐng)輸入要輸出的文件名:〃);gets(tong);fp=fopen(*(tong).txt","r");if(fp==NULL)(printf(〃此通訊錄名不存在,無(wú)法輸出!、n");return(head);)else(head=shifang(head);}pl=(structtxlproject*)malloc(LEN);fscanf(fp,"z%s%s%s%s%s",&pl->name,&pl->work,&pl->handset,&pl->email,&plー〉address);if(feof(fp)!=0){printf("文件為空,無(wú)法打開(kāi)!\n");return(head);}else(rewind(fp);p2=pl;head=pl;n=0;while(feof(fp)==0){fscanf(fp,"%s%s%s%s%s*,&plー〉name,&pl-〉work,&plー〉handset,&pl-〉email,&plー〉address);if(feof(fp)!=0)break;p2->next=pl;p2=pl;pl=(structtxlproject*)malloc(LEN);n=n+l;p2->next=NULL;pl=head;head=head->next;n=n-1;free(pl);print(head);printf("打開(kāi)完畢!\n");return(head);)fclose(fp);}/////////////////////////////////// 綜合操作函數(shù)//////////////////////structtxlproject*zonghe(structtxlproject*head)charnum[10J;while(l)printf("*********************\n");printf("***1姓名查找****\n〃);printf("***2單個(gè)顯示****\n");printf('***3增加 ****\n");printf("***4退出 ****\n");printf("請(qǐng)輸入您選擇的操作:〃);gets(num);switch(*num)〃姓名查找head=chazhao(head);〃姓名查找print(head);}break;〃顯示head=xianshi(head);〃顯示break;case,3:(head=insert(head); 〃增加print(head);}break;case'4':break;default:printf(〃操作錯(cuò)誤,此項(xiàng)不存在!'n〃);break;}if(strcmp(num,"6")=0)break;}return(head);)////////////////主函數(shù)〃〃〃〃〃〃〃〃〃“〃/voidmain()(structtxlproject*head;head二NULL;charnum[10];printf("?二? 程序說(shuō)明 *=*\n");printf(〃?二?請(qǐng)及時(shí)保存創(chuàng)建完畢的通訊錄內(nèi)容! ?二?'n");while(l){printf("************************'n");printf("*** !創(chuàng)建通訊錄 ****、べ);printf("*** 2按名字排序 ?***\べ);printf(〃***3綜合操作****\n^)printf(z/***4保存****\n/z)printf(z/***5打開(kāi)****\n*)printf(zz***6退出****\n〃)printf(z/************************\n<z);printf("請(qǐng)輸入您選擇的操作:つ;gets(num);switch(*num)(case'r:(if(head==NULL){head=creat(); 〃創(chuàng)建print(head);)else(head=shifang(head):head=creat(); 〃重新創(chuàng)建print(head);})break;case'2’:{head=paixu(head); //排序)break;casej':(head=zonghe(head): 〃綜合操作)break;case'4’:〃文件保存save(head);〃文件保存break;case’51:(head=load(head); 〃文件輸出}break;case'6':head=shifang(head);break;default:printf(〃操作錯(cuò)誤,此項(xiàng)不存在!'n〃);break;)if(strcmp(num,"6")==0)break;附錄CTurboC中的部分專(zhuān)用庫(kù)函數(shù).字符屏幕控制函數(shù)字符屏幕控制函數(shù)為用戶設(shè)計(jì)并實(shí)現(xiàn)美觀清晰的顯示畫(huà)面、方便地控制PC的字符顯示提供了支持。字符屏幕控制函數(shù)提供了顯示顏色、顯示方式以及向固定位置輸出等功能。在使用字符屏幕控制函數(shù)時(shí),應(yīng)包含頭文件conio.h函數(shù)名 函數(shù)類(lèi)型和參數(shù)類(lèi)型 功能 返回值clreolVoidclreol(void):在當(dāng)前文本窗口中將從光標(biāo)位置到行末的所有字符清除,光標(biāo)保持不動(dòng)。無(wú)clrscrVoidclrscr(void);清除當(dāng)前窗ロ,并將光標(biāo)移至左上角,既位置(1,1)。無(wú)dellineVoiddelline(void);刪除光標(biāo)所在的那一行,并把以下各行上移?行。它在當(dāng)前激活的文本窗口中操作。無(wú)gettextIntgettext(left,top,right,bottom,destin);intleft,top,right,bottom;void*destin;把屏幕上由left,top,right,和bottom定義的矩形區(qū)域的內(nèi)容存入由destin所指的內(nèi)存區(qū)域。成功,返回1;失敗,返冋〇。gettextinfoVoid gettextinfo(inforec)Structtext_info*inforec;將當(dāng)前文本顯示信息填入inforec所指的text_info結(jié)構(gòu)中。text_info結(jié)構(gòu)在CONIO.H中定義,其結(jié)構(gòu)如下:structtext_info{unsignedcharwinleft;/?左窗口坐標(biāo)?/unsignedcharwintop;/?頂窗口坐標(biāo)?/unsignedcharwinright;/?右窗口坐標(biāo)*/unsignedcharwinbottom;/?底窗口坐標(biāo)*/unsignedcharattribute;/?正文屬性*/unsignedcharnormatter;/?正常屬性?/unsignedcharcurrmode;/*BW40,BW80,C40,orC80*/unsignedcharscreenhight;/*由底向上*/unsignedcharscreenwidth;/*從左至リ右?/unsignedcharcurx;/?當(dāng)前窗ロX坐標(biāo)*/無(wú)

unsignedcharcury;/?當(dāng)前窗ロY坐標(biāo)ホ/gotoxyVoidgotoxy(x,y);Intx,y;在當(dāng)前文本窗口中移動(dòng)光標(biāo)到指定的位置,如果坐標(biāo)無(wú)效,則對(duì)gotoxy的調(diào)用不起作用。無(wú)highvide0Voidhighvideo(void);通過(guò)設(shè)置當(dāng)前選擇的前景顏色的高亮度位來(lái)選擇高亮度字符。函數(shù)名函數(shù)類(lèi)型和參數(shù)類(lèi)型功能返回值inslinevoidinsline(void);用當(dāng)前文本背景顏色,在文本窗口的光標(biāo)位置處插入ー空行。空行下面的所有各行都ド移一行,底行滾出窗口底部。無(wú)1owvideoVoidlowideo(void);通過(guò)清除當(dāng)前所選擇的前景顏色高度位來(lái)選擇低亮度字符。無(wú)movetextintmovetext(left,top,right,bottom,newleft,newtop);intleft,top,right,bottom:intnewleft,newtop;把由left,top,right,bottom所定義的屏幕矩形區(qū)的內(nèi)容復(fù)制到?個(gè)新的具有相同尺寸的矩形區(qū)。新矩形區(qū)的左上角位置由(newleft,newtop)確定。所有坐標(biāo)均是絕對(duì)屏幕坐標(biāo)。成功,返回1:失敗,返回0。normvideovoidnormvideo(void);在程序后動(dòng)后,通過(guò)將正文屬性(前景和背景)返回它所含的值來(lái)選擇標(biāo)準(zhǔn)字符。無(wú)puttextintputtext(left,top,right,bottom,source);intleft,top;intright,bottom;void*source;將source指向的內(nèi)存區(qū)域的內(nèi)容寫(xiě)入由left,top,right和bottom定義的扉幕上矩形區(qū),所有的坐標(biāo)都是絕對(duì)的屏幕坐標(biāo)。成功,返回1;失敗,返回〇。對(duì)textattr的?次調(diào)用就可以設(shè)置前景和背景顏色。該函數(shù)不影響當(dāng)前在屏幕上的任何字符,只影響那些在該函數(shù)被調(diào)用后由直接控制臺(tái)輸出函數(shù)顯示的字符。

textattr

溫馨提示

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