版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、<p><b> 1 概 述 </b></p><p> 1.1 課程設(shè)計(jì)背景</p><p> 學(xué)生成績管理系統(tǒng)能有效地管理每個(gè)學(xué)生的各科成績,還可以管理學(xué)生的基本信息以及課程信息。該系統(tǒng)能簡便地實(shí)行相關(guān)記錄的查詢,添加,修改,刪除操作。</p><p> 目前,學(xué)校工作繁雜、資料重多,管理信息系統(tǒng)已進(jìn)入高校,但還未普
2、及,而對于學(xué)生成績管理來說,還沒有一套完整的、統(tǒng)一的系統(tǒng)。因此,開發(fā)一套適合大眾的、兼容性好的系統(tǒng)是很有必要的。根據(jù)開發(fā)要求,它主要應(yīng)用于教育系統(tǒng),完成對日常學(xué)生成績的錄入查詢和更新刪除等管理操作,實(shí)現(xiàn)學(xué)生成績管理的計(jì)算機(jī)化。開發(fā)學(xué)生成績管理系統(tǒng)可使學(xué)院教職員工減輕工作壓力,比較系統(tǒng)地對教務(wù)、教學(xué)上的各項(xiàng)服務(wù)和信息進(jìn)行管理,同時(shí),可以減少勞動(dòng)力的使用,加快查詢速度、加強(qiáng)管理。本文敘述了現(xiàn)在高校學(xué)生成績管理的現(xiàn)狀以及C++語言和一些開源框
3、架的概況。重點(diǎn)介紹了學(xué)生成績管理系統(tǒng)的實(shí)現(xiàn)過程:包括系統(tǒng)分析、 系統(tǒng)調(diào)查、 數(shù)據(jù)庫設(shè)計(jì)、功能設(shè)計(jì)、系統(tǒng)物理配置方案、 系統(tǒng)實(shí)現(xiàn)、系統(tǒng)測試以及系統(tǒng)功能簡介。</p><p> 1.2 課程設(shè)計(jì)目標(biāo)</p><p> 建立學(xué)生成績管理系統(tǒng),采用計(jì)算機(jī)對學(xué)生成績進(jìn)行管理,進(jìn)一步提高辦學(xué)效益和現(xiàn)代化水平。幫助廣大教師提高工作效率,實(shí)現(xiàn)學(xué)生成績維護(hù)工作流程的系統(tǒng)化、規(guī)范化和自動(dòng)化。為了使系統(tǒng)在學(xué)
4、院的管理中發(fā)揮更大的作用,實(shí)現(xiàn)工作過程的計(jì)算機(jī)化,提高工 作效率和工作質(zhì)量,現(xiàn)提出如下的系統(tǒng)開發(fā)目標(biāo):</p><p> (1)提高學(xué)生管理次序,節(jié)約管理成績,增強(qiáng)學(xué)生管理的安全性。</p><p> (2)系統(tǒng)應(yīng)具有實(shí)用性、可靠性和適用性,同時(shí)注意到先進(jìn)性。</p><p> (3)對各個(gè)數(shù)據(jù)庫進(jìn)行動(dòng)態(tài)管理,防止混亂。</p><p>
5、; (4)能夠?qū)Σ樵兘Y(jié)果進(jìn)行分類匯總,實(shí)現(xiàn)報(bào)表打印和下載。</p><p> (5)方便用戶的操作,盡量減少用戶的操作。</p><p><b> 2 系統(tǒng)需求分析</b></p><p><b> 2.1 系統(tǒng)調(diào)查</b></p><p> 21世紀(jì)以來,人類經(jīng)濟(jì)高速發(fā)展,人們的生活發(fā)生
6、了日新月異的變化,特別是計(jì)算機(jī)的應(yīng)用及普及到經(jīng)濟(jì)和社會生活的各個(gè)領(lǐng)域,使原本的舊的管理方法越來越不適應(yīng)現(xiàn)在社會的發(fā)展,許多人還停留在以前的手工操作,這大大地阻礙了人類經(jīng)濟(jì)的發(fā)展。</p><p> 為了適應(yīng)現(xiàn)代社會人們高度強(qiáng)烈的時(shí)間觀念,我對陜西科技大學(xué)理學(xué)院的原有的學(xué)生成績管理系統(tǒng)進(jìn)行了調(diào)查研究,并對一些教師和學(xué)生進(jìn)行了調(diào)查,聽取他們對學(xué)生成績管理的一些建議和要求以及他們對這方面的一些需求,根據(jù)我所具有的知識
7、,決定開發(fā)的這個(gè)系統(tǒng)采用當(dāng)前較為流行的編程軟件C++作為實(shí)現(xiàn)語言,以實(shí)現(xiàn)學(xué)生成績管理信息系統(tǒng)的設(shè)計(jì)與開發(fā)。</p><p><b> 2.2系統(tǒng)需求</b></p><p> 為了實(shí)現(xiàn)數(shù)據(jù)錄入、數(shù)據(jù)刪除、數(shù)據(jù)瀏覽以及數(shù)據(jù)查詢等功能,該學(xué)生成績管理系統(tǒng)主要?jiǎng)澐譃閷W(xué)生信息的載入、創(chuàng)建、查詢、修改、統(tǒng)計(jì)、顯示以及保存等內(nèi)容,這些管理職能統(tǒng)一由管理者負(fù)責(zé)。</p&g
8、t;<p> 在學(xué)生管理系統(tǒng)開發(fā)時(shí)應(yīng)該滿足以下具體的系統(tǒng)要求:</p><p> 學(xué)生成績管理系統(tǒng)中不同使用單位(用戶)的學(xué)生人數(shù)事先無法確定.</p><p> (1)該學(xué)生成績管理系統(tǒng)要求有學(xué)生成績錄入,查詢,修改,刪除,保存文件.</p><p> (2)系統(tǒng)使用文字菜單,用戶通過選擇菜單項(xiàng)的編號,實(shí)現(xiàn)系統(tǒng)對子模塊的調(diào)用.也可用windo
9、ws界面下的菜單欄、彈出式菜單、下拉菜單。</p><p> (3)每個(gè)班級每門課程的成績可以從學(xué)生的成績總表提取出子表并存儲成一個(gè)文本文件,以便在windows的notebook或者M(jìn)icrosoft word下打印,規(guī)定該文本文件名由班級號和課程名拼音字符串構(gòu)成.輸入班級號和課程名字符串后自動(dòng)生成文件名.如1班,語文,則文件名為:c1yuwen.txt. </p><p> (4)
10、每個(gè)學(xué)生學(xué)習(xí)的課程有語文,英語,數(shù)學(xué),物理,化學(xué),生物.</p><p> (5)學(xué)生的成績總表結(jié)構(gòu)約定為(學(xué)號,姓名,課程名,平時(shí)成績,期末成績,總評成績).總評成績由程序自動(dòng)計(jì)算,總評成績=平時(shí)成績﹡30%+期末成績﹡70%.</p><p> (6)學(xué)號是一個(gè)9位整數(shù)構(gòu)成的字符串, 學(xué)號的編碼規(guī)則:入學(xué)年份+在讀年級+在讀班級+班內(nèi)編號;入學(xué)年份用4位整數(shù)構(gòu)成字符串,如2003年
11、入學(xué)則表示為:”2003”;在讀年級用1位整數(shù)構(gòu)成字符串,如正在1年級讀書則表示為:”1”;在讀班級用2位整數(shù)構(gòu)成字符串,如正在1班讀書則表示為:”01”;班內(nèi)編號用2位整數(shù)構(gòu)成字符串,如在班內(nèi)編號為23號則表示為:”23”.</p><p><b> 2.3 功能需求</b></p><p> 基于系統(tǒng)需求分析,該系統(tǒng)需要實(shí)現(xiàn)以下基本功能:</p>
12、<p> (1)查詢所有學(xué)生的所有成績(包括各科成績,平時(shí)成績以及總評成績);</p><p> (2)查詢所有學(xué)生某一單科的成績;</p><p> (3)修改學(xué)生的成績;</p><p> (4)刪除學(xué)生的成績;</p><p> (5)對學(xué)生的成績進(jìn)行保存,并可以在windows的notebook或者M(jìn)icroso
13、ft word下打印。</p><p><b> 2.4 開發(fā)環(huán)境</b></p><p> 軟件環(huán)境:windows98/windowsXP/windows2000,Visual C++</p><p> 硬件環(huán)境:計(jì)算機(jī)(Pen4CPU, 256MRAM,60G以上硬盤,輸入輸出設(shè)備)</p><p><
14、b> 3系統(tǒng)概要設(shè)計(jì)</b></p><p> 3.1 系統(tǒng)的功能模塊劃分</p><p> “學(xué)生成績管理信息系統(tǒng)”包括九個(gè)模塊:信息載入,信息創(chuàng)建,信息查詢,信息修改,信息統(tǒng)計(jì),信息顯示,保存信息,感謝使用以及退出程序。這九個(gè)模塊既相互聯(lián)系又相互獨(dú)立,其中信息查詢,信息修改,信息統(tǒng)計(jì),信息顯示,保存信息這五個(gè)模塊必須以信息載入或信息創(chuàng)建為基礎(chǔ)。</p>
15、;<p> (1)信息載入模塊:主要是將已有的學(xué)生成績總表提入到系統(tǒng),以此為基礎(chǔ),再進(jìn)行必要的操作;</p><p> (2)信息創(chuàng)建模塊:對學(xué)生的成績進(jìn)行錄入,然后通過其他的操作,保存為所需的文件;</p><p> (3)信息查詢:在信息載入和信息創(chuàng)建的基礎(chǔ)上,對學(xué)生的成績進(jìn)行查詢;</p><p> (4)信息修改:在信息載入和信息創(chuàng)建的
16、基礎(chǔ)上,對所需學(xué)生的成績進(jìn)行修改;</p><p> (5)信息統(tǒng)計(jì):在信息載入和信息創(chuàng)建的基礎(chǔ)上,對學(xué)生的相關(guān)成績進(jìn)行統(tǒng)計(jì),輸出平均分及排名;</p><p> (6)信息顯示:在信息載入和信息創(chuàng)建的基礎(chǔ)上,顯示出系統(tǒng)所有學(xué)生的成績;</p><p> (7)保存信息:在信息載入和信息創(chuàng)建的基礎(chǔ)上,對學(xué)生的成績進(jìn)行必要的編輯后,保存所需的文件;</p&
17、gt;<p> (8)感謝使用:顯示系統(tǒng)的創(chuàng)建者,并提示在退出程序前是否進(jìn)行相關(guān)的操作;</p><p> (9)退出程序:退出該程序。</p><p><b> 3.2 系統(tǒng)結(jié)構(gòu)圖</b></p><p> ?。?)學(xué)生成績管理信息系統(tǒng)主模塊如圖 3-1所示</p><p> 圖3-1 學(xué)生成績管
18、理信息系統(tǒng)主模塊</p><p> ?。?)學(xué)生信息查詢模塊如圖3-2所示</p><p> 圖3-2 學(xué)生信息查詢模塊</p><p> ?。?)學(xué)生信息修改模塊如圖3-3所示</p><p> 圖3-3 學(xué)生信息修改模塊</p><p> ?。?)學(xué)生信息統(tǒng)計(jì)模塊如圖3-4所示</p><
19、p> 圖3-4 學(xué)生信息統(tǒng)計(jì)模塊</p><p><b> 4系統(tǒng)詳細(xì)設(shè)計(jì)</b></p><p> 4.1 系統(tǒng)登錄模塊設(shè)計(jì)</p><p> 學(xué)生成績管理信息系統(tǒng)可以分為九個(gè)模塊:</p><p><b> (1)學(xué)生信息載入</b></p><p>&l
20、t;b> ?。?)學(xué)生信息創(chuàng)建</b></p><p><b> ?。?)學(xué)生信息查詢</b></p><p><b> ?。?)學(xué)生信息修改</b></p><p><b> (5)學(xué)生信息統(tǒng)計(jì)</b></p><p><b> ?。?)學(xué)生信息
21、顯示</b></p><p><b> (7)學(xué)生信息保存</b></p><p><b> ?。?)鳴謝</b></p><p><b> ?。?)退出程序</b></p><p> 系統(tǒng)業(yè)務(wù)處理結(jié)構(gòu)如圖4-1所示</p><p>
22、4.2 系統(tǒng)主界面設(shè)計(jì)</p><p> 系統(tǒng)主界面設(shè)計(jì)如圖4-2所示</p><p> 4.3 學(xué)生信息管理模塊設(shè)計(jì)</p><p> ?。?)學(xué)生信息載入模塊如圖4-3所示</p><p> ?。?)學(xué)生信息創(chuàng)建模塊如圖4-4所示</p><p> 4.4學(xué)生信息查詢模塊設(shè)計(jì)</p><p
23、> ?。?)按姓名查找模塊如圖4-5所示</p><p> ?。?)按學(xué)號查找模塊如圖4-6所示</p><p> ?。?) 按課程查找模塊如圖4-7所示</p><p> 4.5學(xué)生信息修改模塊設(shè)計(jì)</p><p> ?。?)添加學(xué)生信息模塊如圖4-8所示</p><p> ?。?)修改學(xué)生信息模塊如圖4-9
24、所示</p><p> ?。?)刪除學(xué)生信息模塊如圖4-10所示</p><p> (4)顯示學(xué)生信息模塊如圖4-11所示</p><p> 4.6學(xué)生信息統(tǒng)計(jì)模塊設(shè)計(jì)</p><p> ?。?)查找學(xué)生平均成績?nèi)鐖D4-12所示</p><p> 圖4-12 查找學(xué)生平均成績</p><p&g
25、t; ?。?)查找單科平均成績?nèi)鐖D4-13所示</p><p> 4.7退出系統(tǒng)模塊設(shè)計(jì)</p><p> ?。?)感謝使用模塊如圖4-14所示(顯示系統(tǒng)的設(shè)計(jì)者)</p><p> ?。?)退出程序模塊如圖4-15所示</p><p><b> 5 測試</b></p><p><b&
26、gt; 5.1 測試目的</b></p><p> 測試是為了發(fā)現(xiàn)程序中的錯(cuò)誤而執(zhí)行程序的過程,測試的目的就是在軟件投入生產(chǎn)運(yùn)行之前,盡可能的發(fā)現(xiàn)軟件中的錯(cuò)誤。成功的測試是發(fā)現(xiàn)了至今為止尚未發(fā)現(xiàn)的錯(cuò)誤的測試。</p><p><b> 5.2 測試方案</b></p><p> 為了提高測試效率,降低測試成本,本測試方案采用
27、黑盒法設(shè)計(jì)基本的測試方案,再用白盒法補(bǔ)充一些方案。在黑盒法測試方案中,采用等價(jià)劃分技術(shù),把所有可能的數(shù)據(jù)劃分成幾個(gè)等價(jià)類。</p><p><b> 5.3 測試項(xiàng)目</b></p><p><b> (1)登錄測試</b></p><p> ?。?)學(xué)生信息載入測試</p><p> ?。?)
28、學(xué)生信息創(chuàng)建測試</p><p> (4)學(xué)生信息查詢測試</p><p> ?。?)學(xué)生信息修改測試</p><p> ?。?)學(xué)生信息統(tǒng)計(jì)測試</p><p><b> 5.4 測試結(jié)果</b></p><p> 經(jīng)過以上測試,可知各模塊的測試過程都沒有出現(xiàn)異常情況,程序在系統(tǒng)的要求下,
29、能夠?qū)崿F(xiàn)所要求的各種功能。</p><p> 6.設(shè)計(jì)體會及今后的改進(jìn)意見</p><p> C++是一門魅力四射的課程,而編程實(shí)踐更是檢驗(yàn)自己學(xué)習(xí)成果的必修課,經(jīng)過一個(gè)多月的努力,我終于完成了這次學(xué)生成績管理系統(tǒng)的設(shè)計(jì)與開發(fā)。剛開始拿到這個(gè)題目確實(shí)讓我感覺無從下手,之后在網(wǎng)上參考了一下其他人的設(shè)計(jì)流程,然后慢慢一步步的自己開始著手做,在設(shè)計(jì)的過程中,我遇到了很多的問題,起初是程序的設(shè)
30、計(jì),自己經(jīng)過一個(gè)學(xué)期的C++的學(xué)習(xí),獨(dú)立編寫的C++程序的總行數(shù)不過兩百多行,而這次一下子要編寫一個(gè)幾百多行的程序,實(shí)在是一個(gè)巨大的挑戰(zhàn)。就這方面來說,這是此次課程帶給我的最大的收獲,它讓我明白了自身的不足之處,讓我懂得在學(xué)習(xí)的過程更加虛心,認(rèn)真,努力。</p><p> 另外此次課程設(shè)計(jì)增加了自己編程的能力,將自己所學(xué)的理論知識與實(shí)踐結(jié)合在一塊,提高了自己對這門課程的興趣。</p><p&
31、gt; 經(jīng)過一番努力,終于初步編寫出了程序,但是它的功能還不是很完善,有些地方自己還沒有徹底搞明白,以后必定要加強(qiáng)對程序設(shè)計(jì)的學(xué)習(xí),不斷完善自己的編程能力。</p><p><b> 參 考 文 獻(xiàn)</b></p><p> [1] 譚浩強(qiáng).C++程序設(shè)計(jì)[M].北京:清華大學(xué)出版社.2005.10</p><p> [2] 譚浩強(qiáng).C
32、++程序設(shè)計(jì)題解與上機(jī)指導(dǎo)(第三版)[M].北京:清華大學(xué)出版社.2005.06</p><p> [3] 朱站立.數(shù)據(jù)結(jié)構(gòu)[M].西安:交通大學(xué)出版社.2004.05</p><p> [4] 羅斌.Visual C++編程技巧[M].北京:中國水利水電出版社.2005.08</p><p><b> 附 錄</b></p&
33、gt;<p> 附錄1.1 源程序清單</p><p> void Sort()</p><p><b> {</b></p><p> struct STUDENT * headsa=NULL;</p><p> struct STUDENT *current;</p><p
34、> struct STUDENT *p1,*p2,*p3,*max;</p><p> p1=p2=(struct STUDENT *)malloc(LEN);</p><p> max=(struct STUDENT *)malloc(LEN);</p><p> max->average =1000;</p><p>
35、<b> while(1){</b></p><p> p1->average=0.078;</p><p> current=head;</p><p> while(current!=NULL){</p><p> current->average =(current->chineseRe
36、cord +current->englishRecord +current->mathematicsRecord +current->physicalRecord +current->chemistryRecord +current->biologicalRecord )/6;</p><p> if(p1->average <=current->average
37、 && current->average <=max->average && current!=max ){</p><p> p1=current;</p><p> current=current->next;</p><p><b> }</b></p><
38、p><b> else</b></p><p> current=current->next;</p><p><b> }</b></p><p><b> max=p1;</b></p><p> if(headsa==NULL){</p>
39、<p> p2->number=p1->number;strcpy(p2->name,p1->name);strcpy(p2->sex,p1->sex); </p><p> p2->age=p1->age;p2->chineseRecord=p1->chineseRecord;</p><
40、p> p2->englishRecord=p1->englishRecord;p2->mathematicsRecord=p1->mathematicsRecord;</p><p> p2->physicalRecord=p1->physicalRecord;p2->chemistryRecord =p1->chemistryRecord ;
41、</p><p> p2->biologicalRecord=p1->biologicalRecord;</p><p> headsa=p2;</p><p><b> }</b></p><p><b> else{</b></p><p> p2-
42、>number=p1->number;strcpy(p2->name,p1->name);strcpy(p2->sex,p1->sex); </p><p> p2->age=p1->age;p2->chineseRecord=p1->chineseRecord;</p><p> p2->en
43、glishRecord=p1->englishRecord;p2->mathematicsRecord=p1->mathematicsRecord;</p><p> p2->physicalRecord=p1->physicalRecord;p2->chemistryRecord =p1->chemistryRecord ;</p><
44、p> p2->biologicalRecord=p1->biologicalRecord;</p><p><b> }</b></p><p> if(p1->average ==0.078){</p><p> p3->next =NULL;</p><p><b>
45、 break;</b></p><p><b> }</b></p><p> p1=(struct STUDENT *)malloc(LEN);</p><p> p2->next =p1;</p><p><b> p3=p2;</b></p><
46、p><b> p2=p1;</b></p><p><b> }</b></p><p> struct STUDENT *q;</p><p> cout<<"\n排序所有學(xué)生的成績:"<<endl;</p><p><b>
47、q=headsa;</b></p><p> if(headsa!=NULL){</p><p> cout << setw(0) << "學(xué)號" << setw(8) << "姓名" << setw(8)<<"性別"<<setw(
48、8)<<"年齡"</p><p> << setw(8) << "語文" << setw(8) << "英語" << setw(8) << "數(shù)學(xué)" </p><p> << setw(8) << &
49、quot;物理" <<setw(8)<<"化學(xué)" <<setw(8)<<"生物"<<setw(12)<<"平均分"<<endl;</p><p><b> do{</b></p><p> cout<<
50、; setw(0) << q->number << setw(8) << q->name << setw(8)<<q->sex<<setw(8)<<q->age</p><p> << setw(8) << q->chineseRecord << setw(8)
51、 << q->englishRecord << setw(8) </p><p> << q->mathematicsRecord << setw(8) << q->physicalRecord <<setw(8)<<q->chemistryRecord </p><p> &l
52、t;<setw(8)<<q->biologicalRecord<<setw(12)<<q->average<<endl;</p><p> q=q->next;</p><p> }while(q != NULL);</p><p><b> }</b></p&
53、gt;<p><b> else</b></p><p> cout<<"\n學(xué)生成績?yōu)榭?,請確認(rèn)。"<<endl;</p><p> char filename[20];</p><p> cout<<"請輸入保存的文件名: "; </p&
54、gt;<p> cin>>filename; </p><p> ofstream fout(filename,ios::app); </p><p><b> if(!fout)</b></p><p> cout<<"文件不能打開!"<<endl; </p&
55、gt;<p><b> else </b></p><p><b> { </b></p><p> struct STUDENT *p;</p><p><b> p=headsa;</b></p><p> fout << setw(0)
56、 <<"學(xué)號"<< setw(8) <<"姓名"<< setw(8)<<"性別"<<setw(8)<<"年齡"</p><p> << setw(8) << "語文"<< setw(8) <
57、;<"英語"<< setw(8) </p><p> <<"數(shù)學(xué)"<< setw(8) <<"物理"<<setw(8)<<"化學(xué)" </p><p> <<setw(8)<<"生物"&l
58、t;<endl;</p><p><b> do{</b></p><p> fout << setw(0) << p->number << setw(8) << p->name << setw(8)<<p->sex<<setw(8)<<p-&g
59、t;age</p><p> << setw(8) << p->chineseRecord << setw(8) << p->englishRecord << setw(8) </p><p> << p->mathematicsRecord << setw(8) <<
60、p->physicalRecord <<setw(8)<<p->chemistryRecord </p><p> <<setw(8)<<p->biologicalRecord<<endl;</p><p> p=p->next;</p><p> }while(p != NU
61、LL);</p><p><b> }</b></p><p> cout<<"保存成功!"<<endl;</p><p> fout.close();</p><p> cout<<"現(xiàn)在返回上一級。"<<endl;<
62、/p><p><b> }</b></p><p> void FindStudentAverage()</p><p><b> {</b></p><p> long num; </p><p> struct STUDENT * p;</p><
63、;p> char flag='y';</p><p><b> do{</b></p><p> cout<<" 輸入你要查找的學(xué)號: "; </p><p><b> cin>>num;</b></p><p><b
64、> p=head;</b></p><p> while(p!=NULL){</p><p> if(p->number==num){</p><p> cout<<num<<"學(xué)號同學(xué)的平均分為:";</p><p> p->average =(p->
65、chineseRecord +p->englishRecord +p->mathematicsRecord +p->physicalRecord +p->chemistryRecord +p->biologicalRecord )/6;</p><p> cout<<p->average<<endl;</p><p><
66、b> break;</b></p><p><b> }</b></p><p><b> else</b></p><p> p=p->next;</p><p><b> }</b></p><p> if(p==
67、NULL)</p><p> cout<<"沒有該學(xué)號同學(xué)的信息,請確認(rèn)。"<<endl; </p><p> cout<<" 要繼續(xù)查找嗎(y/n)";</p><p> cin>>flag;</p><p> while(flag !=
68、39;y' && flag != 'n'){</p><p> cout<<"輸入錯(cuò)誤,請輸入(y/n)"<<endl;</p><p> cin>>flag;</p><p><b> }</b></p><p>
69、if(flag=='n')</p><p><b> break;</b></p><p> }while(flag=='y');</p><p> cout<<"現(xiàn)在返回上一級。"<<endl;</p><p><b> }&
70、lt;/b></p><p> void FindClassAverage()</p><p><b> {</b></p><p> struct STUDENT * p;</p><p> char flag='y';</p><p><b> cha
71、r it;</b></p><p><b> do{</b></p><p> double sum=0;</p><p> double average=0;</p><p><b> p=head;</b></p><p> cout<<
72、"請輸入要查找科目所對應(yīng)的序號:"<<endl;</p><p> cout<<"1--語文"<<setw(12)<<"2--英語"<<setw(12)<<"3--數(shù)學(xué)"<<setw(12)<<"4--物理"<&
73、lt;setw(12)<<"5--化學(xué)"<<setw(12)<<"6--生物"<<endl;</p><p><b> cin>>it;</b></p><p><b> cout<<it;</b></p><p
74、><b> int n=0;</b></p><p> switch(it) {</p><p><b> case '1':</b></p><p> while (p!=NULL){</p><p> sum=sum+p->chineseRecord;<
75、;/p><p><b> n++;</b></p><p> p=p->next;</p><p><b> }</b></p><p> average = sum/n;</p><p> cout << "語文平均成績:"
76、<< average << endl;</p><p><b> break;</b></p><p><b> case '2':</b></p><p> while (p!=NULL){</p><p> sum=sum+p->englis
77、hRecord;</p><p><b> n++;</b></p><p> p=p->next;</p><p><b> } </b></p><p> average = sum/n;</p><p> cout << "英語
78、平均成績:" << average << endl;</p><p><b> break;</b></p><p><b> case '3':</b></p><p> while (p!=NULL){</p><p> sum=sum+
79、p->mathematicsRecord;</p><p><b> n++;</b></p><p> p=p->next;</p><p><b> }</b></p><p> average = sum/n;</p><p> cout &l
80、t;< "數(shù)學(xué)平均成績:" << average << endl;</p><p><b> break;</b></p><p><b> case '4':</b></p><p> while (p!=NULL){</p><
81、p> sum=sum+p->physicalRecord;</p><p><b> n++;</b></p><p> p=p->next;</p><p><b> }</b></p><p> average = sum/n;</p><p&
82、gt; cout << "物理平均成績:" << average << endl;</p><p><b> break;</b></p><p><b> case '5':</b></p><p> while (p!=NULL){<
83、/p><p> sum=sum+p->chemistryRecord;</p><p><b> n++;</b></p><p> p=p->next;</p><p><b> }</b></p><p> average = sum/n;</
84、p><p> cout << "化學(xué)平均成績:" << average << endl;</p><p><b> break;</b></p><p><b> case '6':</b></p><p> while (
85、p!=NULL){</p><p> sum=sum+p->biologicalRecord;</p><p><b> n++;</b></p><p> p=p->next;</p><p><b> }</b></p><p> average
86、= sum/n;</p><p> cout << "生物平均成績:" << average << endl;</p><p> default:</p><p> cout<<"選擇錯(cuò)誤,請選擇1 - 6 號"<<endl;</p><
87、;p><b> }</b></p><p> cout<<" 要繼續(xù)查找嗎(y/n)";</p><p> cin>>flag;</p><p> while(flag != 'y' && flag != 'n'){</p>
88、<p> cout<<"輸入錯(cuò)誤,請輸入(y/n)"<<endl;</p><p> cin>>flag;</p><p><b> }</b></p><p> if(flag=='n')</p><p><b> b
89、reak;</b></p><p> }while(flag=='y');</p><p> cout<<"現(xiàn)在返回上一級。"<<endl;</p><p><b> }</b></p><p> void AboutMe()</p
90、><p><b> {</b></p><p> cout<<"***************************************************"<<endl;</p><p> cout<<"** 感謝使用本程序
91、 **"<<endl;</p><p> cout<<"** 陜西科技大學(xué) **"<<endl;</p><p> cout<<"** 理學(xué)院信息專業(yè)102班 *
92、*"<<endl;</p><p> cout<<"** 感謝幫助調(diào)試本程序的人 **"<<endl;</p><p> cout<<"** 現(xiàn)在返回上一級 **"<<e
93、ndl;</p><p> cout<<"***************************************************"<<endl;</p><p><b> }</b></p><p> void main(){</p><p><b&
94、gt; int q=1;</b></p><p><b> char k;</b></p><p><b> while (q)</b></p><p><b> {</b></p><p> system("cls");</p&
95、gt;<p> cout << "----------------------------------\n";</p><p> cout << " 學(xué)生成績管理 \n";</p><p> cout << "------------------
96、----------------\n";</p><p> cout << " 1 學(xué)生信息載入 \n";</p><p> cout << " 2 學(xué)生信息創(chuàng)建 \n";</p><p> cout <&l
97、t; " 3 學(xué)生信息查詢 \n";</p><p> cout << " 4 學(xué)生信息修改 \n";</p><p> cout << " 5 學(xué)生信息統(tǒng)計(jì) \n";</p>&l
98、t;p> cout << " 6 學(xué)生信息顯示 \n";</p><p> cout << " 7 學(xué)生信息保存 \n";</p><p> cout << " 8 鳴謝
99、 \n";</p><p> cout << " 0 退出程序 \n";</p><p> cout << "----------------------------------\n";</p><p> cout << "
100、;\n";</p><p> cout << "\n 請輸入選擇的功能序號: \n";</p><p><b> cin>> k;</b></p><p> while(k !='1' && k!='2' && k!=
101、39;3' && k!='4'&& k!='5'&& k!='6'&& k!='7' && k!='8' && k!='0'){</p><p> cout<<"輸入錯(cuò)誤,請重新輸入"
102、;<<endl;</p><p><b> cin>>k;</b></p><p><b> }</b></p><p><b> char x;</b></p><p> if(k=='0'){</p><p
103、> cout<<"退出前請確定沒有忘記保存數(shù)據(jù)。"<<endl;</p><p> cout<<"確定退出 按y ,取消退出按n"<<endl;</p><p><b> cin>>x;</b></p><p> while(x !
104、='y' && x !='n' ){</p><p> cout<<"輸入錯(cuò)誤,請重新輸入"<<endl;</p><p><b> cin>>x;</b></p><p><b> }</b></p>
105、;<p><b> }</b></p><p> if(x=='n')</p><p><b> continue;</b></p><p><b> switch(k)</b></p><p><b> {</b>
106、</p><p><b> case '1':</b></p><p> system("cls");</p><p> LoadData();</p><p><b> Show();</b></p><p> getchar(
107、);</p><p><b> break;</b></p><p><b> case '2':</b></p><p> system("cls");</p><p><b> Input();</b></p>&l
108、t;p> getchar();</p><p><b> break;</b></p><p><b> case '3':</b></p><p><b> while(q){</b></p><p> system("cls&qu
109、ot;);</p><p> cout << "----------------------------------\n";</p><p> cout << " 1 按姓名查找 \n";</p><p> cout << "
110、 2 按學(xué)號查找 \n";</p><p> cout << " 3 按課程查找 \n";</p><p> cout << " 0 返回上一級 \n";</p><p> co
111、ut << "----------------------------------\n";</p><p> cout << "\n 請輸入選擇的功能序號: \n";</p><p><b> cin>>k;</b></p><p> while(k!='
112、1' && k!='2' && k!='3'&& k!='0'){</p><p> cout<<"輸入錯(cuò)誤,請重新輸入"<<endl;</p><p><b> cin>>k;</b></p>
113、<p><b> }</b></p><p> switch(k){</p><p><b> case '1':</b></p><p> FindName();</p><p> getchar();</p><p><b&g
114、t; break;</b></p><p><b> case '2':</b></p><p> FindNumber();</p><p> getchar();</p><p><b> break;</b></p><p><
115、;b> case '3':</b></p><p> FindClass(); </p><p> getchar();</p><p><b> break;</b></p><p><b> case '0':</b></p>
116、;<p><b> q=0;</b></p><p><b> break;</b></p><p><b> }</b></p><p><b> }</b></p><p><b> q=1;</b><
117、;/p><p><b> break;</b></p><p><b> case '4':</b></p><p><b> while(q){</b></p><p> system("cls");</p><p&
118、gt; cout << "------------------------------------\n";</p><p> cout << " 1 添加學(xué)生信息 \n";</p><p> cout << " 2 修改學(xué)生信息
119、 \n";</p><p> cout << " 3 刪除學(xué)生信息 \n";</p><p> cout << " 4 顯示學(xué)生信息 \n";</p><p> cout << "
120、; 0 返回上一級 \n";</p><p> cout << "------------------------------------\n";</p><p> cout << "\n 請輸入選擇的功能序號: \n";</p><p><
121、;b> cin>>k;</b></p><p> while(k!='1' && k!='2' && k!='3' && k!='4'&&k!='0'){</p><p> cout<<"輸
122、入錯(cuò)誤,請重新輸入"<<endl;</p><p><b> cin>>k;</b></p><p><b> }</b></p><p> switch(k){</p><p><b> case '1':</b>&l
123、t;/p><p><b> Add();</b></p><p> getchar();</p><p><b> break;</b></p><p><b> case '2':</b></p><p><b> Mo
124、dify();</b></p><p> getchar();</p><p><b> break;</b></p><p><b> case '3':</b></p><p><b> Del();</b></p><
125、;p> getchar();</p><p><b> break;</b></p><p><b> case '4':</b></p><p><b> Show();</b></p><p> getchar();</p>&
126、lt;p><b> break;</b></p><p><b> case '0':</b></p><p><b> q=0;</b></p><p><b> break;</b></p><p><b>
127、}</b></p><p><b> }</b></p><p><b> q=1;</b></p><p><b> break;</b></p><p><b> case '5':</b></p>&
128、lt;p><b> while(q){</b></p><p> system("cls");</p><p> cout << "------------------------------------\n";</p><p> cout << "
129、 1 查找學(xué)生平均成績 \n";</p><p> cout << " 2 查找單科平均成績 \n";</p><p> cout << " 3 排序?qū)W生信息 \n";</p><p> co
130、ut << " 0 返回上一級 \n";</p><p> cout << "------------------------------------\n";</p><p> cout << "\n 請輸入選擇的功能序號: \n";</p&
131、gt;<p><b> cin>>k;</b></p><p> while(k!='1' && k!='2' && k!='3' && k!='0'){</p><p> cout<<"輸入錯(cuò)誤,請重新
132、輸入"<<endl;</p><p><b> cin>>k;</b></p><p><b> }</b></p><p> switch(k){</p><p><b> case '1':</b></p>
133、;<p> FindStudentAverage();</p><p> getchar();</p><p><b> break;</b></p><p><b> case '2':</b></p><p> FindClassAverage();<
134、;/p><p> getchar();</p><p><b> break;</b></p><p><b> case '3':</b></p><p><b> Sort();</b></p><p> getchar();&
135、lt;/p><p><b> break;</b></p><p><b> case '0':</b></p><p><b> q=0;</b></p><p><b> break;</b></p><p>
136、;<b> }</b></p><p><b> }</b></p><p><b> q=1;</b></p><p><b> break;</b></p><p><b> case '6':</b>&
137、lt;/p><p> system("cls");</p><p><b> Show();</b></p><p> getchar();</p><p><b> break;</b></p><p><b> case '7&
138、#39;:</b></p><p> system("cls");</p><p> SaveData();</p><p> getchar();</p><p><b> break;</b></p><p><b> case '8
139、':</b></p><p> system("cls");</p><p> AboutMe();</p><p> getchar();</p><p><b> break;</b></p><p><b> case '0
140、':</b></p><p><b> q=0;</b></p><p><b> break;</b></p><p><b> }</b></p><p><b> }</b></p><p>
141、<b> }</b></p><p> 附錄1.2 學(xué)生信息管理模塊源程序</p><p> #include "iostream.h"</p><p> #include "string.h"</p><p> #include "malloc.h"
142、</p><p> #include "stdlib.h"</p><p> #include "fstream.h"</p><p> #include "stdio.h"</p><p> #include "iomanip.h" </p>
143、;<p> #include "conio.h"</p><p> #define NULL 0</p><p> #define LEN sizeof(struct STUDENT)</p><p> struct STUDENT</p><p><b> {</b><
144、/p><p> long number;</p><p> char name[20];</p><p> char sex[10];</p><p><b> int age;</b></p><p> int chineseRecord;</p><p> in
145、t mathematicsRecord;</p><p> int englishRecord;</p><p> int physicalRecord;</p><p> int chemistryRecord;</p><p> int biologicalRecord;</p><p> double
146、average;</p><p> struct STUDENT *next;</p><p><b> };</b></p><p> struct STUDENT * head=NULL;</p><p> void LoadData();</p><p> void SaveDat
147、a();</p><p> void Add();</p><p> void Input();</p><p> void Show();</p><p> void FindName();</p><p> void FindNumber();</p><p> void Fin
148、dClass();</p><p> void Modify();</p><p> void Del();</p><p> void Sort();</p><p> void FindStudentAverage();</p><p> void FindClassAverage();</p>
149、;<p> void AboutMe();</p><p> void LoadData()</p><p><b> {</b></p><p> char filename[20]; </p><p> cout<<"請輸入文件編號: "; </p>
150、<p> cin>>filename; </p><p> ifstream fin(filename,ios::in); </p><p><b> if(!fin)</b></p><p> cout<<"文件打不開 !"<<endl; </p>&
151、lt;p><b> else { </b></p><p> struct STUDENT *p1,*p2;</p><p> p1=p2=(struct STUDENT *)malloc(LEN);</p><p> fin>>p1->number>>p1->name>>p1-&g
溫馨提示
- 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- c++學(xué)生管理系統(tǒng)課程設(shè)計(jì)
- c++課程設(shè)計(jì)-學(xué)生考勤管理系統(tǒng)
- c++課程設(shè)計(jì)學(xué)生通訊管理系統(tǒng)
- c++課程設(shè)計(jì)---學(xué)生學(xué)籍管理系統(tǒng)
- c++課程設(shè)計(jì)完-----學(xué)生管理系統(tǒng)
- c++課程設(shè)計(jì)----學(xué)生成績管理系統(tǒng)
- c++課程設(shè)計(jì)----學(xué)生成績管理系統(tǒng)
- 學(xué)生成績管理系統(tǒng)c++課程設(shè)計(jì)
- c++課程設(shè)計(jì)---學(xué)生信息管理系統(tǒng)
- c++課程設(shè)計(jì)-學(xué)生成績管理系統(tǒng)
- c++課程設(shè)計(jì)學(xué)生學(xué)籍成績管理系統(tǒng)
- c++課程設(shè)計(jì)---學(xué)生成績管理系統(tǒng)
- c++課程設(shè)計(jì)---學(xué)生成績管理系統(tǒng)
- c++課程設(shè)計(jì)——學(xué)生成績管理系統(tǒng)
- c++課程設(shè)計(jì)--學(xué)生成績管理系統(tǒng)
- c++學(xué)生成績管理系統(tǒng)課程設(shè)計(jì)
- c++課程設(shè)計(jì)--學(xué)生成績管理系統(tǒng)
- c++課程設(shè)計(jì)報(bào)告(學(xué)生學(xué)籍管理系統(tǒng))
- c++課程設(shè)計(jì)報(bào)告(學(xué)生學(xué)籍管理系統(tǒng))
- c++課程設(shè)計(jì)——學(xué)生信息管理系統(tǒng)課程設(shè)計(jì)報(bào)告
評論
0/150
提交評論