版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、<p><b> 課程設計任務書</b></p><p> 課程設計題目: 學生成績管理 </p><p> 課程設計時間:2012年03月19日起——至 2012年03月30日止</p><p> 教研室主任 年 月 日批準</p><p> 一、
2、課程設計的性質(zhì)和任務</p><p> 《程序設計基礎課程設計》是軟件工程專業(yè)的實踐性教學環(huán)節(jié)之一,是《程序設計基礎》課程的輔助教學過程,是軟件工程專業(yè)的一門必修課。</p><p> 本課程設計通過利用C語言實現(xiàn)一個小型的應用系統(tǒng),使學生加深理解《程序設計基礎》課程中的各種基本概念、理論和原理,掌握C語言的語法、語句和程序設計的思想,鞏固課堂教學內(nèi)容,鍛煉學生編寫程序和調(diào)試程序的能力
3、,提高應用軟件設計的能力,提高分析問題和解決問題的能力,培養(yǎng)創(chuàng)新和團隊的意識,從而為后續(xù)課程學習、畢業(yè)設計以及將來更好地走向工作崗位打好堅實的基礎。</p><p> 二、課程設計的原始資料</p><p> 隨著計算機技術的飛速發(fā)展,計算機早已經(jīng)從單純的數(shù)值計算功能中解脫出來,利用計算機完成的功能越來越多,如信息的存儲、多媒體應用、信息管理等。在現(xiàn)代的管理技術中,利用計算機來完成過去
4、只能通過紙質(zhì)手工管理的智能管理模式已經(jīng)變得越來越廣泛。</p><p> 本題目就是利用計算機來完成學生成績管理程序。</p><p> 學生可查閱有關程序設計的案例資料,進一步理解結(jié)構化程序設計的模塊化程序設計思想,并利用此思想,根據(jù)對程序設計課程的學習,編寫一個比較完整的簡單軟件系統(tǒng)。通過本設計,可以加深理解利用傳統(tǒng)程序設計思想開發(fā)一個軟件系統(tǒng)的整個流程,提高分析問題、解決問題和軟
5、件設計、編程的實際動手能力。</p><p> 三、課程設計的主要內(nèi)容及要求;</p><p> 1.認真閱讀材料,掌握程序設計模塊化的思想。</p><p> 2.要求在設計的過程中,建立清晰的層次結(jié)構。</p><p> 3、畫出主要的功能結(jié)構圖和主要模塊的流程圖。</p><p> 4.完成一簡單學生成
6、績管理程序。</p><p><b> 5.實現(xiàn)學生管理。</b></p><p><b> 6.實現(xiàn)成績管理。</b></p><p><b> 7.實現(xiàn)相應查詢。</b></p><p> 8.要求操作簡單,用戶界面友好。</p><p>
7、 9.運行程序,檢查結(jié)果是否與理論值一致。</p><p> 10.運行環(huán)境使用Windows,TC/VC。</p><p> 四、課程設計報告的要求</p><p> 課程設計報告要求參照畢業(yè)設計論文撰寫規(guī)范,學生應撰寫的內(nèi)容為:中文摘要和關鍵詞、目錄、正文、參考文獻。</p><p> 課程設計報告裝訂順序為:封面、任務書、成績評
8、審意見表、中文摘要和關鍵詞、目錄、正文、參考文獻。</p><p> 五、設計完成后應提交成果的種類、數(shù)量、質(zhì)量要求</p><p> 1、完成任務書中指定的操作功能,運行穩(wěn)定。</p><p><b> 2、課程設計報告。</b></p><p> 3、電子資料(程序代碼,簡單說明書,課程設計報告)。</
9、p><p><b> 五、時間進度安排;</b></p><p><b> 六、主要參考資料</b></p><p> 1.郭翠英. C語言程序設計案例精編.北京:中國水利水電出版社.2004</p><p> 2. 譚浩強. C程序設計(第三版).北京:清華大學出版社.2005 </p&
10、gt;<p> 3. 陳天洲. C語言高級程序設計.北京:人民郵電出版社.2002</p><p> 4. 楊旭. C語言程序設計案例教程.北京:人民郵電出版社.2005</p><p> 5.王為青.C語言高級編程及實例剖析.北京:人民郵電出版社.2008</p><p> 6.徐慧.C語言實例解析精粹. 北京:人民郵電出版社.2006<
11、;/p><p><b> 目錄</b></p><p><b> 摘 要1</b></p><p><b> 第1章 引言1</b></p><p> 1.1 題目背景1</p><p> 1.2 設計目的1</p><
12、;p> 1.3 解決問題1</p><p> 第2章 C語言的運行環(huán)境及其特點2</p><p> 2.1 C語言的概述2</p><p> 2.2 C語言的運行環(huán)境2</p><p> 2.3 C語言的特點3</p><p> 2.4 C語言的運行步驟4</p><p
13、> 2.5 C語言結(jié)構體6</p><p> 第3章 系統(tǒng)分析與設計8</p><p> 3.1 系統(tǒng)功能描述8</p><p> 3.2 功能設計8</p><p> 第4章 系統(tǒng)實現(xiàn)25</p><p> 4.1主菜單運行界面25</p><p> 4.2成績
14、查詢運行界面25</p><p> 4.3成績錄入運行界面25</p><p> 4.4成績刪除運行界面26</p><p> 4.5掛科查詢運行界面27</p><p> 4.6按平均分排名顯示界面28</p><p><b> 4.7退出28</b></p>
15、<p><b> 結(jié) 論29</b></p><p><b> 致 謝30</b></p><p><b> 摘 要</b></p><p> 現(xiàn)代科學技術的飛速發(fā)展,改變了世界,也改變了人類的生活。作為新世紀的大學生,應當站在展的前列,掌握現(xiàn)代科學知識,調(diào)整自己的知識結(jié)
16、構和能力結(jié)構,以適應社會發(fā)展要求。新需要具有豐富的現(xiàn)代科學知識,能夠獨立解決面臨的任務,充滿活力同,有創(chuàng)新意識的新型人才。</p><p> C語言是在國內(nèi)外廣泛使用的一種計算機語言。C語言功能豐富、表達能力強、使用靈活方便、應用面廣、目標程序效率高、可移植性好,既具有高級語言的優(yōu)點,又具有低級語言的許多特點,因此特別適合于編寫系統(tǒng)軟件。</p><p> 程序設計是一門實踐很強的課程
17、,既要掌握概念,又要動手編程,還要上機調(diào)試。</p><p> 學生成績管理系統(tǒng)就是通過我們組員每一個人的努力的成果,我們用到在課堂上所學到的知識以及課下參考其它資料而編寫的程序。本次課程設計可以實現(xiàn)在對學生成績管理時相應的功能。操作簡便而實用。</p><p> 學生成績管理系統(tǒng)可以現(xiàn)實對成績相應的操作,例如,成績查詢、成績錄入、成績刪除、掛科查詢、平均分總排名次序等相關功能,可以對
18、學生成績信息做一個簡單管理。</p><p> 此次C語言課程設計是對我們所掌握C語言知識的一次檢測。我們組做的是學生成績管理系統(tǒng),程序功能齊全,操作簡單,使我們對C語言知識有了質(zhì)的飛躍,提高了我們的編程技術,增加了我們對計算機的興趣,程序成功的運行,給予了我們莫大的信心,通過對程序的完善更讓我們受益匪淺,鍛煉了我們的實踐能力,給我對進入社會提供了莫大的動力。</p><p> 此系統(tǒng)
19、中應用了結(jié)構體,數(shù)組,文件,基本的指針運用,基本的循環(huán)語句,函數(shù)的調(diào)用等。</p><p> 關鍵詞 學生成績管理,結(jié)構體,數(shù)組,文件,指針</p><p><b> 第1章 引言</b></p><p><b> 1.1 題目背景</b></p><p> 隨著計算機技術的飛速發(fā)展,改變了
20、世界,也改變了人類的生活。作為現(xiàn)代科學技術的飛速發(fā)展,改變了世界,也改變了人類的生活。新世紀的大學生,應當站在時代發(fā)展的前列,掌握現(xiàn)代科學技術知識,調(diào)整自己的知識結(jié)構和能力結(jié)構,以適應社會發(fā)展的要求。</p><p> C語言成了在國內(nèi)外使用的一種計算機語言。C語言功能豐富、表達能力強、使用靈活方便、應用面廣、目標程序效率高、可移植性好、既具有高級語言的優(yōu)點,又具有低級語言的許多特點,因此特別適合于編寫系統(tǒng)軟件
21、。現(xiàn)在大多數(shù)的高校都把C語言作為第一門計算機語言進行教學,這是可行的,學生是能夠?qū)W習好的。</p><p> 隨著社會的進步與發(fā)展,在這個知識爆炸的時代,廣大的莘莘學子遍布天下。為了便于對如此大數(shù)量的學生的成績進行管理,就需要一種能管理學生成績的程序系統(tǒng)。高中生成績管理系統(tǒng)就是在這種情況下應運而生的。該程序能夠進行學生成績查詢、成績錄入、成績刪除、掛科查詢、平均分總排名次序等相關功能。從而使教學人員或管理者能方
22、便精確的進行其所需的一些操作,達到大大節(jié)省人力、物力,和提高效率的目的。</p><p><b> 1.2 設計目的</b></p><p> 供教學人員和管理者進行學生成績信息管理,方便操作者對學生考試考試成績進行查詢、錄入、刪除、掛科查看、排名等操作,使成績管理人員的效率得到一定的提高。我們做的學生成績管理系統(tǒng)就是為了便于對學生的成績進行管理,方便對學生的成績
23、進行有序的管理。</p><p><b> 1.3 解決問題</b></p><p> 我們做的程序可以對學生成績信息做簡單的管理,可以滿足操作者的基本要求,能夠?qū)崿F(xiàn)成績查詢、成績錄入、成績刪除、掛科查詢、平均分總排名次序等相關功能,尤其是增添了一般程序沒有的掛科查詢,可以方便對掛科同學進行查詢管理。</p><p> 第2章 C語言的運
24、行環(huán)境及其特點</p><p> 2.1 C語言的概述 </p><p> 早期的C語言主要是用于UNIX系統(tǒng)。由于C語言的強大功能和各方面的優(yōu)點逐漸為人們認識,到了八十年代,C開始進入其它操作系統(tǒng),并很快在各類大、中、小和微型計算機上得到了廣泛的使用。成為當代最優(yōu)秀的程序設計語言之一。</p><p> C語言是一種結(jié)構化語言。它層次清晰,便于按模塊化方式組
25、織程序,易于調(diào)試和維護。C語言的表現(xiàn)能力和處理能力極強。它不僅具有豐富的運算符和數(shù)據(jù)類型,便于實現(xiàn)各類復雜的數(shù)據(jù)結(jié)構。它還可以直接訪問內(nèi)存的物理地址,進行位(bit)一級的操作。由于C語言實現(xiàn)了對硬件的編程操作,因此C語言集高級語言和低級語言的功能于一體。既可用于系統(tǒng)軟件的開發(fā),也適合于應用軟件的開發(fā)。此外,C語言還具有效率高,可移植性強等特點。因此廣泛地移植到了各類各型計算機上,從而形成了多種版本的C語言。</p>&l
26、t;p> 在C語言中采用的分隔符有逗號和空格兩種。逗號主要用在類型說明和函數(shù)參數(shù)表中,分隔各個變量。空格多用于語句各單詞之間,作間隔符。在關鍵字,標識符之間必須要有一個以上的空格符作間隔,否則將會出現(xiàn)語法錯誤,例如把int a;寫成 inta;C編譯器會把inta當成一個標識符處理,其結(jié)果必然出錯。 </p><p> C語言的注釋符是以“/*”開頭并以“*/”結(jié)尾的串。在“/*”和“*/”之間的即為注
27、釋。程序編譯時,不對注釋作任何處理。注釋可出現(xiàn)在程序中的任何位置。注釋用來向用戶提示或解釋程序的意義。在調(diào)試程序中對暫不使用的語句也可用注釋符括起來,使翻譯跳過不作處理,待調(diào)試結(jié)束后再去掉注釋符。</p><p> 2.2 C語言的運行環(huán)境</p><p> C語言的運行環(huán)境是Turbo C,Turbo C是美國Borland公司的產(chǎn)品,Borland公司是一家專門從事軟件開發(fā)、研制的
28、大公司。該公司相繼推出了一套Turbo系列軟件,如Turbo BASIC, TurboPascal,Turbo Prolog,這些軟件很受用戶歡迎。該公司在1987年首次推出Turbo C1.0產(chǎn)品,其中使用了全然一新的集成開發(fā)環(huán)境,即使用了一系列下拉式菜單,將文本編輯、程序編譯、連接以及程序運行一體化,大大方便了程序的開發(fā)。1988年,Borland公司又推出Turbo C1.5版本,增加了圖形庫和文本窗口函數(shù)庫等,而TurboC 2
29、.0則是該公司1989年出版的。 </p><p> Turbo C2.0在原來集成開發(fā)環(huán)境的基礎上增加了查錯功能,并可以在Tiny模式下直接生成。COM(數(shù)據(jù)、代碼、堆棧處在同一64K內(nèi)存中)文件。還可對數(shù)學協(xié)處理器支持8087/80287等進行仿真。Borland公司后來又推出了面向?qū)ο蟮某绦蜍浖黅urbo C++,它繼承發(fā)展Turbo C 2.0的集成開發(fā)環(huán)境,并包含了面向?qū)ο蟮幕舅枷牒驮O計方法。1
30、991年為了適用Microsoft 公司的Windows 3.0 版本,Borland公司又將Turbo C++作了更新,即Turbo C的新一代產(chǎn)品Borlandc C++也已經(jīng)問世了。隨后,Microsoft 公司推出的可視化開發(fā)環(huán)境,即Microsoft Visual C++6.0。也就是我們小組運用的開發(fā)環(huán)境。</p><p> C語言在VC++6.0環(huán)境下運行如圖2-1所示。</p>&
31、lt;p> 圖2-1 C語言運行界面</p><p> 2.3 C語言的特點</p><p> 1. 簡潔緊湊、靈活方便</p><p> C語言一共只有32個關鍵字,9種控制語句,程序書寫自由,主要用小寫字母表示。它把高級語言的基本結(jié)構和語句與低級語言的實用性結(jié)合起來。C 語言可以象匯編語言一樣對位、字節(jié)和地址進行操作,而這三者是計算機最基本的工作單
32、元。</p><p><b> 2. 運算符豐富</b></p><p> C的運算符包含的范圍很廣泛,共有種34個運算符。C語言把括號、賦值、強制類型轉(zhuǎn)換等都作為運算符處理。從而使C的運算類型極其豐富表達式類型多樣化,靈活使用各種運算符可以實現(xiàn)在其它高級語言中難以實現(xiàn)的運算。</p><p><b> 3. 數(shù)據(jù)結(jié)構豐富<
33、;/b></p><p> C的數(shù)據(jù)類型有:整型、實型、字符型、數(shù)組類型、指針類型、結(jié)構體類型、共用體類型等。能用來實現(xiàn)各種復雜的數(shù)據(jù)類型的運算。并引入了指針概念,使程序效率更高。另外C語言具有強大的圖形功能,支持多種顯示器和驅(qū)動器。且計算功能、邏輯判斷功能強大。</p><p> 4. C語言是結(jié)構式語言</p><p> 結(jié)構式語言的顯著特點是代碼及
34、數(shù)據(jù)的分隔化,即程序的各個部分除了必要的信息交流外彼此獨立。這種結(jié)構化方式可使程序?qū)哟吻逦?,便于使用、維護以及調(diào)試。C語言是以函數(shù)形式提供給用戶的,這些函數(shù)可方便的調(diào)用,并具有多種循環(huán)、條件語句控制程序流向,從而使程序完全結(jié)構化。</p><p> 5. C語言語法限制不太嚴格、程序設計自由度大</p><p> 一般的高級語言語法檢查比較嚴,能夠檢查出幾乎所有的語法錯誤。而C語言允許
35、程序編寫者有較大的自由度。</p><p> 6. C語言允許直接訪問物理地址,可以直接對硬件進行操作</p><p> 因此既具有高級語言的功能,又具有低級語言的許多功能,能夠象匯編語言一樣對位、字節(jié)和地址進行操作,而這三者是計算機最基本的工作單元,可以用來寫系統(tǒng)軟件。</p><p> 7. C語言程序生成代碼質(zhì)量高,程序執(zhí)行效率高</p>
36、<p> 一般只比匯編程序生成的目標代碼效率低10~20%。</p><p> 8. C語言適用范圍大,可移植性好</p><p> C語言有一個突出的優(yōu)點就是適合于多種操作系統(tǒng),如DOS、UNIX,也適用于多種機型。</p><p> 2.4 C語言的運行步驟 </p><p><b> 1.運行VC6.0&l
37、t;/b></p><p> 現(xiàn)在就讓我們開始Visual C++ 6.0之旅吧!首先按如下兩種方法之一啟動并運行VC6,進入到它的集成開發(fā)環(huán)境窗口(假設在Windows系統(tǒng)下已經(jīng)安裝了VC6)其具體窗口式樣如圖2-1所示。</p><p><b> 方法一:</b></p><p> 若桌面上有VC6圖標(“橫躺著”即“倒下”的“
38、8”字型圖標,且標有Microsoft Visual Studio 6.0字樣,如圖2-2所示),則用鼠標雙擊該圖標。</p><p> 圖2-2 VC6.0在桌面上的快捷方式</p><p> 方法二(假設按照通常方式對VC6進行了安裝的話)</p><p> 通過開始→程序→Microsoft Visual Studio 6.0→Microsoft Vis
39、ual C++ 6.0,單擊一下該菜單項。</p><p> 圖2-1式樣的窗口從大體上可分為四部分。上部:菜單和工具條;中左:工作區(qū)(workspace)視圖顯示窗口,這里將顯示處理過程中與項目相關的各種文件種類等信息;中右:文檔內(nèi)容區(qū),是顯示和編輯程序文件的操作區(qū);下部:輸出(Output)窗口區(qū),程序調(diào)試過程中,進行編譯、鏈接、運行時輸出的相關信息將在此處顯示。注意,由于系統(tǒng)的初始設置或者環(huán)境的某些不同,
40、可能你所啟動的VC6初始窗口式樣與圖2-1有所不同,也許沒出現(xiàn)Workspace窗口或Output窗口,這時可通過View→Workspace菜單選項的執(zhí)行,總可使中左處的工作區(qū)窗口顯現(xiàn)出來;而通過View→Output菜單選項的執(zhí)行,又總可使下部的輸出區(qū)窗口得以顯現(xiàn)。當然,如果不想看到這兩個窗口,可以點擊相應窗口的“x”按鍵來關閉窗口。如圖2-3所示。</p><p> 圖2-3 VC6.0的集成開發(fā)環(huán)境窗口
41、 </p><p> 2. 編制并運行C語言程序的四步曲</p><p> ?、啪庉嫞ò殉绦虼a輸入,交給計算機)。 </p><p> ⑵編譯(成目標程序文件.obj)。</p><p> 編譯就是把高級語言變成計算機可以識別的2進制語言,計算機只認識1和0,編譯程序把人們熟悉的語言換成2進制的。編譯程序把一個源程序翻譯成目標程序的工
42、作過程分為五個階段:詞法分析;語法分析;語義檢查和中間代碼生成;代碼優(yōu)化;目標代碼生成。主要是進行詞法分析和語法分析,又稱為源程序分析,分析過程中發(fā)現(xiàn)有語法錯誤,給出提示信息。 </p><p> ?、擎溄樱ǔ煽蓤?zhí)行程序文件.exe)。</p><p> 鏈接是將編譯產(chǎn)生的.obj文件和系統(tǒng)庫連接裝配成一個可以執(zhí)行的程序。由于在實際操作中可以直接點擊Build從源程序產(chǎn)生可執(zhí)行程序,可能
43、有人就會置疑:為何要將源程序翻譯成可執(zhí)行文件的過程分為編譯和鏈接兩個獨立的步驟,不是多此一舉嗎?之所以這樣做,主要是因為:在一個較大的復雜項目中,有很多人共同完成一個項目(每個人可能承擔其中一部分模塊),其中有的模塊可能是用匯編語言寫的,有的模塊可能是用VC寫的,有的模塊可能是用VB寫的,有的模塊可能是購買(不是源程序模塊而是目標代碼)或已有的標準庫模塊,因此,各類源程序都需要先編譯成目標程序文件(2進制機器指令代碼),再通過鏈接程序?qū)?/p>
44、這些目標程序文件連接裝配成可執(zhí)行文件。 </p><p> ⑷運行(可執(zhí)行程序文件)。</p><p> 上述四個步驟中,其中第一步的編輯工作是最繁雜而又必須細致地由人工在計算機上來完成,其余幾個步驟則相對簡單,基本上由計算機來自動完成。在VC6.0下編譯后的窗口界面如圖2-4所示。</p><p> 圖2-4 在VC6.0下編譯后的窗口界面</p>
45、;<p> 2.5 C語言結(jié)構體</p><p> ⒈ 結(jié)構體說明和結(jié)構體變量定義</p><p> 在C語言中,結(jié)構體也是一種數(shù)據(jù)類型,可以使用結(jié)構體變量,因此像其它類型的變量一樣,在使用結(jié)構體變量時要先對其定義。</p><p> 定義結(jié)構體變量的一般格式為:</p><p> struct 結(jié)構體名</p&
46、gt;<p><b> { </b></p><p><b> 類型 變量名;</b></p><p><b> 類型 變量名;</b></p><p><b> … </b></p><p><b> }
47、結(jié)構體變量;</b></p><p> 結(jié)構體名是結(jié)構體的標識符不是變量名。</p><p> 類型有五種數(shù)據(jù)類型(整型、浮點型、字符型、指針型和無值型)。 </p><p> 構成結(jié)構體的每一個類型變量稱為結(jié)構體成員,它象數(shù)組的元素一樣,但數(shù)組中元素是以下標來訪問的,而結(jié)構體是按變量名字來訪問成員的。 </p><p>
48、; ⒉ 結(jié)構體變量的使用</p><p> 結(jié)構體是一個新的數(shù)據(jù)類型,因此結(jié)構體變量也可以像其它類型的變量一樣賦值、運算,不同的是結(jié)構體變量以成員作為基本變量。</p><p> 結(jié)構體成員的表示方式為: </p><p> 結(jié)構體變量.成員名 </p><p> 如果將“結(jié)構體變量.成員名”看成一個整體,則這個整體的數(shù)據(jù)類型與結(jié)構
49、體中該成員的數(shù)據(jù)類型相同,這樣就可像前面所講的變量那樣使用。</p><p> ?、?結(jié)構體數(shù)組和結(jié)構體指針 </p><p> 結(jié)構體是一種新的數(shù)據(jù)類型,同樣可以有結(jié)構體數(shù)組和結(jié)構體指針。</p><p> ?、沤Y(jié)構體數(shù)組就是具有相同結(jié)構類型的變量集合。</p><p> ?、平Y(jié)構體指針是指向結(jié)構體的指針。它由一個加在結(jié)構體變量名前的“*
50、” 操作符來定義。</p><p> 第3章 系統(tǒng)分析與設計</p><p> 3.1 系統(tǒng)功能描述</p><p> 本程序主要完成的是學生成績的管理功能,除了主函數(shù)以外有13個附屬函數(shù),整個程序分為六大功能,分別為學生成績查詢、成績錄入、成績刪除、掛科查詢、平均分總排名次序及退出。分別由函數(shù)實現(xiàn),功能結(jié)構圖如圖3-1所示。</p><p
51、> 圖3-1 功能結(jié)構圖</p><p><b> 3.2 功能設計</b></p><p> 1.主函數(shù) </p><p> int main() </p><p> { fib_
52、00();</p><p> return 0;} </p><p> 設計流程如圖3-2所示。 </p><p> 圖3-2 int main()主函數(shù)流程圖</p><p><b> 2.主要功能函數(shù)</b></p>&
53、lt;p><b> ⑴成績查詢功能函數(shù)</b></p><p> void fib_1(void) </p><p><b> {</b></p><p> int i=0; </p><p>
54、<b> int j=0;</b></p><p><b> int N=0;</b></p><p> long number;</p><p> float sum[SIZE];</p><p> FILE *fp1;</p><p> fp1=fopen(&
55、quot;stu.dat","rb");</p><p> //fp2=fopen("newwrite","rb");</p><p> fseek(fp1,0,2);</p><p> x=ftell(fp1);</p><p> x=x/sizeof(struc
56、t student);</p><p> rewind(fp1); </p><p> printf("請輸入您要查詢的學生學號:\n");</p><p> scanf("%d",&number);</p><p> for(i=0;i<x;i++)</p>&
57、lt;p><b> {</b></p><p> fread(&stud[i],sizeof(struct student),1,fp1);</p><p> if(stud[i].num==number)</p><p> {sum[i]=stud[i].score[0]+stud[i].score[1]+</p&
58、gt;<p> stud[i].score[2]+stud[i].score[3]+stud[i].score[4];</p><p> stud[i].ave=sum[i]/5;</p><p> printf(" 姓名 學號 思想品德與法律基礎 </p><p> 大學外語 高等數(shù)學 程序設計 嵌入式導論
59、 平均分\n");</p><p> printf("%s %d %d %d %d %d %d%.1f\n",</p><p> stud[i].name,stud[i].num,stud[i].score[0],stud[i].score[1],</p><p> st
60、ud[i].score[2],stud[i].score[3],stud[i].score[4],stud[i].ave);</p><p><b> break;</b></p><p><b> }</b></p><p><b> }</b></p><p><
61、;b> if(i==x)</b></p><p> { printf("您查找的成員不存在\n");</p><p> fclose(fp1);</p><p><b> }}</b></p><p> 設計流程如圖3-3所示。</p><p>
62、 圖3-3成績查詢功能函數(shù)</p><p><b> ⑵成績錄入功能函數(shù)</b></p><p> void fib_2(void)</p><p><b> {</b></p><p><b> int i=0;</b></p><p> l
63、ong number;</p><p><b> int many;</b></p><p> printf("請輸入您將要錄入成績的成員個數(shù):\n");</p><p> scanf("%d",&many);</p><p> printf("請開始錄入
64、成員信息及其成績\n");</p><p> for(i=x;i<x+many;i++)</p><p> scanf("%s%d%d%d%d%d%d",stud[i].name,</p><p> &stud[i].num,&stud[i].score[0],&stud[i].score[1],&l
65、t;/p><p> &stud[i].score[2],&stud[i].score[3],&stud[i].score[4]);</p><p> save1(many);</p><p> printf("錄入完畢\n");</p><p><b> }</b><
66、/p><p> 設計流程如圖3-4所示。</p><p> 圖3-4成績查詢功能函數(shù)</p><p><b> ⑶成績刪除功能函數(shù)</b></p><p> void fib_3(void)</p><p><b> {</b></p><p>
67、<b> int i=0;</b></p><p><b> int j=0;</b></p><p><b> int N=0;</b></p><p> long number;</p><p> float sum[SIZE];</p><p
68、> FILE *fp1;</p><p> fp1=fopen("stu.dat","rb+");</p><p> printf("請輸入您要刪除的學生學號:\n");</p><p> scanf("%d",&number);</p><p&
69、gt; for(i=0;i<SIZE;i++)</p><p> fread(&stud[i],sizeof(struct student),1,fp1);</p><p> fseek(fp1,0,2);</p><p> x=ftell(fp1);</p><p> x=x/sizeof(struct studen
70、t);</p><p> rewind(fp1); </p><p> fclose(fp1);</p><p> for(i=0;i<x;i++)</p><p><b> { </b></p><p> if(stud[i].num==number)</p>
71、<p><b> {</b></p><p> for(j=i;j<SIZE;j++)</p><p><b> { </b></p><p> strcpy(stud[j].name,stud[j+1].name);</p><p> stud[j].ave=stud
72、[j+1].ave;</p><p> stud[j].num=stud[j+1].num;</p><p> stud[j].score[0]=stud[j+1].score[0];</p><p> stud[j].score[1]=stud[j+1].score[1];</p><p> stud[j].score[2]=stu
73、d[j+1].score[2];</p><p> stud[j].score[3]=stud[j+1].score[3];</p><p> stud[j].score[4]=stud[j+1].score[4];}}</p><p><b> }</b></p><p><b> size=x;&l
74、t;/b></p><p><b> size--;</b></p><p> printf("刪除操作成功\n");</p><p> fp1=fopen("stu.dat","w+");</p><p> for(i=0;i<size;i
75、++)</p><p> {fwrite(&stud[i],sizeof(struct student),1,fp1);}</p><p> fclose(fp1);</p><p><b> }</b></p><p> 設計流程如圖3-5所示。</p><p><b>
76、; ?、葤炜撇樵児δ芎瘮?shù)</b></p><p> void fib_4(void)</p><p><b> {</b></p><p><b> int d;</b></p><p><b> fib_0();</b></p><p&
77、gt;<b> for(;;)</b></p><p> 圖3-5成績刪除功能函數(shù)</p><p><b> {</b></p><p> printf("***********1.繼續(xù)掛科其他查詢************\n");</p><p> printf(&q
78、uot;***********2.返回上一層菜單*************\n");</p><p> printf("請輸入功能代碼\n");</p><p> scanf("%d",&d);</p><p><b> if(d==1)</b></p><p&
79、gt;<b> fib_0();</b></p><p><b> if(d==2)</b></p><p><b> fib_11();</b></p><p><b> }}</b></p><p> 設計流程如圖3-6所示。</p&g
80、t;<p> 圖3-6掛科查詢功能函數(shù)</p><p> ?、善骄挚偱琶涡蚬δ芎瘮?shù)</p><p> void fib_5(void)</p><p> {int i=0;</p><p><b> int j=0;</b></p><p> long number;
81、</p><p> float sum[SIZE];</p><p> FILE *fp1;</p><p> fp1=fopen("stu.dat","rb");</p><p> fseek(fp1,0,2);</p><p> x=ftell(fp1);</
82、p><p> x=x/sizeof(struct student);</p><p> rewind(fp1); </p><p> for(i=0;i<x;i++)</p><p><b> {</b></p><p> fread(&stud[i],sizeof(str
83、uct student),1,fp1);</p><p> sum[i]=stud[i].score[0]+stud[i].score[1]+</p><p> stud[i].score[2]+stud[i].score[3]+stud[i].score[4];</p><p> stud[i].ave=sum[i]/5; &
84、lt;/p><p><b> }</b></p><p> for(j=0;j<x-1;j++)</p><p><b> {</b></p><p> fread(&stud[i],sizeof(struct student),1,fp1);</p><p&g
85、t; for(i=0;i<x-1;i++)</p><p> if(stud[i].ave<stud[i+1].ave)</p><p><b> {</b></p><p> {strcpy(stud2.name,stud[i].name);</p><p> stud2.num=stud[i].
86、num;</p><p> stud2.score[0]=stud[i].score[0];</p><p> stud2.score[1]=stud[i].score[1];</p><p> stud2.score[2]=stud[i].score[2];</p><p> stud2.score[3]=stud[i].score
87、[3];</p><p> stud2.score[4]=stud[i].score[4];</p><p> stud2.ave=stud[i].ave;</p><p><b> }</b></p><p> stud[i]=stud[i+1];</p><p> {strcpy(s
88、tud[i+1].name,stud2.name);</p><p> stud[i+1].num=stud2.num;</p><p> stud[i+1].score[0]=stud2.score[0];</p><p> stud[i+1].score[1]=stud2.score[1];</p><p> stud[i+1].
89、score[2]=stud2.score[2];</p><p> stud[i+1].score[3]=stud2.score[3];</p><p> stud[i+1].score[4]=stud2.score[4];</p><p> stud[i+1].ave=stud2.ave;}</p><p><b> }}
90、</b></p><p> printf(" 名次 姓名 學號 思想品德與法律基礎 </p><p> 大學外語 高等數(shù)學 程序設計 嵌入式導論 平均分\n");</p><p> for(i=0;i<x;i++)</p><p> { printf("%3d
91、 %6s %d %d %d %d %d %d %.1f\n",</p><p> i+1,stud[i].name,stud[i].num,stud[i].score[0],</p><p> stud[i].score[1],stud[i].score[2],stud[i].score[3],stud[i].score[4],
92、stud[i].ave);}</p><p> fclose(fp1);}</p><p> 設計流程如圖3-7所示。</p><p> 圖3-7平均分總排名次序功能函數(shù)</p><p><b> ?、释顺鱿到y(tǒng)功能函數(shù)</b></p><p> void quit(void) </p
93、><p><b> {</b></p><p> printf("**********按任意鍵退出系統(tǒng)************\n");</p><p><b> exit(0);</b></p><p><b> }</b></p>&l
94、t;p> 設計流程如圖3-8所示。</p><p> 圖3-8退出系統(tǒng)功能函數(shù)</p><p> ?、溯敵鲋鞑藛雾撁婧瘮?shù)</p><p> void fib_00(void)</p><p><b> {</b></p><p> system("Color f5&quo
95、t;);</p><p> int a; FILE *fp1;</p><p> printstar();</p><p> system("cls");</p><p> printf(" \\\|///\n");</p>&l
96、t;p> printf(" \\\ - - //\n");</p><p> printf(" ( @ @ )\n");</p><p> printf("*********************oOOo*(_)*oOOo*****
97、*********************\n");</p><p> printf("|| 歡迎登錄系統(tǒng)本111成績管理系統(tǒng) ||\n");</p><p> printf("|| 功能選項: |
98、|\n");</p><p> printf("|| 1成績查詢 2成績錄入 ||\n");</p><p> printf("|| 3成績刪除 4掛科查詢 ||\n");</p>
99、;<p> printf("|| 5平均分總排名次序 6退出系統(tǒng) ||\n");</p><p> printf("|| Oooo ||\n");</p><p> pr
100、intf("***********************oooO**( )****************************\n");</p><p> printf(" ( ) ) /\n");</p><p> printf(" \
101、\ ( (_/\n");</p><p> printf(" \\_) \n");</p><p> printstar();</p><p> printf("請輸入您選擇的功能選項代號并用回車結(jié)束:\n");</p><p>
102、 scanf("%d",&a);</p><p> while(a<=6)</p><p><b> {</b></p><p><b> if(a==1)</b></p><p> { fib_1(); fib_11(); }<
103、;/p><p><b> if(a==2)</b></p><p> { fib_2(); fib_11(); }</p><p><b> if(a==3)</b></p><p> { fib_3(); fib_11(); }</p&g
104、t;<p><b> if(a==4)</b></p><p> { fib_4(); fib_11(); }</p><p><b> if(a==5)</b></p><p> { fib_5(); fib_11(); }</p>&l
105、t;p><b> if(a==6)</b></p><p><b> { </b></p><p><b> quit();</b></p><p><b> }</b></p><p><b> }</b&g
106、t;</p><p><b> }</b></p><p> 設計流程如圖3-9所示。</p><p><b> ⑻返回主菜單函數(shù)</b></p><p> void fib_11(void)</p><p><b> { </b></
107、p><p><b> int b;</b></p><p> printf("**********1返回主頁面***********\n");</p><p> printf("**********2退出該系統(tǒng)***********\n");</p><p> printf(&
108、quot;請再此輸入選擇代號:\n");</p><p> scanf("%d",&b);</p><p><b> if(b==1)</b></p><p><b> fib_00();</b></p><p> else quit();</p&
109、gt;<p><b> }</b></p><p> 設計流程如圖3-10所示。</p><p> 3主要功能函數(shù)的附屬函數(shù)</p><p><b> ?、泡敵龇指粜泻瘮?shù)</b></p><p> void printstar()</p><p><
110、;b> {</b></p><p> printf("**************************************************************\n");</p><p><b> }</b></p><p> 設計流程如圖3-11所示。</p>&l
111、t;p> 圖3-9輸出主菜單頁面函數(shù)</p><p> 圖3-10 返回主菜單函數(shù)</p><p> 圖3-11輸出分隔行函數(shù)</p><p> ?、葡蛭募飳懶畔⒌膬Υ婧瘮?shù)</p><p> void save1(int many)</p><p><b> {</b></
112、p><p><b> FILE *fp;</b></p><p><b> int i;</b></p><p> if((fp=fopen("stu.dat","ab"))==NULL)</p><p> {printf("The file c
113、an not open\n");</p><p><b> return;</b></p><p><b> }</b></p><p> for(i=x;i<x+many;i++)</p><p> if(fwrite(&stud[i],sizeof(struct
114、student1),1,fp)!=1)</p><p> {printf("file write error\n");</p><p><b> return ;</b></p><p><b> }</b></p><p> fclose(fp);</p>
115、<p><b> }</b></p><p> 設計流程如圖3-12所示。</p><p> ?、菕炜撇樵児δ芎瘮?shù)中調(diào)用的附屬函數(shù)</p><p> void fib_0(void)</p><p><b> {</b></p><p> system(
116、"cls");</p><p><b> int i=0;</b></p><p> int j=0; </p><p><b> int N=0;</b></p><p><b> int c;</b></p><p>&
117、lt;b> int d;</b></p><p> long number;</p><p> float sum[SIZE];</p><p> FILE *fp1;</p><p> fp1=fopen("stu.dat","rb");
118、 圖3-12向文件里寫信息的儲存函數(shù)</p><p> fseek(fp1,0,2);</p><p> x=ftell(fp1);</p><p> x=x/sizeof(struct student);</p><p> rewind(fp1); </p><p> printf("****
119、**本學期期末系統(tǒng)本111共5科考試科目如下*******\n");</p><p> printf(" 1.查詢思想品德與法律基礎掛科的同學\n");</p><p> printf(" 2.查詢大學外語掛科的同學:\n");</p><p> printf(" 3.查
120、詢高等數(shù)學掛科的同學:\n");</p><p> printf(" 4.查詢程序設計掛科的同學:\n");</p><p> printf(" 5.查詢嵌入式導論掛科的同學:\n");</p><p> printf(" 6.查詢掛科大于3科有警告危險的同學:\n&qu
121、ot;);</p><p> printf("******請輸入要查詢的功能選項******\n");</p><p> scanf("%d",&c);</p><p><b> if(c==1)</b></p><p><b> {</b>&
122、lt;/p><p> printstar();</p><p> printf("本學期期末系統(tǒng)本111共5科考試科目如下:\n");</p><p> printf(" 姓名 學號 思想品德與法律基礎\n");</p><p> for(i=0;i<x;i++)</
123、p><p><b> {</b></p><p> fread(&stud[i],sizeof(struct student),1,fp1);</p><p> if(stud[i].score[0]<60)</p><p> printf("%6s %d %d\n&quo
124、t;,</p><p> stud[i].name,stud[i].num,stud[i].score[0]);</p><p><b> }</b></p><p><b> }</b></p><p><b> if(c==2)</b></p><
125、;p><b> {</b></p><p> printstar();</p><p> printf("大學外語掛科的同學成績?nèi)缦?\n");</p><p> printf(" 姓名 學號 大學外語\n");</p><p> for(i=0
126、;i<x;i++)</p><p><b> {</b></p><p> fread(&stud[i],sizeof(struct student),1,fp1);</p><p> if(stud[i].score[1]<60)</p><p> printf("%6s %
127、d %d\n",</p><p> stud[i].name,stud[i].num,stud[i].score[1]);</p><p><b> }</b></p><p><b> }</b></p><p><b> if(c==3)</b&
128、gt;</p><p><b> {</b></p><p> printstar();</p><p> printf("高等數(shù)學掛科的同學成績?nèi)缦?\n");</p><p> printf(" 姓名 學號 高等數(shù)學\n");</p>
129、<p> for(i=0;i<x;i++)</p><p><b> {</b></p><p> fread(&stud[i],sizeof(struct student),1,fp1);</p><p> if(stud[i].score[2]<60)</p><p> pri
130、ntf("%6s %d %d\n",</p><p> stud[i].name,stud[i].num,stud[i].score[2]);</p><p><b> }</b></p><p><b> }</b></p><p><b> i
131、f(c==4)</b></p><p><b> {</b></p><p> printstar();</p><p> printf("程序設計掛科的同學成績?nèi)缦?\n");</p><p> printf(" 姓名 學號 程序設計\n"
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- c語言課程設計--- 學生成績管理
- c語言課程設計--學生成績管理系統(tǒng)
- c語言課程設計---學生成績管理系統(tǒng)
- c語言課程設計學生成績管理系統(tǒng)
- c語言課程設計-學生成績管理系統(tǒng)
- c語言課程設計----學生成績管理系統(tǒng)
- c語言課程設計學生成績管理系統(tǒng)
- c語言課程設計學生成績管理系統(tǒng)
- c語言課程設計-學生成績統(tǒng)計管理
- c語言課程設計-學生成績管理系統(tǒng)
- c語言課程設計-學生成績管理系統(tǒng)
- 學生成績管理系統(tǒng)--c語言課程設計
- c語言課程設計--學生成績管理系統(tǒng)
- c語言課程設計---學生成績管理1
- c語言課程設計--學生成績管理系統(tǒng)
- c語言課程設計---學生成績管理系統(tǒng)
- c語言課程設計-學生成績管理系統(tǒng)
- c語言課程設計———學生成績管理系統(tǒng)
- c語言課程設計學生成績管理系統(tǒng)
- c語言課程設計---學生成績管理系統(tǒng)
評論
0/150
提交評論