【文章內(nèi)容簡(jiǎn)介】
圖 4 修改信息 流程圖 運(yùn)功會(huì)成績(jī)管理 程序設(shè)計(jì) 9 刪除信息 模塊 該函數(shù)的核心內(nèi)容是刪除算法以及最終對(duì)源文件的更新。該函數(shù)執(zhí)行時(shí),首先調(diào)用 reads函數(shù)將文件中的運(yùn)動(dòng)員信息讀入數(shù)組當(dāng)中,并由用戶(hù)輸 入待刪除運(yùn)動(dòng)員的號(hào)碼,而后按照該號(hào)碼進(jìn)行查找,如果文件中存在該運(yùn)動(dòng)員的數(shù)據(jù),則采用刪除算法刪除,否則輸出運(yùn)動(dòng)員信息不存在的提示信息。對(duì)運(yùn)動(dòng)員信息的具體刪除算法是在結(jié)構(gòu)體數(shù)組中實(shí)現(xiàn)的,當(dāng)運(yùn)動(dòng)員的信息被找到后,位于數(shù)組中該學(xué)生后面的運(yùn)動(dòng)員記錄依次向前移動(dòng)一個(gè)元素的位置,這些操作完成后,要?jiǎng)h除運(yùn)動(dòng)員信息就被后面的數(shù)組元素覆蓋掉了,也就實(shí)現(xiàn)了刪除。 運(yùn)功會(huì)成績(jī)管理 程序設(shè)計(jì) 10 開(kāi) 始結(jié) 束S t r u c t s t u d e n t s t u [ N ] 。 c h a r n u m b e r [ 2 0 ] 。 i n t n , I , j 。 n = = r e a d s ( s t u ) 。S c a n f ( “ $ s ”, n u m b e r ) 。i 0i nS t r c m p ( n u m b e r , s t u [ i ] . n u m= = 0 )i = n沒(méi) 有 找 到 該運(yùn) 動(dòng) 員 信 息J = i + 1S t u [ j 1 ] s t u [ j ] 。S a v e ( s t u , n 1 ) 。J + +J nI + +NYNYNY 圖 5 刪除 信息 流程圖 運(yùn)功會(huì)成績(jī)管理 程序設(shè)計(jì) 11 成績(jī) 排名模塊 對(duì)于某項(xiàng)的排序采用的排序算法是冒泡法排序,整個(gè)排序過(guò)程在結(jié)構(gòu)體數(shù)組 stu中實(shí)現(xiàn),由于排序算法涉及到兩個(gè)數(shù)組元素的信息交換,因此還需要定義一個(gè)中間變量來(lái)協(xié)助。排序函數(shù)使運(yùn)動(dòng)員數(shù)據(jù)的排列順序發(fā)生了變化,因此也需要對(duì)源文件進(jìn)行更新。此外,對(duì)于運(yùn)動(dòng)員排序后名次的確定,僅在結(jié)果輸出時(shí)予以顯示,并未將名次信息寫(xiě)入源文件。具體的程序段如下(由于各項(xiàng)成績(jī)排序函數(shù)相同,所以只給出百米賽跑排名程序): 運(yùn)功會(huì)成績(jī)管理 程序設(shè)計(jì) 12 圖 6 成績(jī)排名 流程圖 運(yùn)功會(huì)成績(jī)管理 程序設(shè)計(jì) 13 5.調(diào)試和測(cè)試 測(cè)試 測(cè)試是在完成某一部分功能和全部功能后,根據(jù)功能和性能的需求,看看系統(tǒng)有沒(méi)有實(shí)現(xiàn)要求中的功能,是否達(dá)到性能要求。系統(tǒng)測(cè)試是軟件生存期中的一個(gè)重要階段, 系統(tǒng)質(zhì)量保證的關(guān)鍵步驟從用戶(hù)的角度來(lái)看,普遍希望通過(guò)軟件測(cè)試暴露軟件中隱藏的錯(cuò)誤和缺陷,所以 系統(tǒng) 測(cè)試應(yīng)該是“為了發(fā)現(xiàn)錯(cuò)誤而執(zhí)行程序的過(guò)程”?;蛘哒f(shuō), 系統(tǒng) 測(cè)試應(yīng)該根據(jù)程序開(kāi)發(fā)各階段的規(guī)格說(shuō)明和程序的內(nèi)部結(jié)構(gòu)而精心設(shè)計(jì)一批測(cè)試用例(即輸入數(shù)據(jù)及其預(yù)期的輸出結(jié)果),并利用這些測(cè)試用 例去運(yùn)行程序,以發(fā)現(xiàn)程序錯(cuò)誤或缺陷。過(guò)度測(cè)試則會(huì)浪費(fèi)許多寶貴的資源。到測(cè)試后期,即使找到了錯(cuò)誤,然而付出了過(guò)高的代價(jià)。 測(cè)試數(shù)據(jù)過(guò)程如下。 當(dāng)運(yùn)動(dòng)員成績(jī)管理系統(tǒng)進(jìn)行對(duì)運(yùn)動(dòng)員數(shù)據(jù)的添加數(shù)據(jù) 號(hào)碼 1 姓名 zhanglinlin 百米賽跑 10 三級(jí)跳 9 撐桿跳 號(hào)碼 2 姓名 yushuo 百米賽跑 三級(jí)跳 7 撐桿跳 4。顯示信息即顯示添加的數(shù)據(jù) ,修改數(shù)據(jù),查詢(xún)數(shù)據(jù),現(xiàn)在測(cè)試系統(tǒng)是否能夠正確顯示錄入的所有運(yùn)動(dòng)員信息,當(dāng)系統(tǒng)中已存入一定的運(yùn)動(dòng)員信息當(dāng)執(zhí)行瀏覽功能時(shí),系統(tǒng)會(huì)將運(yùn)動(dòng)員信息 全部列出,當(dāng)系統(tǒng)未存入任何信息是顯示無(wú)運(yùn)動(dòng)員信息 。 測(cè)試成功,顯示正確,完成測(cè)試。 調(diào)試 調(diào)試是程序編寫(xiě)中的一個(gè)重要環(huán)節(jié),也是最復(fù)雜,對(duì)程序編寫(xiě)者來(lái)說(shuō)是一項(xiàng)艱巨的任務(wù)。調(diào)試的任務(wù)就是及時(shí)改正測(cè)試過(guò)程中發(fā)現(xiàn)的錯(cuò)誤。具體地說(shuō),調(diào)試過(guò)程由兩個(gè)步驟組成,它是從程序中存在錯(cuò)誤的某種跡象開(kāi)始的。首先是確定錯(cuò)誤的準(zhǔn)確位置,也就是找出是哪個(gè)模塊或哪個(gè)語(yǔ)句引起的錯(cuò)誤。然后仔細(xì)研究推斷代碼以確定問(wèn)題的原因,并設(shè)法改正。 調(diào)試過(guò)程主要是運(yùn)行編制好的程序,然后遇到錯(cuò)誤后根據(jù)系統(tǒng)的提示,找到相關(guān)的問(wèn)題所在。本系統(tǒng)調(diào)試過(guò)程中 遇到問(wèn)題、原因和解決方法如下面介紹: ( 1)程序運(yùn)行不順利 運(yùn)功會(huì)成績(jī)管理 程序設(shè)計(jì) 14 在程序運(yùn)行的過(guò)程中出現(xiàn)死循環(huán)、不運(yùn)行和提前結(jié)束。原因是程序中出現(xiàn)了邏輯錯(cuò)誤 ,進(jìn)入查詢(xún)頁(yè)面后,查詢(xún)的時(shí)候顯示的是邏輯錯(cuò)誤 。 沒(méi)有寫(xiě)讀取文件的函數(shù) m=reads(stu)。所以讀取不了存儲(chǔ)的文件 ( 2)無(wú)法將排完序的數(shù)據(jù)寫(xiě)入到文本文件 中去 原因是讀寫(xiě)文件的方式不對(duì)。 經(jīng)過(guò)一段時(shí)間的學(xué)習(xí),制作我的運(yùn)動(dòng)會(huì)成績(jī)管理系統(tǒng)完成了,但只能說(shuō)是粗略的完成。雖然說(shuō)還存在一寫(xiě)不足的地方,但基本實(shí)現(xiàn)了任務(wù)說(shuō)上得所有要求,發(fā)現(xiàn)錯(cuò)誤并及時(shí) 修改,她能夠統(tǒng)計(jì)學(xué)生的比賽成績(jī)和通過(guò)成績(jī)進(jìn)行排名,我設(shè)計(jì)的成績(jī)還存在一定的不足,一開(kāi)始是沒(méi)有查詢(xún)功能的 ,經(jīng)過(guò)我不斷地努力把程序進(jìn)行了完善,讓它變的更加實(shí)用。 結(jié)束語(yǔ) 經(jīng)過(guò) 兩 個(gè)星期的思考,設(shè)計(jì),編程 , 我真的感到這不是一件簡(jiǎn)單容易的事情。 C語(yǔ)言綜合訓(xùn)練考察的并不僅僅是我們的基礎(chǔ)知識(shí),還有思維上得活躍性,創(chuàng)新性,以及我們的動(dòng)手能力。 讓我了解到要想又好又快地完成一個(gè)程序,必須要有堅(jiān)實(shí)的基礎(chǔ)和認(rèn)真的編寫(xiě)過(guò)程。 在 寫(xiě)本程序的過(guò)程中我對(duì)文件中數(shù)據(jù)的排序有了深刻的認(rèn)識(shí) ,并且學(xué)會(huì)指針的選擇排序,但是不會(huì)將文件中的某一個(gè)數(shù)據(jù) 刪除。 參考文獻(xiàn) [5]譚浩強(qiáng) .C程序設(shè)計(jì) .北京 :清華大學(xué)出版社 2022 運(yùn)功會(huì)成績(jī)管理 程序設(shè)計(jì) 15 附錄 1— 用戶(hù)手冊(cè) 點(diǎn)擊運(yùn)行, 顯示主菜單 , 按菜單內(nèi)容選擇功能 如圖 7所示。 圖 7 開(kāi)始界面 上面的開(kāi)始界面出現(xiàn)后, 輸入數(shù)字 0進(jìn)入運(yùn)動(dòng)員信息查詢(xún)界面 如圖 8所示 圖 8 查詢(xún)功能 輸入菜單對(duì)應(yīng)的數(shù)字,進(jìn)入相應(yīng)程序,輸入要添加的運(yùn)動(dòng)員數(shù)量如圖 9 所示 運(yùn)功會(huì)成績(jī)管理 程序設(shè)計(jì) 16 圖 9 輸入運(yùn)動(dòng)員數(shù)量 輸入菜單對(duì)應(yīng)的 數(shù)字, 進(jìn)入相應(yīng)程序 , 輸入姓名 ,如圖 10所示 圖 10 輸入運(yùn)動(dòng)員信息 輸入菜單對(duì)應(yīng)的數(shù)字,進(jìn)入相應(yīng)程序,顯示功能 輸入 2顯示運(yùn)動(dòng)員信息如圖 11所示 運(yùn)功會(huì)成績(jī)管理 程序設(shè)計(jì) 17 圖 11 顯示功能 輸入菜單對(duì)應(yīng)的數(shù)字,進(jìn)入相應(yīng)程序,刪除功能 輸入 3 刪除運(yùn)動(dòng)員信息 如圖 12 所示 圖 12 刪除功能 輸入菜單對(duì)應(yīng)的數(shù)字,進(jìn)入相應(yīng)程序,修改功能 輸入 4 修改運(yùn)動(dòng)員信信。如圖 13 所示 圖 13 修改功能 輸入菜單對(duì)應(yīng)的數(shù) 字,進(jìn)入相應(yīng)程序百米排序 輸入 5 百米成績(jī)排序 ,如圖 14 所示 運(yùn)功會(huì)成績(jī)管理 程序設(shè)計(jì) 18 圖 14 百米成績(jī)排名 輸入菜單對(duì)應(yīng)的數(shù)字,進(jìn)入相應(yīng)程序, 輸入 6 三級(jí)跳成績(jī)排序,如圖 15 所示 圖 15 三級(jí)跳成績(jī)排名 輸入菜單對(duì)應(yīng)的數(shù)字,進(jìn)入相應(yīng)程序 輸入 7 撐桿跳成績(jī)排序,如圖 16 所示 圖 16 撐桿跳成績(jī)排名 運(yùn)功會(huì)成績(jī)管理 程序設(shè)計(jì) 19 附錄 2— 源程序 主要模塊的源代碼清單: include include include include define N 20 struct student {char num[20]。 char name[10]。 float baimi。 float sanjitiao。 float chenggantiao。 }。 void menu()。 int reads(struct student stu[N])。 void save(struct student stu[N],int n)。 void search()。 void add()。 void del()。 void sort()。 void keep()。 void sheep()。 void query()。 void show()。 void change