




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、摘要利用所學(xué)過的C語(yǔ)言知識(shí),采用結(jié)構(gòu)化程序設(shè)計(jì)方法,設(shè)計(jì)一個(gè)學(xué)生成績(jī)管理檔案程序,該程序的主要功能為:0將表格初始化,1建立學(xué)生成績(jī)表格,2從表中刪除原有紀(jì)錄,3顯示單鏈表中所有記錄,4按照姓名查找紀(jì)錄,5計(jì)算所有學(xué)生的總分和均分,6插入紀(jì)錄到表中,7復(fù)制文件,8將所有學(xué)生成績(jī)排序,9分類合計(jì),10退出。該系統(tǒng)功能完善,界面友好,短小經(jīng)用,使用方便,即使是不熟悉計(jì)算機(jī)也可以自如的使用該系統(tǒng)。通過上機(jī)調(diào)試運(yùn)行與模擬操作, 完成對(duì)學(xué)生成績(jī)的管理, 減輕管理人員的勞動(dòng)強(qiáng)度, 提高一個(gè)學(xué)校的自動(dòng)化管理水平。關(guān)鍵詞:學(xué)生成績(jī)管理;結(jié)構(gòu)化程序設(shè)計(jì);調(diào)試運(yùn)行;功能完善目錄第一章概述1.1 項(xiàng)目背景1.2 工
2、作環(huán)境第二章系統(tǒng)分析2.1系統(tǒng)需求分析2.2系統(tǒng)功能分析2模塊實(shí)現(xiàn)算法2進(jìn)入主菜單。2建立學(xué)生表格2從表中刪除原有紀(jì)錄2顯示單鏈表中所有記錄2按照姓名查找紀(jì)錄2計(jì)算所有學(xué)生的總分和均分2插入紀(jì)錄到表中2復(fù)制文件將所有學(xué)生成績(jī)排序分類合計(jì):退出第三章總體設(shè)計(jì)軟件描述設(shè)計(jì)方法軟件結(jié)構(gòu)文件及函數(shù)組成第五章使用說明第六章工作總結(jié)參考文獻(xiàn)(參考書或論文或文章)附錄源代碼第一章概述現(xiàn)今已步入高速發(fā)展的時(shí)代,電腦技術(shù)發(fā)展日新月異,時(shí)代潮流也不斷變革,競(jìng)爭(zhēng)越發(fā)激烈,時(shí)間就是金錢,但是就是在一些瑣碎的事上面浪費(fèi)了大量的時(shí)間,例如查詢資料之類.如果我們把浪費(fèi)的時(shí)間用于其他方面,勢(shì)必會(huì)有更大的收益.應(yīng)此需求,為使廣
3、大教師掌握更多的時(shí)間,相應(yīng)的開發(fā)出此軟件一學(xué)生成績(jī)管理軟件系統(tǒng).而編寫詳細(xì)設(shè)計(jì)說明書是軟件開發(fā)過程必不可少的部分,其目的是為了使開發(fā)人員在完成概要設(shè)計(jì)說明書的基礎(chǔ)上完成概要設(shè)計(jì)規(guī)定的各項(xiàng)模塊的具體實(shí)現(xiàn)的設(shè)計(jì)工作。本軟件屬于綠色軟件,適合任何層次的用戶,因此本說明書的預(yù)期讀者范圍相當(dāng)廣。項(xiàng)目背景一、軟件名稱學(xué)生成績(jī)管理二、相關(guān)單位主要是學(xué)校用于學(xué)校的成績(jī)管理工作環(huán)境A.一臺(tái)586以上的微機(jī)及兼容B.內(nèi)存16MB(最好32MEft存)C.VGA彩顯一臺(tái)第二章系統(tǒng)分析系統(tǒng)需求分析隨著網(wǎng)絡(luò)經(jīng)濟(jì)時(shí)代的到來(lái),社會(huì)飛速的發(fā)展,人們的生活發(fā)生著日新月異的變化,高新技術(shù)正驅(qū)趕著人們生活的腳步,人們對(duì)工作生活的要
4、求也日益提高,特別是計(jì)算機(jī)的應(yīng)用及普及到經(jīng)濟(jì)和社會(huì)生活的各個(gè)領(lǐng)域。使原本的舊的管理方法越來(lái)越不適應(yīng)現(xiàn)在社會(huì)的發(fā)展。許多人還停留在以前的手工操作,隨著各個(gè)學(xué)校的規(guī)模增大,有關(guān)學(xué)生成績(jī)管理工作所涉及的數(shù)據(jù)量越來(lái)越大,有的學(xué)校不得不靠增加人力、物力來(lái)進(jìn)行學(xué)生成績(jī)管理,但手工管理具有效率底、,這大大地阻礙了人類經(jīng)濟(jì)的發(fā)展。為了適應(yīng)現(xiàn)代社會(huì)人們高度強(qiáng)烈的時(shí)間觀念,用計(jì)算機(jī)對(duì)學(xué)校學(xué)生成績(jī)進(jìn)行管理已逐步取代了傳統(tǒng)的管理方式。學(xué)生成績(jī)查詢系統(tǒng)對(duì)學(xué)校加強(qiáng)學(xué)生成績(jī)管理有著極其重要的作用。由于各個(gè)大學(xué)都在持續(xù)擴(kuò)招,學(xué)生的數(shù)量日益龐大,傳統(tǒng)的手工成績(jī)管理不僅工作量大,而且容易出現(xiàn)問題。從而需要對(duì)學(xué)生成績(jī)管理等工作方面
5、提高精確度。經(jīng)過我對(duì)學(xué)校情況和師生需求的的具體分析,初步設(shè)計(jì)了一套有關(guān)“學(xué)生成績(jī)管理”的程序,希望可以幫助學(xué)校改善以往需求緊張的管理系統(tǒng),為廣大師生提供方便,節(jié)省時(shí)間,提高工作效率,從而樹立良好的辦學(xué)形象。學(xué)校具體需求分析學(xué)生:對(duì)各科成績(jī)的查詢及查看本班成績(jī)排名。老師:輸入并維護(hù)所教科目的學(xué)生成績(jī),計(jì)算本科的成績(jī)排名、本科成績(jī)?cè)诎嗌系呐琶?。班主任:輸入并維護(hù)本班的基本信息,對(duì)本班的各科成績(jī)匯總,計(jì)算各科成績(jī)的總分,排名,本班平均分等需求。輸出學(xué)生的基本信息,各科的成績(jī)及各科成績(jī)的部分,各科成績(jī)的排名,總分的排名情況。教務(wù)處:學(xué)校全體成員的信息管理,對(duì)考試科目,時(shí)間及對(duì)所考科目的編號(hào)等進(jìn)行具體的
6、管理,并對(duì)任課老師,班主任等輸入的信息進(jìn)行存庫(kù),對(duì)學(xué)生的信息進(jìn)行必要的維護(hù),可打印學(xué)生的所有信息。系統(tǒng)功能分析在本章中,我使用模塊等分析法進(jìn)行系統(tǒng)功能分析。按任意鍵進(jìn)合法用戶進(jìn)入各功能;2-1進(jìn)入主菜單模塊2.2.3I建立需失看格,簟法實(shí)現(xiàn)模式.如圖2-2所示:返回主模塊返回主模塊2-2建立學(xué)生表格模塊任意鍵返回主模塊篇-33除扁有紀(jì)錄模塊返回主模塊錄任意鍵返回主模塊返回主模塊模塊任意鍵返回主模塊返回主模塊2.2.4網(wǎng)表中留峻握有紀(jì)錄模塊,算法,如圖2-3所示:返回主模塊返回主模塊返回主模塊士任意鍵返回主模塊本行 7 兀 j 錄模塊返回主模塊返回主模塊任意鍵返回主模塊任意鍵返回主模塊任意鍵返回
7、主模塊錄返回主模塊返回主模塊任意鍵返回主模塊2-10分類合計(jì)模塊0第三章總體設(shè)計(jì)3.1 軟件描述該程序的主要功能為:0將表格初始化,1建立學(xué)生成績(jī)表格,2從表中刪除原有紀(jì)錄,3顯示單鏈表中所有記錄,4按照姓名查找紀(jì)錄,5計(jì)算所有學(xué)生的總分和均分,6插入紀(jì)錄到表中,7復(fù)制文件,8將所有學(xué)生成績(jī)排序,9分類合計(jì),10退出。另外,該程序主要調(diào)用了:I/O函數(shù)(stdio.h),其他說明(stdib.h),字符串函數(shù)(string.h),屏幕操作函數(shù)(conio.h),內(nèi)存操作函數(shù)(mem.h),字符操作函數(shù)(ctype.h),動(dòng)就 8 星制模塊返回主模塊任意鍵返回主模塊返回主模塊態(tài)地址分配函數(shù)(al
8、loc.h),定義常數(shù)。本軟件采用傳統(tǒng)的軟件開發(fā)生命周期的方法,采用自定向下,逐步求精的結(jié)構(gòu)化的軟件設(shè)計(jì)方法。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é)生成績(jī)Computer(STUDENT*h)計(jì)算學(xué)生的總分和均分Insert(STUDENT*h)插入記錄Copy()復(fù)制文件Sort(STUDENT*h)按姓名開頭字母排序T
9、otal(STUDENT*h)分類合計(jì)Menu_select()主菜單函數(shù)1.顯示內(nèi)存動(dòng)態(tài)記錄數(shù)據(jù)函數(shù)函數(shù)原型:voidcreate()功能:顯示內(nèi)存里的記錄參數(shù):記錄數(shù)組和記錄條數(shù)要求:報(bào)告是否有記錄及記錄成績(jī)內(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é)點(diǎn)參數(shù):記錄數(shù)組和記錄條數(shù),成績(jī)要求:給出相關(guān)信息.
10、按序號(hào)顯示記錄函數(shù)函數(shù)原型:voidprint(STUDENT*h)功能:根據(jù)用戶需求輸出記錄要求:判斷內(nèi)存中記錄的序號(hào)與輸入的是否相等,如果相等則輸出,否則關(guān)閉文件.查找函數(shù)函數(shù)原型:intsearch()功能:根據(jù)用戶需要輸出記錄參數(shù):記錄數(shù)組和記錄成績(jī)以及姓名s要求:判斷內(nèi)存中記錄的名字與輸入的是否相等則提前結(jié)束.計(jì)算函數(shù)函數(shù)原型:intComputer(STUDENT*h)功能:根據(jù)用戶需要計(jì)算總分和學(xué)生平均成績(jī)參數(shù):記錄數(shù)和計(jì)算要求:內(nèi)存中記錄數(shù)進(jìn)行相加和平均數(shù)運(yùn)算.插入記錄函數(shù)函數(shù)原型:intinsert(STUDENT*h)功能:根據(jù)用戶指定將信息插入特定位置參數(shù):結(jié)構(gòu)體數(shù)組和記
11、錄數(shù)要求:輸入信息.復(fù)制文件函數(shù)函數(shù)原型:voidcopy()功能:復(fù)制記錄要求:判斷所要文件是否能打開,打不開則退出記錄并復(fù)制,如果相等則輸出,否,能打開則讀出文件中.排序函數(shù)函數(shù)原型:voidsort(STUDENT*h)功能:將記錄進(jìn)行排序參數(shù):結(jié)構(gòu)體數(shù)組和記錄數(shù)要求:比較內(nèi)存中記錄,判斷大小并進(jìn)行交換,交換后顯示排序成功.分類合計(jì)函數(shù)函數(shù)原型:voidTotal(STUDENT*h)功能:分類存放參數(shù):結(jié)構(gòu)體數(shù)組和記錄數(shù)要求:在內(nèi)存中分類存放各班不同的記錄數(shù)和計(jì)算后得到的記錄數(shù).菜單函數(shù)函數(shù)原型:menu_select()功能:控制程序要求:管理菜單命令并完成初始化第四章程序調(diào)試在設(shè)計(jì)
12、該程序的時(shí)候我采用了結(jié)構(gòu)化程序方法編輯,并在源代碼的基礎(chǔ)上添加了中文注釋。但是在該系統(tǒng)的編寫過程中仍然有許多錯(cuò)誤,主要的有:注釋文字的排版,定義錯(cuò)誤,句式的語(yǔ)法錯(cuò)誤。在完善程序時(shí),我將源代碼先打印下來(lái)反復(fù)的捉摸和研究,力圖在上機(jī)運(yùn)行時(shí)先改正一些低級(jí)錯(cuò)誤.如缺少; ”之類.在仔細(xì)檢查之后, 將源代碼上機(jī)調(diào)試一進(jìn)行編譯,在編譯和連接過程中發(fā)現(xiàn)錯(cuò)誤,屏幕上顯示了出錯(cuò)信息,根據(jù)提示找到出錯(cuò)的位置,加以改正直到順利顯示我預(yù)期的。1、首先,在本次調(diào)試過程中我碰到了在上機(jī)前根本沒有想到的錯(cuò)誤:在注釋的時(shí)候,注釋文字應(yīng)寫在一起中間不能有中斷,不能再其中包含c語(yǔ)言的語(yǔ)句。否則會(huì)引起錯(cuò)誤,例如格式不正確或是多了字
13、符等。2、缺少變量定義或是定義位置不正確;由于該程序相對(duì)來(lái)講稍有些長(zhǎng),前后有些變量很難聯(lián)系起來(lái),但是在錯(cuò)誤信息的提示下一般還是很是可以找到。不過需要注意的是在定義的時(shí)候有些函數(shù)使用同樣的變量名而表示不同的作用,因而使用要很小心,定義及定義的位置要特別留意。為減少這樣的錯(cuò)誤我后來(lái)還是用不同的變量名來(lái)表示,結(jié)果引起的那些錯(cuò)誤解決了。3、句式的語(yǔ)法錯(cuò)誤;大多的語(yǔ)法錯(cuò)誤在通過書本參考下能夠修改。主要是平時(shí)看書不仔細(xì)、不太注意而產(chǎn)生的。如沒有注意具體數(shù)據(jù)使用是有一定的范圍限定;過分重視分號(hào)的重要性而在for、if、while語(yǔ)句中畫蛇添足加分號(hào);在使用文件的時(shí)候忘記將文件先打開,對(duì)打開的方式與使用的情況
14、不太注意而造成不匹配;還有漏掉形參的定義是值不能傳遞等等。這些語(yǔ)法錯(cuò)誤有信息框的提示一般是能夠排除的編譯、連接的成功并不意味著程序的最終成功。邏輯上的錯(cuò)誤機(jī)器不易檢查出來(lái),這時(shí)需要對(duì)數(shù)據(jù)結(jié)果進(jìn)行分析。這種錯(cuò)誤的查找是最難的,需要編程序的人有相當(dāng)?shù)哪托暮图?xì)心去把問題找出來(lái)。這也是本次程序編輯過程中碰到的最大的難題。往往運(yùn)行之后得不到另人滿意的結(jié)果,此時(shí)解決的方法一則可以用“分段檢查”的方法,在程序的不同位置設(shè)幾個(gè)printf函數(shù)語(yǔ)句,輸出有關(guān)變量的值,逐段往下檢查,或用debug進(jìn)行調(diào)試,對(duì)檢查出的錯(cuò)誤進(jìn)行修改,當(dāng)調(diào)試完畢將設(shè)置的printf都刪去。若在程序中找不到問題,則再來(lái)考慮算法是否邏輯嚴(yán)
15、謹(jǐn),再進(jìn)行修改。如此循環(huán)往復(fù),直到最后程序運(yùn)行成功。在本次程序編輯過程中,我就是常遇到編譯能通過,能夠運(yùn)行程序,但是總在輸入、刪除等操作完之后再想去看數(shù)據(jù)文件中存在的數(shù)據(jù)記錄的時(shí)候,卻一條記錄也顯示不出來(lái),我懷疑是哪個(gè)對(duì)方對(duì)n變量的定義或使用出錯(cuò)了,于是在每個(gè)主要函數(shù)的操作過程中添加了printf語(yǔ)句用來(lái)顯示n的變化,例如在執(zhí)行某個(gè)函數(shù)前添加插入語(yǔ)句顯示n的起始值,在執(zhí)行完該個(gè)函數(shù)后再添加插入語(yǔ)句顯示此時(shí)n的結(jié)果值,觀察n的變化是否正確,如果錯(cuò)誤了,也就說明該函數(shù)編寫過程有錯(cuò)。諸如這樣的調(diào)試方法,不斷縮小檢查范圍,最后將錯(cuò)誤找到,進(jìn)行修改。所以到最后我找到了錯(cuò)誤,及時(shí)改正,終于把程序完成了,一
16、切功能顯示正常。以上是調(diào)試的全過程第五章使用說明首先進(jìn)入界面時(shí),根據(jù)屏幕上的提示pressanykeyentermenu即是按任意鍵均可進(jìn)入主菜單,考慮到學(xué)生成績(jī)大多由老師輸入和調(diào)用,所以這里對(duì)使用者沒有要求也就沒有添加密碼的必要。在進(jìn)入主菜單時(shí)可以看到這樣的畫面,如圖4-1所示:4-1主菜單從0到10共有11個(gè)功能鍵。此時(shí)應(yīng)該根據(jù)提示Enteryourchoice(0-10):選擇自己需要用的功能,例如:在提示后按1再回車(Enter鍵)的話就會(huì)進(jìn)入編輯。在主菜單上的11個(gè)功能分別是:0initlist將表格初始化:使用0后,系統(tǒng)會(huì)將原有的一切記錄全部刪去,所有的恢復(fù)到位使用時(shí)。一切在主菜單
17、上完成。Enterlist建立學(xué)生成績(jī)表格:使用1后,在界面上會(huì)要求你輸入學(xué)號(hào)no,姓名name和成績(jī)score1、2、3。如果已經(jīng)輸入完畢只要在下一個(gè)no后輸入!再按回車鍵即可,此時(shí)就會(huì)回到主菜單,如圖4-2所示:4-2輸入界面Deletearecordfromlist從表中刪除原有紀(jì)錄:使用2后,會(huì)進(jìn)入子界面,提示語(yǔ)會(huì)告訴你輸入你要?jiǎng)h除的信息的學(xué)生的學(xué)號(hào)后會(huì)出現(xiàn)“l(fā)istno*student”這就表示刪除成功,如果沒有這個(gè)學(xué)生的信息則會(huì)跳過步執(zhí)行但是還是會(huì)輸出上述的句子,如圖4-3所示:4-3顯示刪除界面printlist顯示單鏈表中所有記錄:如果是在執(zhí)行完5以后,那么總分和均分一欄就不會(huì)
18、空白,而是會(huì)輸出計(jì)算后的數(shù)據(jù),如圖4-4所示:4-4打印數(shù)出界面Searchrecordfromlist按照姓名查找紀(jì)錄:根據(jù)提示pleaseenterstudentsnameforsearch”輸入學(xué)生的拼音拼寫的姓名,如圖4-5所示:4-5查找界面computethescore計(jì)算所有學(xué)生的總分和均分:按5后,系統(tǒng)會(huì)自動(dòng)計(jì)算然后輸出結(jié)果,如圖4-6所示:4-6計(jì)算界面insertrecordtolist插入紀(jì)錄到表中:使用6時(shí),要輸入你想插到哪一個(gè)學(xué)生前,只需輸入他的學(xué)號(hào)。然后,在提示語(yǔ)的提醒下輸入要插入學(xué)生的學(xué)號(hào),姓名和成績(jī)。然后再進(jìn)入打印界面,此時(shí)可以看到已經(jīng)將09插入到02前。如圖4
19、-7所示:,然4-7插入后界面copythefiletonewfile復(fù)制文件:執(zhí)行完7后,會(huì)根據(jù)使用者輸入的地址和命名生成文本文檔存儲(chǔ)。sorttomakenewfile將所有學(xué)生成績(jī)排序:在完成后,會(huì)出現(xiàn)“sortsuccess!”如果想看結(jié)果的話,可以在執(zhí)行完這一步后在執(zhí)行3,這樣就可以看到排序后的結(jié)果。totalonnomber分類合計(jì),如圖4-9所示:4-9分類合計(jì)界面Quit退出模塊,在主菜單上實(shí)行。如圖4-10所示:4-10退出界面第六章工作總結(jié)在這次的編程過程中,我不僅在C語(yǔ)言的學(xué)習(xí)上有了很大的提高而且也培養(yǎng)了我的毅力、耐心、決心和學(xué)習(xí)能力。短短的兩周,我自己都不敢相信可以弄好
20、一個(gè)對(duì)我而言一個(gè)大而功能相對(duì)而言還可以的程序。但是不得不說在這個(gè)程序中仍然有許多的缺陷,諸如:計(jì)算均分時(shí)只能計(jì)算三門的總均分;無(wú)法將文件以文檔或是表格形式存儲(chǔ);排序、刪除等必須以一種形式先查找學(xué)生信息然后再實(shí)行操作并不多樣化。總之,在這個(gè)過程中我還面對(duì)了程序無(wú)法執(zhí)行,改錯(cuò)時(shí)怎么也找不到錯(cuò)誤在哪里的困境;但我還是在老師和同學(xué)們的幫助下完成了這個(gè)程序。可以說我的心情是相當(dāng)?shù)募?dòng),相信有了這樣的經(jīng)歷后我能夠更加?jì)故斓拿鎸?duì)各種情況。注:課程設(shè)計(jì)以來(lái)的感想、心得、經(jīng)驗(yàn)、收獲、有待改進(jìn)的方面。不超過一頁(yè)。參考文獻(xiàn)(參考書或論文或文章)1黃明等.21世紀(jì)進(jìn)階輔導(dǎo)C語(yǔ)言程序設(shè)計(jì).大連理工大學(xué)出版社,2005:
21、452082馬靖善等.C語(yǔ)言程序設(shè)計(jì).清華大學(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+)(排序*/分類合計(jì)*/退出*/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. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 泉州海洋職業(yè)學(xué)院《中醫(yī)思維學(xué)》2023-2024學(xué)年第二學(xué)期期末試卷
- 西安海棠職業(yè)學(xué)院《工程倫理五》2023-2024學(xué)年第二學(xué)期期末試卷
- 江西洪州職業(yè)學(xué)院《RFD原理及應(yīng)用》2023-2024學(xué)年第二學(xué)期期末試卷
- 2025年中醫(yī)藥師考試試題及答案分享
- 山東省濟(jì)南市部分學(xué)校2025年高三高考全真模擬卷(三)英語(yǔ)試題含解析
- 2025年心理學(xué)職業(yè)發(fā)展理論考試試題及答案
- 2025年英語(yǔ)翻譯專業(yè)技能考試試卷及答案
- 2025年物流與供應(yīng)鏈管理考試題目及答案
- 邵東縣2025年初三調(diào)研測(cè)試(二)語(yǔ)文試題理試題含解析
- 武漢理工大學(xué)《休閑體育產(chǎn)業(yè)》2023-2024學(xué)年第一學(xué)期期末試卷
- 遼寧省鞍山市(2024年-2025年小學(xué)五年級(jí)語(yǔ)文)部編版階段練習(xí)(下學(xué)期)試卷及答案
- 酒店工作安全培訓(xùn)(共60張課件)
- 初中七年級(jí)主題班會(huì):團(tuán)結(jié)合作團(tuán)結(jié)就是力量(課件)
- 歷史人物范仲淹介紹
- 四年級(jí)下冊(cè)數(shù)學(xué)方程題100道及答案
- 2024年中證金融研究院事業(yè)單位招聘23人歷年高頻難、易錯(cuò)點(diǎn)500題模擬試題附帶答案詳解
- 2024掛軌式巡檢機(jī)器人
- CJJT 182-2014 城鎮(zhèn)供水與污水處理化驗(yàn)室技術(shù)規(guī)范
- 排水暗渠施工方案
- 小升初奧數(shù)競(jìng)賽題100例附答案(完整版)
- 彩票店合伙協(xié)議書模板
評(píng)論
0/150
提交評(píng)論