c語言學(xué)生成績管理系統(tǒng)_第1頁
c語言學(xué)生成績管理系統(tǒng)_第2頁
c語言學(xué)生成績管理系統(tǒng)_第3頁
c語言學(xué)生成績管理系統(tǒng)_第4頁
c語言學(xué)生成績管理系統(tǒng)_第5頁
免費預(yù)覽已結(jié)束,剩余41頁可下載查看

下載本文檔

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

文檔簡介

1、摘要利用所學(xué)過的C語言知識,采用結(jié)構(gòu)化程序設(shè)計方法,設(shè)計一個學(xué)生成績管理檔案程序,該程序的主要功能為:0將表格初始化,1建立學(xué)生成績表格,2從表中刪除原有紀錄,3顯示單鏈表中所有記錄,4按照姓名查找紀錄,5計算所有學(xué)生的總分和均分,6插入紀錄到表中,7復(fù)制文件,8將所有學(xué)生成績排序,9分類合計,10退出。該系統(tǒng)功能完善,界面友好,短小經(jīng)用,使用方便,即使是不熟悉計算機也可以自如的使用該系統(tǒng)。通過上機調(diào)試運行與模擬操作, 完成對學(xué)生成績的管理, 減輕管理人員的勞動強度, 提高一個學(xué)校的自動化管理水平。關(guān)鍵詞:學(xué)生成績管理;結(jié)構(gòu)化程序設(shè)計;調(diào)試運行;功能完善目錄第一章概述1.1 項目背景1.2 工

2、作環(huán)境第二章系統(tǒng)分析2.1系統(tǒng)需求分析2.2系統(tǒng)功能分析2模塊實現(xiàn)算法2進入主菜單。2建立學(xué)生表格2從表中刪除原有紀錄2顯示單鏈表中所有記錄2按照姓名查找紀錄2計算所有學(xué)生的總分和均分2插入紀錄到表中2復(fù)制文件將所有學(xué)生成績排序分類合計:退出第三章總體設(shè)計軟件描述設(shè)計方法軟件結(jié)構(gòu)文件及函數(shù)組成第五章使用說明第六章工作總結(jié)參考文獻(參考書或論文或文章)附錄源代碼第一章概述現(xiàn)今已步入高速發(fā)展的時代,電腦技術(shù)發(fā)展日新月異,時代潮流也不斷變革,競爭越發(fā)激烈,時間就是金錢,但是就是在一些瑣碎的事上面浪費了大量的時間,例如查詢資料之類.如果我們把浪費的時間用于其他方面,勢必會有更大的收益.應(yīng)此需求,為使廣

3、大教師掌握更多的時間,相應(yīng)的開發(fā)出此軟件一學(xué)生成績管理軟件系統(tǒng).而編寫詳細設(shè)計說明書是軟件開發(fā)過程必不可少的部分,其目的是為了使開發(fā)人員在完成概要設(shè)計說明書的基礎(chǔ)上完成概要設(shè)計規(guī)定的各項模塊的具體實現(xiàn)的設(shè)計工作。本軟件屬于綠色軟件,適合任何層次的用戶,因此本說明書的預(yù)期讀者范圍相當(dāng)廣。項目背景一、軟件名稱學(xué)生成績管理二、相關(guān)單位主要是學(xué)校用于學(xué)校的成績管理工作環(huán)境A.一臺586以上的微機及兼容B.內(nèi)存16MB(最好32MEft存)C.VGA彩顯一臺第二章系統(tǒng)分析系統(tǒng)需求分析隨著網(wǎng)絡(luò)經(jīng)濟時代的到來,社會飛速的發(fā)展,人們的生活發(fā)生著日新月異的變化,高新技術(shù)正驅(qū)趕著人們生活的腳步,人們對工作生活的要

