課程設(shè)計文檔_第1頁
課程設(shè)計文檔_第2頁
課程設(shè)計文檔_第3頁
課程設(shè)計文檔_第4頁
課程設(shè)計文檔_第5頁
已閱讀5頁,還剩8頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

·《C語言基礎(chǔ)》課程設(shè)計(一)基本要求題目要求:基本題共30題,任選其中的20道題。提交實驗報告(可手寫、可電子版打印)。【程序1】1

題目:任意輸入三個整數(shù),編程實現(xiàn)對這三個數(shù)由小到大進行排序,并將排序后的結(jié)果顯示在屏幕上。

1.程序分析:兩個數(shù)一組使用if進行條件判斷,如果逆序則使用中間變量對其進行交換。

2.程序源代碼:【程序2】7

題目:猴子第一天摘下若干個桃子,當即吃了一半,還不過癮,又多吃了一個。第二天早上又將第一天剩下的桃子吃掉一半,有多吃了一個。以后每天早上都吃了前一天剩下的一半零一個。到第10天早上想在吃時,發(fā)現(xiàn)只剩下一個桃子了。編寫程序求猴子第一天共摘了多少個桃子。

1.程序分析:先找出變量間的關(guān)系,即第二天的桃子數(shù)加1的2倍等于第一天的桃子數(shù)。利用循環(huán),即求出桃子總數(shù)。

2.程序源代碼:【程序3】3

題目:求100到200之間的全部素數(shù),打印輸出。

1.程序分析:素數(shù)是大于1的整數(shù),除了能被自身和1整除外,不能被其他正整數(shù)整除。因此判斷素數(shù)就是從2到根號i進行循環(huán),判斷這個數(shù)能否被i整除,若能整除則說明不是素數(shù),轉(zhuǎn)而判斷下一個。

2.程序源代碼:【程序4】

題目:編程實現(xiàn)十進制數(shù)轉(zhuǎn)化為二進制數(shù),即從鍵盤輸入一個0到32767的十進制數(shù),輸出其對應的二進制數(shù)。

1.程序分析:十進制數(shù)轉(zhuǎn)換為二進制數(shù)的過程就是不斷對2取余,取余后再除以二繼續(xù)取余,最后將前面取得的余數(shù)序列倒序進行輸出,即是該數(shù)對應的二進制數(shù)。其中,每次的余數(shù)可放在一個整形數(shù)組中,方便進行倒序輸出。

2.程序源代碼:【程序5】

題目:一個球從100米高度自由落下,每次落地后反彈回原高度的一半,再落下。編程求它在第十次落地時,共運動了多少米?第十次反彈多高?

1.程序分析:典型的循環(huán)問題,設(shè)置兩個變量分別記錄小球反彈的高度和當前運動的距離,循環(huán)十次即得到結(jié)果。

2.程序源代碼:【程序6】

題目:從鍵盤上輸入一個表示年份的整數(shù),判斷該年是否是閏年,輸出結(jié)果顯示在屏幕上。

1.程序分析:計算閏年的方法用自然語言描述如下:如果某年能被4整除但不能被100整除,或者概念能被400整除則該年為閏年。本題目主要是考慮if語句中的邏輯表達式的正確描述。

2.程序源代碼:【程序7】

題目:水仙花數(shù)指一個三位數(shù),其各位數(shù)字的立方和等于該數(shù)本身,例如153=13+53+33。編程求出所有的水仙花數(shù)。

1.程序分析:用窮舉法對100到999之間的數(shù)字進行數(shù)位拆分,然后通過一個if語句進行判斷,將滿足水仙花數(shù)條件的數(shù)打印輸出即可。

2.程序源代碼:【程序8】11

題目:編程實現(xiàn)從鍵盤輸入兩個正整數(shù),求它們的最大公約數(shù)和最小公倍數(shù)并打印在屏幕上。

1.程序分析:用輾轉(zhuǎn)相除法求出兩數(shù)的最大公約數(shù),然后用兩數(shù)的乘積除以最大公約數(shù)即可得到兩數(shù)的最小公倍數(shù)。

