九九热最新网址,777奇米四色米奇影院在线播放,国产精品18久久久久久久久久,中文有码视频,亚洲一区在线免费观看,国产91精品在线,婷婷丁香六月天

數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì) 學(xué)生成績(jī)管理系統(tǒng)

上傳人:仙*** 文檔編號(hào):28809890 上傳時(shí)間:2021-09-14 格式:DOC 頁(yè)數(shù):20 大小:167.01KB
收藏 版權(quán)申訴 舉報(bào) 下載
數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì) 學(xué)生成績(jī)管理系統(tǒng)_第1頁(yè)
第1頁(yè) / 共20頁(yè)
數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì) 學(xué)生成績(jī)管理系統(tǒng)_第2頁(yè)
第2頁(yè) / 共20頁(yè)
數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì) 學(xué)生成績(jī)管理系統(tǒng)_第3頁(yè)
第3頁(yè) / 共20頁(yè)

下載文檔到電腦,查找使用更方便

15 積分

下載資源

還剩頁(yè)未讀,繼續(xù)閱讀

資源描述:

《數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì) 學(xué)生成績(jī)管理系統(tǒng)》由會(huì)員分享,可在線閱讀,更多相關(guān)《數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì) 學(xué)生成績(jī)管理系統(tǒng)(20頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。

1、數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)(實(shí)訓(xùn))報(bào)告書(shū) 信息科學(xué)與技術(shù)學(xué)院數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)(實(shí)訓(xùn))報(bào)告書(shū) 題 目: 學(xué)生成績(jī)管理系統(tǒng) 專 業(yè): 信息管理與信息系統(tǒng) 班 級(jí): - 姓 名: - 學(xué) 號(hào): - _指導(dǎo)老師: - - 設(shè)計(jì)時(shí)間:2011年3月14日 2011年3月18日目 錄數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)(實(shí)訓(xùn))報(bào)告書(shū)11. 課程設(shè)計(jì)(實(shí)訓(xùn))計(jì)劃12. 系統(tǒng)需求分析與功能設(shè)計(jì)13. 總體設(shè)計(jì)14、算法說(shuō)明25、系統(tǒng)難點(diǎn)分析36、系統(tǒng)測(cè)試37、心得體會(huì)88、參考文獻(xiàn)9附錄源代碼9數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)(實(shí)訓(xùn))報(bào)告書(shū)1. 課程設(shè)計(jì)(實(shí)訓(xùn))計(jì)劃(1)編寫(xiě)算法;(2)算法測(cè)試;(3)設(shè)計(jì)實(shí)驗(yàn)報(bào)告: 1)設(shè)計(jì)任務(wù)書(shū) 2)目錄 3)總體設(shè)

2、計(jì)方案(流程圖) 4)使用說(shuō)明書(shū)及運(yùn)行實(shí)例(界面) 5)源代碼及注釋 6)課程設(shè)計(jì)心得2. 系統(tǒng)需求分析與功能設(shè)計(jì)(1)成績(jī)管理系統(tǒng)主要功能: 1)初始化鏈表 2)輸入數(shù)據(jù) 3)顯示全部記錄4)查詢記錄(分按姓名和學(xué)號(hào)查詢兩種)5)刪除記錄6)添加記錄6)學(xué)生成績(jī)排名并顯示排名(2)界面設(shè)計(jì) 系統(tǒng)界面采用圖形和數(shù)字化菜單設(shè)計(jì)(3)課程設(shè)計(jì)的要求和數(shù)據(jù) 1)C語(yǔ)言實(shí)現(xiàn)2)對(duì)學(xué)生信息進(jìn)行管理(包括成績(jī)的輸入、輸出、查詢、刪除、排序、退出)3)學(xué)生信息:基本信息:學(xué)號(hào)、姓名、性別、成績(jī)等學(xué)生成績(jī)輸入(一次性輸入一條記錄并計(jì)算總分及平均分)顯示信息:完成全部學(xué)生記錄的顯示查詢信息:完成按學(xué)號(hào)和按姓名查