4、求也日益提高,特別是計算機的應(yīng)用及普及到經(jīng)濟和社會生活的各個領(lǐng)域。使原本的舊的管理方法越來越不適應(yīng)現(xiàn)在社會的發(fā)展。許多人還停留在以前的手工操作,隨著各個學(xué)校的規(guī)模增大,有關(guān)學(xué)生成績管理工作所涉及的數(shù)據(jù)量越來越大,有的學(xué)校不得不靠增加人力、物力來進行學(xué)生成績管理,但手工管理具有效率底、,這大大地阻礙了人類經(jīng)濟的發(fā)展。為了適應(yīng)現(xiàn)代社會人們高度強烈的時間觀念,用計算機對學(xué)校學(xué)生成績進行管理已逐步取代了傳統(tǒng)的管理方式。學(xué)生成績查詢系統(tǒng)對學(xué)校加強學(xué)生成績管理有著極其重要的作用。由于各個大學(xué)都在持續(xù)擴招,學(xué)生的數(shù)量日益龐大,傳統(tǒng)的手工成績管理不僅工作量大,而且容易出現(xiàn)問題。從而需要對學(xué)生成績管理等工作方面

5、提高精確度。經(jīng)過我對學(xué)校情況和師生需求的的具體分析,初步設(shè)計了一套有關(guān)“學(xué)生成績管理”的程序,希望可以幫助學(xué)校改善以往需求緊張的管理系統(tǒng),為廣大師生提供方便,節(jié)省時間,提高工作效率,從而樹立良好的辦學(xué)形象。學(xué)校具體需求分析學(xué)生:對各科成績的查詢及查看本班成績排名。老師:輸入并維護所教科目的學(xué)生成績,計算本科的成績排名、本科成績在班上的排名。班主任:輸入并維護本班的基本信息,對本班的各科成績匯總,計算各科成績的總分,排名,本班平均分等需求。輸出學(xué)生的基本信息,各科的成績及各科成績的部分,各科成績的排名,總分的排名情況。教務(wù)處:學(xué)校全體成員的信息管理,對考試科目,時間及對所考科目的編號等進行具體的

6、管理,并對任課老師,班主任等輸入的信息進行存庫,對學(xué)生的信息進行必要的維護,可打印學(xué)生的所有信息。系統(tǒng)功能分析在本章中,我使用模塊等分析法進行系統(tǒng)功能分析。按任意鍵進合法用戶進入各功能;2-1進入主菜單模塊2.2.3I建立需失看格,簟法實現(xiàn)模式.如圖2-2所示:返回主模塊返回主模塊2-2建立學(xué)生表格模塊任意鍵返回主模塊篇-33除扁有紀錄模塊返回主模塊錄任意鍵返回主模塊返回主模塊模塊任意鍵返回主模塊返回主模塊2.2.4網(wǎng)表中留峻握有紀錄模塊,算法,如圖2-3所示:返回主模塊返回主模塊返回主模塊士任意鍵返回主模塊本行 7 兀 j 錄模塊返回主模塊返回主模塊任意鍵返回主模塊任意鍵返回主模塊任意鍵返回