2.程序源代碼:【程序9】

題目:編程求所有滿足abcd=(ab+cd)2的四位數(shù),即將四位數(shù)分為兩段,使之相加求和后平方,結(jié)果等于自身。

1.程序分析:用窮舉法對1000到9999的所有四位數(shù)逐個分解為前后兩個數(shù)字,再對其進行判斷,看是否滿足要求,若滿足則打印輸出,否則進行下次循環(huán)。

2.程序源代碼:【程序10】

題目:用選擇排序法對一組數(shù)據(jù)由小到大進行排序,數(shù)據(jù)分別為526、36、2、369、56、45、78、92、125、52。

1.程序分析:選擇排序法是從待排序的區(qū)間中經(jīng)過比較,選出最小的數(shù)存放在a[0]中(通過交換),再從剩余的未排序的9個數(shù)中再選出最小的數(shù)存放于a[1]中,以此類推,經(jīng)過9趟選擇和交換則排序完成。要注意它與冒泡排序的不同,冒泡排序是每趟排序邊比較邊交換,而選擇排序是一趟比較完成后僅交換一次。

2.程序源代碼:【程序11】

題目:小明買橙子,每個橙子1.8元,小明第一天買1個柚子,第二天開始每天買前一天的三倍,直到購買的橙子個數(shù)為不超過100的最大值,編程求小明每天平均花多少錢。

1.程序分析:利用循環(huán)控制最后一天不超過100個橙子,將每天的花銷及天數(shù)累加起來,求得平均值。

2.程序源代碼:【程序12】

題目:變成求出一個整數(shù)的任意次方的最后三位數(shù),即求x^y的最后三位數(shù),其中x和y從鍵盤輸入。

1.程序分析:一個整數(shù)的任意次方很可能產(chǎn)生越界情況,因此要考慮計算結(jié)果是否越界的問題,要避免產(chǎn)生越界問題同時又不使程序結(jié)果產(chǎn)生誤差。

2.程序源代碼:【程序13】

題目:根據(jù)輸入的三角形的三條邊的值,判斷三角形的類型(等邊、等腰、直角、普通、非三角形)并輸出。

1.程序分析:先根據(jù)兩邊之和是否大于第三條邊來判斷是否能夠成三角形,若能構(gòu)成三角形則進一步根據(jù)邊的值判斷是什么類型的三角形。

2.程序源代碼:題目:班里來了個新同學,很喜歡學數(shù)學。同學問他今年多大,他說:“我的年齡的平方是個三位數(shù),立方是個四位數(shù),四次方是個六位數(shù);年齡的三次方和四次方正好用遍0、1、2、3、4、5、6、7、8、9這十個數(shù)字,那么大家猜猜我年齡多大?”1.程序分析:首先考慮年齡的范圍,因為17的四次方是83521,小于六位,22的三次方是10648,大于四位,所以年齡的范圍就確定出來了,即18至21。然后對18到21之間的數(shù)字進行窮舉,分別計算出它們的三次方和四次方,并將結(jié)果的四位數(shù)和六位數(shù)存于數(shù)組中,再對數(shù)組中的這十個數(shù)字進行判斷,看是否0到9每個數(shù)字出現(xiàn)了一次。2.程序源代碼:【程序20】題目:有一個八層教學樓,某時間在樓中上課的學生數(shù)量共有765人,而且恰巧每層的學生數(shù)量都是樓下的兩倍,編程求一樓和八樓的學生人數(shù)。

1.程序分析:窮舉法,對一樓的學生人數(shù)進行窮舉,每次計算出一樓到八樓的所有學生人數(shù),判斷是否等于總學生人數(shù)765。