3、詢記錄,并顯示刪除信息:按學(xué)號(hào)刪除信息排序:按學(xué)生總分排序,顯示排名4)應(yīng)提供一個(gè)主界面調(diào)用各項(xiàng)功能,使得操作界面清晰美觀5)退出系統(tǒng),記錄無(wú)保存3. 總體設(shè)計(jì)1、功能模塊:(1)成績(jī)輸入功能(2)成績(jī)輸出功能(3)成績(jī)查詢功能(4)刪除功能(5)排序功能(6)退出系統(tǒng)2、詳細(xì)設(shè)計(jì):(1)初始化學(xué)生信息表:申請(qǐng)頭結(jié)點(diǎn)STU *head,head-next=NULL;實(shí)現(xiàn)此操作(2)成績(jī)輸出模塊:void xianshi(L) void paixu(L) void chaxun(L)通過(guò)此輸出信息(3)查詢模塊:void chanzhao(L)實(shí)現(xiàn)個(gè)種查找功能(4)刪除功能:void shanc

4、hu(L)(5)排序功能:void paixu(L)3、總體設(shè)計(jì)方案程序流程圖:結(jié)束開(kāi)始輸出菜單根據(jù)菜單輸入n的值選擇程序輸入退出輸出查找排序添加刪除4、算法說(shuō)明Void main()主函數(shù)(內(nèi)含初始化鏈表head=(STU *) malloc (sizeof(STU); head-next=NULL、主界面、函數(shù)調(diào)用模塊應(yīng)用switch()語(yǔ)句);Void shuru(L)創(chuàng)建輸入數(shù)據(jù):r=(STU*)malloc(sizeof(STU)申請(qǐng)結(jié)點(diǎn)輸入數(shù)據(jù),插入到鏈表,r-next=NULL;s-next=r;s=r;保存;Void xianshi(L)顯示學(xué)生信息:應(yīng)用循環(huán)語(yǔ)句while(q

5、-next!=tail)輸出每一節(jié)點(diǎn)數(shù)據(jù),直至q指向?yàn)楣?jié)點(diǎn)tail=NULL;Void chaxun(L)查找學(xué)生信息并顯示結(jié)果:分按學(xué)號(hào)和姓名查詢并輸出查找的信息,switch做判斷按何種方式查詢,while()循環(huán)語(yǔ)句進(jìn)行匹配查詢,知道找到為止,引用strcmp()函數(shù)進(jìn)行匹配;Void chazhao( L,no)按要求查找記錄:while()語(yǔ)句循環(huán)按學(xué)號(hào)進(jìn)行查找;Void tianjia(L)尾插法插入數(shù)據(jù),p2=(STU*)malloc(sizeof(STU)申請(qǐng)結(jié)點(diǎn),輸入數(shù)據(jù),找到尾結(jié)點(diǎn)for(p3=L;p3-next!=NULL;p3=p3-next),插入鏈表p3-next=

6、p2;Void gengxin(L)修改學(xué)生信息:查找函數(shù)chazhao()找到要修改的節(jié)點(diǎn),再進(jìn)行修改Void shanchu(L)刪除學(xué)生記錄:while(strcmp(p-sname,name)!=0)&p-next!=NULL)找到要?jiǎng)h除的節(jié)點(diǎn),進(jìn)行刪除;Void mingci(L)為學(xué)生成績(jī)排名并顯示排名;冒泡排序法給鏈表安總成績(jī)排名,然后for()循環(huán)輸出排序完的鏈表數(shù)據(jù)。5、系統(tǒng)難點(diǎn)分析1、鏈表的排序,只能做到初步的排序,不能實(shí)現(xiàn)對(duì)成績(jī)相同的學(xué)生排名相同功能;2、查找功能不夠強(qiáng)大,對(duì)字符串的查詢比如不區(qū)分大小寫(xiě)功能不能實(shí)現(xiàn);3、對(duì)各種輸入值不加于區(qū)分,比如姓名寫(xiě)成數(shù)字,年齡的限制

7、(1-100)4、程序重復(fù)的語(yǔ)句多、繁瑣,不善應(yīng)用函數(shù)的調(diào)用。6、系統(tǒng)測(cè)試源代碼(見(jiàn)附錄)調(diào)試運(yùn)行如下:(如圖1、圖2)圖1圖2圖3輸入測(cè)試:10輸入目的:查看輸入除主界面外的序號(hào)可否進(jìn)行操作。正確輸出:輸入錯(cuò)誤!請(qǐng)慎重選擇。實(shí)際輸出:如下圖所示。當(dāng)前狀態(tài):通過(guò)(實(shí)際輸出與正確相符)。測(cè)試結(jié)果分析:測(cè)試策略:輸入一個(gè)主界面不包含的選項(xiàng)。得到數(shù)據(jù)顯示輸入錯(cuò)誤。(如圖3)圖4輸入測(cè)試:a輸入目的:查看輸入字符可否進(jìn)行操作。正確輸出:輸入錯(cuò)誤!請(qǐng)慎重選擇。實(shí)際輸出:(圖4)當(dāng)前狀態(tài):通過(guò)(實(shí)際輸出與正確相符)。測(cè)試結(jié)果分析:測(cè)試策略:輸入一個(gè)主界面不包含的選項(xiàng)。得到數(shù)據(jù)顯示輸入錯(cuò)誤。圖5已刪測(cè)試輸入

