c++程序設(shè)計課程設(shè)計---學(xué)生成績管理信息系統(tǒng)設(shè)計與開發(fā)_第1頁
已閱讀1頁,還剩40頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、<p>  學(xué)生成績管理信息系統(tǒng)設(shè)計與開發(fā)</p><p><b>  1 概 述 </b></p><p>  1.1 課程設(shè)計背景</p><p>  當(dāng)今時代是飛速發(fā)展的信息時代。在各行各業(yè)中都離不開信息處理,這正是計算機(jī)被廣泛應(yīng)用于信息管理系統(tǒng)的環(huán)境。使用計算機(jī)進(jìn)行信息控制,不僅提高了工作效率,而且大大的提高了其安全性。

2、尤其對于復(fù)雜的信息管理,計算機(jī)能夠充分發(fā)揮它的優(yōu)越性。</p><p>  管理信息系統(tǒng)是進(jìn)行信息的采集、存儲、加工、維護(hù)和使用的系統(tǒng)。它是隨著管理科學(xué)和技術(shù)科學(xué)的發(fā)展而形成的。學(xué)生成績管理系統(tǒng)是一個教育單位不可缺少的部分,它的內(nèi)容對于學(xué)校的決策者和管理者來說都至關(guān)重要,所以學(xué)生成績管理系統(tǒng)應(yīng)該能夠為用戶提供充足的信息和快捷的查詢手段。但一直以來人們使用傳統(tǒng)人工的方式管理學(xué)生成績,這種管理方式存在著效率低、保密性

3、差等諸多缺點同時,在更新和維護(hù)時都會帶來不少困難。</p><p>  作為計算機(jī)應(yīng)用的一部分,使用計算機(jī)對學(xué)生成績信息進(jìn)行管理,具有著手工管理所無法比擬的優(yōu)點,如檢索迅速、查找方便、可靠性高、存儲量大、保密性好、壽命長、成本低等。這些優(yōu)點能夠極大地提高學(xué)生成績管理的效率,也是學(xué)??茖W(xué)化、正規(guī)化管理,與世界接軌的重要條件。因此,開發(fā)這樣一套管理軟件是很有必要的。</p><p>  學(xué)生成

4、績管理系統(tǒng)提供了強(qiáng)大的學(xué)生成績管理功能,方便管理員對學(xué)生成績信息的創(chuàng)建、查詢、修改、刪除、查詢、匯總、統(tǒng)計、保存等操作,可使學(xué)院教職員工減輕工作壓力,比較系統(tǒng)地對教務(wù)、教學(xué)上的各項信息進(jìn)行管理,同時,可以減少勞動力的使用,加快查詢速度、加強(qiáng)管理。</p><p>  因此,本文將用Visual C++設(shè)計和開發(fā)一個應(yīng)用程序—學(xué)生成績管理信息系統(tǒng),介紹了學(xué)生成績管理系統(tǒng)的實現(xiàn)過程:包括系統(tǒng)分析、 系統(tǒng)調(diào)查、 數(shù)據(jù)庫

5、設(shè)計、功能設(shè)計、系統(tǒng)物理配置方案、 系統(tǒng)實現(xiàn)、系統(tǒng)測試以及系統(tǒng)功能簡介。</p><p>  1.2 課程設(shè)計目標(biāo)</p><p>  建立學(xué)生成績管理系統(tǒng),采用計算機(jī)對學(xué)生成績進(jìn)行管理,進(jìn)一步提高辦學(xué)效益和現(xiàn)代化水平。幫助廣大教師提高工作效率,實現(xiàn)學(xué)生成績維護(hù)工作流程的系統(tǒng)化、規(guī)范化和自動化。為了使系統(tǒng)在學(xué)院的管理中發(fā)揮更大的作用,實現(xiàn)工作過程的計算機(jī)化,提高工作效率和工作質(zhì)量,現(xiàn)提出如

6、下的系統(tǒng)開發(fā)目標(biāo):</p><p> ?。?)方便管理員對學(xué)生成績信息的創(chuàng)建、查詢、修改、刪除、查詢、匯總、統(tǒng)計、保存等操作;</p><p>  (2)提高學(xué)生管理次序,節(jié)約管理成績,增強(qiáng)學(xué)生管理的安全性;</p><p> ?。?)系統(tǒng)應(yīng)具有實用性、可靠性和適用性,同時注意到先進(jìn)性;</p><p>  (4)對各個數(shù)據(jù)庫進(jìn)行動態(tài)管理,防

7、止混亂;</p><p> ?。?)方便用戶的操作,盡量減少用戶的操作;</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ā)生了日新月異的變化,特別是計算機(jī)的應(yīng)用及普及到經(jīng)濟(jì)和社

8、會生活的各個領(lǐng)域,使原本的舊的管理方法越來越不適應(yīng)現(xiàn)在社會的發(fā)展,許多人還停留在以前的手工操作,這大大地阻礙了人類經(jīng)濟(jì)的發(fā)展。</p><p>  為了適應(yīng)現(xiàn)代社會人們高度強(qiáng)烈的時間觀念,學(xué)生成績管理系統(tǒng)軟件為教學(xué)帶來了極大的方便。該軟件是以漢語編程語言為實現(xiàn)語言,其功能在系統(tǒng)內(nèi)部有源代碼直接完成,通過操作手冊,使用者可以了解本軟件的基本工作原理,操作人員只需輸入一些簡單的漢字、數(shù)字,即可達(dá)到自己的目標(biāo)。<