2.程序源代碼:【程序21】24題目:編程實現(xiàn)任意輸入一行字符(長度不超100),統(tǒng)計其中有多少個單詞并輸出。其中,每兩個單詞之間以空格分隔開,且最后的字符不能為空格。1.程序分析:首先使用gets()函數(shù)將輸入的字符串保存在一個字符數(shù)組中,然后判斷數(shù)組中第一個字符是否為結(jié)束符或空格,如果是則輸出結(jié)果,否則則說明是一串正常字符。利用循環(huán),在遇到結(jié)束符之前,統(tǒng)計空格數(shù)量,空格數(shù)量加一即為單詞數(shù)。2.程序源代碼:【程序22】題目:不使用字符串處理函數(shù)strcpy()來實現(xiàn)字符串的復制。輸入一個字符串,拷貝到另一個字符串中,并打印輸出。1.程序分析:可以使用gets()和puts()進行字符的獲取和輸出。利用循環(huán)依次賦值進行拷貝,另外應注意結(jié)束符的處理。2.程序源代碼:【程序23】題目:統(tǒng)計一個長度為十的整型數(shù)組中,最大數(shù)和次大數(shù)、最小數(shù)和次小數(shù)的值及下標,要求只能使用一次循環(huán),即最多循環(huán)十次。1.程序分析:本題很簡單,要注意題目要求每個數(shù)只能讀取一次。2.程序源代碼:【程序24】題目:已知有兩個長度為5的有序整形數(shù)組(升序排列),編程將其合并為一個長度為10的數(shù)組,使其依然有序。兩數(shù)組中的值為運行時由鍵盤輸入。1.程序分析:兩個數(shù)組進行合并,首先定義出新的大小為10的數(shù)組,然后利用兩數(shù)組的下標進行從前到后循環(huán),每次從兩數(shù)組中挑一個較小的從前到后賦給新數(shù)組,循環(huán)結(jié)束后再把剩下的數(shù)賦值過去,合并完畢。2.程序源代碼:【程序25】題目:strlen()函數(shù)是C函數(shù)庫中求字符串長度的函數(shù),請使用遞歸自己實現(xiàn)這個函數(shù)。1.程序分析:用情況語句比較好,如果第一個字母一樣,則判斷用情況語句或if語句判斷第二個字母。2.程序源代碼:【程序26】題目:假設(shè)有個同學在爬樓梯,他可以一步上1個臺階、2個臺階或3個臺階,問這個同學上n層臺階的樓,總共有幾種走法。1.程序分析:使用遞歸思想,類似于“斐波那契數(shù)列”的規(guī)律。2.程序源代碼:【程序27】題目:使用指針實現(xiàn)兩個字符串的連接,比如兩個字符串“Iam”和“astudent.”,連接后變成“Iamastudent”。1.程序分析:定義一個連接函數(shù)connect(char*a,char*b,char*c),用于將a和b為首元素指針的兩個字符串連接起來,并將首元素地址賦給c。連接操作使用循環(huán),利用指針+1后移操作,分別將指針a和b所指向字符依次賦給c,最后須注意賦予結(jié)束標記。2.程序源代碼:【程序28】題目:寒假馬上要來了,使用typedef定義一個寒假結(jié)構(gòu)體類型,包含以下三個成員變量:放假日期(char[20])、假期天數(shù)(int)、假期備注(char[100])。在主函數(shù)中定義一個該結(jié)構(gòu)體類型的指針,使用malloc()為其動態(tài)分配內(nèi)存,然后實現(xiàn)程序運行時假期的各項信息的輸入和打印輸出,最后使用free()釋放內(nèi)存。1.程序分析:在后面要學習的《數(shù)據(jù)結(jié)構(gòu)》中,這種結(jié)構(gòu)體指針的定義和動態(tài)分配內(nèi)存的方法非常常用,若不熟悉typedef的使用方法,百度一下。2.程序源代碼:【程序29】題目:判斷一個數(shù)是否是數(shù)組中的成員(用二分法查找)已知數(shù)組a中一共有10個有序的整數(shù)(由小到大排列)。現(xiàn)在從鍵盤上輸入一個數(shù),判斷這個數(shù)是否是數(shù)組a中的數(shù),如果是的話,打印出此數(shù)在數(shù)組a中的位置,否則打印“找不到該數(shù)字”。1.程序分析:①設(shè)待查找的數(shù)為k,定義三個變量low、high、mid分別代表查找范圍的頂部、底部和中間位置的數(shù)組下標,初始時low=0,high=9,mid=(low+high)/2,把數(shù)分成以a[mid]為中點的兩段范圍。②判斷k是否等于a[mid],若是,則找到。③若k大于a[mid],則k必在數(shù)組的后半段范圍,舍棄前半段,在a[mid+1]至a[high]中繼續(xù)查找。反之則在a[low]至a[mid-1]的前半段進行查找,重復以上步驟,逐步縮小查找范圍。④當low>high的時候,說明所有數(shù)字均已找遍都未找到想要的值,提示查找失敗信息。2.程序源代碼:【程序30】題目:使用遞歸實現(xiàn)題目29的二分查找。1.程序分析:定義一個遞歸二分查找函數(shù)供主函數(shù)調(diào)用,由于是遞歸進行查找,因此查找數(shù)組、要查找的值、當前查找的范圍low和high都應作為該遞歸函數(shù)的參數(shù)。遞歸函數(shù)的出口有兩個,一個是low>high(說明沒找到),另一個是a[mid]==k(說明找到了),其余情況就是要查找的值落在前半段或后半段,都應遞歸調(diào)用自身,但根據(jù)前半段還是后半段的不同,應設(shè)置不同的low、high參數(shù)值。2.程序源代碼:(二)綜合訓練要求:任選其一。(1)只能使用C語言,源程序要有適當?shù)淖⑨專钩绦蛉菀组喿x(2)綜合類題目采用文本菜單界面,調(diào)用界面和各個功能的操作界面應盡可能清晰美觀!(3)學生可自動增加新功能模塊(視情況可另外加分)(4)寫出課程設(shè)計報告,具體要求見相關(guān)說明文檔1、學生信息管理系統(tǒng)設(shè)計(結(jié)構(gòu)體數(shù)組、函數(shù)、指針、算法、流程結(jié)構(gòu)等的綜合應用)對一個有stuNo個學生的班級,使用該系統(tǒng)實現(xiàn)對班級學生信息的錄入、顯示、查詢、按成績排序、求平均分、信息修改、添加、刪除等操作。功能要求:(1)本系統(tǒng)采用一個結(jié)構(gòu)體數(shù)組來存儲班級所有學生的信息,每個結(jié)構(gòu)包括:學號、姓名、班級和成績。其中班級又是一個結(jié)構(gòu)體,包含專業(yè)名稱和班號。(2)本系統(tǒng)顯示菜單:請選擇菜單:1.信息錄入。學生信息初始化,先詢問要錄入的學生個數(shù),然后交互式從鍵盤輸入所有學生的各項信息。PS:①信息錄入只能做一次,若重復錄入則會提示返回主菜單。②規(guī)定不能有學號重復出現(xiàn),因此錄入時須檢查錄入的學生學號是否有重復,若重復則提示重新輸入,如第二張圖所示。2.顯示全部。從前到后依次打印輸出所有學生的完整信息。3.學生查詢。可根據(jù)學號查詢指定學生信息,若存在則打印信息,否則進行提示。4.成績排序。對所有學生按成績進行由高到低的降序排列,并打印排序結(jié)果。5.平均成績。求出所有學生的平均成績并打印“學生們的平均成績?yōu)椋篨X.XX”。6.信息修改。可修改指定學號學生的所有信息,選擇該菜單后會提示輸入(要修改的)學生的學號,去已有信息中查找,若未找到則提示不存在,返回主菜單,如圖1;若找到該學生則打印該學生信息,并提示輸入修改后的新信息,輸入完畢則提示修改成功。這里也需要注意,修改學生信息時也需要判別是否輸入了與其他學生重復的學號,若有重復則類似于信息錄入時,提示重新輸入,但允許學號和自己修改之前一樣。7.添加學生。班里來了新同學,需要添加新的學生信息。PS:①由于學生信息存于結(jié)構(gòu)體數(shù)組中,有先后次序,因此添加時需輸入要插入的位置,需要對位置進行是否合法的判斷,比如當前只有一個學生王一涵,合法的添加位置只能有1和2,其他位置會報錯并返回主菜單,如圖:②添加新學生信息時也需要判別是否與已有學生的學號重復,如圖:③輸入了正確的位置和正確的學號,則添加成功(可以用顯示全部來驗證),如圖:8.刪除學生。班里有同學轉(zhuǎn)學,需要從信息表中刪除他的信息,為方便起見我們使用學號,而非位置來指定要刪除的學生。選擇菜單后,輸入要刪除的學生學號,若該學生不存在則提示不存在信息并返回主菜單;若存在則在信息表中刪掉他的信息。0.退出系統(tǒng)。退出主菜單,顯示“按任意鍵繼續(xù)…”。2、圖書信息管理系統(tǒng)設(shè)計圖書信息包括:書號、書名、作者名、分類號、出版單位、出版時間、價格等。試設(shè)計一圖書信息管理系統(tǒng),使之能提供以下功能:系統(tǒng)以菜單方式工作圖書信息錄入功能(需保證書號無重復)顯示全部圖書信息圖書信息查詢功能(按書號查詢或者按書名查詢)按出版時間排序功能圖書信息修改功能(需保證書號無重復)圖書信息添加功能(需保證書號無重復)圖書信息刪除功能3、車票管理系統(tǒng)一車站每天有n個發(fā)車班次,每個班次都有一班次號(1、2、3…n),固定的發(fā)車時間,固定的路線(起始站、終點站),大致的行車時間,固定的額定載客量。如班次