7、主模塊錄返回主模塊返回主模塊任意鍵返回主模塊2-10分類合計模塊0第三章總體設(shè)計3.1 軟件描述該程序的主要功能為:0將表格初始化,1建立學(xué)生成績表格,2從表中刪除原有紀錄,3顯示單鏈表中所有記錄,4按照姓名查找紀錄,5計算所有學(xué)生的總分和均分,6插入紀錄到表中,7復(fù)制文件,8將所有學(xué)生成績排序,9分類合計,10退出。另外,該程序主要調(diào)用了:I/O函數(shù)(stdio.h),其他說明(stdib.h),字符串函數(shù)(string.h),屏幕操作函數(shù)(conio.h),內(nèi)存操作函數(shù)(mem.h),字符操作函數(shù)(ctype.h),動就 8 星制模塊返回主模塊任意鍵返回主模塊返回主模塊態(tài)地址分配函數(shù)(al

8、loc.h),定義常數(shù)。本軟件采用傳統(tǒng)的軟件開發(fā)生命周期的方法,采用自定向下,逐步求精的結(jié)構(gòu)化的軟件設(shè)計方法。3.3 軟件結(jié)構(gòu)根據(jù)以上模塊可得到總體結(jié)構(gòu)系統(tǒng)才層次圖,如圖3-1所示:3-1 總體結(jié)構(gòu)系統(tǒng)層次圖如表1-1所示:表 3-1 主要函數(shù)函數(shù)名功能Init()初始化函數(shù)Create()創(chuàng)建鏈表Delete(STUDENT*h)刪除記錄Print(STUDENT*h)顯示所有記錄Search(STUDENT*h查找學(xué)生成績Computer(STUDENT*h)計算學(xué)生的總分和均分Insert(STUDENT*h)插入記錄Copy()復(fù)制文件Sort(STUDENT*h)按姓名開頭字母排序T

9、otal(STUDENT*h)分類合計Menu_select()主菜單函數(shù)1.顯示內(nèi)存動態(tài)記錄數(shù)據(jù)函數(shù)函數(shù)原型:voidcreate()功能:顯示內(nèi)存里的記錄參數(shù):記錄數(shù)組和記錄條數(shù)要求:報告是否有記錄及記錄成績內(nèi)容.輸入信息函數(shù)函數(shù)原型:intinputs(char*prompt,char*s,intcount)功能:添加記錄參數(shù):結(jié)構(gòu)體數(shù)組.要求:如果內(nèi)存已經(jīng)存在記錄.則將新記錄追加在記錄尾部,如果還沒有建立記錄鏈表,則建立鏈表并從尾部開始追加記錄.刪除記錄函數(shù)函數(shù)原型:intdelete(STUDENT*h)功能:刪除內(nèi)存鏈表中的指定結(jié)點參數(shù):記錄數(shù)組和記錄條數(shù),成績要求:給出相關(guān)信息.

10、按序號顯示記錄函數(shù)函數(shù)原型:voidprint(STUDENT*h)功能:根據(jù)用戶需求輸出記錄要求:判斷內(nèi)存中記錄的序號與輸入的是否相等,如果相等則輸出,否則關(guān)閉文件.查找函數(shù)函數(shù)原型:intsearch()功能:根據(jù)用戶需要輸出記錄參數(shù):記錄數(shù)組和記錄成績以及姓名s要求:判斷內(nèi)存中記錄的名字與輸入的是否相等則提前結(jié)束.計算函數(shù)函數(shù)原型:intComputer(STUDENT*h)功能:根據(jù)用戶需要計算總分和學(xué)生平均成績參數(shù):記錄數(shù)和計算要求:內(nèi)存中記錄數(shù)進行相加和平均數(shù)運算.插入記錄函數(shù)函數(shù)原型:intinsert(STUDENT*h)功能:根據(jù)用戶指定將信息插入特定位置參數(shù):結(jié)構(gòu)體數(shù)組和記

11、錄數(shù)要求:輸入信息.復(fù)制文件函數(shù)函數(shù)原型:voidcopy()功能:復(fù)制記錄要求:判斷所要文件是否能打開,打不開則退出記錄并復(fù)制,如果相等則輸出,否,能打開則讀出文件中.排序函數(shù)函數(shù)原型:voidsort(STUDENT*h)功能:將記錄進行排序參數(shù):結(jié)構(gòu)體數(shù)組和記錄數(shù)要求:比較內(nèi)存中記錄,判斷大小并進行交換,交換后顯示排序成功.分類合計函數(shù)函數(shù)原型:voidTotal(STUDENT*h)功能:分類存放參數(shù):結(jié)構(gòu)體數(shù)組和記錄數(shù)要求:在內(nèi)存中分類存放各班不同的記錄數(shù)和計算后得到的記錄數(shù).菜單函數(shù)函數(shù)原型:menu_select()功能:控制程序要求:管理菜單命令并完成初始化第四章程序調(diào)試在設(shè)計

12、該程序的時候我采用了結(jié)構(gòu)化程序方法編輯,并在源代碼的基礎(chǔ)上添加了中文注釋。但是在該系統(tǒng)的編寫過程中仍然有許多錯誤,主要的有:注釋文字的排版,定義錯誤,句式的語法錯誤。在完善程序時,我將源代碼先打印下來反復(fù)的捉摸和研究,力圖在上機運行時先改正一些低級錯誤.如缺少; ”之類.在仔細檢查之后, 將源代碼上機調(diào)試一進行編譯,在編譯和連接過程中發(fā)現(xiàn)錯誤,屏幕上顯示了出錯信息,根據(jù)提示找到出錯的位置,加以改正直到順利顯示我預(yù)期的。1、首先,在本次調(diào)試過程中我碰到了在上機前根本沒有想到的錯誤:在注釋的時候,注釋文字應(yīng)寫在一起中間不能有中斷,不能再其中包含c語言的語句。否則會引起錯誤,例如格式不正確或是多了字

13、符等。2、缺少變量定義或是定義位置不正確;由于該程序相對來講稍有些長,前后有些變量很難聯(lián)系起來,但是在錯誤信息的提示下一般還是很是可以找到。不過需要注意的是在定義的時候有些函數(shù)使用同樣的變量名而表示不同的作用,因而使用要很小心,定義及定義的位置要特別留意。為減少這樣的錯誤我后來還是用不同的變量名來表示,結(jié)果引起的那些錯誤解決了。3、句式的語法錯誤;大多的語法錯誤在通過書本參考下能夠修改。主要是平時看書不仔細、不太注意而產(chǎn)生的。如沒有注意具體數(shù)據(jù)使用是有一定的范圍限定;過分重視分號的重要性而在for、if、while語句中畫蛇添足加分號;在使用文件的時候忘記將文件先打開,對打開的方式與使用的情況

14、不太注意而造成不匹配;還有漏掉形參的定義是值不能傳遞等等。這些語法錯誤有信息框的提示一般是能夠排除的編譯、連接的成功并不意味著程序的最終成功。邏輯上的錯誤機器不易檢查出來,這時需要對數(shù)據(jù)結(jié)果進行分析。這種錯誤的查找是最難的,需要編程序的人有相當(dāng)?shù)哪托暮图毿娜グ褑栴}找出來。這也是本次程序編輯過程中碰到的最大的難題。往往運行之后得不到另人滿意的結(jié)果,此時解決的方法一則可以用“分段檢查”的方法,在程序的不同位置設(shè)幾個printf函數(shù)語句,輸出有關(guān)變量的值,逐段往下檢查,或用debug進行調(diào)試,對檢查出的錯誤進行修改,當(dāng)調(diào)試完畢將設(shè)置的printf都刪去。若在程序中找不到問題,則再來考慮算法是否邏輯嚴

