下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、學(xué)院班級學(xué)號姓名目錄1摘要31.1 設(shè)計題目31.2 設(shè)計內(nèi)容31.3 開發(fā)工具31.4 應(yīng)用平臺32詳細(xì)設(shè)計42.1 程序結(jié)構(gòu)42.2 主要功能52.3 函數(shù)實現(xiàn)52.4 開發(fā)日志63程序調(diào)試及運行 73.1 程序運行結(jié)果73.2 程序使用說明173.3 程序開發(fā)總結(jié)174附件(源程序)18/*在后面的文檔編寫中, 請你不要修改各個標(biāo)題的內(nèi)容, 從而確保 報告內(nèi)容和風(fēng)格一致。完成全部內(nèi)容后,你只需要在上面的目錄 上右鍵“更新域”,選擇“只更新頁碼”就可以更新正確的目錄頁 碼。注意:目錄的左邊距為6.5厘米。*/1摘要1.1 設(shè)計題目學(xué)成績管理程序1.2 設(shè)計內(nèi)容為了便于對學(xué)生星系進(jìn)行管理,這
2、里設(shè)計了學(xué)生信息管理程序。該程序主要通過對鏈表的相關(guān)操作運用菜單的形式實現(xiàn)對學(xué)生基本信息的管理。首先用戶要輸入三個學(xué)生的基本信息,程序即據(jù)此建立了一個有三個學(xué)生的鏈表,每個結(jié)點包括學(xué)號、姓名、3門課的成績(英語、數(shù)學(xué)、計算機,其中成績精確到小數(shù)點后兩位)。菜單為:1 .顯示。(即顯示所建立的鏈表及當(dāng)前鏈表內(nèi)容)2 .排序。(即將用戶所輸入的學(xué)生信息按學(xué)號大小對原有鏈表內(nèi)容進(jìn)行排序,并將 經(jīng)排序所產(chǎn)生的新鏈表展示給用戶)3 .插入。(用戶根據(jù)需要可增加原鏈表中學(xué)生的數(shù)量,輸入一個學(xué)生的基本信息, 即將其插入原鏈表中,且新鏈表按學(xué)號有序排列并展現(xiàn)給用戶)4 .查找。(輸入一個學(xué)號,輸出各種成績)5
3、 .刪除。(輸入一個學(xué)號,從鏈表中刪除該學(xué)生,并展示新鏈表)6 .統(tǒng)計。(若按1,則輸入該學(xué)生的學(xué)號統(tǒng)計該學(xué)生的總分及平均分;若按 2,則輸 入課程(1.英語2.數(shù)學(xué)3.計算機)求該門課程的總分及平均分)7 .存盤。(將建立起來的鏈表以文件的形式存儲)8 .讀入。(將原來已將存盤的文件讀入內(nèi)存,進(jìn)行管理)1.3 開發(fā)工具Visual C+ 6.0 和 Win32 。1.4 應(yīng)用平臺Windows XP/Vista 32 位2詳細(xì)設(shè)計2.1程序結(jié)構(gòu)程序的流程:該程序首先定義了一個記錄學(xué)生基本信息的結(jié)構(gòu)體,和全局變量鏈表的頭指針“*head”,自定義了 13個函數(shù),然后是主函數(shù)通過調(diào)用以上自定義函
4、數(shù)來實現(xiàn)程序的功能。這樣做的好處是,在調(diào)用自定義函數(shù) 時不必再對其申明。主函數(shù)第一行首先在程序運行界面中央輸出“歡迎進(jìn)入學(xué)生管理”,接著是輸出“按回車鍵進(jìn)入”(在界面中央),以提醒用戶進(jìn)一步操作程序。按回車鍵后程序執(zhí)行創(chuàng)建鏈表函數(shù)(create。),這時出現(xiàn)界面需要用戶輸入三個學(xué)生的基本信息,按回車鍵后創(chuàng)建成功,同時進(jìn)入while循環(huán)體。該循環(huán)提以“ system("cls") ”開始,作用是在每次循環(huán)結(jié)束進(jìn)入下一次循環(huán)時對上一次循環(huán)的運行結(jié)果進(jìn)行清除, 以保證本次循環(huán)的結(jié)果能清晰展示。該循環(huán)第二行執(zhí)行函數(shù)“ printfmenu ()”,輸出當(dāng)前鏈表內(nèi)容。接著 進(jìn)入菜單選
5、擇界面,此時需輸入數(shù)字(08)進(jìn)行菜單選擇。若輸入8',該循環(huán)結(jié)束;否則繼續(xù)。然后執(zhí)行菜單選擇函數(shù),用戶通過菜單上執(zhí)行不同的操作調(diào)用不同的函數(shù)。執(zhí)行完菜單函數(shù)后,按回車鍵本次 循環(huán)結(jié)束,并進(jìn)入下一次循環(huán)。循環(huán)結(jié)束后,又一次執(zhí)行清屏程序,最后輸出“謝謝使用,愿你開心度過 每一天”字樣,至此整個程序結(jié)束。自定義函數(shù):一、顯示菜單函數(shù):void printfmenu()。用輸出管理菜單:0 .顯示1 .排序2 .插入3 .查找4 .刪除5 .統(tǒng)計6 .存盤7 .讀入8 .結(jié)束二、鏈表輸出函數(shù):void printfform()。用來將已經(jīng)創(chuàng)建鏈表或當(dāng)前所建鏈表進(jìn)行輸出顯示。三、鏈表創(chuàng)建函數(shù):
6、void create。該函數(shù)用來創(chuàng)建一個動態(tài)鏈表,期間需要用戶輸入學(xué)生基本信息。 四、排序函數(shù):void arrange。該函數(shù)用來對所創(chuàng)建的鏈表或當(dāng)前存在的鏈表中的結(jié)構(gòu)體按學(xué)號遞增 排序。排序結(jié)束調(diào)用“鏈表輸出函數(shù)”,將新產(chǎn)生的鏈表進(jìn)行輸出。五、插入函數(shù):void insert().調(diào)用該函數(shù)時,由用戶輸入一個學(xué)生的信息,將產(chǎn)生一個新的結(jié)構(gòu)體, 并將其按學(xué)號插入當(dāng)前鏈表中。調(diào)用鏈表輸出函數(shù),將新鏈表輸出。六、查找函數(shù):void find() o輸入一個學(xué)號,將鏈表中該學(xué)生的信息輸出。若鏈表中無該學(xué)號,則輸出 “未找到”。七、刪除函數(shù):void delet()。輸入一個學(xué)號,將鏈表中該學(xué)號學(xué)
7、生信息刪除,并調(diào)用鏈表輸出函數(shù)將 刪除后的鏈表輸出。若輸入學(xué)號不存在,輸出“未找到”。八、按學(xué)生統(tǒng)計函數(shù): void studentcount()。輸入一個學(xué)號,計算該學(xué)號學(xué)生的總分和平均分并輸出。若學(xué)號不存在,輸出“未找到”九、按科目統(tǒng)計函數(shù):void subjectcount()。輸入一個科目序號(1.英語 2 .數(shù)學(xué)3 .計算機),計算該科目的總分和平均并輸出。十、統(tǒng)計函數(shù):void count()o當(dāng)輸入1,調(diào)用“按學(xué)生統(tǒng)計函數(shù)”;當(dāng)輸入2,調(diào)用“按科目統(tǒng)計函數(shù)”。分別進(jìn)行統(tǒng)計操作。H一、存盤函數(shù):void save()。將鏈表中的內(nèi)容以文件的形式存放在磁盤中。十二、讀入函數(shù):void
8、 read()。將已經(jīng)存盤的文件讀入內(nèi)存,進(jìn)行管理。十三、選擇菜單函數(shù):void menu(char t)。主函數(shù)輸入實參變量't',該函數(shù)通過選擇判斷調(diào)用以上函 數(shù)來實現(xiàn)該程序的管理功能。參數(shù)傳遞:該程序包括主函數(shù)總共有14個函數(shù),只有選擇菜單函數(shù)是有參函數(shù),其他均是無參函數(shù)。選擇菜單函數(shù)運用switch選擇結(jié)構(gòu),形參的傳遞用來選擇執(zhí)行調(diào)用相應(yīng)的菜單功能函數(shù)。如從主函數(shù) 輸入1',主函數(shù)調(diào)用該函數(shù),并把1'傳遞給該函數(shù),該函數(shù)則調(diào)用“排序函數(shù)”執(zhí)行菜單 中的排序操作。2.2主要功能程序功能:1、該程序主要用來對數(shù)量較少的學(xué)生基本信息進(jìn)行管理(初始學(xué)生數(shù)為三)。
9、2、顯示輸入的學(xué)生基本信息。3、對學(xué)生按學(xué)號進(jìn)行排序、,并將信息以鏈表的形式進(jìn)行保存。4、可通過插入操作增加所要處理的學(xué)生信息數(shù)量。5、顯示所要查找的學(xué)生的基本信息。6、刪除不必要的信息。7、統(tǒng)計學(xué)生成績的相關(guān)數(shù)據(jù),總分和平均分。8、將經(jīng)過處理的信息存盤管理。9、以文件的形式將以存盤信息讀入內(nèi)存進(jìn)行管理。原理和方法:1、該程序的要通過對鏈表進(jìn)行操作來實現(xiàn)管理。2、用循環(huán)結(jié)構(gòu)和指針對已存在鏈表輸出顯示,調(diào)用輸出函數(shù)“ printf”。3、排序時先把鏈表中的學(xué)好數(shù)據(jù)存放在一位數(shù)組中,再用選擇排序法對數(shù)組中的元素排序, 最后用while循環(huán)結(jié)構(gòu)把數(shù)組中的元素與結(jié)構(gòu)體逐一配對,從而實現(xiàn)對鏈表的排序。4
10、、先用while找到插入位置,然后是鏈表的插入操作。5、while循環(huán)執(zhí)行查找操作。6、while循環(huán)找到刪除對象,鏈表的刪除操作。7、while循環(huán)找到操作對象,在執(zhí)行相應(yīng)操作。8、文件的存儲。9、文件的讀取。2.3 函數(shù)實現(xiàn)函數(shù)主要運用了 while、do。while、for循環(huán)結(jié)構(gòu),還有選擇排序法。函數(shù)大多為無參類型,自函數(shù)之間 有少量調(diào)用。如排序、插入、刪除、統(tǒng)計等函數(shù)都是較為簡單的函數(shù),只需根據(jù)醫(yī)學(xué)知識稍加修改即可。數(shù)據(jù)結(jié)構(gòu)方面,主要事項是函數(shù)調(diào)用,主函數(shù)調(diào)用菜單函數(shù),菜單函數(shù)又調(diào)用其它類型函數(shù),其他自定義函數(shù)之間也有調(diào)用。2.4 開發(fā)日志關(guān)于該程序的設(shè)計,首先根據(jù)題目的要求考慮實現(xiàn)
11、該函數(shù)所需的函數(shù)??紤]把自定義函數(shù)放在整個程 序的前面,這樣在主函數(shù)調(diào)用時就不必再對其進(jìn)行申明。比如必須的一些基本函數(shù)鏈表輸出函數(shù)、鏈表創(chuàng) 建函數(shù)、鏈表排序函數(shù)、查詢函數(shù)、鏈表刪除函數(shù)、統(tǒng)計函數(shù)等,先把這些基本函數(shù)建立起來之后,程序 的整體結(jié)構(gòu)??紤]到程序的整體結(jié)構(gòu)通過函數(shù)調(diào)用來實現(xiàn)較為方便,由此增加設(shè)計了一些函數(shù),如鏈表輸 出函數(shù)、顯示菜單函數(shù)、存盤函數(shù)、讀入函數(shù)等。函數(shù)的的創(chuàng)建過程實在是一個繁瑣的工作,編譯時常要去翻看課本去查找已經(jīng)遺忘的C語言的相關(guān)語法知識,特別是一些細(xì)節(jié)上的設(shè)計,更不敢輕易放過。如轉(zhuǎn)義字符“ t”的使用回事程序界面更加美觀整 潔好看,期間也對結(jié)構(gòu)體鏈表的知識作了較好的復(fù)
12、習(xí)掌握。在做到排序函數(shù)時突然忘了選擇排序法的算法,于是通過查資料對其進(jìn)行了重新的掌握,其中插入函數(shù)的算法較為復(fù)雜,通過分析發(fā)現(xiàn),須先查找然后再 插入,查找的算法編號之后,后面的統(tǒng)計、刪除函數(shù)也就迎刃而解了。調(diào)試的過程是最令人糾結(jié)的,覺得完好的程序卻總是調(diào)不出來,經(jīng)過復(fù)雜的心理腦力斗爭最終發(fā)現(xiàn)卻 總是一些不該有的失誤,而不是算法上問題。調(diào)試的過程是用時最長的,同時也磨練了我的耐性,讓我對 頻頻出現(xiàn)的錯誤更加理智、更加淡定、更加耐心。而且在調(diào)試的過程中也積累了一些常見的錯誤經(jīng)驗,對 部分調(diào)試的錯誤能大體上感知其錯誤的原因及位置。影響最深的是對排序函數(shù)的調(diào)試,指針數(shù)組的地址代 碼寫錯導(dǎo)致程序運行時不
13、能讀入,還有創(chuàng)建鏈表函數(shù)出現(xiàn)的問題,輸入函數(shù)多打了幾個“l(fā)f”導(dǎo)致鏈表創(chuàng)建時出現(xiàn)亂碼。程序的整體結(jié)構(gòu)設(shè)計參考了 “ C語言課程設(shè)計” 一書,再次申明??傊绦虻倪\行過程看是簡單,作用也非常單一,但對于像我這樣的智商不是很高的初學(xué)者而言, 編程、調(diào)試過程是相當(dāng)?shù)钠D辛與繁瑣,其間個中滋味,汗水、辛酸只能把它埋在心底。3程序調(diào)試及運行3.1程序運行結(jié)果程序開始運行界面程序運行過程界面如下:6 E:計算機實驗XC語言程序設(shè)計大作業(yè)發(fā)合作業(yè)程序'學(xué)生成績管理悵乳心皿歡迎進(jìn)入華生管理接回車鍵旌入請輸入3個所要處理的學(xué)生信息,包括學(xué)號、姓名,英語、數(shù)學(xué)、計算機的成績105 zh 34 4 56 E
14、八計算機實驗K語言程序設(shè)計大作業(yè)俸合作業(yè)程序'學(xué)生成績管理Debgxues.霄人找焊盤入柬 查刪結(jié) 012345G78請選擇按?!笨?0 12 3 4 5 6E”計算機實驗C語言程序設(shè)計大作業(yè)由合作業(yè)程序'學(xué)生成績管理Debu磯xues口*0 12存入。、E八計算機實驗K語言程序設(shè)計大作業(yè)偉合作業(yè)程序1學(xué)生成績管理VDebudxug.姓名數(shù)學(xué)成績英語成績2k34.004.00hs56.003.00 JI47.003.00計算機成績5.004.008.00青選擇按0年) 1學(xué)號10510310?E八計算機實驗XC語言程序設(shè)計大作業(yè)俸合作業(yè)程序,學(xué)生成績管理小乳外皿字號103105
15、10?姓名 hs zhji存人找陣盤入束 Tdu /N Tr/2 一 012345678數(shù)學(xué)成績 S6.00 34.00 47.00英語成績3.004.003.00計算機成績4.005.008.00E八計算機實驗K語言程序設(shè)計大作業(yè)偉合作業(yè)程序1學(xué)生成績管理Debuaues012345678-人找盤、/-束 氏嘉查刪結(jié)l-n 請選擇按0”)言馨提示:需要進(jìn)行排序后才可進(jìn)行插入,輸入,返回主菜單,按回車鍵繼縹-n|x請選擇按?!?看人找炸盤入束 查刪結(jié) 012345G786 E:計算機實驗K語言程序設(shè)計大作業(yè)俸合作業(yè)程序、學(xué)生成績管理VDebugMues.溫馨提示;需要進(jìn)行排序后才可進(jìn)行插入,輸
16、入9返回主菜單,按回車鍵繼續(xù) 請輸入要插入的學(xué)號,姓名.數(shù)學(xué)成績,英語成績.計算機成績6 E八計算機實驗K語言程序設(shè)計大作業(yè)俸合作業(yè)程序、學(xué)生成績管理Debu的cues.請選擇按?!?-IHh入我盤入柬 查刪142結(jié) 一 012345G78溫馨提示;需要進(jìn)行排序后才可進(jìn)行插入,輸入9返回主菜單,按回車鍵繼續(xù)04,5 號2 學(xué)97 的8L 9智 名德 姓hs孔2b“數(shù)學(xué)成績,英語成績,計算機成績數(shù)學(xué)成績英語成績56.003.00.J34.0047.00計算機成績4.0095.005.008.004<h>>-i+X T5- 殘河班日c, E八計算機實驗K語言程序設(shè)計大作業(yè)合作業(yè)程
17、序浮生成績管理Debugxue,看人找碎盤入束 顯塞查刪結(jié) 012345678山1馨提示:需要進(jìn)行排序后才可進(jìn)行插入,輸入,返回主菜氧按回車鍵繼縹請輸入要插入的學(xué)號,姓名.數(shù)學(xué)成績,英語成績計算機成績6 E八計算機實驗K語言程序設(shè)計大作業(yè)維合作業(yè)程序'學(xué)生成績管理Debu仆看人找碎盤入束 顯查刪結(jié) 012345678選擇(按08)馨提示需要進(jìn)行排序后才可進(jìn)行插入,輸入9返回主菜單,接回車鍵繼縹請輸入裳104孔德入的學(xué)號,姓名,數(shù)學(xué)成績,育98 璋號1031041051099? 95 姓名hs 孔德智 zh數(shù)學(xué)成績56.0098.0034.0047.00英語成績,計算機成績英語成績3.0
18、0計算機成績4.0095.005.008.00搜狗拼音二8 E八計算機實驗K語言程序設(shè)計大作業(yè)譙合作業(yè)程序'學(xué)生成績管理DebuMcug.請選擇按0F器輸入要辜曹的學(xué)慧5 105 zh看人找碎盤入束 顯醺查刪結(jié) 012345678數(shù)學(xué)成績英語成績計算機成績34.004.005.00搜狗拼音1.2.均分 均分012345G7一 e八找炸盤人一 杳刪b 孑口 請選擇按?!?人要刎妁學(xué)生的字號工母號姓名數(shù)學(xué)成績103hs56.00104 孔德智98.001052K34.00英語成績 3.0097.004.00計算機成績4.0095.005.00掇狗拼音"E八計算機實驗V:語言程序設(shè)
19、計大作業(yè)除合作業(yè)程序岸生成績管理Debugxg看人找陣盤入束 比翡查刪結(jié) 012345678請選擇按請施入1追號入學(xué)號104學(xué)號為1。4的總分=290.00.平均分=96.67j X請選擇按?!?看人找焊盤入柬 無醺查刪一結(jié) 0123456786 E八計算機實驗XC語言程序設(shè)計大作業(yè)燃合作業(yè)程序,學(xué)生成績管理Debuaues.均分 均分1.2.-人我盤入束 顯查刪結(jié) 一 012345678請輸入2''通選擇科目 廣31.數(shù)學(xué)2.英語3.計算機3 該科目的息分=1 4.00,平均分=34.676 E八計算機實驗K語言程序設(shè)計大作業(yè)俸合作業(yè)程序,學(xué)生成績管理Debuaur.詢選擇按
20、。86己存到c :/score.dat內(nèi)E:計算機實驗K語言程序設(shè)計大作業(yè)薛合作業(yè)程序1學(xué)生成績管理WebugMH一請選擇(按001234567s一甭人找碎盆入束顯患查刪結(jié)請隨人要進(jìn)行管理的文件名字=xieheng 現(xiàn)荏您可對xu"ng溫行操f乍;.程序結(jié)束界面:rlr計算機實驗K語言程序設(shè)計大作業(yè)傣合作業(yè)程序?qū)煽児芾韒bu畫皿掰度便用:愿你開心受過怎一士3.2 程序使用說明該程序較為簡單,根據(jù)程序運行時的提示即可完成操作。在第一次進(jìn)行顯示操作時,需按兩次0'才能顯示所建鏈表。在完成一次菜單操作后,應(yīng)按回車鍵返回主菜單。3.3 程序開發(fā)總結(jié)大作業(yè)的編寫,是一個對所學(xué)知識綜
21、合應(yīng)用的過程,也是對所學(xué)知識掌握情況的檢驗過程,更是對所 學(xué)知識系統(tǒng)復(fù)習(xí)的過程。其間涉及除程序設(shè)計外多方面技能應(yīng)用,能夠很好訓(xùn)練一個人的整體思維能力, 體現(xiàn)其綜合素質(zhì)。同時在完成作業(yè)的過程中,也讓我體驗了當(dāng)一個程序員的神奇感受。當(dāng)然我編的程序很簡單,用途也 很有限,其實就當(dāng)前的程序來看根本沒什么實際用途。但是設(shè)計工作的過程還是讓我體會到了其艱辛其難 度,編完之后油然而生的小小成就感是相當(dāng)美妙的。在編程設(shè)計過程中遇到過很多問題和困難,也讓我深 刻認(rèn)識到自己知識的欠缺,感受到自己離一個真正的程序設(shè)計人員的差距還是相當(dāng)之遠(yuǎn),自己還有很多只 是要學(xué)習(xí)和掌握。更重要的是過程激發(fā)了我對計算機編程的興趣,雖
22、然這門課程即將結(jié)束,當(dāng)我想我對其 的學(xué)習(xí)與熱愛絕不會停止。限于本人智商和時間的原因,該程序存在一定的缺陷和一些需要完善提高的地方,現(xiàn)在此處指出如下:1、在鏈表的創(chuàng)建上,包含的信息量較少,僅有三個學(xué)生,其實據(jù)此方法可適當(dāng)增加學(xué)生數(shù)量,以增強程序的實用性。2、再刪除操作上,僅有對單個學(xué)生的刪除功能,缺乏相應(yīng)的全部刪除功能,限于時間的原因未能增加。3、在對學(xué)生信息處理上,功能較少,缺乏最高分最低分的統(tǒng)計以及對于程序的排序。4、在統(tǒng)計功能的程序設(shè)計上,在選擇完成一種統(tǒng)計操作后,程序即回到主菜單而不能回到統(tǒng)計界面繼續(xù) 進(jìn)行統(tǒng)計操作,此不足之處未能改善。當(dāng)然通過對大作業(yè)的撰寫,打字水平也有了較大的提高???/p>
23、之,完成大作業(yè),無論是思想上、能力上 還是知識上都有了較大的飛躍,各方面都受益匪淺。4附件(源程序)#include <stdio.h>#include <windows.h>#include <stdlib.h>struct student(long num;char name80;double score3;struct student *next;定義全局變量head各個函數(shù)中均可用將菜單列出函數(shù)struct student *head;#define LEN sizeof(struct student) struct student *stu; vo
24、id printfmenu()(printf("tttt0.顯示 n");printf("tttt1.排序 n");printf("tttt2.插入 n");printf("tttt3.查找 n");printf("tttt4.刪除 n");printf("tttt5.統(tǒng)計 n");printf("tttt6.存盤 n");printf("tttt7.讀入 n");printf("tttt8.結(jié)束 n");void
25、printfform()用于每次將鏈表列出(struct student *p;printf("t學(xué)號t姓名t數(shù)學(xué)成績t英語成績t計算機成績n");p=head;if(head!=NULL)dot%.2f(printf("t%ldt%st%.2ft%.2fn",p->num,p->name,p->score0,p->score1,p->score2);p=p->next;while(p!=NULL);else return;void create()創(chuàng)建三人構(gòu)成的初始表(int i=0,j,k;struct stude
26、nt *p1,*p2;char name1380;long num13;double score133;head=p1=p2=(struct student *)malloc(LEN);printf("請輸入3個所要處理的學(xué)生信息 個學(xué)生的信息for(k=0;k<3;k+)(scanf("%ld%s",&num1k,name1k);for(j=0;j<3;j+)scanf("%lf",&score1kj);while(i<3)(if(i=0)head=p1;elsep2->next=p1;p1->n
27、um=num1i;strcpy(p1->name,name1i);for(j=0;j<3;j+)p1->scorej=score1ij;p2=p1;if(i=2)p1->next=NULL;elsep1=(struct student *)malloc(LEN);包括學(xué)號、姓名,英語、數(shù)學(xué)、計算機的成績n");/建立三個學(xué)生的鏈表鏈表結(jié)束開辟一個新的單元賦予三i+;)排序函數(shù)void arrange() void printfform();struct student *p1,*p2,*p3;long s3;p2=p1=head;int i,j,t,k;for
28、(i=0;i<3;i+)si=p1->num;p1=p1->next;)for(i=0;i<3;i+)k=i;for(j=i+1;j<3;j+) if(sk>sj)k=j; if(k!=i) t=sk;sk=si; si=t;)for(i=0;i<3;i+)while(p2->num!=si&&p2!=NULL) p2=p2->next;pi=p2;p2=head;)插入函數(shù)head=p0;p0->next=p1;p1->next=p2;p2->next=NULL; printfform();void in
29、sert()struct student *p0,*p1,*p2;char t;printf("溫馨提示:需要進(jìn)行排序后才可進(jìn)行插入,輸入9返回主菜單,按回車鍵繼續(xù)n");t=getchar();if(t='9') return;printf("請輸入要插入的學(xué)號,姓名,數(shù)學(xué)成績,英語成績,計算機成績n"); stu=(struct student *)malloc(LEN);scanf("%ld%s%lf%lf%lf",&stu->num,stu->name,&stu->score0
30、,&stu->score1,&stu->score2); p0=stu;/p0指向要插入的節(jié)點p1=head;/p1指向首節(jié)點while(p0->num>p1->num)&&(p1->next!=NULL)找插入位置 p2=p1; p1=p1->next; if(p0->num<=p1->num) if(head=p1)插入到第一個節(jié)點前head=p0; else p2->next=p0; p0->next=p1; else插入到最后一個節(jié)點后 p1->next=p0; p0->
31、next=NULL; printfform();顯示鏈表 void find()查找函數(shù)t%.2f struct student *p1; long num1; p1=head; printf("請輸入要查找的學(xué)號"); scanf("%ld",&num1); while(p1!=NULL) if(p1->num=num1) printf("t學(xué)號t姓名t數(shù)學(xué)成績t英語成績t計算機成績n"); printf("t%ldt%st%.2ft%.2fn",p1->num,p1->name,p1-
32、>score0,p1->score1,p1->score2); break;p1=p1->next;if(p1=NULL)printf("未找到");n",num);按學(xué)生統(tǒng)計函數(shù)void delet()long num;struct student *p1,*p2;p1=head;printf("請輸入要刪的學(xué)生的學(xué)號");scanf("%d",&num);while(num!=p1->num&&p1->next!=NULL) p2=p1;p1=p1->ne
33、xt;if(num=p1->num)if(p1=head)head=p1->next;elsep2->next=p1->next;printfform();elseprintf("學(xué)號為%ld的同學(xué)未找到void studentcount() double aver,zong;struct student *p1;long num;printf("請輸入學(xué)號");scanf("%ld",&num);p1=head;while(p1!=NULL)刪除指定學(xué)號的函數(shù)/p1指向的不是所要的節(jié)點,并且后面還有節(jié)點找到了/
34、對首節(jié)點特殊處理if(p1->num=num)(zong=p1->score0+p1->score1+p1->score2;aver=zong/3;printf("學(xué)號為 ld 的總分=%.2f,平均分=%.2f",p1->num,zong,aver); break;p1=p1->next;if(p1=NULL)printf("未找到");void subjectcount()/按科目統(tǒng)計函數(shù)(double aver,zong=0;struct student *p1;int i,n=0;printf("t
35、請選擇科目(13)”);printf("t1.數(shù)學(xué)");printf("t2.英語");printf("t3.計算機");scanf("%d",&i);p1=head;while(p1!=NULL)(zong=zong+p1->scorei-1;n+;p1=p1->next;aver=zong/n;printf("該科目的總分 =%.2f,平均分=%.2f",zong,aver);void count()統(tǒng)計函數(shù)(int t;printf("tt1.求學(xué)生總分平均分
36、ntt2.求科目總分平均分n");printf("請輸入");scanf("%d",&t);switch(t)(case 1:studentcount();break;case 2:subjectcount();break;)void save()(FILE *fp;struct student *p1;p1=head;if(fp=fopen("score.dat","wb")=NULL)(printf("Cannot open file");exit(1);)while(p1!=NULL)(fwrite(p1,LEN,1,fp);p1=p1->next;)fclose(fp);print
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年受歡迎人事代理合同
- 2025年生態(tài)環(huán)保技術(shù)推廣合同
- 二零二五年度木材行業(yè)信息化建設(shè)與數(shù)據(jù)服務(wù)合同2篇
- 鍍錫平板軋材項目可行性研究報告建議書申請備案
- 2020-2025年中國半導(dǎo)體激光治療機行業(yè)市場運營現(xiàn)狀及投資戰(zhàn)略咨詢報告
- 貴陽2025年租賃合同含租賃雙方權(quán)利義務(wù)及爭議解決機制2篇
- 2025年度文化創(chuàng)意產(chǎn)業(yè)知識產(chǎn)權(quán)運營框架協(xié)議
- 二零二五年度道路工程施工合同糾紛處理協(xié)議
- 二零二五年度綠色食品連鎖店進(jìn)貨合同電子版
- 二零二五年度2025年度生物制藥行業(yè)研究員聘用協(xié)議
- 人教版物理八年級下冊 專項訓(xùn)練卷 (一)力、運動和力(含答案)
- 山東省房屋市政工程安全監(jiān)督機構(gòu)人員業(yè)務(wù)能力考試題庫-中(多選題)
- 重慶市2023-2024學(xué)年七年級上學(xué)期期末考試數(shù)學(xué)試題(含答案)
- 2024年中考語文滿分作文6篇(含題目)
- 北師大版 2024-2025學(xué)年四年級數(shù)學(xué)上冊典型例題系列第三單元:行程問題“拓展型”專項練習(xí)(原卷版+解析)
- 2023年譯林版英語五年級下冊Units-1-2單元測試卷-含答案
- 施工管理中的文檔管理方法與要求
- DL∕T 547-2020 電力系統(tǒng)光纖通信運行管理規(guī)程
- 種子輪投資協(xié)議
- 執(zhí)行依據(jù)主文范文(通用4篇)
- 浙教版七年級數(shù)學(xué)下冊全冊課件
評論
0/150
提交評論