8、:輸入姓名:邱為民;輸入學(xué)號(hào):1;輸入性別:1為男;輸入年齡:21;輸入語(yǔ)文成績(jī)88;數(shù)學(xué)成績(jī)82;英語(yǔ)成績(jī)89;一個(gè)學(xué)生信息登記完畢。再輸入另一個(gè)學(xué)生數(shù)據(jù):輸入姓名:陳婷婷;輸入學(xué)號(hào):1;輸入性別:測(cè)試目的:設(shè)計(jì)該輸入的目的在于測(cè)試程序在登記學(xué)生信息方面是否存在無(wú)法登記學(xué)生信息、在選擇登記學(xué)生信息時(shí)是否沒(méi)有出現(xiàn)相應(yīng)界面等情況以及能否正確輸入等功能。正確輸出:輸入姓名:邱為民;輸入學(xué)號(hào):1;輸入性別:1為男;輸入年齡:21;輸入語(yǔ)文成績(jī)88;輸入數(shù)學(xué)成績(jī)82;輸入英語(yǔ)成績(jī)89選擇是否輸入信息請(qǐng)按(1、0):1;輸入姓名:陳婷婷;輸入學(xué)號(hào):1;輸入性別:0;輸入年齡:實(shí)際輸出:如上(圖5)輸出界

9、面。當(dāng)前狀態(tài):已改正(實(shí)際輸出與正確輸出不符,但現(xiàn)在已修改正確)測(cè)試結(jié)果分析:測(cè)試策略在于輸入一組數(shù)據(jù)后以便后面的操作完成學(xué)生信息的登記。得到的數(shù)據(jù)由上面的截圖(圖5)證明。測(cè)試輸入:2選擇顯示測(cè)試目的:測(cè)試顯示功能是否能夠?qū)崿F(xiàn)正確輸出:按姓名、學(xué)號(hào)、性別、年齡、語(yǔ)文、數(shù)學(xué)、英語(yǔ)、平均分及總分顯示學(xué)生信息。實(shí)際輸出:如下圖(圖6)所示。當(dāng)前狀態(tài):通過(guò)(實(shí)際輸出與正確相符)。測(cè)試結(jié)果分析:測(cè)試策略:選擇查找看其是否正確找到所查找數(shù)據(jù)。得到數(shù)據(jù)結(jié)果顯示查找無(wú)誤。圖6已刪測(cè)試輸入:3選擇查找測(cè)試目的:測(cè)試查找功能是否能夠?qū)崿F(xiàn)正確輸出:1按學(xué)號(hào)查詢 2按姓名查詢 0返回主菜單 選擇1 請(qǐng)輸入要查找的學(xué)

10、號(hào):1查找結(jié)果:既要查找的數(shù)據(jù)。查詢完畢或沒(méi)有要查詢的記錄!實(shí)際輸出:如下圖(圖7)所示。當(dāng)前狀態(tài):通過(guò)(實(shí)際輸出與正確相符)。測(cè)試結(jié)果分析:測(cè)試策略:按學(xué)號(hào)查找,首先要輸入對(duì)應(yīng)的數(shù)據(jù),接著成功查找。顯示的數(shù)據(jù)是按學(xué)號(hào)查找的結(jié)果,無(wú)差錯(cuò)。圖7已刪測(cè)試輸入:4選擇添加學(xué)生數(shù)據(jù)。測(cè)試目的:查看添加功能是否能夠運(yùn)行。正確輸出:;輸入要添加的姓名:小丘;輸入添加的學(xué)號(hào):7;輸入性別(1為男,0為女):0;輸入年齡:19;請(qǐng)你輸入語(yǔ)文成績(jī):88;輸入數(shù)學(xué)成績(jī):85;輸入英語(yǔ)成績(jī):90;此信息已添加。并且再次查詢。實(shí)際輸出:如下圖(圖8)所示。當(dāng)前狀態(tài):通過(guò)(實(shí)際輸出與正確相符)。測(cè)試結(jié)果分析:測(cè)試策略:

11、分別輸入提示信息查看添加功能是否能夠運(yùn)用。通過(guò)再次查詢顯示添加無(wú)誤。圖8已刪圖9已刪測(cè)試輸入:5選擇修改學(xué)生數(shù)據(jù)。測(cè)試目的:測(cè)試是否能夠?qū)崿F(xiàn)修改功能。正確輸出:輸入要修改的人名:小丘;輸入新姓名:小球球;輸入新學(xué)號(hào)(原來(lái)是學(xué)號(hào)5):5;輸入新性別:(1是男0是女)0;輸入年齡(原來(lái)年齡是19)19;輸入語(yǔ)文成績(jī)(原來(lái)是88.000000分):88;輸入數(shù)學(xué)成績(jī)(原來(lái)是88.000000分):85;請(qǐng)你輸入英語(yǔ)成績(jī)(原來(lái)是88.000000分):90;提示:修改完成或沒(méi)找到要修改的項(xiàng)!。再次查詢并顯示查詢結(jié)果。實(shí)際輸出:如上圖(圖9)所示。當(dāng)前狀態(tài):通過(guò)(實(shí)際輸出與正確相符)。測(cè)試結(jié)果分析:測(cè)試

12、策略:根據(jù)提示輸入修改的數(shù)據(jù)分別觀察是否正確。得到的數(shù)據(jù)是提示我輸入信的數(shù)據(jù)并告訴我原來(lái)的數(shù)據(jù),我根據(jù)提示輸入新的數(shù)據(jù),結(jié)果無(wú)誤。測(cè)試輸入:6選擇刪除操作。測(cè)試目的:測(cè)試其是否能夠正確刪除想要?jiǎng)h除的數(shù)據(jù)。正確輸出:請(qǐng)輸入要?jiǎng)h除的姓名:3; 已刪除!并顯示新的數(shù)據(jù)。實(shí)際輸出:如圖(圖10)所示。當(dāng)前狀態(tài):通過(guò)(實(shí)際輸出與正確相符)。測(cè)試結(jié)果分析:測(cè)試策略:根據(jù)提示進(jìn)行刪除;系統(tǒng)提示刪除成功。得到的數(shù)據(jù)顯示顯示刪除成功,證明這一部分無(wú)差錯(cuò)。圖10已刪測(cè)試輸入:7選擇排序測(cè)試目的:看排序功能是否能夠?qū)崿F(xiàn)正確輸出:按照名次、姓名、學(xué)號(hào)、性別、年齡、語(yǔ)文、數(shù)學(xué)、英語(yǔ)、平均分、總分顯示學(xué)生數(shù)據(jù)。實(shí)際輸出:

13、如下圖(圖11)所示。當(dāng)前狀態(tài):通過(guò)(實(shí)際輸出與正確相符)。測(cè)試結(jié)果分析:測(cè)試策略:選擇排序,系統(tǒng)自動(dòng)根據(jù)總分和平均分對(duì)數(shù)據(jù)進(jìn)行排序并輸出。得到的數(shù)據(jù)顯示并未出錯(cuò)。圖11已刪測(cè)試輸入:0選擇退出。測(cè)試目的:成功退出系統(tǒng)。正確輸出:press any key to continue.實(shí)際輸出:如下圖(圖12)所示。當(dāng)前狀態(tài):通過(guò)(實(shí)際輸出與正確相符)。測(cè)試結(jié)果分析:測(cè)試策略:選擇退出以便成功退出系統(tǒng)。得到數(shù)據(jù):無(wú)誤圖12已刪7、心得體會(huì)這次的實(shí)訓(xùn)結(jié)束了,現(xiàn)在的我正在做著最后的工作填寫(xiě)實(shí)訓(xùn)報(bào)告。感觸還真是很多,那幾天的堅(jiān)持,每天八節(jié)課就坐在電腦前敲著代碼,有的時(shí)候晚上回了寢室還要繼續(xù)敲??梢哉f(shuō)我們