發(fā)車時間

起點站

終點站行車時間

額定載量

已定票人數(shù)1

8:00

上海南

杭州

2

45

302

6:30

嘉興

杭州

0.5

40

403

7:00

嘉興

杭州

0.5

40

204

10:00

嘉興

杭州

0.5

40

2…功能要求:用c語言設(shè)計一系統(tǒng),能提供下列服務(wù):(1)錄入班次信息,可不定時地增加班次數(shù)據(jù)。(2)瀏覽班次信息,可顯示出所有班次當前狀總(如果當前系統(tǒng)時間超過了某班次的發(fā)車時間,則顯示“此班已發(fā)出”的提示信息)。(3)查詢路線:可按班次號查詢,可按終點站查詢。(4)班次排序,按發(fā)車時間從早到晚進行排序。(5)修改班次信息,可按班次號對該班次信息進行修改。(6)刪除班次信息,可刪掉不需要的班次。(7)可通過系統(tǒng)進行售票、退票:①當查詢出已定票人數(shù)小于額定載量且當前系統(tǒng)時間小于發(fā)車時間時才能售票,自動更新已售票人數(shù)。②退票時,輸入退票的班次,當本班車未發(fā)出時才能退票,自動更新已售票人數(shù)。4、學生選課系統(tǒng)假定有n門課程,每門課程有課程編號,課程名稱,課程性質(zhì),學時,授課學時,實驗或上機學時,學分,開課學期等信息,學生可按要求(如總學分不得少于15)自由選課。試設(shè)計一個選修課程系統(tǒng),使之能提供以下功能:(1)系統(tǒng)以菜單方式工作(2)課程信息和學生選課信息錄入功能(課程信息可用文件保存)(3)全部課程信息瀏覽功能(4)根據(jù)課程編號、課程名稱查詢功能(5)根據(jù)課程的開課學期進行排序功能(6)統(tǒng)計所有課程總學分、總學時、實驗或上機學時功能(7)添加新課程功能(8)修改課程信息功能(9)刪除課程信息功能(10)學生選課、退課功能5、職工工資管理系統(tǒng)功能

溫馨提示

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

評論

0/150

提交評論