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

正文內容

學生成績管理系統(tǒng)---課程設計(已修改)

2025-08-05 18:51 本頁面
 

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