版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、<p> 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)報(bào)告</p><p> 選題名稱: 學(xué)生成績管理系統(tǒng) </p><p> 系(院): 數(shù) 理學(xué) 院</p><p> 專 業(yè): 信息與計(jì)算科學(xué)</p><p> 班 級(jí): </p&
2、gt;<p> 姓 名: 學(xué) 號(hào): </p><p> 指導(dǎo)教師: </p><p> 學(xué)年學(xué)期: 2011 ~ 2012 學(xué)年 第 1 學(xué)期</p><p> 2012 年 06 月 06 日</p><p><b> 【摘
3、 要】</b></p><p> 21世紀(jì),科學(xué)技術(shù)突飛猛進(jìn),經(jīng)濟(jì)知識(shí)和信息產(chǎn)業(yè)初見端倪,特別是信息技術(shù)和網(wǎng)絡(luò)技術(shù)的訊速發(fā)展和廣泛應(yīng)用,對(duì)社會(huì)的政治,經(jīng)濟(jì),軍事,文化等領(lǐng)域產(chǎn)生越來越深刻。學(xué)生成績管理系統(tǒng)是一個(gè)教育單位不可缺少的部分,它的內(nèi)容對(duì)于學(xué)校的決策者和管理者來說都至關(guān)重要。本論文敘述到的學(xué)生成績管理系統(tǒng)是用IIS+ASP網(wǎng)頁編程+ACCESS數(shù)據(jù)庫+DREAMWEAVER MX 2004+S
4、QL查詢語言實(shí)現(xiàn)的。重點(diǎn)介紹了學(xué)生成績管理系統(tǒng)的實(shí)現(xiàn)過程:包括系統(tǒng)分析,系統(tǒng)調(diào)查,功能設(shè)計(jì),數(shù)據(jù)庫設(shè)計(jì),系統(tǒng)實(shí)現(xiàn),系統(tǒng)測試和調(diào)試等。本系統(tǒng)主要功能有查詢學(xué)生成績、單個(gè)添加學(xué)生成績、批量添加學(xué)生成績、刪除學(xué)生成績、管理頁面和修改管理員密碼等內(nèi)容。</p><p><b> 【關(guān)鍵詞】 </b></p><p> 成績管理; 成績查詢; C++</p>
5、<p><b> 目 錄</b></p><p> 中文摘要 。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。 1</p><p> 1緒論 。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。 4</p>
6、;<p> 1.1 選題背景 。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。 5</p><p> 1.2 需求分析 。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。 6</p><p> 2總體設(shè)計(jì) 。。。。。。。。。。。。。。。
7、。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。 7</p><p> 2.1程序設(shè)計(jì)組成框圖 。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。 8</p><p> 2.2 模塊功能說明 。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。9</p>
8、<p> 2.3 程序流程圖 。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。10</p><p> 2.4 主要函數(shù)之間相互調(diào)用 。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。 11</p><p> 3 在設(shè)計(jì)過程中的感受 。。。。。。。。。。。。。。。。。。
9、。。。。。。。。。。。。。。。。。。。。。12</p><p> 致謝 。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。 13</p><p> 參考文獻(xiàn) 。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。 14</p><p> 附錄
10、:源程序清單 。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。 15</p><p><b> 緒論</b></p><p><b> 1.1 選題背景</b></p><p> 為了提高高校學(xué)生信息的管理效率,方便對(duì)學(xué)生信息進(jìn)行管理、學(xué)校里面的學(xué)生和管理員方便去管理和查詢學(xué)
11、生信息,如再要進(jìn)行查詢,就得在眾多的學(xué)生信息中查找自己的成績信息,面對(duì)學(xué)院大量的學(xué)生信息,怎么可以即時(shí)而方便的管理,學(xué)生只要登錄本系統(tǒng)就可以查找到自己的成績信息,而管理員也方便去管理每學(xué)期的學(xué)生的成績信息。建立一個(gè)學(xué)生信息管理系統(tǒng),使學(xué)生信息管理工作規(guī)范化,系統(tǒng)化,程序化,避免學(xué)生管理的隨意性,提高信息處理的速度和準(zhǔn)確性,能夠及時(shí)、準(zhǔn)確、有效的查詢和修改學(xué)生信息是必須而且十分迫切的工作。</p><p><
12、b> 2.1 需求分析</b></p><p> 學(xué)生管理系統(tǒng)功能的信息量大,數(shù)據(jù)安全性和保密性要求最高。本功能實(shí)現(xiàn)對(duì)專業(yè)信息、學(xué)生信息、教師信息情況信息的管理和統(tǒng)計(jì)、課程信息和成績信息查看及維護(hù)。系統(tǒng)管理員可以瀏覽、查詢、學(xué)生的基本信息,能添加、刪除和修改學(xué)生信息,這部分功能應(yīng)該由系統(tǒng)管理員執(zhí)行,但是,刪除某條專業(yè)基本信息記錄時(shí),應(yīng)實(shí)現(xiàn)對(duì)該專業(yè)的相關(guān)信息也級(jí)聯(lián)刪除。并且還應(yīng)具有查詢,并打印
13、輸出的功能</p><p> 設(shè)計(jì)不同用戶的操作權(quán)限和登陸方法、對(duì)所有用戶開放的用戶提供學(xué)生成績信息查詢、由于本系統(tǒng)功能實(shí)現(xiàn)方面并不太復(fù)雜,所以上面只是相關(guān)的學(xué)生信息管理查詢的總體分析,具體實(shí)現(xiàn)就主要體現(xiàn)在學(xué)生管理,教師的管理和課程的管理這一塊,也就是重點(diǎn)實(shí)現(xiàn)查詢與添加學(xué)生信息,以及對(duì)成績信息管理。</p><p><b> 2.總體設(shè)計(jì)</b></p>
14、;<p> ?。?)程序設(shè)計(jì)組成框圖</p><p><b> ?。?)模塊功能說明</b></p><p> 1 輸出功能:完成全部學(xué)生記錄的顯示。</p><p> 2 查詢功能:輸入姓名可以查詢學(xué)生的詳細(xì)信息。</p><p> 3 增加功能:增加新學(xué)生的信息。 </p><
15、p> 4 刪除功能:刪除學(xué)生信息。</p><p> 5 修改功能:修改學(xué)生的錯(cuò)誤信息。</p><p> 6保存功能:保存已輸入信息。</p><p> 7讀取功能:讀取已輸入信息。</p><p> 8顯示功能:按要求顯示學(xué)生記錄。</p><p> 9 排序功能:按要求完成對(duì)學(xué)生信息的排序。
16、</p><p><b> 10 退出系統(tǒng)。</b></p><p><b> ?。?)程序流程圖</b></p><p> ?。?)主要函數(shù)之間相互調(diào)用如下:</p><p><b> 總 結(jié)</b></p><p> 首先經(jīng)過一周的編程實(shí)
17、習(xí),并在后一段的報(bào)告總結(jié),我對(duì)數(shù)據(jù)結(jié)構(gòu)這門科有新的認(rèn)識(shí),本人實(shí)在是獲益不淺!要想編寫一個(gè)準(zhǔn)確、高效并有使用價(jià)值的程序,一定先要對(duì)課本知識(shí)熟悉,還要掌握必要的上機(jī)操作能力,寫程序其實(shí)很容易而關(guān)鍵在于調(diào)試程序。這次設(shè)計(jì),讓我重新掌握了數(shù)據(jù)結(jié)構(gòu),而且還得到了用數(shù)據(jù)結(jié)構(gòu)解決實(shí)際問題的寶貴經(jīng)驗(yàn)。</p><p> 其次, 通過此次編程我也發(fā)現(xiàn)了自己在學(xué)習(xí)中的錯(cuò)誤和不足,復(fù)習(xí)了以前學(xué)過的知識(shí)。同時(shí)也學(xué)到了一些沒學(xué)過的知識(shí),
18、讓我從中收益非淺,也為期末考試準(zhǔn)備了一下!更重要的是培養(yǎng)了獨(dú)立思考問題和解決問題的能力,熟悉了一些基本操作和解決問題的方法!</p><p> 致 謝</p><p> 因?yàn)槌醮谓佑|等原因此次設(shè)計(jì)遇到了許多問題,我深刻體會(huì)到老師發(fā)揮的重要作用, 數(shù)據(jù)結(jié)構(gòu)程序?qū)ξ覀儊碚f比較難,在匆忙的學(xué)習(xí)中更是難上加難,似乎覺得自己僅是個(gè)匆匆過客,但在老師的幫助下我學(xué)會(huì)了如何調(diào)試,如何查找
19、系統(tǒng)沒有提示的錯(cuò)誤,最后終于排除萬難把程序搞定,體會(huì)到原來編程也挺有意思的快感.我想沒有老師的幫助我很難在短期內(nèi)把程序設(shè)計(jì)做的這樣好,在此特地感謝老師的幫助。</p><p><b> 參 考 文 獻(xiàn)</b></p><p> [1] 李麗娟 . C語言程序設(shè)計(jì)教程(第二版). 北京:人民郵電出版社 2009</p><p> [2] 刁
20、成嘉 . C語言程序設(shè)計(jì)論文 [D].北京:清華大學(xué)出版社 2004</p><p> [3] 楊文軍,楊柳 . C語言程序設(shè)計(jì)教程[M]. 北京:清華大學(xué)出版社 2010</p><p> [4] 周啟海 . C語言程序設(shè)計(jì)報(bào)告[R].北京:中國水利工程出版社 2005</p><p> [5] 譚浩強(qiáng) . C程序設(shè)計(jì)(第三版)[M].北京:清華大學(xué)出版社
21、2005</p><p><b> 附 錄</b></p><p><b> 源程序清單</b></p><p> #include<stdio.h></p><p> #include<conio.h></p><p> #include&
22、lt;malloc.h></p><p> #include<string.h></p><p> typedef struct STUDENT</p><p><b> {</b></p><p> char studentNumber[10];/*學(xué)生學(xué)號(hào)*/</p><
23、p> char studentName[20];/*學(xué)生姓名*/</p><p> char className[20];/*班級(jí)名稱*/</p><p> char yearName[20];/*學(xué)期名稱*/</p><p> float mark1;/*第1門成績*/</p><p> float mark2;/*第2門成
24、績*/</p><p> float mark3;/*第3門成績*/</p><p> struct STUDENT *next;</p><p><b> }STUDENT;</b></p><p> STUDENT *headLink;/*鏈表表頭指針*/</p><p> /*以下
25、是函數(shù)聲明*/</p><p> void ReadInfoFormFile(void);</p><p> void DesplayMenu(void);</p><p> void CreateHeadLink(void);</p><p> STUDENT *MallocNode(void);</p><p&
26、gt; void GetInformation(STUDENT *t);</p><p> void OutputInformation(void);</p><p> void DesplayInfoBystudentName(void);</p><p> void DesplayOneNode(STUDENT *t);</p><p
27、> void InsertOneNode(STUDENT *t);</p><p> void DeleteNodeBystudentNumber(void);</p><p> void ChangeMarkByName(void);</p><p> void ChangeMarkByNumber(void);</p><p&g
28、t; void SaveLinkToFile(void);</p><p> void DesplayMarkSegment(void);</p><p> void CompositorByTotalMark(void);</p><p> int choose;/*用于接受用戶的選擇*/</p><p><b> /*
29、主函數(shù)*/</b></p><p> void main()</p><p><b> {</b></p><p> CreateHeadLink();</p><p> ReadInfoFormFile();</p><p> DesplayMenu();</p>
30、;<p><b> }</b></p><p> /************************************</p><p> 函數(shù)功能:從文件中讀學(xué)生信息到鏈表中</p><p> ************************************/</p><p> vo
31、id ReadInfoFormFile(void)</p><p><b> {</b></p><p><b> FILE *fp;</b></p><p> STUDENT *p;</p><p> fp=fopen("student.txt","r&quo
32、t;);</p><p><b> if(!fp)</b></p><p><b> {</b></p><p> printf("文件不存在\n");</p><p><b> return;</b></p><p><
33、;b> }</b></p><p> p=MallocNode();</p><p> while(fscanf(fp,"%s%s%s%f%f%f",p->studentNumber,p->studentName,p->className,&(p->mark1),&(p->mark2),&(p
34、->mark3))>0)</p><p><b> {</b></p><p> InsertOneNode(p);</p><p> p=MallocNode();</p><p><b> }</b></p><p> fclose(fp);<
35、/p><p><b> }</b></p><p> /************************************</p><p> 函數(shù)功能:顯示菜單,根據(jù)用戶的輸入</p><p><b> 完成相應(yīng)的功能</b></p><p> *********
36、***************************/</p><p> void DesplayMenu(void)</p><p><b> {</b></p><p> STUDENT *p;</p><p> printf("-------請(qǐng)選擇相應(yīng)功能------------\n\n&quo
37、t;);</p><p> printf("| 1 按班級(jí)輸出學(xué)生成績單 |\n");</p><p> printf("| 2 按姓名查詢 |\n");</p><p> printf("| 3 增加學(xué)生 |\n");</p><p> printf("| 4 刪
38、除學(xué)生 |\n");</p><p> printf("| 5 按班級(jí)修改學(xué)生成績 |\n");</p><p> printf("| 6 按學(xué)期修改學(xué)生成績 |\n");</p><p> printf("| 7 保存所有學(xué)生信息 |\n");</p><p>
39、printf("| 8 顯示不及格學(xué)生成績 |\n");</p><p> printf("| 9 按平均成績排序并輸出績 |\n");</p><p> printf("| 10 退出 |\n\n");</p><p> scanf("%d",&choose);/*取得用
40、戶的選擇*/</p><p> switch(choose)</p><p><b> {</b></p><p><b> case 1:</b></p><p> OutputInformation();/*顯示所有學(xué)生的信息*/</p><p><b>
41、; break;</b></p><p><b> case 2:</b></p><p> DesplayInfoBystudentName();</p><p><b> break;</b></p><p><b> case 3:</b></
42、p><p> p=MallocNode();/*先申請(qǐng)一個(gè)新結(jié)點(diǎn)*/</p><p> GetInformation(p);/*要求用戶輸入信息到新結(jié)點(diǎn)中*/</p><p> InsertOneNode(p);/*將新結(jié)點(diǎn)加到鏈表中*/</p><p><b> break;</b></p><
43、p><b> case 4:</b></p><p> DeleteNodeBystudentNumber();/*根據(jù)用戶輸入的學(xué)號(hào)刪除該學(xué)生*/</p><p><b> break;</b></p><p><b> case 5:</b></p><p>
44、 ChangeMarkByName();/*根據(jù)用戶輸入的姓名修改學(xué)生成績*/</p><p><b> break;</b></p><p><b> case 6:</b></p><p> ChangeMarkByNumber();/*根據(jù)用戶輸入的學(xué)號(hào)修改學(xué)生成績*/</p><p>
45、;<b> break;</b></p><p><b> case 7:</b></p><p> SaveLinkToFile();/*保存數(shù)據(jù)*/</p><p><b> break;</b></p><p><b> case 8:</b&g
46、t;</p><p> DesplayMarkSegment();/*顯示不及格的學(xué)生成績*/</p><p><b> break;</b></p><p><b> case 9:</b></p><p> CompositorByTotalMark();/*按平均成績排序*/</
47、p><p><b> break;</b></p><p><b> case 10:</b></p><p> SaveLinkToFile();/*保存數(shù)據(jù)后再退出*/</p><p> free(headLink);</p><p><b> break
48、;</b></p><p><b> default:</b></p><p><b> break;</b></p><p><b> }</b></p><p> DesplayMenu();/*遞歸調(diào)用*/</p><p>&l
49、t;b> }</b></p><p> /************************************</p><p> 函數(shù)功能:建立鏈表表頭</p><p> ************************************/</p><p> void CreateHeadLink(voi
50、d)</p><p><b> {</b></p><p> STUDENT *p;</p><p> p=(STUDENT*)malloc(sizeof(STUDENT));</p><p> headLink=p;</p><p> p->next=NULL;</p>
51、;<p><b> }</b></p><p> /************************************</p><p> 函數(shù)功能:申請(qǐng)一個(gè)新結(jié)點(diǎn),并將其初始化</p><p> ************************************/</p><p> S
52、TUDENT *MallocNode(void)</p><p><b> {</b></p><p> STUDENT *p;</p><p><b> int i;</b></p><p> p=(STUDENT*)malloc(sizeof(STUDENT));</p>
53、<p> if(p==NULL)</p><p> return NULL;</p><p> for(i=0;i<10;i++)</p><p> p->studentNumber[i]='\0';</p><p> for(i=0;i<20;i++)</p><p&
54、gt; p->studentName[i]='\0';</p><p> for(i=0;i<20;i++)</p><p> p->className[i]='\0';</p><p> p->mark1=0.0;</p><p> p->mark2=0.0;</
55、p><p> p->mark3=0.0;</p><p> p->next=NULL;</p><p><b> return p;</b></p><p><b> }</b></p><p> /*****************************
56、*******</p><p> 函數(shù)功能:取得用戶輸入的學(xué)生信息</p><p> ************************************/</p><p> void GetInformation(STUDENT *t)</p><p><b> {</b></p><p
57、> printf("請(qǐng)輸入學(xué)生學(xué)號(hào):\n");</p><p> scanf("%s",t->studentNumber);</p><p> printf("請(qǐng)輸入學(xué)生姓名:\n");</p><p> scanf("%s",t->studentName);&
58、lt;/p><p> printf("請(qǐng)輸入該生所在班級(jí):\n");</p><p> scanf("%s",t->className);</p><p> printf("請(qǐng)輸入第1門成績:\n");</p><p> scanf("%f",&
59、(t->mark1));</p><p> printf("請(qǐng)輸入第2門成績:\n");</p><p> scanf("%f",&(t->mark2));</p><p> printf("請(qǐng)輸入第3門成績:\n");</p><p> scanf(&q
60、uot;%f",&(t->mark3));</p><p><b> }</b></p><p> /************************************</p><p> 函數(shù)功能:在鏈表的結(jié)尾處增加一個(gè)結(jié)點(diǎn)</p><p> ********************
61、****************/</p><p> void InsertOneNode(STUDENT *t)</p><p><b> {</b></p><p> STUDENT *p;</p><p> p=headLink;</p><p> while(p->next
62、)</p><p><b> {</b></p><p> p=p->next;</p><p><b> }</b></p><p> p->next=t;</p><p><b> }</b></p><p&
63、gt; /************************************</p><p> 函數(shù)功能:根據(jù)用戶輸入的學(xué)生姓名顯示該學(xué)生的信息</p><p> ************************************/</p><p> void DesplayInfoBystudentName(void)</p>&
64、lt;p><b> {</b></p><p> STUDENT *p;</p><p> char studentName[20];</p><p> char flag=0;</p><p> p=headLink->next;</p><p> printf(&quo
65、t;請(qǐng)輸入學(xué)生姓名:\n");</p><p> scanf("%s",studentName);</p><p><b> while(p)</b></p><p><b> {</b></p><p> if(strcmp(p->studentName
66、,studentName)==0)</p><p><b> {</b></p><p> printf("學(xué)號(hào)\t姓名\t班級(jí)\t成績1\t成績1\t成績3\t總成績\t平均成績\n\n");</p><p> DesplayOneNode(p);</p><p><b> fla
67、g=1;</b></p><p><b> break;</b></p><p><b> }</b></p><p> p=p->next;</p><p><b> }</b></p><p><b> if(!
68、flag)</b></p><p> printf("對(duì)不起,不存在姓名為 %s 的學(xué)生\n",studentName);</p><p><b> }</b></p><p> /************************************</p><p> 函數(shù)功能
69、:輸出一個(gè)結(jié)點(diǎn)的信息</p><p> ************************************/</p><p> void DesplayOneNode(STUDENT *t)</p><p><b> {</b></p><p> printf("%s\t",t->
70、studentNumber);</p><p> printf("%s\t",t->studentName);</p><p> printf("%s\t",t->className);</p><p> printf("%.2f\t",t->mark1);</p>&
71、lt;p> printf("%.2f\t",t->mark2);</p><p> printf("%.2f\t",t->mark3);</p><p> printf("%.2f\t",t->mark1+t->mark2+t->mark3);</p><p>
72、printf("%.2f\t\n",(t->mark1+t->mark2+t->mark3)/3);</p><p><b> }</b></p><p> /************************************</p><p> 函數(shù)功能:根據(jù)用戶輸入的學(xué)號(hào)刪除該學(xué)生</p
73、><p> ************************************/</p><p> void DeleteNodeBystudentNumber(void)</p><p><b> {</b></p><p> char studentNumber[10];</p><p&
74、gt; STUDENT *p,*q;</p><p> char flag=0;</p><p> printf("請(qǐng)輸入要?jiǎng)h除的學(xué)生學(xué)號(hào):");</p><p> scanf("%s",studentNumber);</p><p> p=headLink;</p><p
75、> q=headLink->next;</p><p><b> while(q)</b></p><p><b> {</b></p><p> if(strcmp(q->studentNumber,studentNumber)==0)</p><p><b>
76、 {</b></p><p> p->next=q->next;</p><p><b> free(q);</b></p><p><b> flag=1;</b></p><p><b> break;</b></p><
77、;p><b> }</b></p><p> p=p->next;</p><p> q=q->next;</p><p><b> }</b></p><p><b> if(!flag)</b></p><p><b
78、> {</b></p><p> printf("不存在該學(xué)號(hào)的學(xué)生\n");</p><p><b> return;</b></p><p><b> }</b></p><p> printf("成功刪除\n");</p
79、><p><b> }</b></p><p> /************************************</p><p> 函數(shù)功能:顯示所有學(xué)生的信息</p><p> ************************************/</p><p> voi
80、d OutputInformation(void)</p><p><b> {</b></p><p> STUDENT *p;</p><p> p=headLink->next;</p><p> if(p==NULL)</p><p><b> {</b&g
81、t;</p><p> printf("現(xiàn)在沒有學(xué)生信息,請(qǐng)先輸入學(xué)生信息\n\n");</p><p><b> return;</b></p><p><b> }</b></p><p> printf("學(xué)號(hào)\t姓名\t班級(jí)\t成績1\t成績1\t成績3
82、\t總成績\t平均成績\n\n");</p><p><b> while(p)</b></p><p><b> {</b></p><p> DesplayOneNode(p);</p><p> p=p->next;</p><p><b&
83、gt; }</b></p><p><b> }</b></p><p> /************************************</p><p> 函數(shù)功能:根據(jù)輸入的班級(jí)修改成績</p><p> ************************************/&l
84、t;/p><p> void ChangeMarkByName(void)</p><p><b> {</b></p><p> STUDENT *p;</p><p><b> int a;</b></p><p> char studentName[20];<
85、;/p><p> char flag=0;</p><p> float mark1,mark2,mark3;</p><p> p=headLink->next;</p><p> printf("請(qǐng)輸入學(xué)生班級(jí):\n");</p><p> scanf("%d",
86、&a);</p><p> printf("請(qǐng)輸入學(xué)生姓名:\n");</p><p> scanf("%s",studentName);</p><p><b> while(p)</b></p><p><b> {</b></p&g
87、t;<p> if(strcmp(p->studentName,studentName)==0)</p><p><b> {</b></p><p> printf("請(qǐng)輸入新的第1門成績:\n");</p><p> scanf("%f",&mark1);</
88、p><p> printf("請(qǐng)輸入新的第2門成績:\n");</p><p> scanf("%f",&mark2);</p><p> printf("請(qǐng)輸入新的第3門成績:\n");</p><p> scanf("%f",&mark3)
89、;</p><p> p->mark1=mark1;</p><p> p->mark2=mark2;</p><p> p->mark3=mark3;</p><p><b> flag=1;</b></p><p> printf("修改成功\n"
90、;);</p><p><b> break;</b></p><p><b> }</b></p><p> p=p->next;</p><p><b> }</b></p><p><b> if(!flag)</b
91、></p><p> printf("對(duì)不起,不存在班級(jí)為 %s 的學(xué)生\n",studentName);</p><p><b> }</b></p><p> /************************************</p><p> 函數(shù)功能:根據(jù)輸入的學(xué)期修改成
92、績</p><p> ************************************/</p><p> void ChangeMarkByNumber(void)</p><p><b> {</b></p><p> STUDENT *p;</p><p><b>
93、 int b;</b></p><p> char studentNumber[20];</p><p> char flag=0;</p><p> float mark1,mark2,mark3;</p><p> p=headLink->next;</p><p> printf(&
94、quot;請(qǐng)輸入學(xué)生所在學(xué)期:\n");</p><p> scanf("%d",&b);</p><p> printf("請(qǐng)輸入學(xué)生學(xué)號(hào):\n");</p><p> scanf("%s",studentNumber);</p><p><b>
95、 while(p)</b></p><p><b> {</b></p><p> if(strcmp(p->studentNumber,studentNumber)==0)</p><p><b> {</b></p><p> printf("請(qǐng)輸入新的第1
96、門成績:\n");</p><p> scanf("%f",&mark1);</p><p> printf("請(qǐng)輸入新的第2門成績:\n");</p><p> scanf("%f",&mark2);</p><p> printf("請(qǐng)
97、輸入新的第3門成績:\n");</p><p> scanf("%f",&mark3);</p><p> p->mark1=mark1;</p><p> p->mark2=mark2;</p><p> p->mark3=mark3;</p><p>
98、<b> flag=1;</b></p><p> printf("修改成功\n");</p><p><b> break;</b></p><p><b> }</b></p><p> p=p->next;</p><
99、;p><b> }</b></p><p><b> if(!flag)</b></p><p> printf("對(duì)不起,不存在學(xué)期為 %s 的學(xué)生\n",studentNumber);</p><p><b> }</b></p><p>
100、 /************************************</p><p> 函數(shù)功能:保存鏈表數(shù)據(jù)到文件中</p><p> ************************************/</p><p> void SaveLinkToFile(void)</p><p><b> {&l
101、t;/b></p><p> STUDENT *p;</p><p><b> FILE *fp;</b></p><p> p=headLink->next;</p><p> if(p==NULL)</p><p><b> {</b></p&
102、gt;<p> printf("現(xiàn)在沒有學(xué)生信息,請(qǐng)先輸入學(xué)生信息\n\n");</p><p><b> return;</b></p><p><b> }</b></p><p> fp=fopen("student.txt","w+"
103、);</p><p><b> if(!fp)</b></p><p><b> {</b></p><p> printf("文件不存在\n");</p><p><b> return;</b></p><p><b
104、> }</b></p><p><b> while(p)</b></p><p><b> {</b></p><p> fprintf(fp,"%s %s %s %f %f %f\n",p->studentNumber,p->studentName,p->
105、className,p->mark1,p->mark2,p->mark3);</p><p> p=p->next;</p><p><b> }</b></p><p> fclose(fp);</p><p><b> }</b></p><p
106、> /************************************</p><p> 函數(shù)功能:不及格學(xué)生成績</p><p> ************************************/</p><p> void DesplayMarkSegment(void)</p><p><b>
107、 {</b></p><p> STUDENT *p;</p><p> int count=0;</p><p> p=headLink->next;</p><p> printf("60分以下(不及格)的學(xué)生成績?nèi)缦拢篭n");</p><p> printf(&
108、quot;學(xué)號(hào)\t姓名\t班級(jí)\t成績1\t成績1\t成績3\t總成績\t平均成績\n\n");</p><p><b> while(p)</b></p><p><b> {</b></p><p> if((6>((int)(p->mark1/10)))||(6>((int)(p-&
109、gt;mark2/10)))||(6>((int)(p->mark3/10))))/*只要有一科不及格就認(rèn)為該生不及格*/</p><p><b> {</b></p><p><b> count++;</b></p><p> DesplayOneNode(p);</p><p&g
110、t;<b> }</b></p><p> p=p->next;</p><p><b> }</b></p><p> printf("不及格的學(xué)生一共有%d人\n",count);</p><p><b> }</b></p>
111、<p> /************************************</p><p> 函數(shù)功能:按平均成績排序</p><p> ************************************/</p><p> void CompositorByTotalMark(void)</p><p>
112、;<b> {</b></p><p> STUDENT exchange,*r,*p,*q;</p><p> r=headLink->next;</p><p> if(r==NULL)</p><p><b> {</b></p><p> print
113、f("現(xiàn)在還沒學(xué)生信息,請(qǐng)先輸入學(xué)生信息\n");</p><p><b> return;</b></p><p><b> }</b></p><p> while(r)/*兩層while循環(huán)實(shí)現(xiàn)排序*/</p><p><b> {</b>&l
114、t;/p><p><b> p=r;</b></p><p> q=r->next;</p><p><b> while(q)</b></p><p><b> {</b></p><p> if((q->mark1+q->ma
115、rk2+q->mark3)>(p->mark1+p->mark2+p->mark3))</p><p><b> {</b></p><p> strcpy(exchange.studentNumber,q->studentNumber);/*先復(fù)制q結(jié)點(diǎn)信息到exchange*/</p><p> s
116、trcpy(exchange.studentName,q->studentName);</p><p> strcpy(exchange.className,q->className);</p><p> exchange.mark1=q->mark1;</p><p> exchange.mark2=q->mark2;</p&g
117、t;<p> exchange.mark3=q->mark3;</p><p> strcpy(q->studentNumber,p->studentNumber);/*再復(fù)制p結(jié)點(diǎn)信息到q*/</p><p> strcpy(q->studentName,p->studentName);</p><p> str
118、cpy(q->className,p->className);</p><p> q->mark1=p->mark1;</p><p> q->mark2=p->mark3;</p><p> q->mark3=p->mark3;</p><p> strcpy(p->studen
119、tNumber,exchange.studentNumber);/*最后復(fù)制exchange結(jié)點(diǎn)信息到p*/</p><p> strcpy(p->studentName,exchange.studentName);</p><p> strcpy(p->className,exchange.className);</p><p> p->m
120、ark1=exchange.mark1;</p><p> p->mark2=exchange.mark2;</p><p> p->mark3=exchange.mark3;</p><p><b> }</b></p><p> q=q->next;</p><p>
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)-學(xué)生成績管理系統(tǒng)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)---學(xué)生成績管理系統(tǒng)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)---學(xué)生成績管理系統(tǒng)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)----學(xué)生成績管理系統(tǒng)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)——學(xué)生成績管理系統(tǒng)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)--學(xué)生成績管理系統(tǒng)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)--學(xué)生成績管理系統(tǒng)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)--- 學(xué)生成績管理系統(tǒng)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)--學(xué)生成績管理
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)報(bào)告--學(xué)生成績管理系統(tǒng)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)報(bào)告---學(xué)生成績管理系統(tǒng)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)---學(xué)生成績管理系統(tǒng)(部分)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)-學(xué)生成績查詢系統(tǒng)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)---學(xué)生成績管理問題
- 數(shù)據(jù)結(jié)構(gòu)學(xué)生成績管理課程設(shè)計(jì)報(bào)告
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)--成績管理系統(tǒng)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)---成績管理系統(tǒng)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)--成績管理
- 數(shù)據(jù)結(jié)構(gòu)之學(xué)生成績管理系統(tǒng)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)--學(xué)生成績管理程序的設(shè)計(jì)與實(shí)現(xiàn)
評(píng)論
0/150
提交評(píng)論