數(shù)據(jù)結(jié)構(gòu)課程設(shè)計學(xué)生成績管理系統(tǒng).doc_第1頁
數(shù)據(jù)結(jié)構(gòu)課程設(shè)計學(xué)生成績管理系統(tǒng).doc_第2頁
數(shù)據(jù)結(jié)構(gòu)課程設(shè)計學(xué)生成績管理系統(tǒng).doc_第3頁
數(shù)據(jù)結(jié)構(gòu)課程設(shè)計學(xué)生成績管理系統(tǒng).doc_第4頁
數(shù)據(jù)結(jié)構(gòu)課程設(shè)計學(xué)生成績管理系統(tǒng).doc_第5頁
已閱讀5頁,還剩18頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、2020/3/27淮陰工學(xué)院數(shù)據(jù)結(jié)構(gòu)課程設(shè)計報告選題名稱 :學(xué)生成績管理系統(tǒng)系(院):數(shù)理學(xué)院專業(yè):信息與計算科學(xué)班級:計科 1102 班姓名:徐連喜學(xué)號: 33指導(dǎo)教師 :周 海 巖學(xué)年學(xué)期 : 2011 2012學(xué)年第 1學(xué)期2012年06月06日12020/3/27【摘 要】21 世紀,科學(xué)技術(shù)突飛猛進,經(jīng)濟知識和信息產(chǎn)業(yè)初見端倪,特別是信息技術(shù)和網(wǎng)絡(luò)技術(shù)的訊速發(fā)展和廣泛應(yīng)用,對社會的政治,經(jīng)濟,軍事,文化等領(lǐng)域產(chǎn)生越來越深刻。 學(xué)生成績管理系統(tǒng)是一個教育單位不可缺少的部分, 它的內(nèi)容對于學(xué)校的決策者和管理者來說都至關(guān)重要。本論文敘述到的學(xué)生成績管理系統(tǒng)是用 IIS+ASP 網(wǎng)頁編程 +

2、ACCESS數(shù)據(jù)庫 +DREAMWEAVERMX2004+SQL查詢語言實現(xiàn)的。重點介紹了學(xué)生成績管理系統(tǒng)的實現(xiàn)過程: 包括系統(tǒng)分析,系統(tǒng)調(diào)查 , 功能設(shè)計,數(shù)據(jù)庫設(shè)計,系統(tǒng)實現(xiàn),系統(tǒng)測試和調(diào)試等。本系統(tǒng)主要功能有查詢學(xué)生成績、單個添加學(xué)生成績、 批量添加學(xué)生成績、 刪除學(xué)生成績、 管理頁面和修改管理員密碼等內(nèi)容。【關(guān)鍵詞】成績管理;成績查詢; C+22020/3/27目錄中文摘要。1。1 緒論。 4。5選題背景。 6需求分析2總體設(shè)計。 7。 8程序設(shè)計組成框圖。9模塊功能說明。10程序流程圖。 11主要函數(shù)之間相互調(diào)用3在設(shè)計過程中的感受。12致謝。 13參考文獻14 。附錄:源程序清單。

3、 151. 緒論選題背景為了提高高校學(xué)生信息的管理效率,方便對學(xué)生信息進行管理、學(xué)校里面的32020/3/27學(xué)生和管理員方便去管理和查詢學(xué)生信息, 如再要進行查詢, 就得在眾多的學(xué)生信息中查找自己的成績信息, 面對學(xué)院大量的學(xué)生信息, 怎么可以即時而方便的管理,學(xué)生只要登錄本系統(tǒng)就可以查找到自己的成績信息, 而管理員也方便去管理每學(xué)期的學(xué)生的成績信息。 建立一個學(xué)生信息管理系統(tǒng), 使學(xué)生信息管理工作規(guī)范化,系統(tǒng)化,程序化,避免學(xué)生管理的隨意性,提高信息處理的速度和準確性,能夠及時、準確、有效的查詢和修改學(xué)生信息是必須而且十分迫切的工作。需求分析學(xué)生管理系統(tǒng)功能的信息量大, 數(shù)據(jù)安全性和保密性