9、/p><p><b>  2.2系統(tǒng)需求</b></p><p>  為了實現(xiàn)數(shù)據(jù)創(chuàng)建、數(shù)據(jù)刪除、數(shù)據(jù)瀏覽以及數(shù)據(jù)查詢等功能,該學(xué)生成績管理系統(tǒng)主要劃分為學(xué)生信息的創(chuàng)建、查詢、修改、統(tǒng)計、顯示以及保存等內(nèi)容,這些管理職能統(tǒng)一由管理者負(fù)責(zé)。</p><p>  在學(xué)生管理系統(tǒng)開發(fā)時應(yīng)該滿足以下具體的系統(tǒng)要求:</p><p>

10、 ?。?)學(xué)生成績管理系統(tǒng)中不同使用單位(用戶)的學(xué)生人數(shù)事先無法確定;</p><p> ?。?)該學(xué)生成績管理系統(tǒng)要求有學(xué)生成績創(chuàng)建、查詢、修改、、刪除、保存文件;</p><p> ?。?)系統(tǒng)使用文字菜單,用戶通過選擇菜單項的編號,實現(xiàn)系統(tǒng)對子模塊的調(diào)用,也可用windows界面下的菜單欄、彈出式菜單、下拉菜單;</p><p> ?。?)每個班級每門課程的

11、成績可以從學(xué)生的成績總表提取出子表并存儲成一個文本文件,以便在windows的notebook或者M(jìn)icrosoft word下打印,規(guī)定該文本文件名由班級號和課程名拼音字符串構(gòu)成.輸入班級號和課程名字符串后自動生成文件名.如1班,語文,則文件名為:c1yuwen.txt; </p><p> ?。?)每個學(xué)生學(xué)習(xí)的課程有語文,英語,數(shù)學(xué),物理,化學(xué),生物。</p><p> ?。?)學(xué)生

12、的成績總表結(jié)構(gòu)約定為(學(xué)號,姓名,課程名,平時成績,期末成績,總評成績).總評成績由程序自動計算,總評成績=平時成績﹡30%+期末成績﹡70%。</p><p>  (7)學(xué)號是一個9位整數(shù)構(gòu)成的字符串, 學(xué)號的編碼規(guī)則:入學(xué)年份+在讀年級+在讀班級+班內(nèi)編號;入學(xué)年份用4位整數(shù)構(gòu)成字符串,如2003年入學(xué)則表示為:”2003”;在讀年級用1位整數(shù)構(gòu)成字符串,如正在1年級讀書則表示為:”1”;在讀班級用2位整數(shù)構(gòu)

13、成字符串,如正在1班讀書則表示為:”01”;班內(nèi)編號用2位整數(shù)構(gòu)成字符串,如在班內(nèi)編號為23號則表示為:”23”。</p><p><b>  2.3 功能需求</b></p><p>  基于系統(tǒng)需求分析,該系統(tǒng)需要實現(xiàn)以下基本功能:</p><p> ?。?)查詢所有學(xué)生的所有成績(包括各科成績,平時成績以及總評成績);</p>

14、<p> ?。?)查詢所有學(xué)生某一單科的成績;</p><p> ?。?)修改學(xué)生的成績;</p><p>  (4)刪除學(xué)生的成績;</p><p> ?。?)對學(xué)生的成績進(jìn)行保存,并可以在windows notebook或Microsoft word下打印。</p><p><b>  2.4 開發(fā)環(huán)境</

15、b></p><p>  (1)軟件環(huán)境:windows98/windowsXP/windows2000,Visual C++</p><p>  (2)硬件環(huán)境:計算機(jī)(Pen4CPU, 256MRAM,60G以上硬盤,輸入輸出設(shè)備)</p><p><b>  3系統(tǒng)概要設(shè)計</b></p><p>  3.1

16、 系統(tǒng)的功能模塊劃分</p><p>  “學(xué)生成績管理信息系統(tǒng)”包括八個模塊:信息創(chuàng)建,信息查詢,信息修改,信息統(tǒng)計,信息顯示,保存信息,謝謝使用以及退出程序。這九個模塊既相互聯(lián)系又相互獨立,其中信息查詢,信息修改,信息統(tǒng)計,信息顯示,保存信息這五個模塊必須以信息載入或信息創(chuàng)建為基礎(chǔ)。</p><p> ?。?)信息創(chuàng)建模塊:對學(xué)生的成績進(jìn)行錄入,然后通過其他操作,保存所需的文件;<

17、;/p><p> ?。?)信息查詢:在信息載入和信息創(chuàng)建的基礎(chǔ)上,對學(xué)生的成績進(jìn)行查詢;</p><p> ?。?)信息修改:在信息載入和信息創(chuàng)建的基礎(chǔ)上,對所需學(xué)生的成績進(jìn)行修改;</p><p> ?。?)信息統(tǒng)計:在信息載入和信息創(chuàng)建的基礎(chǔ)上,對學(xué)生的相關(guān)成績進(jìn)行統(tǒng)計,輸出平均分及排名;</p><p> ?。?)信息顯示:在信息載入和信息

