學(xué)生成績管理系統(tǒng)設(shè)計_第1頁
學(xué)生成績管理系統(tǒng)設(shè)計_第2頁
學(xué)生成績管理系統(tǒng)設(shè)計_第3頁
學(xué)生成績管理系統(tǒng)設(shè)計_第4頁
學(xué)生成績管理系統(tǒng)設(shè)計_第5頁
已閱讀5頁,還剩23頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

學(xué)生成績管理系統(tǒng)設(shè)計第一頁,共二十八頁,2022年,8月28日18.1學(xué)生成績管理系統(tǒng)功能本系統(tǒng)實(shí)現(xiàn)的功能:(1)錄入學(xué)生的成績,(2)輸出學(xué)生的成績(3)添加學(xué)生的成績信息(4)刪除指定學(xué)生的成績信息(5)按照要求對學(xué)生成績信息進(jìn)行排序(6)根據(jù)學(xué)號查詢指定學(xué)生的成績(7)將學(xué)生的成績信息保存到文件第二頁,共二十八頁,2022年,8月28日第三頁,共二十八頁,2022年,8月28日第四頁,共二十八頁,2022年,8月28日18.2功能模塊的描述

18.2.1數(shù)據(jù)結(jié)構(gòu)結(jié)構(gòu)體說的定義如下:structscorenode{intnumber; /*學(xué)生學(xué)號*/charname[10]; /*學(xué)生姓名*/floatchinese; /*語文成績*/floatmathmatic; /*數(shù)學(xué)成績*/floatenglish; /*英語成績*/structscorenode*next;};typedefstructscorenodescore; 第五頁,共二十八頁,2022年,8月28日18.2.2main()主函數(shù)程序采用模塊化設(shè)計,主函數(shù)是程序的入口,各模塊獨(dú)立,可分塊調(diào)整,均由主函數(shù)控制。采用while死循環(huán)和switch分支語句編寫菜單選擇控制各個模塊的功能,每個模塊的功能由簡單的基本函數(shù)構(gòu)成。第六頁,共二十八頁,2022年,8月28日18.2.3score*creatlink()創(chuàng)建動態(tài)鏈表由于記錄并不是一次性全部輸入,而是隨時添加和刪除的,而預(yù)先開辟的空間數(shù)往往大于實(shí)際的記錄數(shù),浪費(fèi)內(nèi)存空間,因此使用動態(tài)空間開僻函數(shù)malloc()為輸入的數(shù)據(jù)動態(tài)分配內(nèi)存空間。第七頁,共二十八頁,2022年,8月28日18.2.4voidprint(score*head)顯示學(xué)生信息使用參數(shù)head傳遞鏈表的首地址,首先判斷鏈表是否為空,如果為空,則輸出提示信息;如果不為空,設(shè)一個指針變量p,先指向第一個結(jié)點(diǎn),輸出p所指的結(jié)點(diǎn),然后使p后移一個結(jié)點(diǎn),再輸出,直到鏈表的尾結(jié)點(diǎn)。第八頁,共二十八頁,2022年,8月28日18.2.5score*add(score*head,score*stu)向鏈表中添加學(xué)生數(shù)據(jù)該函數(shù)有兩個數(shù),head頭結(jié)點(diǎn)指向鏈表的首地址,stu指向新建立的結(jié)點(diǎn),向其中輸入數(shù)據(jù),然后添加到鏈表上,最后根據(jù)學(xué)生的學(xué)號進(jìn)行排序。第九頁,共二十八頁,2022年,8月28日18.2.6score*search(score*head)查詢學(xué)生成績由于在向鏈表中輸入數(shù)據(jù)、添加數(shù)據(jù)的時候,已經(jīng)對鏈表按學(xué)號從大到小排好序了,因此在進(jìn)行查找時,只需要從鏈表的表頭開始進(jìn)行查詢。如果鏈表為空,則直接輸出提示信息;如果鏈表不為空,則按輸出的學(xué)號進(jìn)行查詢,查詢成功就輸出該學(xué)號學(xué)生的成績,否則輸出提示信息。第十頁,共二十八頁,2022年,8月28日18.2.7score*dele(score*head)刪除數(shù)據(jù)該函數(shù)根據(jù)輸入學(xué)生的學(xué)號,在鏈表中進(jìn)行查找如果有匹配的,就將該學(xué)號的學(xué)生信息刪除掉。最后返回刪除后的鏈表的頭結(jié)點(diǎn)。第十一頁,共二十八頁,2022年,8月28日18.2.8score*sortdata(score*head)對數(shù)據(jù)進(jìn)行排序該函數(shù)提供了幾種排序方法,可以按照學(xué)生的學(xué)號進(jìn)行排序,按照學(xué)生的姓名,或者按照學(xué)生的單科成績進(jìn)行排序。使用switch-case語句根據(jù)用戶的選擇,判斷是按照學(xué)號、姓名或是單科成績使用交換法進(jìn)行排序。第十二頁,共二十八頁,2022年,8月28日18.2.9save(score*p1)保存數(shù)據(jù)在程序中的數(shù)據(jù)輸入和輸出是以終端為對象的,當(dāng)程序關(guān)閉后,數(shù)據(jù)也就丟失了,所以為了能隨時查閱數(shù)據(jù),必須將數(shù)據(jù)輸出到磁盤文件上保存起來,使用時人磁盤中讀入到內(nèi)存中,這就用到了磁盤文件的讀寫操作。第十三頁,共二十八頁,2022年,8月28日18.2.10score*load(score*head)從文件中讀取數(shù)據(jù)為了程序關(guān)閉后丟失,我們將數(shù)據(jù)保存到磁盤文件中,下一次對已經(jīng)有的數(shù)據(jù)進(jìn)行的時候可以直接從文件中讀取數(shù)據(jù)進(jìn)行操作。第十四頁,共二十八頁,2022年,8月28日18.2.11score*statistics(score*head)成績統(tǒng)計該函數(shù)主要實(shí)現(xiàn)了對學(xué)生成績統(tǒng)計的幾種方式:統(tǒng)計個人總分和平均分、統(tǒng)計單科平均分、統(tǒng)計總分最高分和最低分。第十五頁,共二十八頁,2022年,8月28日18.2.12intmenu(intk)菜單該函數(shù)主要提供一個系統(tǒng)顯示的界面,系統(tǒng)模塊進(jìn)行介紹,便于用戶進(jìn)行操作。第十六頁,共二十八頁,2022年,8月28日18.2.12用到的頭文件和全局變量#include<malloc.h>#include<stdio.h>#include<stdlib.h>#include<string.h>#defineLENsizeof(structscorenode)#defineDEBUGintn,k;/*n,k為全局變量,本程序中的函數(shù)均可以使用它,分別用于記數(shù)和標(biāo)記*/第十七頁,共二十八頁,2022年,8月28日18.3程序代碼根據(jù)上一節(jié)對學(xué)生成績管理系統(tǒng)的數(shù)據(jù)結(jié)構(gòu)的模塊功能的分析,并列出了實(shí)現(xiàn)各個模塊功能的函數(shù)以及它們的程序執(zhí)行N-S圖,下面是實(shí)現(xiàn)各個函數(shù)的程序代碼以及在程序運(yùn)行進(jìn)的運(yùn)行結(jié)果。第十八頁,共二十八頁,2022年,8月28日18.3.1主函數(shù)main代碼主函數(shù)main功能是通過調(diào)用creat,search,dele,add,print,ststistics,save,sortdata等函數(shù),實(shí)現(xiàn)學(xué)生成績查詢系統(tǒng)功能。第十九頁,共二十八頁,2022年,8月28日18.3.2創(chuàng)建鏈表函數(shù)creatlink函數(shù)creatlink的功能是創(chuàng)建鏈表,此函數(shù)帶回一個指向鏈表頭的指針。函數(shù)體中使用了goto語句,方便程序執(zhí)行過程中的跳轉(zhuǎn)。第二十頁,共二十八頁,2022年,8月28日18.3.3顯示學(xué)生信息函數(shù)print函數(shù)print的功能是顯示學(xué)生成績,即將所建立的學(xué)生成績鏈表打印出來。如果鏈表不為空時,逐個打印出學(xué)生的學(xué)號,姓名和各科成績。}第二十一頁,共二十八頁,2022年,8月28日18.3.4向鏈表中添加學(xué)生數(shù)據(jù)函數(shù)add函數(shù)add的功能是向已經(jīng)建立的鏈表中追加學(xué)生資料,并且將所有學(xué)生資料按學(xué)號排序。第二十二頁,共二十八頁,2022年,8月28日18.3.5查詢學(xué)生成績函數(shù)search函數(shù)search的功能是從鏈表中查詢輸入學(xué)號的學(xué)生信息。第二十三頁,共二十八頁,2022年,8月28日18.3.6刪除數(shù)據(jù)函數(shù)dele函數(shù)dele的功能是刪除輸入學(xué)號的學(xué)生信息。第二十四頁,共二十八頁,2022年,8月28日18.3.7對數(shù)據(jù)進(jìn)行排序函數(shù)sortdata函數(shù)sortdata的功能是對鏈表中的數(shù)據(jù)按照一定的要求進(jìn)行排序。本函數(shù)提供了幾種排序方法,使用switch-case語句根據(jù)用戶的選擇,判斷是按照學(xué)號、姓名或是單科成績使用交換法進(jìn)行排序。此函數(shù)帶回一個指向鏈表頭的指針第二十五頁,共二十八頁,2022年,8月28日18.3.8保存數(shù)據(jù)函數(shù)save函數(shù)save的功能是保存學(xué)生的資料到磁盤中,在程序關(guān)系以后,下次使用時不會丟失。第二十六頁,共二十八頁,2022年,8月28日18.3.9從文件中讀取數(shù)據(jù)函數(shù)load函數(shù)loadfile的功能是從文件讀入學(xué)生記錄。當(dāng)把學(xué)生記錄保

溫馨提示

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

評論

0/150

提交評論