4、要求最高。 本功能實現(xiàn)對專業(yè)信息、學(xué)生信息、 教師信息情況信息的管理和統(tǒng)計、 課程信息和成績信息查看及維護。系統(tǒng)管理員可以瀏覽、查詢、學(xué)生的基本信息,能添加、刪除和修改學(xué)生信息,這部分功能應(yīng)該由系統(tǒng)管理員執(zhí)行, 但是,刪除某條專業(yè)基本信息記錄時,應(yīng)實現(xiàn)對該專業(yè)的相關(guān)信息也級聯(lián)刪除。 并且還應(yīng)具有查詢, 并打印輸出的功能設(shè)計不同用戶的操作權(quán)限和登陸方法、 對所有用戶開放的用戶提供學(xué)生成績信息查詢、由于本系統(tǒng)功能實現(xiàn)方面并不太復(fù)雜, 所以上面只是相關(guān)的學(xué)生信息管理查詢的總體分析, 具體實現(xiàn)就主要體現(xiàn)在學(xué)生管理, 教師的管理和課程的管理這一塊,也就是重點實現(xiàn)查詢與添加學(xué)生信息,以及對成績信息管理。2

5、總體設(shè)計( 1)程序設(shè)計組成框圖42020/3/27按班級輸出學(xué)生成績單1.按姓名查詢生成 7 保存所有學(xué)生信顯示不及格學(xué)生成2 增加學(xué)3 刪除學(xué)45 按班級修改學(xué)生成89 按平均成績排序并輸出成退10.6 按班學(xué)期改學(xué))模塊功能說明( 2 輸出功能:完成全部學(xué)生記錄的顯示。 1 查詢功能:輸入姓名可以查詢學(xué)生的詳細信息。 2增加功能:增加新學(xué)生的信息。34 刪除功能:刪除學(xué)生信息。 5 修改功能:修改學(xué)生的錯誤信息。 保存功能:保存已輸入信息。 6 讀取功能:讀取已輸入信息。 7 顯示功能:按要求顯示學(xué)生記錄。 8 排序功能:按要求完成對學(xué)生信息的排序。 9退出系統(tǒng)。 10)程序流程圖( 3

6、52020/3/27開始)( 110 輸入指令1 學(xué)32 按增姓加4 刪 59 76 8 按學(xué)期修改生成學(xué)名查生詢除學(xué)績 單生按班保存不及平均級修信息格成分排改績序1 結(jié)束4)主要函數(shù)之間相互調(diào)用如下:(主函數(shù) main ()的調(diào)用switch(choice)case 1:OutputInformation();break;case 2:DesplayInfoBystudentName();break;case 3:p=MallocNode();GetInformation(p); InsertOneNode(p);break;4:DeleteNodeBystudentNumber();bre

7、ak;case 5:ChangeMarkByName();break;case 6:ChangeMarkByNumber();break;case 7:SaveLinkToFile();break;8:DesplayMarkSegment();break;case 9:CompositorByTotalMark();break;casecasecase 10:SaveLinkToFile();總結(jié)首先經(jīng)過一周的編程實習(xí),并在后一段的報告總結(jié),我對數(shù)據(jù)結(jié)62020/3/27構(gòu)這門科有新的認識,本人實在是獲益不淺!要想編寫一個準確、高效并有使用價值的程序, 一定先要對課本知識熟悉, 還要掌握必要的

8、上機操作能力,寫程序其實很容易而關(guān)鍵在于調(diào)試程序。這次設(shè)計,讓我重新掌握了數(shù)據(jù)結(jié)構(gòu), 而且還得到了用數(shù)據(jù)結(jié)構(gòu)解決實際問題的寶貴經(jīng)驗。其次 ,通過此次編程我也發(fā)現(xiàn)了自己在學(xué)習(xí)中的錯誤和不足,復(fù)習(xí)了以前學(xué)過的知識。 同時也學(xué)到了一些沒學(xué)過的知識,讓我從中收益非淺,也為期末考試準備了一下! 更重要的是培養(yǎng)了獨立思考問題和解決問題的能力,熟悉了一些基本操作和解決問題的方法!致謝因為初次接觸等原因此次設(shè)計遇到了許多問題, 我深刻體會到老72020/3/27師發(fā)揮的重要作用 , 數(shù)據(jù)結(jié)構(gòu)程序?qū)ξ覀儊碚f比較難 , 在匆忙的學(xué)習(xí)中更是難上加難 , 似乎覺得自己僅是個匆匆過客 , 但在老師的幫助下我學(xué)會了如何調(diào)