18、創(chuàng)建的基礎(chǔ)上,顯示出系統(tǒng)所有學(xué)生的成績;</p><p>  (6)保存信息:在信息載入和信息創(chuàng)建的基礎(chǔ)上,對學(xué)生的成績進(jìn)行必要的編輯后,保存所需的文件;</p><p> ?。?)感謝使用:顯示系統(tǒng)的創(chuàng)建者,并提示在退出程序前是否進(jìn)行相關(guān)的操作;</p><p> ?。?)退出程序:退出該程序。</p><p><b>  4系統(tǒng)

19、詳細(xì)設(shè)計</b></p><p>  4.1 系統(tǒng)登錄模塊設(shè)計</p><p>  學(xué)生成績管理信息系統(tǒng)可以分為九個模塊:</p><p><b> ?。?)學(xué)生信息創(chuàng)建</b></p><p><b>  (2)學(xué)生信息查詢</b></p><p><b&

20、gt;  (3)學(xué)生信息修改</b></p><p><b> ?。?)學(xué)生信息統(tǒng)計</b></p><p><b> ?。?)學(xué)生信息顯示</b></p><p><b> ?。?)保存學(xué)生信息</b></p><p><b>  (7)謝謝使用<

21、/b></p><p><b> ?。?)退出程序</b></p><p>  4.2 系統(tǒng)主界面設(shè)計運行:</p><p>  圖4-1系統(tǒng)主界面設(shè)計運行圖</p><p>  4.3 學(xué)生信息創(chuàng)建模塊運行:</p><p>  圖4-2 學(xué)生信息創(chuàng)建模塊運行圖</p>&l

22、t;p>  4.4學(xué)生信息查詢模塊設(shè)計</p><p> ?。?)學(xué)生信息查詢模塊主界面設(shè)計:</p><p>  圖4-3 學(xué)生信息查詢模塊運行圖</p><p>  (2)按姓名查找模塊:</p><p>  圖4-4按學(xué)生姓名查找模塊運行圖</p><p>  圖4-5按學(xué)生姓名查找模塊運行保存文件圖<

23、;/p><p> ?。?)按學(xué)號查找模塊:</p><p>  圖4-6 按學(xué)生學(xué)號查找模塊運行圖</p><p>  圖4-7 按學(xué)生學(xué)號查找模塊運行保存文件圖</p><p> ?。?) 按課程查找模塊如:</p><p>  圖4-8 按學(xué)生課程查找模塊運行圖</p><p>  圖4-9 按

24、學(xué)生課程查找模塊運行保存文件圖</p><p>  4.5學(xué)生信息修改模塊設(shè)計</p><p> ?。?)學(xué)生信息修改模塊主界面:</p><p>  圖4-10 學(xué)生信息修改模塊主界面運行圖</p><p> ?。?)添加學(xué)生信息模塊:</p><p>  圖4-11 添加學(xué)生信息模塊運行圖</p>&

25、lt;p>  (3)修改學(xué)生信息模塊:</p><p>  圖4-12 修改學(xué)生信息模塊運行圖</p><p>  (4)刪除學(xué)生信息模塊:</p><p>  圖4-13 刪除學(xué)生信息模塊運行圖</p><p> ?。?)顯示學(xué)生信息模塊:</p><p>  圖4-14 顯示學(xué)生信息模塊運行圖</p&g

26、t;<p>  4.6學(xué)生信息統(tǒng)計模塊設(shè)計</p><p>  (1)學(xué)生信息統(tǒng)計模塊設(shè)計主界面:</p><p>  圖4-15 學(xué)生信息統(tǒng)計模塊運行圖</p><p> ?。?)查找學(xué)生平均成績模塊:</p><p>  圖4-16 查找學(xué)生平時成績模塊運行圖</p><p> ?。?)查找單科平均成

27、績模塊:</p><p>  圖4-17 查找單科平均成績模塊運行圖</p><p>  4.7學(xué)生信息顯示模塊設(shè)計:</p><p>  圖4-18 學(xué)生信息顯示模塊運行效果圖</p><p>  4.8保存學(xué)生信息模塊:</p><p>  圖4-19 保存學(xué)生信息模塊運行效果圖</p><p&

28、gt;  圖4-20 保存學(xué)生信息模塊運行保存文件圖</p><p>  4.9謝謝使用模塊:</p><p>  圖4-21 謝謝使用模塊運行效果圖</p><p>  4.10退出程序模塊:</p><p>  圖4-22 退出程序模塊運行圖</p><p><b>  5 測試</b><

29、;/p><p><b>  5.1 測試目的</b></p><p>  測試的目的是盡可能發(fā)現(xiàn)并改正被測試軟件中的錯誤,提高軟件的可靠性,測試是為了發(fā)現(xiàn)程序中的錯誤而執(zhí)行程序的過程,好的測試方案是極可能發(fā)現(xiàn)迄今為止尚未發(fā)現(xiàn)的錯誤的測試方案;成功的測試是發(fā)現(xiàn)了至今為止尚未發(fā)現(xiàn)的錯誤的測試。測試并不僅僅是為了找出錯誤.通過分析錯誤產(chǎn)生的原因和錯誤的發(fā)生趨勢</p>

30、;<p><b>  5.2 測試方案</b></p><p>  按照編寫的程序,進(jìn)行編譯,運行,發(fā)現(xiàn)其中存在的問題,并及時改正,不斷完善程序中存在的不足之處,以提高此系統(tǒng)的效率。</p><p><b>  5.3 測試項目</b></p><p> ?。?)系統(tǒng)主界面設(shè)計測試</p>&l