15、謹,再進行修改。如此循環(huán)往復(fù),直到最后程序運行成功。在本次程序編輯過程中,我就是常遇到編譯能通過,能夠運行程序,但是總在輸入、刪除等操作完之后再想去看數(shù)據(jù)文件中存在的數(shù)據(jù)記錄的時候,卻一條記錄也顯示不出來,我懷疑是哪個對方對n變量的定義或使用出錯了,于是在每個主要函數(shù)的操作過程中添加了printf語句用來顯示n的變化,例如在執(zhí)行某個函數(shù)前添加插入語句顯示n的起始值,在執(zhí)行完該個函數(shù)后再添加插入語句顯示此時n的結(jié)果值,觀察n的變化是否正確,如果錯誤了,也就說明該函數(shù)編寫過程有錯。諸如這樣的調(diào)試方法,不斷縮小檢查范圍,最后將錯誤找到,進行修改。所以到最后我找到了錯誤,及時改正,終于把程序完成了,一

16、切功能顯示正常。以上是調(diào)試的全過程第五章使用說明首先進入界面時,根據(jù)屏幕上的提示pressanykeyentermenu即是按任意鍵均可進入主菜單,考慮到學(xué)生成績大多由老師輸入和調(diào)用,所以這里對使用者沒有要求也就沒有添加密碼的必要。在進入主菜單時可以看到這樣的畫面,如圖4-1所示:4-1主菜單從0到10共有11個功能鍵。此時應(yīng)該根據(jù)提示Enteryourchoice(0-10):選擇自己需要用的功能,例如:在提示后按1再回車(Enter鍵)的話就會進入編輯。在主菜單上的11個功能分別是:0initlist將表格初始化:使用0后,系統(tǒng)會將原有的一切記錄全部刪去,所有的恢復(fù)到位使用時。一切在主菜單