9、試 , 如何查找系統(tǒng)沒有提示的錯誤 , 最后終于排除萬難把程序搞定 , 體會到原來編程也挺有意思的快感 . 我想沒有老師的幫助我很難在短期內(nèi)把程序設(shè)計做的這樣好, 在此特地感謝老師的幫助。參考文獻82020/3/271 李麗娟 . C 語言程序設(shè)計教程(第二版) . 北京:人民郵電出版社 20092 刁成嘉 . C 語言程序設(shè)計論文 D. 北京:清華大學(xué)出版社20043 楊文軍,楊柳 . C 語言程序設(shè)計教程 M. 北京:清華大學(xué)出版社 20104 周啟海 . C 語言程序設(shè)計報告 R. 北京:中國水利工程出2005 版社北京:清華大學(xué)出版 M.5譚浩強 .C程序設(shè)計(第三版)社 2005附錄

10、 92020/3/27源程序清單#include#include#include#includetypedef struct STUDENTchar studentNumber10;/*學(xué)生學(xué)號 */char studentName20;/*學(xué)生姓名 */char className20;/* 班級名稱 */char yearName20;/*學(xué)期名稱 */float mark1;/*第 1門成績 */float mark2;/*第 2門成績 */float mark3;/*第 3門成績 */struct STUDENT *next;STUDENT;STUDENT *headLink;/* 鏈

11、表表頭指針 */* 以下是函數(shù)聲明 */void ReadInfoFormFile(void);void DesplayMenu(void);void CreateHeadLink(void);STUDENT *MallocNode(void);void GetInformation(STUDENT *t);void OutputInformation(void);void DesplayInfoBystudentName(void);void DesplayOneNode(STUDENT *t);void InsertOneNode(STUDENT *t);void DeleteNodeBy

12、studentNumber(void);void ChangeMarkByName(void);void ChangeMarkByNumber(void);void SaveLinkToFile(void);void DesplayMarkSegment(void);void CompositorByTotalMark(void);int choose;/*用于接受用戶的選擇 */* 主函數(shù) */void main()CreateHeadLink();ReadInfoFormFile();DesplayMenu();/*函數(shù)功能:從文件中讀學(xué)生信息到鏈表中102020/3/27*/void R