31、t;p> ?。?)學(xué)生信息創(chuàng)建模塊測試:</p><p>  (3)學(xué)生信息查詢模塊設(shè)計測試</p><p> ?。╝)學(xué)生信息查詢模塊主界面測試</p><p>  (b)按姓名查找模塊測試</p><p> ?。╟)按學(xué)號查找模塊測試</p><p> ?。╠)按課程查找模塊測試</p><

32、;p> ?。?)學(xué)生信息修改模塊設(shè)計測試</p><p> ?。╝)學(xué)生信息修改模塊主界面測試</p><p> ?。╞)添加學(xué)生信息模塊測試</p><p> ?。╟)修改學(xué)生信息模塊測試</p><p>  (d)刪除學(xué)生信息模塊測試</p><p>  (e)顯示學(xué)生信息模塊測試</p>&l

33、t;p> ?。?)學(xué)生信息統(tǒng)計模塊設(shè)計測試</p><p>  (a)學(xué)生信息統(tǒng)計模塊設(shè)計主界面測試</p><p>  (b)查找學(xué)生平均成績模塊測試</p><p>  (c)查找單科平均成績模塊測試</p><p>  (6)學(xué)生信息顯示模塊設(shè)計測試</p><p>  (7)保存學(xué)生信息模塊測試<

34、/p><p> ?。?)謝謝使用模塊測試</p><p>  (9)退出程序模塊測試</p><p>  以上各個模板的測試結(jié)果均在上面以圖的形式對應(yīng)給出。</p><p><b>  5.4 測試結(jié)果</b></p><p>  經(jīng)過對以上各個模板的測試,可以得出各模塊的測試過程都沒有出現(xiàn)異常情況,

35、程序在系統(tǒng)的要求下,能夠?qū)崿F(xiàn)所要求的各種功能。</p><p>  6設(shè)計體會及今后的改進(jìn)意見</p><p><b>  6.1設(shè)計體會</b></p><p>  課程設(shè)計是我們專業(yè)課程知識綜合應(yīng)用的實踐訓(xùn)練,著是我們邁向社會,從事職業(yè)工作前一個必不少的過程?!鼻Ю镏惺加谧阆隆?,通過這次課程設(shè)計,我深深體會到這句千古名言的真正含義。我今天

36、認(rèn)真的進(jìn)行課程設(shè)計,學(xué)會腳踏實地邁開這一步,就是為明天能穩(wěn)健地在社會大潮中奔跑打下堅實的基礎(chǔ)。</p><p>  通過這次“C++課程設(shè)計”,使得我在多方面都有所提高。通過這次課程設(shè)計,綜合運用本專業(yè)所學(xué)課程的理論和C++語言編程的實際訓(xùn)練從而培養(yǎng)和提高學(xué)生獨立工作能力,鞏固與擴(kuò)充了數(shù)值分析所學(xué)的內(nèi)容,通過對編程的鍛煉,對C++運行的環(huán)境有了更深入的了解。</p><p>  感謝對我?guī)?/p>

37、助過的老師們、同學(xué)們,謝謝你們對我的幫助和支持,讓我感受到同學(xué)的友誼。 </p><p>  由于我的設(shè)計能力有限,在設(shè)計過程中難免出現(xiàn)錯誤,懇請老師們多多指教,我十分樂意接受你們的批評與指正,我將萬分感謝。</p><p><b>  6.2改進(jìn)意見</b></p><p>  本系統(tǒng)的缺點之處在于不能分別為管理者,教師和學(xué)生三方面提供必要的

38、服務(wù),以及不支持密碼登錄等服務(wù),信息容易泄露,功能還比較單一,今后將從這方面加以改進(jìn),將在系統(tǒng)登錄模塊增設(shè)密碼登錄等服務(wù),并且實現(xiàn)管理者,教師和學(xué)生三方面的服務(wù)。</p><p>  通過這次課程設(shè)計,我也發(fā)現(xiàn)自己還有許多需要改進(jìn)的地方。但是,經(jīng)過這次課程設(shè)計我相信我的程序設(shè)計能力又一次進(jìn)步了很多。因此,自己將更加勤奮地學(xué)習(xí)理論知識,并且將理論與實踐結(jié)合起來,使自己能更加熟練地運用理論知識解決實際問題的能力!為自

39、己以后的編程生涯積累一點經(jīng)驗,為自己以后的事業(yè)打好基礎(chǔ)。</p><p><b>  參 考 文 獻(xiàn)</b></p><p>  [1] 譚浩強(qiáng).C++程序設(shè)計.[M].北京:清華大學(xué)出版社,2005.</p><p>  [2] 譚浩強(qiáng).C++程序設(shè)計與上機(jī)指導(dǎo)(第三版).[M].北京:清華大學(xué)出版社,2005.</p><

40、;p><b>  附 錄</b></p><p>  附:學(xué)生成績管理信息系統(tǒng)程序清單</p><p>  #include "iostream.h"</p><p>  #include "string.h"</p><p>  #include "mall

41、oc.h"</p><p>  #include "stdlib.h"</p><p>  #include "fstream.h"</p><p>  #include "stdio.h"</p><p>  #include "iomanip.h"

42、 </p><p>  #include "conio.h"</p><p>  #define NULL 0</p><p>  #define LEN sizeof(struct STUDENT)</p><p>  struct STUDENT</p><p><b>  {<

43、;/b></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>&l