17、上完成。Enterlist建立學(xué)生成績表格:使用1后,在界面上會要求你輸入學(xué)號no,姓名name和成績score1、2、3。如果已經(jīng)輸入完畢只要在下一個no后輸入!再按回車鍵即可,此時就會回到主菜單,如圖4-2所示:4-2輸入界面Deletearecordfromlist從表中刪除原有紀錄:使用2后,會進入子界面,提示語會告訴你輸入你要刪除的信息的學(xué)生的學(xué)號后會出現(xiàn)“l(fā)istno*student”這就表示刪除成功,如果沒有這個學(xué)生的信息則會跳過步執(zhí)行但是還是會輸出上述的句子,如圖4-3所示:4-3顯示刪除界面printlist顯示單鏈表中所有記錄:如果是在執(zhí)行完5以后,那么總分和均分一欄就不會

18、空白,而是會輸出計算后的數(shù)據(jù),如圖4-4所示:4-4打印數(shù)出界面Searchrecordfromlist按照姓名查找紀錄:根據(jù)提示pleaseenterstudentsnameforsearch”輸入學(xué)生的拼音拼寫的姓名,如圖4-5所示:4-5查找界面computethescore計算所有學(xué)生的總分和均分:按5后,系統(tǒng)會自動計算然后輸出結(jié)果,如圖4-6所示:4-6計算界面insertrecordtolist插入紀錄到表中:使用6時,要輸入你想插到哪一個學(xué)生前,只需輸入他的學(xué)號。然后,在提示語的提醒下輸入要插入學(xué)生的學(xué)號,姓名和成績。然后再進入打印界面,此時可以看到已經(jīng)將09插入到02前。如圖4

19、-7所示:,然4-7插入后界面copythefiletonewfile復(fù)制文件:執(zhí)行完7后,會根據(jù)使用者輸入的地址和命名生成文本文檔存儲。sorttomakenewfile將所有學(xué)生成績排序:在完成后,會出現(xiàn)“sortsuccess!”如果想看結(jié)果的話,可以在執(zhí)行完這一步后在執(zhí)行3,這樣就可以看到排序后的結(jié)果。totalonnomber分類合計,如圖4-9所示:4-9分類合計界面Quit退出模塊,在主菜單上實行。如圖4-10所示:4-10退出界面第六章工作總結(jié)在這次的編程過程中,我不僅在C語言的學(xué)習(xí)上有了很大的提高而且也培養(yǎng)了我的毅力、耐心、決心和學(xué)習(xí)能力。短短的兩周,我自己都不敢相信可以弄好