14、男生還是對(duì)程序這塊比較感興趣的。但是面對(duì)這么大的一個(gè)課題寫(xiě)這樣的一個(gè)程序我還是第一次,所以對(duì)于我來(lái)說(shuō)難道還是挺大的。很多時(shí)候焦頭爛額心煩意亂也寫(xiě)不好,寫(xiě)出來(lái)后反復(fù)調(diào)試反復(fù)出錯(cuò),簡(jiǎn)直是在考驗(yàn)我們的耐心??粗總€(gè)同學(xué)焦急的樣子,真的有點(diǎn)擔(dān)心在規(guī)定的期限內(nèi)是不是能夠完成任務(wù)。所以期間自己會(huì)想,如果將來(lái)從事了這個(gè)行業(yè),面對(duì)更加復(fù)雜的程序更加有難度的題目要求,心理壓力不是更大么?不管怎么樣,還是要把程序?qū)懲?。其中也遇到了很多困難:因?yàn)檫@個(gè)題目要求要有9個(gè)小題目,而且有的小題目還要求里面還要有選擇,這樣難度更加提高而且更加復(fù)雜。剛開(kāi)始會(huì)理不出頭緒,不知道該先弄哪一塊。從頭開(kāi)始往后寫(xiě)整個(gè)程序是不可能的,那樣

15、會(huì)錯(cuò)的更加離譜,所以只好先分快些再綜合起來(lái)。而且整個(gè)星期天天對(duì)著電腦敲這樣一個(gè)程序確實(shí)很煩躁。但是告訴自己要堅(jiān)持下去,到了最后把程序調(diào)試出來(lái)后,心里真的是激動(dòng)萬(wàn)分,感慨也頗深:面對(duì)復(fù)雜的事情而且要長(zhǎng)期堅(jiān)持時(shí),千萬(wàn)不可浮躁了事,那樣欠下的債會(huì)越來(lái)越多,一定要定下心來(lái)踏踏實(shí)實(shí)的去做,我發(fā)現(xiàn)有了好的開(kāi)始,后面再亂的思緒也會(huì)慢慢捋清楚。心態(tài)很重要,第一天還好,第二天的時(shí)候,心虛特別浮躁,顯然那天的效率十分低下,回去后和朋友聊天,被開(kāi)導(dǎo)后慢慢整理思緒平靜下心來(lái)開(kāi)始做,發(fā)現(xiàn)一切并沒(méi)有原本想象的那么棘手。面對(duì)問(wèn)題要自己主動(dòng)去解決,程序過(guò)程中難免有很多難題,別人無(wú)法幫助自己,要靠自己去努力克服才能接著做下一步

16、。所以在完成后,除了自己完成任務(wù)的喜悅感意外,還有一些感慨,我覺(jué)得這一次我不僅僅收獲了如何去寫(xiě)一個(gè)程序,而是如何做好一件看似棘手困難的復(fù)雜的事情。8、參考文獻(xiàn)1楊路明,c語(yǔ)言程序設(shè)計(jì)教程.北京:郵電大學(xué)出版社,2005年12月第2版2耿國(guó)華,數(shù)據(jù)結(jié)構(gòu)C語(yǔ)言描述.北京:高等教育出版社,2005年7月第1版附錄源代碼如下:#include #include #include #include #include linlist.h/*定義結(jié)構(gòu)體類型typedef struct Stuchar sname20;int sno;char sex10;int nianling;float yuwen;fl

