freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

學(xué)生成績(jī)管理系統(tǒng)---課程設(shè)計(jì)(已修改)

2025-08-05 18:51 本頁(yè)面
 

【正文】 設(shè)計(jì)題目:學(xué)生成績(jī)管理系統(tǒng)院系:電子工程系班級(jí):電嵌Q0941實(shí)驗(yàn)人:趙婷婷學(xué)號(hào):091602009 實(shí)驗(yàn)指導(dǎo)老師:李俊目錄一. 課程設(shè)計(jì)任務(wù)書(shū)3二. 內(nèi)容提要4三. 正文5四. 參考文獻(xiàn)35五. 課程設(shè)計(jì)體會(huì)35 嵌入式程序課程設(shè)計(jì)任務(wù)書(shū)一、題目:學(xué)生成績(jī)管理系統(tǒng)設(shè)計(jì)二、內(nèi)容與要求學(xué)生成績(jī)信息包括:學(xué)期,學(xué)號(hào),班別,姓名,四門(mén)課程成績(jī)(語(yǔ)文、數(shù)學(xué)、英語(yǔ)和計(jì)算機(jī))等。主要功能:(1) 能按學(xué)期、按班級(jí)完成對(duì)學(xué)生成績(jī)的錄入、修改(2) 能按班級(jí)統(tǒng)計(jì)學(xué)生的成績(jī),求學(xué)生的總分及平均分(3) 能查詢(xún)學(xué)生成績(jī),不及格科目及學(xué)生名單(4) 能按班級(jí)輸出學(xué)生的成績(jī)單要求:使用二進(jìn)制文件方式存儲(chǔ)數(shù)據(jù)、三、地點(diǎn):實(shí)驗(yàn)2號(hào)樓4層硬件實(shí)驗(yàn)室四、時(shí)間安排:第618周星期五的12節(jié)五、班級(jí)與指導(dǎo)老師:電嵌Q0941班;指導(dǎo)教師:李俊六、參考資料 (自己補(bǔ)充)內(nèi)容提要學(xué)生成績(jī)管理系統(tǒng)可以說(shuō)是每個(gè)教育單位的得力助手,它利用計(jì)算機(jī)對(duì)學(xué)生成績(jī)進(jìn)行統(tǒng)一管理,實(shí)現(xiàn)學(xué)生成績(jī)信息管理工作流程的系統(tǒng)化、規(guī)范化和自動(dòng)化,提高了廣大教師的工作效率。該設(shè)計(jì)報(bào)告圍繞學(xué)生成績(jī)管理系統(tǒng)的源代碼,展開(kāi)一系列豐富的功能介紹和操作細(xì)節(jié)。其功能主要有五大板塊組成:輸入記錄模塊、查詢(xún)記錄模塊、更新記錄模塊、統(tǒng)計(jì)記錄模塊和輸出記錄模塊。每一功能模塊中又包含一系列具體功能,如:從文件讀入或從鍵盤(pán)輸入學(xué)生的基本信息,按學(xué)號(hào)或者姓名查找已存在的記錄,對(duì)存在的記錄進(jìn)行修改、刪除、插入、排序,統(tǒng)計(jì)所有學(xué)生信息中的最高分、不及格人數(shù)等,基本上涵蓋了學(xué)生成績(jī)管理系統(tǒng)所應(yīng)該具備的基本操作。為了使廣大讀者對(duì)該系統(tǒng)有更好的了解,此報(bào)告還列舉出了程序代碼中的一系列具體函數(shù)以及它的作用及功能。下面列舉源代碼中的部分函數(shù):1) printheader( )函數(shù)原型:void printheader( )該函數(shù)用于在以表格形式顯示學(xué)生記錄時(shí),打印輸出表頭信息。2) stringinput( )函數(shù)原型:void stringinput(char *t,int lens,char *notice)該函數(shù)用于輸入字符串,并進(jìn)行字符串長(zhǎng)度驗(yàn)證。T用于保存輸入的字符串,因?yàn)槭且灾羔樞问絺鬟f的,所以t相當(dāng)于該函數(shù)的返回值。3) Disp( )函數(shù)原型:void Disp(link l)該函數(shù)用于顯示單鏈表l中存儲(chǔ)學(xué)生的記錄,內(nèi)容為student結(jié)構(gòu)中定義的內(nèi)容。4) Add( )函數(shù)原型:void Add(link l)該函數(shù)用于在單鏈表l中增加學(xué)生記錄的節(jié)點(diǎn)。整個(gè)分析過(guò)程可在后面內(nèi)容中詳細(xì)了解,這里僅列舉幾個(gè)提供說(shuō)明。該報(bào)告同時(shí)含有源代碼的運(yùn)行結(jié)果以及調(diào)試和出錯(cuò)分析。由于時(shí)間、經(jīng)驗(yàn)及水平的原因,報(bào)告中難免有不足和錯(cuò)誤之處,敬請(qǐng)批評(píng)指正。一.設(shè)計(jì)目的 本程序旨在訓(xùn)練讀者的基本編程能力,了解管理信息開(kāi)發(fā)系統(tǒng)的開(kāi)發(fā)流程,熟悉C語(yǔ)言的文件和單鏈表的各種基本操作。本程序中設(shè)計(jì)結(jié)構(gòu)體、單鏈表、文件等方面的知識(shí)。通過(guò)本程序的訓(xùn)練,使讀者能對(duì)C語(yǔ)言的文件操作有一個(gè)更深刻的了解,掌握利用單鏈表存儲(chǔ)結(jié)構(gòu)實(shí)現(xiàn)對(duì)學(xué)生成績(jī)管理的原理,為進(jìn)一步開(kāi)發(fā)出高質(zhì)量的信息管理系統(tǒng)打下堅(jiān)實(shí)的基礎(chǔ)。二. 總體設(shè)計(jì) 此成績(jī)管理系統(tǒng)主要利用單鏈表實(shí)現(xiàn),它有如下五大功能模塊組成。其功能模塊圖如下所示。(1)輸入記錄模塊。輸入記錄模塊主要完成將數(shù)據(jù)存入單鏈表的工作中。在此成績(jī)管理系統(tǒng)中,記錄可以從以二進(jìn)制形式存儲(chǔ)的數(shù)據(jù)文件中讀入,也可從鍵盤(pán)逐個(gè)輸入學(xué)生記錄。學(xué)生記錄由學(xué)生的基本信息和成績(jī)信息字段組成。當(dāng)從數(shù)據(jù)文件中讀入記錄時(shí),它就是在以記錄為單位存儲(chǔ)的數(shù)據(jù)文件中,將記錄逐條復(fù)制到單鏈表中。(2)查詢(xún)記錄模塊。查詢(xún)記錄模塊主要完成在單鏈表中查找滿(mǎn)足相關(guān)條件的學(xué)生記錄。在此成績(jī)管理系統(tǒng)中,用戶(hù)可以按照學(xué)生的學(xué)號(hào)獲姓名在單鏈表中進(jìn)行查找。若找到該學(xué)生的記錄,則返回指向該學(xué)生的記錄的指針。否則,返回一個(gè)值為NULL的空指針,并打印出未找到該學(xué)生記錄的信息。(3)更新記錄模塊。更新記錄模塊主要完成對(duì)學(xué)生記錄的維護(hù)。在此成績(jī)管理系統(tǒng)中,它實(shí)現(xiàn)了對(duì)學(xué)生記錄的修改、刪除、插入和排序操作。一般而言,系統(tǒng)進(jìn)行著修操作后,需要將修改的數(shù)據(jù)存入原數(shù)據(jù)文件。(4)統(tǒng)計(jì)記錄模塊。統(tǒng)計(jì)記錄模塊主要完成對(duì)個(gè)門(mén)功課最高分和不及格人數(shù)的統(tǒng)計(jì)。(5)輸出記錄模塊。輸出記錄模塊主要完成兩個(gè)任務(wù)。第一,它實(shí)現(xiàn)對(duì)學(xué)生記錄的存盤(pán)操作,即將單鏈表中的各節(jié)點(diǎn)中存儲(chǔ)的學(xué)生記錄信息寫(xiě)入數(shù)據(jù)文件中。第二,它實(shí)現(xiàn)將單鏈表中的學(xué)生記錄信息以表格的形式在屏幕上打印出來(lái)。 學(xué)生成績(jī)管理系統(tǒng) 輸出至屏幕輸出至文件各科最高分和不及格人數(shù)統(tǒng)計(jì)排序記錄按姓名查詢(xún)按學(xué)號(hào)查詢(xún)從鍵盤(pán)輸入從文件讀入插入記錄刪除記錄修改記錄更新記錄模塊統(tǒng)計(jì)記錄模塊查詢(xún)記錄模塊輸出記錄模塊輸入記錄模塊 三. 詳細(xì)設(shè)計(jì)()函數(shù)執(zhí)行流程 本成績(jī)管理系統(tǒng)執(zhí)行流程如圖所示。它先以可讀寫(xiě)的方式打開(kāi)數(shù)據(jù)文件,此文件默認(rèn)為“c:\student”,若干文件不存在,則新建此文件。當(dāng)打開(kāi)文件操作成功后,從文件中一次讀出一條記錄,添加到新建的單鏈表中,然后執(zhí)行顯示主菜單和進(jìn)入主循環(huán)操作,進(jìn)行按鍵判斷。 在判斷鍵值時(shí),有效的輸入為0至9之間的任意數(shù)值,其他輸入都視為錯(cuò)誤按鍵。若輸入為0(即變量select=0),它會(huì)繼續(xù)判斷是否在對(duì)記錄進(jìn)行更新操作之后進(jìn)行了存盤(pán)操作,若未存盤(pán),則全局變量saveflag=1,系統(tǒng)會(huì)提示用戶(hù)是否需要進(jìn)行存盤(pán)操作,用戶(hù)輸入Y或y,系統(tǒng)會(huì)進(jìn)行存盤(pán)操作。最后,系統(tǒng)執(zhí)行推出成績(jī)管理系統(tǒng)操作。開(kāi)始以可讀寫(xiě)的方式打開(kāi)一 個(gè)數(shù)據(jù)文件調(diào)用menu()菜單函數(shù)將此文件的內(nèi)容讀出,并存入一個(gè)新的單鏈表中進(jìn)入while()循環(huán)輸入【0~9】中的一個(gè)數(shù)值,選擇相應(yīng)操作輸入是否為0?是否已對(duì)修改進(jìn)行存盤(pán)? 是否 是 判斷鍵值,調(diào)用響應(yīng)函數(shù),完成相應(yīng)功能 否調(diào)用Save()函數(shù),進(jìn)行寫(xiě)文件操作 結(jié)束若選擇1,則調(diào)用Add()函數(shù),執(zhí)行增加學(xué)生記錄操作;若選擇2,則調(diào)用Del()函數(shù),執(zhí)行刪除學(xué)生記錄操作;若選擇3,則調(diào)用Qur()函數(shù),執(zhí)行查詢(xún)學(xué)生記錄操作;若選擇4,則調(diào)用Modify(0函數(shù),執(zhí)行修改學(xué)生記錄操作;若選擇5,則調(diào)用Insert()函數(shù),執(zhí)行插入學(xué)生記錄操作;若選擇6,則調(diào)用Tongji()函數(shù),執(zhí)行統(tǒng)計(jì)學(xué)生記錄操作;若選擇7,則調(diào)用Sort()函數(shù),執(zhí)行按降序排序?qū)W生記錄的操作。若選擇8,則調(diào)用Save()函數(shù),執(zhí)行將學(xué)生記錄存入磁盤(pán)中的數(shù)據(jù)文件的操作;若選擇9,則調(diào)用Disp()函數(shù),執(zhí)行將學(xué)生記錄以表格形式打印輸出至屏幕的操作;若輸入為0~9之外的值,則調(diào)用Wrong()函數(shù),給出按鍵錯(cuò)誤的提示。輸入記錄模塊主要實(shí)現(xiàn)將數(shù)據(jù)存入單鏈表中。這部分的操作較為簡(jiǎn)單。當(dāng)從數(shù)據(jù)文件中讀出記錄時(shí),它調(diào)用fread(p,sizeof(Node),1,fp)文件讀取函數(shù),執(zhí)行一次從文件中讀取一條學(xué)生成績(jī)記錄信息存入指針變量P所指向節(jié)點(diǎn)中的操作,并且這個(gè)操作在main()中執(zhí)行,即當(dāng)成績(jī)管理系統(tǒng)進(jìn)入顯示菜單界面時(shí),該操作已經(jīng)執(zhí)行了。若該文件中沒(méi)有數(shù)據(jù),系統(tǒng)會(huì)提示單鏈表為空,沒(méi)有任何學(xué)生記錄可操作,此時(shí),用戶(hù)應(yīng)選擇1,調(diào)用Add(1)函數(shù),進(jìn)行學(xué)生記錄的輸入,即完成在單鏈表1中添加節(jié)點(diǎn)的操作。查詢(xún)記錄模塊主要實(shí)現(xiàn)了在單鏈表中按學(xué)號(hào)或姓名查找滿(mǎn)足相關(guān)條件的學(xué)生記錄。在查詢(xún)函數(shù)Qur(1)中,1為指向保存了學(xué)生成績(jī)信息的單鏈表的首地址的指針變量。為了遵循模塊化編程的原則,我們將在單鏈表中進(jìn)行的指針定位操作設(shè)計(jì)成了一個(gè)單獨(dú)的函數(shù)Node* Locate(Link 1,char findmess[],char nameornum[]),參數(shù)findmess[]保存到要查找的具體內(nèi)容,nameornum[]保存要查找的字段(值為字符串類(lèi)型的num或者name),若找到該記錄,則返回指向該節(jié)點(diǎn)的指針;否則,返回一個(gè)空指針。此模塊主要實(shí)現(xiàn)了對(duì)學(xué)生記錄的修改、刪除、插入和排序操作。因?yàn)閷W(xué)生記錄是以單鏈表的結(jié)構(gòu)形式存儲(chǔ)的,所以這些操作都在單鏈表中完成。下面分別介紹這四個(gè)功能模塊。1) 修改記錄修改記錄操作需要對(duì)單鏈表中目標(biāo)節(jié)點(diǎn)的數(shù)據(jù)域中的值進(jìn)行修改,它分兩步完成。第一步,輸入要修改的學(xué)號(hào),輸入后調(diào)用定位函數(shù)Locate()在單鏈表中逐個(gè)對(duì)節(jié)點(diǎn)數(shù)據(jù)域中學(xué)好字段的值進(jìn)行比較,直到找到該學(xué)好的學(xué)生記錄;第二步,若找到該學(xué)生記錄,修改除學(xué)號(hào)之外的各字段的值,并將存盤(pán)標(biāo)記變量saveflag置1,表示已經(jīng)對(duì)記錄進(jìn)行了修改,但還未執(zhí)行存盤(pán)操作。2) 刪除記錄刪除記錄操作完成刪除制定學(xué)號(hào)或姓名的學(xué)生記錄,它也分兩步完成。第一步,輸入要?jiǎng)h除的學(xué)號(hào)或姓名,輸入后調(diào)用定位函數(shù)Locate()在單鏈表中逐個(gè)對(duì)節(jié)點(diǎn)數(shù)據(jù)域中的學(xué)號(hào)或姓名字段的值進(jìn)行比較,知道找到該學(xué)號(hào)或姓名的記錄,返回指向該學(xué)生記錄的節(jié)點(diǎn)指針;第二步,若找到該學(xué)生記錄,將該學(xué)生記錄所在節(jié)點(diǎn)的前驅(qū)節(jié)點(diǎn)的指針域指向目標(biāo)節(jié)點(diǎn)后的后繼節(jié)點(diǎn)。3) 插入記錄插入學(xué)生記錄操作完成在制定學(xué)號(hào)的隨后位置插入新的學(xué)生記錄。首先,它要求用戶(hù)輸入某個(gè)學(xué)生的學(xué)號(hào),新的記錄將插入在該學(xué)生記錄之后;然后,提示用戶(hù)輸入一條新的學(xué)生記錄的信息,這些信息保存在新節(jié)點(diǎn)的數(shù)據(jù)域中;最后,將該節(jié)點(diǎn)插入在指定位置學(xué)號(hào)之后。,圖中q為位置學(xué)號(hào)所在節(jié)點(diǎn)的指針變量,其中,p為q所指節(jié)點(diǎn)的后繼節(jié)點(diǎn)的指針變量,q—next=p,指針變量i指向新記錄所在的節(jié)點(diǎn),為插入節(jié)點(diǎn)i,依次執(zhí)行的操作為:inext=qnext。qnext=i。4) 排序記錄有關(guān)排序的算法有很多,如冒泡排序、插入排序等。針對(duì)單鏈表結(jié)構(gòu)的特點(diǎn),我們用插入排序算法實(shí)現(xiàn)按總分的從高到低對(duì)學(xué)生記錄進(jìn)行排序,排序完成之后,即可按順序給名次字段賦值。在單鏈表中,實(shí)現(xiàn)插入排序的基本步驟如下。(1) 新建一個(gè)單鏈表1,用來(lái)保存排序結(jié)果,其初始值為待排序單鏈表中的頭節(jié)點(diǎn)。(2) 從待排序鏈表中取出下一個(gè)節(jié)點(diǎn),將其總分字段值與單鏈表1中的各節(jié)點(diǎn)中總分字段的值進(jìn)行比較,知道在鏈表1中找到總分小于它的節(jié)點(diǎn)。若找到如此節(jié)點(diǎn),系統(tǒng)將待排序鏈表中取出的節(jié)點(diǎn)插入此節(jié)點(diǎn)前,作為其前驅(qū)。否則,將取出的節(jié)點(diǎn)放在單鏈表1的尾部。(3) 重復(fù)第(2)步,知道從待排序鏈表取出的節(jié)點(diǎn)的指針域?yàn)镹ULL,即此節(jié)點(diǎn)為鏈表的尾部節(jié)點(diǎn),排序完成該模塊的實(shí)現(xiàn)比較簡(jiǎn)單,它主要通過(guò)循環(huán)讀取指針變量p所指的當(dāng)前節(jié)點(diǎn)的數(shù)據(jù)域中各字段的值,并對(duì)各個(gè)成績(jī)字段進(jìn)行逐個(gè)判斷的形式,完成單科成績(jī)最高分學(xué)生的查找和各科不及格人數(shù)的統(tǒng)計(jì)。當(dāng)把記錄輸出至文件時(shí),調(diào)用fwrite(p,sizeof(Node),1,fp)函數(shù),將p指針?biāo)腹?jié)點(diǎn)中的各字段值,寫(xiě)入文件指針fp所指的文件。當(dāng)把記錄輸出值屏幕時(shí),調(diào)用void Disp(Link l)函數(shù),將單鏈表1中存儲(chǔ)的學(xué)生記錄信息以表格的形式在屏幕上打印出來(lái)。7. 數(shù)據(jù)結(jié)構(gòu)
點(diǎn)擊復(fù)制文檔內(nèi)容
電大資料相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
公安備案圖鄂ICP備17016276號(hào)-1