13、eadInfoFormFile(void)FILE *fp;STUDENT *p;fp=fopen(,);if(!fp)牰湩晴尨文件不存在 n);return;p=MallocNode();while(fscanf(fp,%s%s%s%f%f%f,p-studentNumber,p-studentName,p-className,&(p-mark1),&(p-mark2),&(p-mark3)0)InsertOneNode(p);p=MallocNode();fclose(fp);/*函數(shù)功能:顯示菜單,根據(jù)用戶的輸入完成相應(yīng)的功能*/void DesplayMenu(void)STUDENT

14、 *p;printf(-printf(| 1printf(| 2printf(| 3printf(| 4printf(| 5printf(| 6printf(| 7printf(| 8printf(| 9printf(| 10請選擇相應(yīng)功能 -nn);按班級輸出學(xué)生成績單|n);按姓名查詢 |n);增加學(xué)生 |n);刪除學(xué)生 |n);按班級修改學(xué)生成績|n);按學(xué)期修改學(xué)生成績|n);保存所有學(xué)生信息|n);顯示不及格學(xué)生成績|n);按平均成績排序并輸出績|n);退出 |nn);scanf(%d,&choose);/*取得用戶的選擇 */switch(choose)case 1:OutputI

15、nformation();/*顯示所有學(xué)生的信息 */break;112020/3/27case 2:DesplayInfoBystudentName();break;case 3:p=MallocNode();/* 先申請一個新結(jié)點 */ GetInformation(p);/* 要求用戶輸入信息到新結(jié)點中 */InsertOneNode(p);/*將新結(jié)點加到鏈表中 */break;case 4:DeleteNodeBystudentNumber();/*根據(jù)用戶輸入的學(xué)號刪除該學(xué)生*/break;case 5:ChangeMarkByName();/* 根據(jù)用戶輸入的姓名修改學(xué)生成績 *

16、/ break;case 6:ChangeMarkByNumber();/* 根據(jù)用戶輸入的學(xué)號修改學(xué)生成績*/break;case 7:SaveLinkToFile();/*保存數(shù)據(jù) */break;case 8:DesplayMarkSegment();/* 顯示不及格的學(xué)生成績 */ break;case 9:CompositorByTotalMark();/*按平均成績排序 */break;case 10:SaveLinkToFile();/*保存數(shù)據(jù)后再退出 */free(headLink);break;default:break;DesplayMenu();/*遞歸調(diào)用 */*函數(shù)

17、功能:建立鏈表表頭*/void CreateHeadLink(void)STUDENT *p;p=(STUDENT*)malloc(sizeof(STUDENT);headLink=p;p-next=NULL;122020/3/27/*函數(shù)功能:申請一個新結(jié)點,并將其初始化*/STUDENT *MallocNode(void)STUDENT *p;int i;p=(STUDENT*)malloc(sizeof(STUDENT);if(p=NULL)return NULL;for(i=0;istudentNumberi=0;for(i=0;istudentNamei=0;for(i=0;icla

18、ssNamei=0;p-mark1=;p-mark2=;p-mark3=;p-next=NULL;return p;/*函數(shù)功能:取得用戶輸入的學(xué)生信息*/void GetInformation(STUDENT *t)牰湩晴尨請輸入學(xué)生學(xué)號:n);scanf(%s,t-studentNumber);牰湩晴尨請輸入學(xué)生姓名:n);scanf(%s,t-studentName);牰湩晴尨請輸入該生所在班級:n);scanf(%s,t-className);牰湩晴尨請輸入第1 門成績: n);scanf(%f,&(t-mark1);牰湩晴尨請輸入第2 門成績: n);scanf(%f,&(t-mar

19、k2);牰湩晴尨請輸入第3 門成績: n);scanf(%f,&(t-mark3);/*函數(shù)功能:在鏈表的結(jié)尾處增加一個結(jié)點*/132020/3/27void InsertOneNode(STUDENT *t)STUDENT *p;p=headLink;while(p-next)p=p-next;p-next=t;/*函數(shù)功能:根據(jù)用戶輸入的學(xué)生姓名顯示該學(xué)生的信息*/void DesplayInfoBystudentName(void)STUDENT *p;char studentName20;char flag=0;p=headLink-next;牰湩晴尨請輸入學(xué)生姓名:n);scanf(

20、%s,studentName);while(p)if(strcmp(p-studentName,studentName)=0)牰湩晴尨學(xué)號 t姓名 t班級 t 成績 1t成績 1t 成績 3t 總成績 t平均成績nn);DesplayOneNode(p);flag=1;break;p=p-next;if(!flag)牰湩晴尨對不起,不存在姓名為%s 的學(xué)生 n,studentName);/*函數(shù)功能:輸出一個結(jié)點的信息*/void DesplayOneNode(STUDENT *t)printf(%st,t-studentNumber);printf(%st,t-studentName);pr

21、intf(%st,t-className);142020/3/27printf(%.2ft,t-mark1);printf(%.2ft,t-mark2);printf(%.2ft,t-mark3);printf(%.2ft,t-mark1+t-mark2+t-mark3);printf(%.2ftn,(t-mark1+t-mark2+t-mark3)/3);/*函數(shù)功能:根據(jù)用戶輸入的學(xué)號刪除該學(xué)生*/void DeleteNodeBystudentNumber(void)char studentNumber10;STUDENT *p,*q;char flag=0;牰湩晴尨請輸入要刪除的學(xué)生學(xué)

