版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、<p> 課 程 設(shè) 計 報 告</p><p> 課程名稱 C語言程序設(shè)計 </p><p> 課題名稱 班級成績管理系統(tǒng) </p><p> 專 業(yè) 建筑環(huán)境與設(shè)備工程 </p><p> 班 級
2、 </p><p> 學(xué) 號 </p><p> 姓 名 </p><p> 指導(dǎo)教師 </p><p> 2013年 6 月 20 日</p><p><b&
3、gt; 目錄</b></p><p><b> 一、引言1</b></p><p><b> 二、總體設(shè)計2</b></p><p><b> 三、詳細設(shè)計4</b></p><p> 四、問題分析及總結(jié)13</p><p>
4、;<b> 五、附件15</b></p><p> 一、設(shè)計內(nèi)容與設(shè)計要求</p><p> 1. 設(shè)計內(nèi)容:班級成績管理系統(tǒng)設(shè)計</p><p><b> 涉及的知識點:</b></p><p> ?、僬莆詹⑹炀氝\用C語言的基本數(shù)據(jù)類型與各種表達式,程序的流程控制語句;</p>
5、;<p> ②掌握數(shù)組的基本概念。熟練掌握一維數(shù)組、二維數(shù)組的應(yīng)用、掌握字符數(shù)組</p><p> 與字符串的關(guān)系以及字符串的簡單處理。</p><p> ③掌握函數(shù)的定義,函數(shù)的返回值,函數(shù)的調(diào)用,函數(shù)的形式參數(shù)和實際參數(shù)之間的關(guān)系;掌握變量的作用域與生存期,了解函數(shù)的作用域。</p><p> ?、苷莆战Y(jié)構(gòu)體的概念,結(jié)構(gòu)體類型的定義,結(jié)構(gòu)體變
6、量的定義和初始化,結(jié)構(gòu)體成員的表示,結(jié)構(gòu)體變量的賦值含義,結(jié)構(gòu)體與指針、函數(shù)的關(guān)系。</p><p> ?、菡莆瘴募⑽募愋椭羔樀幕靖拍?,熟練掌握文件的打開與關(guān)閉以及文件的建立、讀寫等有關(guān)操作。</p><p><b> 2.設(shè)計要求:</b></p><p> 用C語言實現(xiàn)系統(tǒng);利用結(jié)構(gòu)體數(shù)組實現(xiàn)班級成績的數(shù)據(jù)結(jié)構(gòu)設(shè)計;系統(tǒng)的各個功能
7、模塊要求用函數(shù)的形式實現(xiàn);應(yīng)提供一個界面來調(diào)用各個功能,調(diào)用界面和各個功能的操作界面應(yīng)盡可能清晰美觀;各項顯示數(shù)據(jù)均要求以表格的形式輸出;在各功能子模塊中應(yīng)設(shè)計相應(yīng)的二級菜單。</p><p> 2) 建立一個班級學(xué)生成績數(shù)據(jù)庫,文件名為bjcjk.txt,并從該文件中讀取數(shù)據(jù);</p><p> 3) 班級成績管理系統(tǒng)應(yīng)能提供以下功能:</p><p> (
8、1)主菜單界面設(shè)計。通過提示用戶輸入一個數(shù)字選項,調(diào)用相應(yīng)的功能函數(shù)。</p><p> (2)學(xué)生成績顯示:完成班級全部學(xué)生成績的顯示,顯示時按表格的形式,且應(yīng)有表頭;</p><p> (3)學(xué)生成績追加:完成新增一個(或多個)學(xué)生的成績記錄,要求在追加過程中有相應(yīng)的提示信息,完成追加后能重新計算學(xué)生平均成績并顯示;</p><p> (4)學(xué)生成績修改:
9、要求能按學(xué)號和按姓名兩種定位方式,且可以按用戶要求修改記錄中除學(xué)號和姓名以外的指定內(nèi)容,并重新計算學(xué)生的平均成績;</p><p> (5)學(xué)生成績信息的查詢;要示系統(tǒng)能按學(xué)號、按姓名查詢以及能查總分在某一指定范圍內(nèi)的學(xué)生信息,且能顯示符合條件的所的記錄,若所需查詢的信息不存在時應(yīng)有相應(yīng)的提示信息。</p><p> (6)學(xué)生成績信息的刪除;要求可按指定的學(xué)號和指定的姓名兩種定位方式
10、刪除學(xué)生的成績記錄。</p><p> (7)要求在刪除模塊、修改模塊和查詢模塊中若找不到所需的記錄時,系統(tǒng)設(shè)計中應(yīng)有一定的提示信息。</p><p> (8)成績排序:按學(xué)生平均成績進行排序;</p><p><b> (9)成績統(tǒng)計:</b></p><p> ?、俳y(tǒng)計并以表格的形式顯示所有課程的平均分;<
11、;/p><p> ?、诮y(tǒng)計并顯示選定的某門課程的平均分以及超過該平均分的人數(shù),同時能將超過該平均分的學(xué)生記錄以表格的形式顯示出來。</p><p><b> 4) 說明:</b></p><p> 要求將修改后的數(shù)據(jù)寫入到一個新的數(shù)據(jù)文件nwejck.txt中。</p><p> 對系統(tǒng)有興趣的同學(xué)可以在實現(xiàn)基本要求的
12、基礎(chǔ)上,完善系統(tǒng)的其它功能。</p><p> 5) 班級成績管理系統(tǒng)采用一個結(jié)構(gòu)體數(shù)組,學(xué)生成績數(shù)據(jù)庫結(jié)構(gòu)如下:</p><p> int xh /*學(xué)號*/</p><p> char name[10] /*姓名*/</p><p> double yy
13、 /*英語*/</p><p> double mat /*數(shù)學(xué)*/</p><p> double jsj /*計算機*/</p><p> double wl /*物理*/</p><p> double zf /*總分*/&l
14、t;/p><p><b> 6) 要求:</b></p><p> 要求每個學(xué)生必須獨立思考,認(rèn)真并按時完成本課程設(shè)計所包含的所有內(nèi)容;</p><p> 要求學(xué)生必須按照課程設(shè)計報告的完整格式說明設(shè)計內(nèi)容,設(shè)計任務(wù)分析過程和算法,給出程序流程圖和全部源程序;</p><p> 設(shè)計報告的完整格式應(yīng)包括以下部分的內(nèi)容
15、:</p><p><b> 系統(tǒng)設(shè)計總體思路;</b></p><p><b> 系統(tǒng)的主要功能;</b></p><p> 系統(tǒng)功能模塊的劃分(要求畫出總體模塊框圖);</p><p> 主要功能的實現(xiàn)和各個程序模塊說明(每個功能模塊的框圖統(tǒng)主模塊的流程圖,各個功能模塊至少要有一個主要的
16、流程圖);</p><p> 程序調(diào)試過程及各模塊調(diào)試中相應(yīng)的部分截圖</p><p><b> 7)成績評定</b></p><p> ①系統(tǒng)設(shè)計方案是否合理;②程序設(shè)計是否正確;③調(diào)試結(jié)果;④設(shè)計說明書的質(zhì)量高低;⑤答辯時回答問題情況;⑥課程設(shè)計周表現(xiàn)情況;總評成績記入“課程設(shè)計成績評分表”。</p><p>
17、<b> 二、進度安排</b></p><p><b> 上課時間另外安排。</b></p><p> 附:課程設(shè)計報告排版、打印和裝訂要求</p><p> 1. 課程設(shè)計報告裝訂順序:封面、任務(wù)書、目錄、正文、附件、評分表。按A4大小的紙張排版和打印。 </p><p> 2. 設(shè)計
18、報告的頁碼從目錄之后開始使用;</p><p> 3. 正文的格式:一級標(biāo)題用3號黑體,二級標(biāo)題用四號宋體加粗,正文用小四號宋體;行距為22磅。正文中程序清單(英文)用英文字體Times New Roman,單倍行間距。 </p><p> 4. 正文的內(nèi)容:一、課題的主要功能;二、課題的功能模塊的劃分(要求畫出模塊圖);三、主要功能的實現(xiàn)(至少要有一個主要模塊的流程圖);四、程序調(diào)
19、試(各模塊至少有一個程序調(diào)試的截圖);五、總結(jié)(不少于500字);六、參考文獻;七、附件(包含所有程序的原代碼,且程序中應(yīng)有必要的注釋)。八.正文總字?jǐn)?shù)要求在5000字以上(不含程序原代碼)。</p><p> 5.設(shè)計報告中任務(wù)書和評分表不需重新排版。</p><p><b> 一、引言</b></p><p><b> 1.
20、1前言</b></p><p> C語言課程設(shè)計是對學(xué)生的一種全面綜合訓(xùn)練,它包括問題分析,總體結(jié)構(gòu)設(shè)計,用戶界面設(shè)計,程序設(shè)計基本技能和技巧的培養(yǎng)。是與課堂聽講、自學(xué)和練習(xí)相結(jié)合的必不可少的一個環(huán)節(jié)。課程設(shè)計的課題比平時的習(xí)題復(fù)雜得多,也更接近實際。全面熟悉、掌握C語言基本知識,掌握C程序設(shè)計中的順序、分支、循環(huán)三種結(jié)構(gòu)及數(shù)組、函數(shù)和C語言基本圖形編程等方法,把編程和實際結(jié)合起來,熟悉編制和調(diào)試程
21、序的技巧,掌握分析結(jié)果的若干有效方法,進一步提高上機動手能力,培養(yǎng)使用計算機解決實際問題的能力,養(yǎng)成提供文檔資料的習(xí)慣和規(guī)范編程的思想,為以后在專業(yè)課程中應(yīng)用計算機系統(tǒng)解決計算、分析、實驗和設(shè)計等學(xué)習(xí)環(huán)節(jié)打下較扎實的基礎(chǔ)。</p><p><b> 1.2設(shè)計目的</b></p><p> 隨著電腦技術(shù)的發(fā)展越來越快,管理系統(tǒng)得到人們廣泛的應(yīng)用。本課題中編寫班級成
22、績管理系統(tǒng)主要是為了方便我們能更加高效快捷地管理學(xué)生的各項成績信息,能夠?qū)W(xué)生成績進行追加、修改、刪除等操作。并能對輸入的數(shù)據(jù)進行平均分、總分的計算以及總分的排序,進而清楚明朗地顯示出來。</p><p><b> 二、總體設(shè)計</b></p><p><b> 2.1主要功能</b></p><p> 主要實現(xiàn)對學(xué)
23、生成績信息實現(xiàn)成績的顯示,成績的追加,成績的修改,成績的查詢,成績的刪除,成績的排序和統(tǒng)計等功能。</p><p> 班級成績管理系統(tǒng)具體提供以下功能:</p><p> a、成績顯示:完成全班同學(xué)全部學(xué)生成績的顯示,以表格形式顯示出來,并帶有表頭。</p><p> b、成績追加:新增學(xué)生成績記錄,在追加過程中有相應(yīng)的提示信息并實現(xiàn)連續(xù)追加的功能。追加成功的
24、成績能重新計算學(xué)生的平均成績并顯示。</p><p> c、成績修改:實現(xiàn)按學(xué)號修改和按姓名修改兩種修改方式,并可以對指定的學(xué)生的各科成績進行修改,修改過程中有相應(yīng)的提示信息。修改后能重新計算學(xué)生的平均成績。</p><p> d、成績刪除:對指定的學(xué)號或者指定的姓名進行定位刪除,并有相應(yīng)的提示信息。</p><p> e、成績查詢:對指定的學(xué)號或指定的姓名進
25、行定位查詢,并能顯示出符合條件的查詢結(jié)果。查詢的信息不存在時有相應(yīng)的提示信息。</p><p> f、成績排名:按學(xué)生平均成績進行排序,并以表格形式顯示。</p><p> g、成績統(tǒng)計:以表格的形式顯示所有課程的平均分,并顯示選定的某門課程的平均分以及超過該平均分的人數(shù),同時將超過該平均分的學(xué)生記錄以表格的形式顯示出來。</p><p><b>
26、2.2功能模塊劃分</b></p><p> ?。?)本程序由八個模塊構(gòu)成,其中主模塊是由系統(tǒng)函數(shù)搭建而成,其重要功能是顯示出功能主菜單,由用戶作出選擇進入子菜單。在子菜單中操作完畢后,能夠準(zhǔn)確返回到功能主菜單。</p><p> 系統(tǒng)主要模塊流程圖如下:</p><p><b> ?。?)模塊說明</b></p>
27、<p> 主界面 main() 用戶選擇界面</p><p> 顯示模塊 Disp() 顯示所有學(xué)生的成績信息</p><p> 追加模塊 Appe() 添加學(xué)生成績信息</p><p> 修改模塊 Mo
28、di() 修改學(xué)生某項成績信息</p><p> 刪除模塊 Dele() 刪除學(xué)生某項成績信息</p><p> 查詢模塊 Query() 查詢學(xué)生成績信息</p><p> 排序模塊 Sort() 按成績總分排
29、序</p><p> 統(tǒng)計模塊 Total() 統(tǒng)計各科目平均分信息</p><p> 退出模塊 Quit() 退出系統(tǒng)并保存信息</p><p><b> 三、詳細設(shè)計</b></p><p> 3.1主要功能的實現(xiàn)(下面以追加模
30、塊和修改模塊為例)</p><p> (1)追加模塊流程圖</p><p><b> 修改模塊流程圖</b></p><p><b> 3.2程序調(diào)試</b></p><p> 各模塊運行步驟及界面</p><p> 3.2.1功能主菜單選擇界面</p>
31、<p> 3.2.2顯示模塊(輸入“1”進入全班成績顯示菜單)</p><p> 3.2.2顯示模塊截圖</p><p> 3.2.3追加模塊(在功能主菜單輸入“2”進入成績追加界面,這里輸入一組追加信息后,系統(tǒng)會提示是否繼續(xù)追加,從而實現(xiàn)了“連續(xù)追加”的功能)</p><p> 3.2.4追加模塊截圖</p><p>
32、 (注:這里的總分輸入值為0,因為在該程序中,總分會計算出來)</p><p> 3.2.4修改模塊(在功能主菜單輸入“4”進入成績修改菜單,這里可以根據(jù)學(xué)號和姓名查找到對應(yīng)學(xué)生成績信息進行修改。下面以按姓名修改為例,對姓名為“ww”的學(xué)生的計算機成績進行修改后,系統(tǒng)還能提示是否對該生的其他科目成績進行繼續(xù)修改,實現(xiàn)了“一人多項”的修改功能。修改完系統(tǒng)會退到所有學(xué)生成績菜單,可以清楚地看到修改后的學(xué)生的成績信
33、息)</p><p> 3.2.4修改模塊截圖</p><p> 3.2.5刪除模塊(在功能主菜單輸入“4”進入刪除方式菜單,此功能可以對學(xué)生成績信息進行按學(xué)號刪除和按姓名刪除兩種刪除方式。下面以對姓名為“ww”的學(xué)生成績進行刪除,輸入該生姓名后,系統(tǒng)能顯示該生的各項成績信息,并提示是否確認(rèn)刪除。刪除后,系統(tǒng)還能提示是否繼續(xù)進行刪除操作。這里的刪除模塊實現(xiàn)了“多人多項”的刪除功能,操作
34、使用起來十分便利高效。如果不繼續(xù),選擇“2”能退出到刪除方式菜單,進行接下來的刪除操作)</p><p> 3.2.5刪除模塊截圖</p><p> 3.2.6查詢模塊(在功能主菜單輸入“5”系統(tǒng)進入成績查詢菜單。此功能可以對學(xué)生成績信息按學(xué)號查詢和按姓名查詢,以下以按學(xué)號查詢?yōu)槔?。輸入學(xué)號為“201310”的學(xué)生學(xué)號,系統(tǒng)以表格的形式顯示出該生的成績信息。輸入“1”能返回到查詢菜單繼
35、續(xù)查詢,輸入任意鍵系統(tǒng)退出到主菜單界面)</p><p> 3.2.6查詢模塊截圖</p><p> 3.2.7排序模塊(在功能主菜單輸入“6”進入成績排名的界面,成績排名以總分的高低由高向低以表格的形式顯示出來)</p><p> 3.2.7排序詢模塊截圖</p><p> 3.2.8統(tǒng)計模塊(在功能主菜單輸入“7”進入平均分統(tǒng)計菜
36、單界面,菜單顯示:1、所有課程平均分2、單一課程平均分3、退出。以下輸入“2”進入單一課程平均分界面,菜單界面顯示各科目的選擇列表,輸入“2”查詢數(shù)學(xué)成績的平均分,結(jié)果以表格形式輸出超過該科平均分的學(xué)生信息。查詢完數(shù)學(xué)這項后,還能繼續(xù)對其他科目的平均分統(tǒng)計信息進行查詢。實現(xiàn)了“多次循環(huán)”的功能)</p><p> 3.2.8統(tǒng)計模塊截圖</p><p> 3.2.9退出模塊(在完成對該
37、系統(tǒng)的所有操作后,在功能主菜單界面輸入“8”進入退出界面,如下圖:鍵入任意鍵即可退出該系統(tǒng))</p><p> 3.2.9退出模塊截圖</p><p><b> 四、問題分析及總結(jié)</b></p><p><b> 4.1問題分析</b></p><p> 從接到這個課題開始,我們就開始了為
38、期一周的C語言課程設(shè)計。首先是針對本次課題設(shè)計進行建庫工作,在開始建庫的過程中,就遇到了一點困難。建庫的時候一不留神就會使輸入的數(shù)據(jù)庫前功盡棄,為此嘗試了幾次,最后耐心地一項一項輸才建好庫。針對這個課題,老師給我們分了7人一組的小組進行合作,我在組中主要負責(zé)了修改模塊程序的編寫和整個系統(tǒng)的美化工作。在調(diào)試過程中遇到了不少的錯誤、警告等信息,有時候因為一個符號的失誤導(dǎo)致程序的錯誤達到十幾個。在做完修改模塊后,個人覺得修改的方式還是不夠妥當(dāng)
39、,不能實現(xiàn)多想同時修改而只能一項一項進行修改保存。這是我個人覺得修改模塊存在的值得改進的地方。</p><p><b> 4.2總結(jié)</b></p><p> 學(xué)習(xí)C語言已經(jīng)半年了,半年來,從接觸C語言這門課程到后來逐漸了解這門課程的點滴知識,使我自己對計算機方面的知識有了更加深刻的認(rèn)識。作為一個電腦愛好者,平時和同學(xué)們在一起就喜歡討論java編程和電腦系統(tǒng)方面的
40、知識。從一年前拿到自己的第一臺智能手機刷機開始,漸漸了解一點關(guān)于安卓apk程序的開發(fā)及框架。每次的刷機都會使我自己對安卓系統(tǒng)有進一步的了解,同時,每次解決一個問題,都會有一點點小小的成就感。最近的半年,由于電腦的使用頻率的增加,注意力開始轉(zhuǎn)移到電腦系統(tǒng)的安裝以及自己學(xué)習(xí)封裝win7系統(tǒng)。由于對電腦軟件的使用和電腦知識了解較多,很多同學(xué)們電腦有問題都會找我?guī)兔?,這半年中,拆過許多筆記本電腦,用各種方法裝過很多臺電腦的系統(tǒng),還裝了幾臺機子的
41、內(nèi)存以及對電腦主板上灰塵的進行清理。這些在我看來簡單的操作給我自己帶來了許多快樂,同時也給別人帶去了方便。</p><p> 剛接觸到C語言這門課程時就感覺到了它的難度,但通過漸漸的學(xué)習(xí),我認(rèn)識到了它的重要性,更認(rèn)識到這是一種能力的培養(yǎng)。經(jīng)過幾次的上機操作,看到自己設(shè)計的程序能運行出正確的結(jié)果,開始對C語言產(chǎn)生了興趣。同時,學(xué)習(xí)的東西越來越復(fù)雜,遇到的困難也越來越多。</p><p>
42、 拿到我們組的課題時,心里十分的沒底,覺得很難不知道該如何下手。原因是自己沒把知識真正學(xué)到手,不知道自己學(xué)的東西能不能用得上。但學(xué)習(xí)就是要不斷的發(fā)現(xiàn)問題,不斷的解決問題的。于是,在試探中開始了建庫的工作。曾以為建庫是很簡單很容易的,但是開始建立的時候,就很容易出錯。通過幾次失敗,幾次重試,終于建好了庫文件。接下來的任務(wù)就是做好我負責(zé)的修改模塊,在做修改模塊的時候,問題的困難程度還是顯現(xiàn)出來了,調(diào)用函數(shù)的時候經(jīng)常出錯。程序運行起來不能對指
43、定的學(xué)生成績信息進行連續(xù)的修改,經(jīng)過同學(xué)們一起努力,慢慢改正了一點錯誤。上機調(diào)試的時候,在指導(dǎo)老師的幫助下逐漸將不能連續(xù)修改的問題解決。接著就遇到了程序運行完畢不能退出到主菜單的問題,在幾次嘗試修改語句后,終于知道了語句缺失的命令,最后完美地解決了這個問題。在解決問題的過程中,對于課堂上學(xué)的for,Switch和while語句還有結(jié)構(gòu)體的使用和指針的用法與作用都有了進一步的認(rèn)識。后來遇到問題的時候,查閱了課本知識,通過網(wǎng)絡(luò)查找到與之類似
44、的問題加以解決。</p><p> 經(jīng)過幾次上機調(diào)試后,其余同學(xué)已經(jīng)將剩下的模塊做得差不多了。但是我發(fā)現(xiàn)一個普遍的問題,那就是所有界面的布局都不夠合理。于是接下來的工作就把各模塊的顯示菜單進行美化,使界面看起來清晰美觀。這個看似簡單的工作做起來卻是很費時間,因為要想把顯示得居中,同時清晰明朗,得加入空格或者是加入“\t”,可能就因為一個空格對不齊就不能很好地顯示對應(yīng)的信息。另外我發(fā)現(xiàn)程序運行界面就是黑白相間,顯
45、得不夠美觀,于是在查閱資料后弄明白了,加入一個頭文件然后再主函數(shù)中加入顏色的調(diào)用命令。在網(wǎng)上查找了關(guān)于顏色的代碼,添加進去后運行界面顯得很漂亮,比以前黑白相間的界面更明朗美觀。</p><p> 一周的時間很快就過去了,C語言答辯安排就在老師安排下開始了。周五上午,我就在機房里完成了答辯?,F(xiàn)在覺得有點遺憾的就是,老師問我的問題因為緊張了一定就沒回答得很好,覺得有點失望。但是我的程序做得還是比較合理,因為在答辯運
46、行時,老師所要求的所有操作我的程序都能實現(xiàn),而且完美無瑕,這讓我覺得付出還是有回報的。</p><p> 經(jīng)過這次的C語言課程設(shè)計,我才真正了解到理論知識轉(zhuǎn)為實踐的重要性。其實從剛接到課題任務(wù)的時候,心里還是有點畏懼的,畢竟這個系統(tǒng)的源程序就有好幾頁,看著就頭痛。但是看著同學(xué)們一個個認(rèn)真的坐在電腦面前幾個小時一點點摸索,自己才開始冷靜地思考著問題。通過自己的努力,同學(xué)們的幫助和老師的指導(dǎo),終于完成了這個課題的設(shè)
47、計任務(wù)。同時,也使我對C語言課程有了更為深刻的認(rèn)識,讓我對自己有了信心。我想,若干年后,當(dāng)看到我做的這份報告,都會是一段美好的回憶。這段短短幾天的努力也會給我動力,給我在以后的學(xué)習(xí)中以鞭策,更加加深我對計算機知識的了解。</p><p><b> 五、附件</b></p><p><b> 源程序清單:</b></p><
48、p> #include <stdio.h></p><p> #include <stdlib.h></p><p> #include <string.h></p><p> #include <conio.h></p><p><b> int N=0;</b
49、></p><p> struct stu</p><p><b> {</b></p><p> int xh; /*學(xué)號*/</p><p> char name[18]; /*姓名*/</p><p> double yy;
50、 /*英語*/</p><p> double mat; /*數(shù)學(xué)*/</p><p> double jsj; /*計算機*/</p><p> double wl; /*物理*/</p><p> double zf;
51、 /*總分*/</p><p><b> }s[20];</b></p><p> void Re_file()</p><p><b> {</b></p><p><b> FILE *fp;</b></p><p> fp=fo
52、pen("bjcjk.txt","r");</p><p> while( fscanf(fp,"%d\n%s\n%lf\n%lf\n%lf\n%lf\n%lf\n",&s[N].xh,s[N].name,&s[N].yy,&s[N].mat,&s[N].jsj,&s[N].wl,&s[N].zf)!=E
53、OF) N++;</p><p> fclose(fp);</p><p><b> }</b></p><p> void Wr_file()</p><p><b> {int i;</b></p><p><b> FILE *fp;</b&g
54、t;</p><p> fp=fopen("nwejck.txt","w");</p><p> for(i=0;i<N;i++)</p><p> fprintf(fp,"%d\n%s\n%lf\n%lf\n%lf\n%lf\n%lf\n",s[i].xh,s[i].name,s[i].yy,
55、s[i].mat,s[i].jsj,s[i].wl,s[i].zf);</p><p> fclose(fp);</p><p><b> }</b></p><p> void Js() /*計算總分*/</p><p><b> {int i;</b></p>&
56、lt;p> for(i=0;i<N;i++)</p><p> s[i].zf=s[i].yy+s[i].mat+s[i].jsj+s[i].wl;</p><p> } </p><p> void Sort() /*排序模塊*/</p><p><b> {int j,k;<
57、/b></p><p> double ave[20],t;</p><p> struct stu m;</p><p><b> Js();</b></p><p> for(k=0;k<N;k++)</p><p> ave[k]=s[k].zf/4;
58、/*計算平均分*/</p><p> for(k=0;k<N-1;k++)</p><p> for(j=k+1;j<N;j++)</p><p> if(ave[k]<ave[j])</p><p> { t=ave[k];ave[k]=ave[j];ave[j]=t; /*對平均分排序*/</p&
59、gt;<p> m=s[k];s[k]=s[j];s[j]=m; } /*按平均分整體排序*/</p><p><b> }</b></p><p> void Disp() /*顯示模塊*/</p><p><b> {</b></p><p><b
60、> Js();</b></p><p><b> int i;</b></p><p> printf("\n\t\t\t\t全班學(xué)生成績表\n");</p><p> printf("\t -------------------------------------------------
61、-------------\n");</p><p> printf("\t 學(xué)號 姓名 英語 數(shù)學(xué) 計算機 物理 總分 平均分 \n");</p><p> printf("\t --------------------------------------------------------------\
62、n");</p><p> for(i=0;i<N;i++)</p><p><b> {</b></p><p> printf("\t %d\t %s\t %.1lf\t %.1lf\t %.1lf\t %.1lf\t %.1lf %.1lf\n",s[i].xh,s[i].name,s[i].
63、yy,s[i].mat,s[i].jsj,s[i].wl,s[i].zf,s[i].zf/4);</p><p> printf("\t --------------------------------------------------------------\n");</p><p><b> }</b></p><p&
64、gt; printf("按回車鍵返回主菜單:");</p><p> getchar();</p><p><b> }</b></p><p> void Total() /*統(tǒng)計模塊*/</p><p><b> {</b></p><
65、p> double av[4]={0.0};</p><p> int xz,sum0,sum1,sum2,sum3; </p><p><b> int xz2;</b></p><p><b> int k,i;</b></p><p> sum0=sum1=sum2=sum3
66、=0;</p><p> for(k=0;k<N;k++) /*計算各科課程平均分*/</p><p> {av[0]+=s[k].yy;</p><p> av[1]+=s[k].mat;</p><p> av[2]+=s[k].jsj;</p><p> av[3]+=s
67、[k].wl;</p><p><b> }</b></p><p> av[0]=av[0]/N;</p><p> av[1]=av[1]/N;</p><p> av[2]=av[2]/N;</p><p> av[3]=av[3]/N;</p><p>
68、 for(k=0;k<N;k++) /*比較學(xué)生各科成績與平均成績*/</p><p><b> {</b></p><p> if(s[k].yy>av[0]) sum0++;</p><p> if(s[k].mat>av[1]) sum1++;</p><p>
69、 if(s[k].jsj>av[2]) sum2++;</p><p> if(s[k].wl>av[3]) sum3++;</p><p><b> }</b></p><p><b> while(1)</b></p><p> {
70、 /*統(tǒng)計菜單一*/ </p><p> printf("\n\n\n");</p><p> printf(" 平均分統(tǒng)計菜單\n");</p><p> printf(" ******************
71、****************\n"); </p><p> printf(" *--------------------------------*\n");</p><p> printf(" * 1.所有課程平均分 *\n");</p
72、><p> printf(" * 2.單一課程平均分 *\n");</p><p> printf(" * 3.退出 *\n");</p><p> printf("
73、 *--------------------------------*\n");</p><p> printf(" **********************************\n");</p><p> printf("\n\n");</p><p&g
74、t; printf("請輸入您要統(tǒng)計的方式:");</p><p><b> while(1)</b></p><p><b> {</b></p><p> scanf("%d",&xz);</p><p> if(xz==1 ||xz==
75、2 || xz==3 ) break;</p><p> else printf("\n\n\n\n 輸入錯誤!請重新輸入!");</p><p><b> break; </b></p><p><b> }</b></p><p>
76、;<b> if(xz==1)</b></p><p><b> {</b></p><p> printf("\n\n\n");</p><p> printf(" 各科成績平均分\n");</p><p&
77、gt; printf(" ---------------------------------------------\n");</p><p> printf(" 英語 計算機 數(shù)學(xué) 物理\n");</p><p> printf(" -----------
78、----------------------------------\n");</p><p> printf(" %10.1f%10.1f%10.1f%10.1f\n",av[0],av[1],av[2],av[3]);</p><p> printf(" -----------------------------
79、----------------\n");</p><p><b> }</b></p><p><b> if(xz==2)</b></p><p><b> {</b></p><p><b> while(1)</b></p&
80、gt;<p><b> {</b></p><p> printf("\n 各科成績平均分統(tǒng)計:\n"); /*統(tǒng)計菜單二*/ </p><p> printf(" **********************************
81、****\n");</p><p> printf(" *------------------------------------*\n");</p><p> printf(" * 1.英語 2.數(shù)學(xué) *\n");</p>&l
82、t;p> printf(" * 3.計算機 4.物理 *\n");</p><p> printf(" * 0.退出到平均分統(tǒng)計菜單 *\n");</p><p> printf(" *--
83、----------------------------------*\n");</p><p> printf(" **************************************\n");</p><p> printf("\n請選擇您查詢的科目:");</p><p>
84、<b> while(1)</b></p><p><b> {</b></p><p> scanf("%d",&xz2);</p><p> if(xz2==1 ||xz2==2 || xz2==3 || xz2==4 || xz2==0) break;</p><
85、;p> else printf("\n 輸入錯誤!請重新輸入:");</p><p><b> }</b></p><p> if(xz2==1) /*統(tǒng)計超出英語平均分人數(shù)*/</p><p><b> {&
86、lt;/b></p><p> printf("\n 英語平均成績:%.1f\t超過人數(shù):%d\n",av[0],sum0);</p><p> printf(" ----------------------------------------------\n");</p>
87、<p> printf(" 學(xué)號 姓名 英語 數(shù)學(xué) 計算機 物理 \n");</p><p> printf(" ----------------------------------------------\n");</p><p> for(i=0;i<N;
88、i++)</p><p><b> {</b></p><p> if(s[i].yy>av[0])</p><p><b> {</b></p><p> printf(" %d %s%8.1lf%8.1lf%8.1lf%8.1lf\n",s
89、[i].xh,s[i].name,s[i].yy,s[i].mat,s[i].jsj,s[i].wl);</p><p> printf(" ---------------------------------------------\n");</p><p><b> }</b></p><p>&
90、lt;b> }</b></p><p><b> }</b></p><p> if(xz2==2) /*統(tǒng)計超出數(shù)學(xué)平均分人數(shù)*/</p><p><b> {</b></p><p> printf("\n
91、 數(shù)學(xué)平均成績:%.1f\t超過人數(shù):%d\n",av[1],sum1);</p><p> printf(" -----------------------------------------------\n");</p><p> printf(" 學(xué)號 姓名 英語
92、 數(shù)學(xué) 計算機 物理 \n");</p><p> printf(" -----------------------------------------------\n");</p><p> for(i=0;i<N;i++)</p><p><b> {</b><
93、/p><p> if(s[i].mat>av[1])</p><p><b> {</b></p><p> printf(" %d %s%8.1lf%8.1lf%8.1lf%8.1lf\n",s[i].xh,s[i].name,s[i].yy,s[i].mat,s[i].jsj,s[i].wl
94、);</p><p> printf(" ----------------------------------------------\n");</p><p><b> }</b></p><p><b> }</b></p><p><b&g
95、t; }</b></p><p> if(xz2==3) /*統(tǒng)計超出計算機平均分人數(shù)*/</p><p><b> {</b></p><p> printf("\n 計算機平均成績:%.1f\t超過人數(shù):%d\n",av[2],su
96、m2);</p><p> printf(" -----------------------------------------------\n");</p><p> printf(" 學(xué)號 姓名 英語 數(shù)學(xué) 計算機 物理 \n");</p><p&
97、gt; printf(" -----------------------------------------------\n");</p><p> for(i=0;i<N;i++)</p><p><b> {</b></p><p> if(s[i].jsj>av[2])<
98、;/p><p><b> {</b></p><p> printf(" %d %s%8.1lf%8.1lf%8.1lf%8.1lf\n",s[i].xh,s[i].name,s[i].yy,s[i].mat,s[i].jsj,s[i].wl);</p><p> printf("
99、 ------------------------------------------------\n");</p><p><b> }</b></p><p><b> }</b></p><p><b> }</b></p><p> i
100、f(xz2==4) /*統(tǒng)計超出物理平均分人數(shù)*/</p><p><b> {</b></p><p> printf("\n 物理平均成績:%.1f\t超過人數(shù):%d\n",av[3],sum3);</p><p> printf("
101、 ---------------------------------------------\n");</p><p> printf(" 學(xué)號 姓名 英語 數(shù)學(xué) 計算機 物理 \n");</p><p> printf(" ----------
102、------------------------------------\n");</p><p> for(i=0;i<N;i++)</p><p><b> {</b></p><p> if(s[i].wl>av[3])</p><p><b> {</b><
103、;/p><p> printf(" %d %s%8.1lf%8.1lf%8.1lf%8.1lf\n",s[i].xh,s[i].name,s[i].yy,s[i].mat,s[i].jsj,s[i].wl);</p><p> printf(" --------------------------------
104、---------------\n");</p><p><b> }</b></p><p><b> }</b></p><p><b> }</b></p><p> if(xz2==0)</p><p><b> b
105、reak;</b></p><p><b> }</b></p><p><b> }</b></p><p> if(xz==3) </p><p><b> break;</b></p><p><b> }</
106、b></p><p><b> }</b></p><p> void Appe1() /*追加模塊1*/</p><p><b> {</b></p><p><b> int i=N; </b></p><p> printf(&q
107、uot;\t學(xué)號:");</p><p> scanf("%d",&s[i].xh);</p><p> printf("\t姓名:");</p><p> scanf("%s",s[i].name);</p><p> printf("\t英語:
108、");</p><p> scanf("%lf",&s[i].yy);</p><p> printf("\t數(shù)學(xué):");</p><p> scanf("%lf",&s[i].mat);</p><p> printf("\t計算機:&q
109、uot;);</p><p> scanf("%lf",&s[i].jsj);</p><p> printf("\t物理:");</p><p> scanf("%lf",&s[i].wl);</p><p> printf("\t總分:"
110、;);</p><p> scanf("%lf",&s[i].zf);</p><p><b> N++;</b></p><p><b> }</b></p><p> void Appe() /*追加模塊*/ </p><p>&
111、lt;b> {</b></p><p> char s='y';</p><p><b> int i;</b></p><p> for(i=0;s=='y' || s=='Y';i++)</p><p><b> {</b&g
112、t;</p><p> printf("請輸入追加的學(xué)生成績信息:\n");</p><p><b> Appe1();</b></p><p> getchar();</p><p> printf("是否繼續(xù)輸入?\n(Y/N)");</p><p&
113、gt; scanf("%c",&s);</p><p><b> }</b></p><p> Wr_file();</p><p><b> }</b></p><p> void Modi1(int i) /*修改模塊1*/</p>&l
114、t;p><b> {</b></p><p><b> int n;</b></p><p> double temp;</p><p><b> while(1)</b></p><p><b> {</b></p><
115、;p> printf("\n\n\n");</p><p> printf(" *******************************************\n");</p><p> printf(" *-----------------------------
116、------------*\n");</p><p> printf(" * 1.英語 2.數(shù)學(xué) *\n");</p><p> printf(" * 3.計算機 4.物理 *\n"
117、);</p><p> printf(" * 5.返回上級菜單 *\n");</p><p> printf(" *-----------------------------------------*\n");</p><
118、p> printf(" *******************************************\n");</p><p> printf("\n\n請輸入您的選擇:");</p><p><b> while(1)</b></p><p><b
119、> {</b></p><p> scanf("%d",&n);</p><p> if(n==1||n==2||n==3||n==4||n==5) break;</p><p> else printf("\t\t\t\t對不起,輸入有誤!請重新輸入:");</p><
120、p><b> }</b></p><p><b> if(n==1)</b></p><p><b> {</b></p><p> printf("請修改后的英語成績?yōu)?");</p><p> scanf("%lf",
121、&temp);</p><p> s[i].yy=temp;</p><p><b> }</b></p><p><b> if(n==2)</b></p><p><b> {</b></p><p> printf("請
122、修改后的數(shù)學(xué)成績?yōu)?");</p><p> scanf("%lf",&temp);</p><p> s[i].mat=temp;</p><p><b> }</b></p><p><b> if(n==3)</b></p><
123、p><b> {</b></p><p> printf("請修改后的計算機成績?yōu)?");</p><p> scanf("%lf",&temp);</p><p> s[i].jsj=temp;</p><p><b> }</b>&
124、lt;/p><p><b> if(n==4)</b></p><p><b> {</b></p><p> printf("請修改后的物理成績?yōu)?");</p><p> scanf("%lf",&temp);</p><p
125、> s[i].wl=temp;</p><p><b> }</b></p><p><b> if(n==5) </b></p><p><b> {</b></p><p><b> break;</b></p><
126、p><b> }</b></p><p><b> }</b></p><p><b> }</b></p><p> void Modi() /*修改模塊*/ </p><p><b> {</b></p><p&
127、gt; int i,xz3,xh,j;</p><p> char name[10];</p><p><b> while(1)</b></p><p><b> {</b></p><p> printf("
128、 成績修改菜單\n");</p><p> printf(" **********************************************\n");</p><p> printf(" *------------------------------------
129、--------*\n");</p><p> printf(" * 1.按學(xué)號修改 *\n");</p><p> printf(" * 2.按姓名修改
130、 *\n");</p><p> printf(" * 3.返回到所有成績及主菜單 *\n");</p><p> printf(" *--------------------------------------------*\n"
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- c語言課程設(shè)計---班級成績管理系統(tǒng)
- c語言課程設(shè)計—班級成績管理系統(tǒng)
- 《班級成績管理系統(tǒng)》c語言課程設(shè)計
- c語言課程設(shè)計--班級成績分析系統(tǒng)
- c語言課程設(shè)計-成績管理系統(tǒng)
- 班級成績管理系統(tǒng)c語言課程方案
- c語言課程設(shè)計---學(xué)生成績管理系統(tǒng) (2)
- c語言課程設(shè)計學(xué)生成績管理系統(tǒng) (2)
- c語言課程設(shè)計----學(xué)生成績管理系統(tǒng) (2)
- c語言課程設(shè)計--學(xué)生成績管理系統(tǒng) (2)
- c語言課程設(shè)計--學(xué)生成績管理系統(tǒng) (2)
- c語言課程設(shè)計報告--成績管理系統(tǒng)
- c語言課程設(shè)計--學(xué)生成績管理系統(tǒng)
- c語言課程設(shè)計---學(xué)生成績管理系統(tǒng)
- c語言課程設(shè)計學(xué)生成績管理系統(tǒng)
- c語言課程設(shè)計-學(xué)生成績管理系統(tǒng)
- c語言課程設(shè)計----學(xué)生成績管理系統(tǒng)
- c語言課程設(shè)計學(xué)生成績管理系統(tǒng)
- 課程設(shè)計-- 班級成績管理系統(tǒng)
- c語言課程設(shè)計學(xué)生成績管理系統(tǒng)
評論
0/150
提交評論