44、t;p>  int mathematicsRecord;</p><p>  int englishRecord;</p><p>  int physicalRecord;</p><p>  int chemistryRecord;</p><p>  int biologicalRecord;</p><p&g

45、t;  double average;</p><p>  struct STUDENT *next;</p><p><b>  };</b></p><p>  struct STUDENT * head=NULL;</p><p>  void SaveData();</p><p>  v

46、oid Input();</p><p>  void Add();</p><p>  void Show();</p><p>  void Del();</p><p>  void FindName();</p><p>  void FindNumber();</p><p>  vo

47、id FindClass();</p><p>  void Modify();</p><p>  void Sort();</p><p>  void FindStudentAverage();</p><p>  void FindClassAverage();</p><p>  void AboutMe()

48、;</p><p>  void SaveData() //保存函數(shù) </p><p><b>  { </b></p><p>  char filename[20];</p><p>  cout<<"請輸入文件名: "; </p><p>  cin>&

49、gt;filename; </p><p>  ofstream fout(filename); </p><p><b>  if(!fout)</b></p><p>  cout<<"文件不能打開!"<<endl; </p><p><b>  else <

50、;/b></p><p><b>  { </b></p><p>  struct STUDENT *p;</p><p><b>  p=head;</b></p><p>  fout << setw(0) <<"學(xué)號"<< set

51、w(8) <<"姓名"<< setw(8)<<"性別"<<setw(8)<<"年齡"</p><p>  << setw(8) << "語文"<< setw(8) <<"英語"<< setw(8)

52、 </p><p>  <<"數(shù)學(xué)"<< setw(8) <<"物理"<<setw(8)<<"化學(xué)" </p><p>  <<setw(8)<<"生物"<<endl;</p><p><

53、;b>  do{</b></p><p>  fout << setw(0) << p->number << setw(8) << p->name << setw(8)<<p->sex<<setw(8)<<p->age</p><p>  <<

54、; setw(8) << p->chineseRecord << setw(8) << p->englishRecord << setw(8) </p><p>  << p->mathematicsRecord << setw(8) << p->physicalRecord <<setw(8

55、)<<p->chemistryRecord </p><p>  <<setw(8)<<p->biologicalRecord<<endl;</p><p>  p=p->next;}</p><p>  while(p != NULL);</p><p><b> 

56、 }</b></p><p>  cout<<"保存成功!"<<endl;</p><p>  cout<<"將返回上一級。"<<endl;</p><p>  fout.close(); </p><p>  getchar(); </