20、一個對我而言一個大而功能相對而言還可以的程序。但是不得不說在這個程序中仍然有許多的缺陷,諸如:計算均分時只能計算三門的總均分;無法將文件以文檔或是表格形式存儲;排序、刪除等必須以一種形式先查找學(xué)生信息然后再實行操作并不多樣化??傊?,在這個過程中我還面對了程序無法執(zhí)行,改錯時怎么也找不到錯誤在哪里的困境;但我還是在老師和同學(xué)們的幫助下完成了這個程序。可以說我的心情是相當(dāng)?shù)募?,相信有了這樣的經(jīng)歷后我能夠更加嫻熟的面對各種情況。注:課程設(shè)計以來的感想、心得、經(jīng)驗、收獲、有待改進的方面。不超過一頁。參考文獻(參考書或論文或文章)1黃明等.21世紀進階輔導(dǎo)C語言程序設(shè)計.大連理工大學(xué)出版社,2005:

21、452082馬靖善等.C語言程序設(shè)計.清華大學(xué)出版社,2005:23-145附錄源代碼#includestdio.h#includestdlib.h#includestring.h#includeconio.h#includemem.h#includectype.h#includealloc.h#defineN3typedefstructz1charname20;intscoreN;floatsum;floataverage;intorder;structz1*next;STUDENT;STUDENT*init();STUDENT*create();STUDENT*delete(STUDENT

22、*h);voidprint(STUDENT*h);voidsearch(STUDENT*h);voidsave(STUDENT*h);STUDENT*load();voidcomputer(STUDENT*h);STUDENT*insert(STUDENT*h);voidappend();voidcopy();STUDENT*sort(STUDENT*h);voidtotal(STUDENT*h);intmenu_select();main()inti;STUDENT*head;head=init();clrscr();for(;)switch(menu_select()case0:head=

23、init();break;case1:head=create();break;case2:head=delete(head);break;case3:print(head);break;case4:search(head);break;case5:computer(head);break;case6:head=insert(head);break;case7:copy();break;case8:head=sort(head);break;case9:total(head);break;case10:exit(0);menu_select()0.initlist,1.Enterlist,2.D

24、eletearecordfromlist,3.printlist,4.Searchrecordonname,putethescore,6.insertrecordtolist,7.copythefiletonewfile,/*char*menu=”*MENU*”復(fù)制文件*/8.sorttomakenewfile,/*9.totalonnomber,/*10.Quit);/*chars3;intc,i;gotoxy(1,25);printf(pressanykeyentermenugetch();clrscr();gotoxy(1,1);textcolor(BLUE);textbackgroun

25、d(WHITE);gotoxy(10,2);putch(0 xc9);for(i=1;i44;i+)putch(0 xcd);putch(0 xbb);for(i=3;i20;i+)(排序*/分類合計*/退出*/n);gotoxy(10,i);putch(0 xba);gotoxy(54,i);putch(0 xba);/*輸出右垂直線*/gotoxy(10,20);putch(0 xc8);for(i=1;i44;i+)putch(0 xcd);putch(0 xbc);window(11,3,53,19);clrscr();for(i=0;i16;i+)gotoxy(10,i+1);cpr