17、oat shuxue;float yingyu;float avg;float sum;struct Stu *next;STU,*Linlist;void shuru(L);void xianshi(L);void chaxun(L);void tianjia(L);void gengxin(L);void shanchu(L);void mingci(L);STU* chazhao(Linlist L,int no);/*主函數(shù)*/void main()int m;STU *head;head=(STU *) malloc (sizeof(STU);head-next=NULL;while

18、(m) printf( *歡迎進(jìn)入學(xué)生成績(jī)管理*n);printf( |輸入 0 返回 |nn);printf( |輸入 1 輸入學(xué)生信息 |nn);printf( |輸入 2 顯示學(xué)生信息 |nn);printf( |輸入 3 查詢學(xué)生信息 |nn);printf( |輸入 4 添加學(xué)生信息 |nn);printf( |輸入 5 更新學(xué)生信息 |nn);printf( |輸入 6 刪除學(xué)生信息 |nn);printf( |輸入 7 計(jì)算并顯示學(xué)生排名 |n);printf( *n);scanf(%d,&m);switch(m) case 1:shuru(L);break; case 2:xi

19、anshi(L);break; case 3:chaxun(L);break; case 4:tianjia(L);break; case 5:gengxin(L);break; case 6:shanchu(L);break; case 7:mingci(L);break; case 0:; break;default:printf(輸入錯(cuò)誤!請(qǐng)慎重選擇n);break;/*各子函數(shù)*/STU* chazhao(Linlist L,int no) /* 按學(xué)號(hào)查詢 */ STU *r; r=L-next; while(r!=NULL) if(r-sno=no) return r; r=r-n

20、ext; return 0; void shuru(Linlist head)int flag=1, c,sex,sno;STU *r=NULL,*s=NULL,*m=NULL;s=head;while(s-next!=NULL) s=s-next; /* 將指針置于最末尾 */while(1) r=(STU*)malloc(sizeof(STU);/*申請(qǐng)結(jié)點(diǎn)*/ printf(輸入姓名:); /*添加信息*/ scanf(%s,r-sname); printf(輸入學(xué)號(hào):);scanf(%d,&sno);m=chazhao(head,sno);while(m!=NULL)m=chazhao

21、(head,sno); if(m!=NULL) printf(請(qǐng)你輸入不重復(fù)的學(xué)號(hào):n); scanf(%d,&sno); r-sno=sno; printf(輸入性別(1-boy,0-girl):);doscanf(%d,&sex); if(sex=1)strcpy(r-sex,boy); else if(sex=0) strcpy(r-sex,girl);else printf(輸入錯(cuò)誤!(1-boy,0-girl):n);while(sex!=1&sex!=0); printf(輸入年齡:); scanf(%d,&r-nianling); printf(輸入語(yǔ)文成績(jī):); scanf(%

22、f,&r-yuwen); while(r-yuwenyuwen100.0) if(r-yuwenyuwen100.0) printf(輸入錯(cuò)誤,請(qǐng)重新輸入!n); printf(輸入語(yǔ)文成績(jī):); scanf(%f,&r-yuwen); printf(輸入數(shù)學(xué)成績(jī):); scanf(%f,&r-shuxue); while(r-shuxueshuxue100.0) if(r-shuxueshuxue100.0) printf(輸入錯(cuò)誤,請(qǐng)重新輸入!n); printf(輸入數(shù)學(xué)成績(jī):); scanf(%f,&r-shuxue); printf(輸入英語(yǔ)成績(jī):); scanf(%f,&r-yin

23、gyu); while(r-yingyuyingyu100.0) if(r-yingyuyingyu100.0) printf(輸入錯(cuò)誤,請(qǐng)重新輸入!n); printf(輸入英語(yǔ):); scanf(%f,&r-yingyu); r-sum=r-yuwen+r-shuxue+r-yingyu; r-avg=r-sum/3; r-next=NULL; s-next=r; s=r; printf(選擇是否輸入信息請(qǐng)按(1/0):n); scanf(%d,&c); if(c=0) break; /*保存鏈表*/printf(信息已輸入!n);void xianshi(Linlist L)STU *a

24、=NULL; STU *p,*q,*tail,*s; tail=NULL; if(L-next=NULL)printf(此表中無(wú)記錄,請(qǐng)輸入記錄后在使用此功能!n);return; while(L-next!=tail) p=L; q=p-next; while(q-next!=tail) if(p-next-snoq-next-sno) s=q-next; p-next=q-next; q-next=q-next-next; p-next-next=q; q=s; p=p-next; q=q-next; tail=q; a=L-next;printf(姓名t學(xué)號(hào)t性別t年齡t語(yǔ)文t數(shù)學(xué)t英語(yǔ)

25、t平均分t總分n);for(a=L-next;a!=NULL;a=a-next)printf(%-8s%-8d%-8s%-8d%-8.2f%-8.2f%-8.2f%-8.2f%-8.2fn,a-sname,a-sno,a-sex,a-nianling,a-yuwen,a-shuxue,a-yingyu,a-avg,a-sum);void chaxun(Linlist L)STU *p;char name20;int sno, n;if(L-next=NULL)printf(此表中無(wú)記錄,請(qǐng)輸入記錄后在使用此功能!n);return;while(n)printf( *請(qǐng)選擇查詢方式*n);pri

26、ntf( 1*按學(xué)號(hào)查詢n);printf( 2*按姓名查詢n);printf( 0*返回主菜單n);scanf(%d,&n);switch(n)case 1:printf(請(qǐng)輸入要查詢的學(xué)號(hào):n);scanf(%d,&sno);printf(*學(xué)生信息*n);printf(姓名t學(xué)號(hào)t性別t年齡t語(yǔ)文t數(shù)學(xué)t英語(yǔ)n);for(p=L-next;p!=NULL;p=p-next)if(p-sno)=sno)printf(%-8s%-8d%-8s%-8d%-10.2f%-10.2f%-10.2fn,p-sname,p-sno,p-sex,p-nianling,p-yuwen,p-shuxue,p

27、-yingyu); printf(*查詢完畢或沒(méi)有要查詢的記錄!n);break;case 2:printf(請(qǐng)輸入要查詢的姓名n);scanf(%s,name);printf(*學(xué)生信息*n);printf(姓名t學(xué)號(hào)t性別t年齡t語(yǔ)文t數(shù)學(xué)t英語(yǔ)n);for(p=L-next;p!=NULL;p=p-next)if(strcmp(p-sname,name)=0)printf(%-8s%-8d%-8s%-8d%-10.2f%-10.2f%-10.2fn,p-sname,p-sno,p-sex,p-nianling,p-yuwen,p-shuxue,p-yingyu); printf(*查詢完

28、畢或沒(méi)有要查詢的記錄!n);break;case 0:break; default:printf(輸入錯(cuò)誤!請(qǐng)慎重選擇);break;void gengxin(Linlist L)STU *p1,*m;char name20;int sex,sno;if(L-next=NULL)printf(此表中無(wú)記錄,請(qǐng)輸入記錄后在使用此功能!n);return;printf(輸入要修改的人名:);scanf(%s,name);p1=L;while(p1!=NULL)if(strcmp(p1-sname,name)=0) printf(輸入新姓名:); /*修改信息*/ scanf(%s,p1-sname

29、); printf(輸入新學(xué)號(hào)(原來(lái)是學(xué)號(hào)%d):,p1-sno); scanf(%d,&sno); m=chazhao(L,sno);while(m!=NULL)m=chazhao(L,sno); if(m!=NULL) printf(請(qǐng)你輸入不重復(fù)的學(xué)號(hào)(以0返回上一級(jí)菜單:)n); scanf(%d,&sno); p1-sno=sno; printf(輸入新性別(1-boy,0-girl):);doscanf(%d,&sex); if(sex=1)strcpy(p1-sex,boy); else if(sex=0) strcpy(p1-sex,girl);else printf(輸入錯(cuò)誤

30、!(1-boy,0-girl):n);while(sex!=1&sex!=0); printf(輸入年齡(原來(lái)年齡是%d):,p1-nianling); scanf(%d,&p1-nianling); printf(輸入語(yǔ)文成績(jī)(原來(lái)是%f分):,p1-yuwen); scanf(%f,&p1-yuwen); while(p1-yuwenyuwen100.0) if(p1-yuwenyuwen100.0) printf(輸入錯(cuò)誤,請(qǐng)重新輸入!n); printf(輸入語(yǔ)文成績(jī):); scanf(%f,&p1-yuwen); printf(輸入數(shù)學(xué)成績(jī)(原來(lái)是%f分):,p1-shuxue);

31、scanf(%f,&p1-shuxue); while(p1-shuxueshuxue100.0) if(p1-shuxueshuxue100.0) printf(輸入錯(cuò)誤,請(qǐng)重新輸入!n); printf(輸入數(shù)學(xué)成績(jī):); scanf(%f,&p1-shuxue); printf(輸入英語(yǔ)成績(jī)(原來(lái)是%f分):,p1-yingyu); scanf(%f,&p1-yingyu); while(p1-yingyuyingyu100.0) if(p1-yingyuyingyu100.0) printf(輸入錯(cuò)誤,請(qǐng)重新輸入!n); printf(輸入英語(yǔ)成績(jī):); scanf(%f,&p1-yi

32、ngyu); p1-sum=p1-yuwen+p1-shuxue+p1-yingyu; p1-avg=p1-sum/3;p1=p1-next;printf(修改完成或沒(méi)找到要修改的項(xiàng)!n);void tianjia(Linlist L)STU *p2=NULL,*p3=NULL,*m;int sex,sno;p2=(STU*)malloc(sizeof(STU); /*申請(qǐng)結(jié)點(diǎn)*/if(L-next=NULL)printf(此表中無(wú)記錄,請(qǐng)輸入記錄后在使用此功能!n);return; printf(輸入添加的姓名:); scanf(%s,p2-sname); printf(輸入添加的學(xué)號(hào):);

33、 scanf(%d,&sno); m=chazhao(L,sno);while(m!=NULL)m=chazhao(L,sno); if(m!=NULL) printf(請(qǐng)你輸入不重復(fù)的學(xué)號(hào)(以0返回上一級(jí)菜單:)n); scanf(%d,&sno); p2-sno=sno; printf(輸入性別(1-boy,0-girl):);doscanf(%d,&sex); if(sex=1)strcpy(p2-sex,boy); else if(sex=0) strcpy(p2-sex,girl);else printf(輸入錯(cuò)誤!(1-boy,0-girl):n);while(sex!=1&sex

34、!=0); printf(輸入年齡:); scanf(%d,&p2-nianling); printf(輸入語(yǔ)文成績(jī):); scanf(%f,&p2-yuwen); while(p2-yuwenyuwen100.0) if(p2-yuwenyuwen100.0) printf(輸入錯(cuò)誤,請(qǐng)重新輸入!n); printf(輸入語(yǔ)文成績(jī):); scanf(%f,&p2-yuwen); printf(輸入數(shù)學(xué)成績(jī):); scanf(%f,&p2-shuxue); while(p2-shuxueshuxue100.0) if(p2-shuxueshuxue100.0) printf(輸入錯(cuò)誤,請(qǐng)重新輸

35、入!n); printf(輸入數(shù)學(xué)成績(jī):); scanf(%f,&p2-shuxue); printf(輸入英語(yǔ)成績(jī):); scanf(%f,&p2-yingyu); while(p2-yingyuyingyu100.0) if(p2-yingyuyingyu100.0) printf(輸入錯(cuò)誤,請(qǐng)重新輸入!n); printf(輸入英語(yǔ)成績(jī):); scanf(%f,&p2-yingyu); p2-sum=p2-yuwen+p2-shuxue+p2-yingyu; p2-avg=p2-sum/3; p2-next=NULL; /*保存到鏈表*/ if(L=NULL) L=(STU*)mallo

36、c(sizeof(STU); L-next=p2; else for(p3=L;p3-next!=NULL;p3=p3-next);/*找到尾結(jié)點(diǎn)*/ p3-next=p2; printf(此信息已添加n);void shanchu(Linlist L)STU *p=L,*pr=L;char name20;if(L-next=NULL)printf(此表中無(wú)記錄,請(qǐng)輸入記錄后在使用此功能!n);return;printf(請(qǐng)輸入要?jiǎng)h除的姓名:n);scanf(%s,name);if(L=NULL)printf(無(wú)此結(jié)點(diǎn)n);return;while(strcmp(p-sname,name)!=

37、0)&p-next!=NULL)pr=p;p=p-next;if(strcmp(p-sname,name)=0)if(p=L)L=p-next;elsepr-next=p-next;free(p);printf(已刪除!n);elseprintf(沒(méi)有找到要?jiǎng)h除的對(duì)象n);void mingci(Linlist L)STU *a=NULL;int i; STU *p,*q,*tail,*s; tail=NULL; if(L-next=NULL)printf(此表中無(wú)記錄,請(qǐng)輸入記錄后在使用此功能!n);return; while(L-next!=tail) p=L; q=p-next; whi

38、le(q-next!=tail) if(p-next-sumnext-sum) s=q-next; p-next=q-next; q-next=q-next-next; p-next-next=q; q=s; p=p-next; q=q-next; tail=q; a=L-next;printf(名次t姓名t學(xué)號(hào)t性別t年齡t語(yǔ)文t數(shù)學(xué)t英語(yǔ)t平均分t總分n);for(a=L-next,i=1;a!=NULL;a=a-next,i+)printf(%-8d%-8s%-8d%-8s%-8d%-8.2f%-8.2f%-8.2f%-8.2f%-8.2fn,i,a-sname,a-sno,a-sex,a-nianling,a-yuwen,a-shuxue,a-yingyu,a-avg,a-sum);- 18 -

展開(kāi)閱讀全文
溫馨提示:
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. 裝配圖網(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ì)自己和他人造成任何形式的傷害或損失。

相關(guān)資源

更多
正為您匹配相似的精品文檔
關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

備案號(hào):ICP2024067431號(hào)-1 川公網(wǎng)安備51140202000466號(hào)


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務(wù)平臺(tái),本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請(qǐng)立即通知裝配圖網(wǎng),我們立即給予刪除!