57、p><p><b>  } </b></p><p>  void Input()</p><p>  { int n=0;</p><p>  struct STUDENT *p1,*p2;</p><p>  char flag='y';</p><p>

58、;  p1=p2=(struct STUDENT *)malloc(LEN);</p><p>  cout << "請按照以下順序,輸入您要輸入的學(xué)生信息:"<< endl;</p><p>  cout << setw(0) << "學(xué)號" << setw(8) << &qu

59、ot;姓名" << setw(8)<<"性別"<<setw(8)<<"年齡"</p><p>  << setw(8) << "語文" << setw(8) << "英語" << setw(8) << &q

60、uot;數(shù)學(xué)" </p><p>  << setw(8) << "物理" <<setw(8)<<"化學(xué)" <<setw(8)<<"生物"<<endl;</p><p>  cin >> p1->number >&

61、gt; p1->name >>p1->sex</p><p>  >> p1->age >> p1->chineseRecord </p><p>  >> p1->englishRecord >> p1->mathematicsRecord</p><p>  >

62、> p1->physicalRecord>>p1->chemistryRecord </p><p>  >> p1->biologicalRecord ;</p><p>  while(flag=='y'){</p><p><b>  n++;</b></p>

63、<p><b>  if(n==1)</b></p><p><b>  head=p1;</b></p><p><b>  else</b></p><p>  p2->next=p1;</p><p><b>  p2=p1;</b>

64、</p><p>  cout<<" 要繼續(xù)添加嗎(y/n)";</p><p>  cin>>flag;</p><p>  while(flag != 'y' && flag != 'n'){</p><p>  cout<<"

65、;輸入錯誤,請輸入(y/n)"<<endl;</p><p>  cin>>flag;</p><p><b>  }</b></p><p>  if(flag=='n'){</p><p>  cout<<"請及時保存數(shù)據(jù),現(xiàn)在返回上一級&quo

66、t;<<endl;</p><p><b>  break;</b></p><p><b>  }</b></p><p>  p1=(struct STUDENT *)malloc(LEN);</p><p>  cout << "請按照以下順序,輸入您要輸入的

67、學(xué)生信息:"<<endl;</p><p>  cout << setw(0) << "學(xué)號" << setw(8) << "姓名" << setw(8)<<"性別"<<setw(8)<<"年齡"</p>

68、<p>  << setw(8) << "語文" << setw(8) << "英語" << setw(8) << "數(shù)學(xué)" </p><p>  << setw(8) << "物理" <<setw(8)<&l

69、t;"化學(xué)" <<setw(8)<<"生物"<<endl;</p><p>  cin >> p1->number >> p1->name >>p1->sex</p><p>  >> p1->age>> p1->chines

70、eRecord </p><p>  >> p1->englishRecord >> p1->mathematicsRecord</p><p>  >> p1->physicalRecord>>p1->chemistryRecord </p><p>  >> p1->bio

71、logicalRecord ;</p><p><b>  }</b></p><p>  p2->next=NULL;}</p><p>  void Add(){</p><p>  struct STUDENT *p1,*p;</p><p>  char flag='y

72、9;;</p><p><b>  long num;</b></p><p><b>  do{</b></p><p>  p1=(struct STUDENT *)malloc(LEN);</p><p><b>  p=head;</b></p><

73、p>  cout<<" 輸入你要添加的學(xué)號: "; </p><p><b>  cin>>num;</b></p><p>  while(p!=NULL){</p><p>  if(num<head->number ){</p><p>  cout &

74、lt;< "請按照以下順序,輸入您要輸入的學(xué)生信息:"<< endl;</p><p>  cout << setw(0) << "姓名" << setw(8)<<"性別"<<setw(8)<<"年齡"</p><p> 

75、 << setw(8) << "語文" << setw(8) << "英語" << setw(8) << "數(shù)學(xué)" </p><p>  << setw(8) << "物理" <<setw(8)<<"化學(xué)&

76、quot; <<setw(8)<<"生物"<<endl;</p><p>  cin >> p1->name >>p1->sex</p><p>  >> p1->age >> p1->chineseRecord </p><p>  &g

77、t;> p1->englishRecord >> p1->mathematicsRecord</p><p>  >> p1->physicalRecord>>p1->chemistryRecord </p><p>  >> p1->biologicalRecord ;</p><p&

78、gt;  p1->number =num;</p><p>  p1->next =head ;</p><p><b>  head=p1;</b></p><p><b>  break;</b></p><p><b>  }</b></p>&

79、lt;p><b>  else{</b></p><p>  if(p->next !=NULL && num>p->number && num<p->next->number ){</p><p>  cout << "請按照以下順序,輸入您要輸入的學(xué)生信息:"

80、<< endl;</p><p>  cout << setw(0) << "姓名" << setw(8)<<"性別"<<setw(8)<<"年齡"</p><p>  << setw(8) << "語文"

81、; << setw(8) << "英語" << setw(8) << "數(shù)學(xué)" </p><p>  << setw(8) << "物理" <<setw(8)<<"化學(xué)" <<setw(8)<<"生物&qu

82、ot;<<endl;</p><p>  cin >> p1->name >>p1->sex</p><p>  >> p1->age >> p1->chineseRecord </p><p>  >> p1->englishRecord >> p1-

83、>mathematicsRecord</p><p>  >> p1->physicalRecord>>p1->chemistryRecord </p><p>  >> p1->biologicalRecord ;</p><p>  p1->number=num;</p><p

84、>  p1->next =p->next;</p><p>  p->next=p1;</p><p><b>  break;</b></p><p><b>  } </b></p><p><b>  }</b></p><

85、;p>  if(p->next ==NULL){</p><p>  cout<< "請按照以下順序,輸入您要輸入的學(xué)生信息:"<< endl;</p><p>  cout << setw(0) << "姓名" << setw(8)<<"性別"&

86、lt;<setw(8)<<"年齡"</p><p>  << setw(8) << "語文" << setw(8) << "英語" << setw(8) << "數(shù)學(xué)" </p><p>  << setw(8

87、) << "物理" <<setw(8)<<"化學(xué)" <<setw(8)<<"生物"<<endl;</p><p>  cin >> p1->name >>p1->sex</p><p>  >> p1->a

88、ge >> p1->chineseRecord </p><p>  >> p1->englishRecord >> p1->mathematicsRecord</p><p>  >> p1->physicalRecord>>p1->chemistryRecord </p><p

89、>  >> p1->biologicalRecord ;</p><p>  p1->number =num;</p><p>  p->next=p1;</p><p>  p1->next =NULL;</p><p><b>  break;</b></p>

90、<p><b>  }</b></p><p>  p=p->next; </p><p><b>  }</b></p><p>  cout<<" 要繼續(xù)添加嗎(y/n)";</p><p>  cin>>flag;</p&

91、gt;<p>  while(flag != 'y' && flag != 'n'){</p><p>  cout<<"輸入錯誤,請輸入(y/n)"<<endl;</p><p>  cin>>flag;</p><p><b>  }&

92、lt;/b></p><p>  if(flag=='n'){</p><p>  cout<<"請及時保存數(shù)據(jù),現(xiàn)在返回上一級"<<endl;</p><p><b>  break;</b></p><p><b>  }</b>

93、</p><p>  }while(flag=='y');</p><p><b>  }</b></p><p>  void Show(){</p><p>  struct STUDENT *p;</p><p>  cout<<"\n所有學(xué)生的成績:&

94、quot;<<endl;</p><p><b>  p=head;</b></p><p>  if(head!=NULL){</p><p>  cout << setw(0) << "學(xué)號" << setw(8) << "姓名" <&

95、lt; setw(8)<<"性別"<<setw(8)<<"年齡"</p><p>  << setw(8) << "語文" << setw(8) << "英語" << setw(8) << "數(shù)學(xué)" <

96、/p><p>  << setw(8) << "物理" <<setw(8)<<"化學(xué)" <<setw(8)<<"生物"<<endl;</p><p><b>  do{</b></p><p>  cout

97、<< setw(0) << p->number << setw(8) << p->name << setw(8)<<p->sex<<setw(8)<<p->age</p><p>  << setw(8) << p->chineseRecord <<

98、setw(8) << p->englishRecord << setw(8) </p><p>  << p->mathematicsRecord << setw(8) << p->physicalRecord <<setw(8)<<p->chemistryRecord <<setw(8)&l

99、t;<p->biologicalRecord<<endl;</p><p>  p=p->next;</p><p>  }while(p != NULL);</p><p>  cout<<"請及時保存數(shù)據(jù),現(xiàn)在返回上一級"<<endl;</p><p><b&

100、gt;  }</b></p><p><b>  else</b></p><p>  cout<<"\n學(xué)生成績?yōu)榭眨埓_認(rèn)。"<<endl;</p><p><b>  }</b></p><p>  void Del(){</p&g

101、t;<p><b>  long num;</b></p><p>  struct STUDENT *p1,*p2;</p><p>  char flag;</p><p><b>  flag='y';</b></p><p><b>  do{<

102、/b></p><p>  cout<<"請輸入要刪除學(xué)生的學(xué)號:"<<endl;</p><p><b>  cin>>num;</b></p><p><b>  p1=head;</b></p><p><b>  p2=

103、head;</b></p><p>  while(p1!=NULL){</p><p>  if(p1->number == num && p1==head){</p><p>  head=p1->next ;</p><p>  delete p1;</p><p>  c

104、out<<"已成功刪除,請及時保存數(shù)據(jù)。"<<endl;</p><p><b>  break;</b></p><p><b>  }</b></p><p>  if(p1->next->number ==num && p1->next-&

105、gt;next==NULL){</p><p>  delete p1->next ;</p><p>  cout<<"已成功刪除,請及時保存數(shù)據(jù)。"<<endl;</p><p>  p1->next=NULL;</p><p><b>  break;</b>

106、</p><p><b>  }</b></p><p>  if(p1->next->number == num){</p><p>  p2=p1->next ;</p><p>  p1->next=p2->next ;</p><p>  delete p2;

107、</p><p>  cout<<"已成功刪除,請及時保存數(shù)據(jù)。"<<endl;</p><p><b>  break;</b></p><p><b>  }</b></p><p>  p1=p1->next;</p><p

108、><b>  } </b></p><p>  cout<<" 要繼續(xù)刪除嗎(y/n)";</p><p>  cin>>flag;</p><p>  while(flag != 'y' && flag != 'n'){</p>

109、<p>  cout<<"輸入錯誤,請輸入(y/n)"<<endl;</p><p>  cin>>flag;</p><p><b>  } </b></p><p>  if(flag=='n'){</p><p>  cout<

110、;<"請及時保存數(shù)據(jù),現(xiàn)在返回上一級"<<endl;</p><p><b>  break;</b></p><p><b>  }</b></p><p>  }while(flag=='y');</p><p><b>  }&l