26、intf(%s,menui);textbackground(GREEN);window(1,1,80,25);gotoxy(10,21);doEnteryouchoice(010):);scanf(%s,s);printf(nc=atoi(s);while(c10);returnc;STUDENT*init()returnNULL;STUDENT*create()inti;ints;STUDENT*h=NULL,*info;for(;)info=(STUDENT*)malloc(sizeof(STUDENT);if(!info)printf(noutofmemory);returnNULL;)

27、inputs(enterno:,info-no,11);if(info-no0=!)break;inputs(enterstudentsname:,info-name,20);printf(pleaseinput%dscoren,N);s=0;for(i=0;iscorei);if(info-scorei100|info-scoreiscorei100|info-scoreiscorei;info-sum=s;info-average=(float)s/N;info-order=0;info-next=h;h=info;)return(h);)inputs(char*prompt,char*s

28、,intcount)(charp255;doprintf(prompt);scanf(%s,p);if(strlen(p)count)printf(ntoolong!n);while(strlen(p)count);strcpy(s,p);voidprint(STUDENT*h)inti=0;STUDENT*p;clrscr();p=h;printf(|Rec|No|Name|Sc1|Sc2|Sc3|Sum|Ave|Order|n);printf(|-|1|一|一-|-一|一-|一|n);while(p!=NULL)i+;printf(|%3d|%-10s|%-15s|%4d|%4d|%4d|

29、%4.2f|%4.2f|%3d|n,i,p-no,p-name,p-score0,p-score1,p-score2,p-sum,p-average,p-order);p=p-next;printf(nnn*STUDENT*n);STUDENT*delete(STUDENT*h)(STUDENT*p,*q;chars11;clrscr();printf(pleasedeletednon);scanf(%s,s);q=p=h;while(strcmp(p-no,s)&p!=NULL)(q=p;p=p-next;)if(p=NULL)printf(nlistno%sstudentn,s);

30、elseprintf(”*end*n);printf(|No|Name|Sc1|Sc2|Sc3|Sum|Ave|Order|n);printf(|1|-|-一|-一|-一|-|n);printf(|%-10s|%-15s|%4d|%4d|%4d|%4.2f|%4.2f|%3d|n,p-no,p-name,p-score0,p-score1,p-score2,p-sum,p-average,p-order);*n);getch();if(p=h)foundprintf(”*n);haveprintf(”*end*h=p-next;elseq-next=p-next;free(p);printf(

31、nhavedeletedNo%sstudentn,s);printf(Dontforgetsaven);return(h);voidsearch(STUDENT*h)STUDENT*p;chars15;clrscr();printf(Pleaseenterstudentsnameforsearchn);scanf(%s,s);p=h;while(strcmp(p-name,s)&p!=NULL)p=p-next;if(p=NULL)printf(nlistno%sstudentn,s);else(*n);printf(|No|Name|Sc1|Sc2|Sc3|Sum|Ave|Order

32、|n);printf(|1|-|-一|-一|-一|-|n);printf(|%-10s|%-15s|%4d|%4d|%4d|%4.2f|%4.2f|%3d|n,p-no,p-name,p-score0,p-score1,p-score2,p-sum,p-average,p-order);printf(”*end*n);printf(nn*havefound*STUDENT*insert(STUDENT*h)(STUDENT*p,*q,*info;chars11;ints1,i;printf(pleaseenterlocationbeforethenon);scanf(%s,s);printf(

33、npleasenewrecordn);info=(STUDENT*)malloc(sizeof(STUDENT);if(!info)(printf(noutofmemory);returnNULL;)inputs(enterno:,info-no,11);inputs(entername:,info-name,15);printf(pleaseinput%dscoren,N);s1=0;for(i=0;iscorei);if(info-scorei100|info-scoreiscorei100|info-scoreiscorei;info-sum=s1;info-average=(float

34、)s1/N;info-order=0;info-next=NULL;p=h;q=h;while(strcmp(p-no,s)&p!=NULL)q=p;if(p=NULL)if(p=h)h=info;elseq-next=info;elseif(p=h)(info-next=p;h=info;)else(info-next=p;q-next=info;)p=p-next;printf(nhaveinserted%ssave-n);return(h);voidcopy()charoutfile10,infile10;FILE*sfp,*tfp;STUDENT*p=NULL;clrscr()

35、;printf(Enterinfilename,forc:f1te.txt:n);scanf(%s,infile);if(sfp=fopen(infile,rb)=NULL)printf(cannotopeninputfilen);exit(0);student-n,info-name);printf(-Dontforgettoprintf(Enteroutfilename,forexampleexamplec:f1te.txt:n);scanf(%s,outfile);if(tfp=fopen(outfile,wb)=NULL)(printf(cannotopenoutputfilen);exit(0);while(!feof(sfp)(if(1!=fread(p,sizeof(STUDENT),1,sfp)break;fwrite(p,sizeof(STUDENT),1,tfp);fclose(sfp);fclose(tfp);printf(youhavesuccesscopyfile!n);STUDENT*sort(

溫馨提示

  • 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)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論