22、號:);scanf(%s,studentNumber);p=headLink;q=headLink-next;while(q)if(strcmp(q-studentNumber,studentNumber)=0)p-next=q-next;free(q);flag=1;break;p=p-next;q=q-next;if(!flag)牰湩晴尨不存在該學(xué)號的學(xué)生n);return;牰湩晴尨成功刪除 n);/*函數(shù)功能:顯示所有學(xué)生的信息*/void OutputInformation(void)STUDENT *p;p=headLink-next;152020/3/27if(p=NULL)牰湩晴

23、尨現(xiàn)在沒有學(xué)生信息,請先輸入學(xué)生信息nn);return;牰湩晴尨學(xué)號 t姓名 t班級 t 成績 1t成績 1t 成績 3t 總成績 t平均成績nn);while(p)DesplayOneNode(p);p=p-next;/*函數(shù)功能:根據(jù)輸入的班級修改成績*/void ChangeMarkByName(void)STUDENT *p;int a;char studentName20;char flag=0;float mark1,mark2,mark3;p=headLink-next;牰湩晴尨請輸入學(xué)生班級:n);scanf(%d,&a);牰湩晴尨請輸入學(xué)生姓名:n);scanf(%s,st

24、udentName);while(p)if(strcmp(p-studentName,studentName)=0)牰湩晴尨請輸入新的第1 門成績: n);scanf(%f,&mark1);牰湩晴尨請輸入新的第2 門成績: n);scanf(%f,&mark2);牰湩晴尨請輸入新的第3 門成績: n);scanf(%f,&mark3);p-mark1=mark1;p-mark2=mark2;p-mark3=mark3;flag=1;牰湩晴尨修改成功 n);break;162020/3/27p=p-next;if(!flag)牰湩晴尨對不起,不存在班級為%s 的學(xué)生 n,studentName)

25、;/*函數(shù)功能:根據(jù)輸入的學(xué)期修改成績*/void ChangeMarkByNumber(void)STUDENT *p;int b;char studentNumber20;char flag=0;float mark1,mark2,mark3;p=headLink-next;牰湩晴尨請輸入學(xué)生所在學(xué)期:n);scanf(%d,&b);牰湩晴尨請輸入學(xué)生學(xué)號:n);scanf(%s,studentNumber);while(p)if(strcmp(p-studentNumber,studentNumber)=0)牰湩晴尨請輸入新的第1 門成績: n);scanf(%f,&mark1);牰湩晴

26、尨請輸入新的第2 門成績: n);scanf(%f,&mark2);牰湩晴尨請輸入新的第3 門成績: n);scanf(%f,&mark3);p-mark1=mark1;p-mark2=mark2;p-mark3=mark3;flag=1;牰湩晴尨修改成功 n);break;p=p-next;if(!flag)牰湩晴尨對不起,不存在學(xué)期為%s 的學(xué)生 n,studentNumber);/*172020/3/27函數(shù)功能:保存鏈表數(shù)據(jù)到文件中*/void SaveLinkToFile(void)STUDENT *p;FILE *fp;p=headLink-next;if(p=NULL)牰湩晴尨現(xiàn)

27、在沒有學(xué)生信息,請先輸入學(xué)生信息nn);return;fp=fopen(,w+);if(!fp)牰湩晴尨文件不存在 n);return;while(p)fprintf(fp,%s %s %s %f %f %fn,p-studentNumber,p-studentName,p-cla ssName,p-mark1,p-mark2,p-mark3); p=p-next;fclose(fp);/*函數(shù)功能:不及格學(xué)生成績*/void DesplayMarkSegment(void)STUDENT *p;int count=0;p=headLink-next;printf(0分以下 ( 不及格 ) 的學(xué)生成績?nèi)缦拢?n);牰湩晴尨學(xué)號 t姓名 t班級 t 成績 1t成績 1t 成績 3t

溫馨提示

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

評論

0/150

提交評論