111、t;/b></p><p>  void FindName() </p><p><b>  { </b></p><p>  char name[20]; </p><p>  struct STUDENT *p;</p><p>  struct STUDENT *p1,*p2;<

112、;/p><p>  struct STUDENT * headna=NULL;</p><p>  char flag='y';</p><p>  p1=p2=(struct STUDENT *)malloc(LEN);</p><p><b>  do{</b></p><p>

113、<b>  p=head;</b></p><p>  cout<<" 輸入你要查找的姓名: "; </p><p>  cin>>name;</p><p>  while(p!=NULL){</p><p>  if(strcmp(p->name,name)==0){

114、</p><p>  if(headna==NULL){</p><p>  p1->number=p->number;strcpy(p1->name,p->name);strcpy(p1->sex,p->sex);</p><p>  p1->age=p->age;p1->chineseRecord=p->

115、;chineseRecord;</p><p>  p1->englishRecord=p->englishRecord;p1->mathematicsRecord=p->mathematicsRecord;</p><p>  p1->physicalRecord=p->physicalRecord;p1->chemistryRecord =p-

116、>chemistryRecord ;</p><p>  p1->biologicalRecord =p->biologicalRecord;</p><p>  headna=p1;</p><p><b>  break;</b></p><p><b>  }</b><

117、/p><p><b>  else{</b></p><p>  p2->next=p1;</p><p><b>  p2=p1;</b></p><p>  p1->number=p->number;strcpy(p1->name,p->name);strcpy(p1-

118、>sex,p->sex);</p><p>  p1->age=p->age;p1->chineseRecord=p->chineseRecord;</p><p>  p1->englishRecord=p->englishRecord;p1->mathematicsRecord=p->mathematicsRecord;<

119、;/p><p>  p1->physicalRecord=p->physicalRecord;p1->chemistryRecord =p->chemistryRecord ;</p><p>  p1->biologicalRecord =p->biologicalRecord;</p><p><b>  break;

120、</b></p><p><b>  } </b></p><p><b>  }</b></p><p><b>  else</b></p><p>  p=p->next;</p><p><b>  }</b

121、></p><p>  cout<<" 要繼續(xù)查找嗎(y/n)";</p><p>  cin>>flag;</p><p>  while(flag != 'y' && flag != 'n'){</p><p>  cout<<&

122、quot;輸入錯誤,請輸入(y/n)"<<endl;</p><p>  cin>>flag;</p><p><b>  }</b></p><p>  if(flag=='n')</p><p><b>  break;</b></p>

123、;<p>  p1=(struct STUDENT *)malloc(LEN);</p><p>  }while(flag=='y');</p><p>  p2->next=NULL;</p><p>  struct STUDENT *w;</p><p>  cout<<"\n

124、所有被查找學(xué)生的成績:"<<endl;</p><p><b>  w=headna;</b></p><p>  if(headna!=NULL){</p><p>  cout << setw(0) << "學(xué)號" << setw(8) << &quo

125、t;姓名" << setw(8)<<"性別"<<setw(8)<<"年齡"</p><p>  << setw(8) << "語文" << setw(8) << "英語" << setw(8) << &qu

126、ot;數(shù)學(xué)" </p><p>  << setw(8) << "物理" <<setw(8)<<"化學(xué)" <<setw(8)<<"生物"<<endl;</p><p><b>  do{</b></p>

127、<p>  cout<< setw(0) << w->number << setw(8) << w->name << setw(8)<<w->sex<<setw(8)<<w->age</p><p>  << setw(8) << w->chineseR

128、ecord << setw(8) << w->englishRecord << setw(8) </p><p>  << w->mathematicsRecord << setw(8) <<w->physicalRecord <<setw(8)<<w->chemistryRecord<

129、/p><p>  << setw(8) <<w->biologicalRecord<<endl;</p><p>  w=w->next;</p><p>  }while(w != NULL);</p><p>  char filename[20];</p><p>  

130、cout<<"請輸入保存的文件名: "; </p><p>  cin>>filename; </p><p>  ofstream fout(filename,ios::app); </p><p><b>  if(!fout)</b></p><p>  cout<

131、<"文件不能打開!"<<endl; </p><p><b>  else </b></p><p><b>  { </b></p><p>  struct STUDENT *p;</p><p><b>  p=headna;</b>

132、</p><p>  fout << setw(0) <<"學(xué)號"<< setw(8) <<"姓名"<< setw(8)<<"性別"<<setw(8)<<"年齡"</p><p>  << setw(8)

133、 << "語文"<< setw(8) <<"英語"<< setw(8) </p><p>  <<"數(shù)學(xué)"<< setw(8) <<"物理"<<setw(8)<<"化學(xué)" </p><p&

134、gt;  <<setw(8)<<"生物"<<endl;</p><p><b>  do{</b></p><p>  fout << setw(0) << p->number << setw(8) << p->name << setw(8)

135、<<p->sex<<setw(8)<<p->age</p><p>  << setw(8) << p->chineseRecord << setw(8) << p->englishRecord << setw(8) </p><p>  << p->

136、mathematicsRecord << setw(8) << p->physicalRecord <<setw(8)<<p->chemistryRecord </p><p>  <<setw(8)<<p->biologicalRecord<<endl;</p><p>  p=p-&g

137、t;next;</p><p>  }while(p != NULL);}</p><p>  cout<<"保存成功!"<<endl;</p><p>  cout<<"現(xiàn)在返回上一級。"<<endl;</p><p>  fout.close(); &

138、lt;/p><p><b>  }</b></p><p><b>  else</b></p><p>  cout<<"\n沒有被查找的學(xué)生,不會保存,請確認(rèn)。"<<endl;</p><p><b>  }</b></p&g

139、t;<p>  void FindNumber()</p><p><b>  {</b></p><p>  struct STUDENT * headnu=NULL;</p><p>  long num; </p><p>  struct STUDENT *p;</p><p&g

140、t;  struct STUDENT *p1,*p2;</p><p>  char flag='y';</p><p>  p1=p2=(struct STUDENT *)malloc(LEN);</p><p><b>  do{</b></p><p><b>  p=head;</

141、b></p><p>  cout<<" 輸入你要查找的學(xué)號: "; </p><p><b>  cin>>num;</b></p><p>  while(p!=NULL){</p><p>  if(p->number==num){</p>&l

142、t;p>  if(headnu==NULL){</p><p>  p1->number=p->number;strcpy(p1->name,p->name);strcpy(p1->sex,p->sex);</p><p>  p1->age=p->age;p1->chineseRecord=p->chineseRecord

143、;</p><p>  p1->englishRecord=p->englishRecord;p1->mathematicsRecord=p->mathematicsRecord;</p><p>  p1->physicalRecord=p->physicalRecord;p1->chemistryRecord =p->chemistryR

144、ecord ;</p><p>  p1->biologicalRecord =p->biologicalRecord;</p><p>  headnu=p1;</p><p><b>  break;</b></p><p><b>  }</b></p><p&

145、gt;<b>  else{</b></p><p>  p2->next=p1;</p><p><b>  p2=p1;</b></p><p>  p1->number=p->number;strcpy(p1->name,p->name);strcpy(p1->sex,p->

146、sex);</p><p>  p1->age=p->age;p1->chineseRecord=p->chineseRecord;</p><p>  p1->englishRecord=p->englishRecord;p1->mathematicsRecord=p->mathematicsRecord;</p><p

147、>  p1->physicalRecord=p->physicalRecord;p1->chemistryRecord =p->chemistryRecord ;</p><p>  p1->biologicalRecord =p->biologicalRecord;</p><p><b>  break;</b><

148、/p><p><b>  } </b></p><p><b>  }</b></p><p><b>  else</b></p><p>  p=p->next; } </p><p>  cout<<" 要繼續(xù)查

149、找嗎(y/n)";</p><p>  cin>>flag;</p><p>  while(flag != 'y' && flag != 'n'){</p><p>  cout<<"輸入錯誤,請輸入(y/n)"<<endl;</p>&

溫馨提示

  • 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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論