版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、精選優(yōu)質(zhì)文檔-傾情為你奉上 課 程 設(shè) 計 報 告課程名稱 C語言程序設(shè)計 課題名稱 班級成績管理系統(tǒng) 專 業(yè) 班 級 學(xué) 號 姓 名 指導(dǎo)教師 年 月 日湖南工程學(xué)院課 程 設(shè) 計 任 務(wù) 書課程名稱 C語言程序設(shè)計 課 題 班級成績管理系統(tǒng) 專業(yè)班級 學(xué)生姓名 學(xué) 號 指導(dǎo)老師 審 批 任務(wù)書下達(dá)日期 年 月 日 任務(wù)完成日期 年 月 日目錄一、設(shè)計內(nèi)容與設(shè)計要求1. 設(shè)計內(nèi)容:班級成績管理系統(tǒng)設(shè)計涉及的知識點(diǎn):掌握并熟練運(yùn)用C語言的基本數(shù)據(jù)類型與各種表達(dá)式,程序的流程控制語句;掌握數(shù)組的基本概念。熟練掌握一維數(shù)組、二維數(shù)組的應(yīng)用、掌握字符數(shù)組與字符串的關(guān)系以及字符串的簡單處理。掌握函數(shù)的
2、定義,函數(shù)的返回值,函數(shù)的調(diào)用,函數(shù)的形式參數(shù)和實(shí)際參數(shù)之間的關(guān)系;掌握變量的作用域與生存期,了解函數(shù)的作用域。掌握結(jié)構(gòu)體的概念,結(jié)構(gòu)體類型的定義,結(jié)構(gòu)體變量的定義和初始化,結(jié)構(gòu)體成員的表示,結(jié)構(gòu)體變量的賦值含義,結(jié)構(gòu)體與指針、函數(shù)的關(guān)系。掌握文件、文件類型指針的基本概念,熟練掌握文件的打開與關(guān)閉以及文件的建立、讀寫等有關(guān)操作。2.設(shè)計要求:1) 用C語言實(shí)現(xiàn)系統(tǒng);利用結(jié)構(gòu)體數(shù)組實(shí)現(xiàn)班級成績的數(shù)據(jù)結(jié)構(gòu)設(shè)計;系統(tǒng)的各個功能模塊要求用函數(shù)的形式實(shí)現(xiàn);應(yīng)提供一個界面來調(diào)用各個功能,調(diào)用界面和各個功能的操作界面應(yīng)盡可能清晰美觀;各項顯示數(shù)據(jù)均要求以表格的形式輸出;在各功能子模塊中應(yīng)設(shè)計相應(yīng)的二級菜單。
3、2) 建立一個班級學(xué)生成績數(shù)據(jù)庫,文件名為bjcjk.txt,并從該文件中讀取數(shù)據(jù);3) 班級成績管理系統(tǒng)應(yīng)能提供以下功能:(1)主菜單界面設(shè)計。通過提示用戶輸入一個數(shù)字選項,調(diào)用相應(yīng)的功能函數(shù)。(2)學(xué)生成績顯示:完成班級全部學(xué)生成績的顯示,顯示時按表格的形式,且應(yīng)有表頭;(3)學(xué)生成績追加:完成新增一個(或多個)學(xué)生的成績記錄,要求在追加過程中有相應(yīng)的提示信息,完成追加后能重新計算學(xué)生平均成績并顯示; (4)學(xué)生成績修改:要求能按學(xué)號和按姓名兩種定位方式,且可以按用戶要求修改記錄中除學(xué)號和姓名以外的指定內(nèi)容,并重新計算學(xué)生的平均成績;(5)學(xué)生成績信息的查詢;要示系統(tǒng)能按學(xué)號、按姓名查詢以
4、及能查總分在某一指定范圍內(nèi)的學(xué)生信息,且能顯示符合條件的所的記錄,若所需查詢的信息不存在時應(yīng)有相應(yīng)的提示信息。(6)學(xué)生成績信息的刪除;要求可按指定的學(xué)號和指定的姓名兩種定位方式刪除學(xué)生的成績記錄。(7)要求在刪除模塊、修改模塊和查詢模塊中若找不到所需的記錄時,系統(tǒng)設(shè)計中應(yīng)有一定的提示信息。 (8)成績排序:按學(xué)生平均成績進(jìn)行排序;(9)成績統(tǒng)計: 統(tǒng)計并以表格的形式顯示所有課程的平均分; 統(tǒng)計并顯示選定的某門課程的平均分以及超過該平均分的人數(shù),同時能將超過該平均分的學(xué)生記錄以表格的形式顯示出來。4) 說明:(1) 要求將修改后的數(shù)據(jù)寫入到一個新的數(shù)據(jù)文件nwejck.txt中。(2) 對系統(tǒng)
5、有興趣的同學(xué)可以在實(shí)現(xiàn)基本要求的基礎(chǔ)上,完善系統(tǒng)的其它功能。5) 班級成績管理系統(tǒng)采用一個結(jié)構(gòu)體數(shù)組,學(xué)生成績數(shù)據(jù)庫結(jié)構(gòu)如下:int xh /*學(xué)號*/char name10 /*姓名*/double yy /*英語*/double mat /*數(shù)學(xué)*/double jsj /*計算機(jī)*/double wl /*物理*/double zf /*總分*/ 注意:學(xué)號不能重復(fù)且不少于4位數(shù)字,各項字符串的長度要求在410之間,數(shù)據(jù)庫應(yīng)有10條或多于10條以上的記錄。6) 要求:1 要求每個學(xué)生必須獨(dú)立思考,認(rèn)真并按時完成本課程設(shè)計所包含的所有內(nèi)容;2 要求學(xué)生必須按照課程設(shè)計報告的完整格式說明設(shè)計
6、內(nèi)容,設(shè)計任務(wù)分析過程和算法,給出程序流程圖和全部源程序;3 設(shè)計報告的完整格式應(yīng)包括以下部分的內(nèi)容: 系統(tǒng)設(shè)計總體思路; 系統(tǒng)的主要功能; 系統(tǒng)功能模塊的劃分(要求畫出總體模塊框圖); 主要功能的實(shí)現(xiàn)和各個程序模塊說明(每個功能模塊的框圖統(tǒng)主模塊的流程圖,各個功能模塊至少要有一個主要的流程圖);程序調(diào)試過程及各模塊調(diào)試中相應(yīng)的部分截圖7)分組及安排所選題目根據(jù)學(xué)生班號和學(xué)號確定,(班號+學(xué)號)% 6+1。如你的班號為01班、學(xué)號為01,則所選題目號為:(1+1)%6+13,即課題號為3。8)成績評定系統(tǒng)設(shè)計方案是否合理;程序設(shè)計是否正確;調(diào)試結(jié)果;設(shè)計說明書的質(zhì)量高低;答辯時回答問題情況;課
7、程設(shè)計周表現(xiàn)情況;總評成績記入“課程設(shè)計成績評分表”。二、進(jìn)度安排第 16 周 星期三 14:0017:00 講課、布置任務(wù)星期五 8:0012:00 機(jī)房上機(jī)調(diào)試程序第 17 周 星期三 19:0022:00 機(jī)房上機(jī)調(diào)試程序星期四 14:0018:00 機(jī)房上機(jī)調(diào)試程序星期五 8:0012:00 機(jī)房上機(jī)調(diào)試程序、答辯 附:課程設(shè)計報告排版、打印和裝訂要求1. 課程設(shè)計報告裝訂順序:封面、任務(wù)書、目錄、正文、附件、評分表。按A4大小的紙張排版和打印。 2. 設(shè)計報告的頁碼從目錄之后開始使用;3. 正文的格式:一級標(biāo)題用3號黑體,二級標(biāo)題用四號宋體加粗,正文用小四號宋體;行距為22磅。正文中
8、程序清單(英文)用英文字體Times New Roman,單倍行間距。 4. 正文的內(nèi)容:一、課題的主要功能;二、課題的功能模塊的劃分(要求畫出模塊圖);三、主要功能的實(shí)現(xiàn)(至少要有一個主要模塊的流程圖);四、程序調(diào)試(各模塊至少有一個程序調(diào)試的截圖);五、總結(jié)(不少于500字);六、參考文獻(xiàn);七、附件(包含所有程序的原代碼,且程序中應(yīng)有必要的注釋)。八.正文總字?jǐn)?shù)要求在5000字以上(不含程序原代碼)。5設(shè)計報告中任務(wù)書和評分表不需重新排版。專心-專注-專業(yè)一、引言1.1前言C語言課程設(shè)計是對學(xué)生的一種全面綜合訓(xùn)練,它包括問題分析,總體結(jié)構(gòu)設(shè)計,用戶界面設(shè)計,程序設(shè)計基本技能和技巧的培養(yǎng)。是
9、與課堂聽講、自學(xué)和練習(xí)相結(jié)合的必不可少的一個環(huán)節(jié)。課程設(shè)計的課題比平時的習(xí)題復(fù)雜得多,也更接近實(shí)際。全面熟悉、掌握C語言基本知識,掌握C程序設(shè)計中的順序、分支、循環(huán)三種結(jié)構(gòu)及數(shù)組、函數(shù)和C語言基本圖形編程等方法,把編程和實(shí)際結(jié)合起來,熟悉編制和調(diào)試程序的技巧,掌握分析結(jié)果的若干有效方法,進(jìn)一步提高上機(jī)動手能力,培養(yǎng)使用計算機(jī)解決實(shí)際問題的能力,養(yǎng)成提供文檔資料的習(xí)慣和規(guī)范編程的思想,為以后在專業(yè)課程中應(yīng)用計算機(jī)系統(tǒng)解決計算、分析、實(shí)驗和設(shè)計等學(xué)習(xí)環(huán)節(jié)打下較扎實(shí)的基礎(chǔ)。1.2設(shè)計目的隨著電腦技術(shù)的發(fā)展越來越快,管理系統(tǒng)得到人們廣泛的應(yīng)用。本課題中編寫班級成績管理系統(tǒng)主要是為了方便我們能更加高效快
10、捷地管理學(xué)生的各項成績信息,能夠?qū)W(xué)生成績進(jìn)行追加、修改、刪除等操作。并能對輸入的數(shù)據(jù)進(jìn)行平均分、總分的計算以及總分的排序,進(jìn)而清楚明朗地顯示出來。二、總體設(shè)計2.1主要功能主要實(shí)現(xiàn)對學(xué)生成績信息實(shí)現(xiàn)成績的顯示,成績的追加,成績的修改,成績的查詢,成績的刪除,成績的排序和統(tǒng)計等功能。班級成績管理系統(tǒng)具體提供以下功能:a、成績顯示:完成全班同學(xué)全部學(xué)生成績的顯示,以表格形式顯示出來,并帶有表頭。b、成績追加:新增學(xué)生成績記錄,在追加過程中有相應(yīng)的提示信息并實(shí)現(xiàn)連續(xù)追加的功能。追加成功的成績能重新計算學(xué)生的平均成績并顯示。c、成績修改:實(shí)現(xiàn)按學(xué)號修改和按姓名修改兩種修改方式,并可以對指定的學(xué)生的各
11、科成績進(jìn)行修改,修改過程中有相應(yīng)的提示信息。修改后能重新計算學(xué)生的平均成績。d、成績刪除:對指定的學(xué)號或者指定的姓名進(jìn)行定位刪除,并有相應(yīng)的提示信息。e、成績查詢:對指定的學(xué)號或指定的姓名進(jìn)行定位查詢,并能顯示出符合條件的查詢結(jié)果。查詢的信息不存在時有相應(yīng)的提示信息。f、成績排名:按學(xué)生平均成績進(jìn)行排序,并以表格形式顯示。g、成績統(tǒng)計:以表格的形式顯示所有課程的平均分,并顯示選定的某門課程的平均分以及超過該平均分的人數(shù),同時將超過該平均分的學(xué)生記錄以表格的形式顯示出來。2.2功能模塊劃分(1)本程序由八個模塊構(gòu)成,其中主模塊是由系統(tǒng)函數(shù)搭建而成,其重要功能是顯示出功能主菜單,由用戶作出選擇進(jìn)入
12、子菜單。在子菜單中操作完畢后,能夠準(zhǔn)確返回到功能主菜單。系統(tǒng)主要模塊流程圖如下:主函數(shù)主界面顯示成績成績追加成績修改成績刪除成績查詢成績排名成績統(tǒng)計退出系統(tǒng)(2)模塊說明主界面 main() 用戶選擇界面顯示模塊 Disp() 顯示所有學(xué)生的成績信息追加模塊 Appe() 添加學(xué)生成績信息修改模塊 Modi() 修改學(xué)生某項成績信息刪除模塊 Dele() 刪除學(xué)生某項成績信息查詢模塊 Query() 查詢學(xué)生成績信息排序模塊 Sort() 按成績總分排序統(tǒng)計模塊 Total() 統(tǒng)計各科目平均分信息退出模塊 Quit() 退出系統(tǒng)并保存信息三、詳細(xì)設(shè)計3.1主要功能的實(shí)現(xiàn)(下面以追加模塊和修改
13、模塊為例)(1)追加模塊流程圖FILE *fp調(diào)用Re_file ()主菜單成績追加開始輸入學(xué)生各項信息是否繼續(xù)(Y/N)?保存并退出結(jié)束(2) 修改模塊流程圖開始FILE *fp調(diào)用Re_file ()主菜單成績修改按學(xué)號修改成績修改菜單按姓名修改返回到主菜單選擇要修改的科目輸入要修改的學(xué)號輸入修改的成績輸入修改的成績輸入修改的姓名選擇要修改的科目目是否繼續(xù)?(Y/N)是否繼續(xù)?(Y/N)保存并退出到成績修改菜單結(jié)束3.2程序調(diào)試各模塊運(yùn)行步驟及界面3.2.1功能主菜單選擇界面3.2.2顯示模塊(輸入“1”進(jìn)入全班成績顯示菜單)3.2.2顯示模塊截圖3.2.3追加模塊(在功能主菜單輸入“2”
14、進(jìn)入成績追加界面,這里輸入一組追加信息后,系統(tǒng)會提示是否繼續(xù)追加,從而實(shí)現(xiàn)了“連續(xù)追加”的功能)3.2.4追加模塊截圖(注:這里的總分輸入值為0,因為在該程序中,總分會計算出來)3.2.4修改模塊(在功能主菜單輸入“4”進(jìn)入成績修改菜單,這里可以根據(jù)學(xué)號和姓名查找到對應(yīng)學(xué)生成績信息進(jìn)行修改。下面以按姓名修改為例,對姓名為“ww”的學(xué)生的計算機(jī)成績進(jìn)行修改后,系統(tǒng)還能提示是否對該生的其他科目成績進(jìn)行繼續(xù)修改,實(shí)現(xiàn)了“一人多項”的修改功能。修改完系統(tǒng)會退到所有學(xué)生成績菜單,可以清楚地看到修改后的學(xué)生的成績信息)3.2.4修改模塊截圖3.2.5刪除模塊(在功能主菜單輸入“4”進(jìn)入刪除方式菜單,此功能
15、可以對學(xué)生成績信息進(jìn)行按學(xué)號刪除和按姓名刪除兩種刪除方式。下面以對姓名為“ww”的學(xué)生成績進(jìn)行刪除,輸入該生姓名后,系統(tǒng)能顯示該生的各項成績信息,并提示是否確認(rèn)刪除。刪除后,系統(tǒng)還能提示是否繼續(xù)進(jìn)行刪除操作。這里的刪除模塊實(shí)現(xiàn)了“多人多項”的刪除功能,操作使用起來十分便利高效。如果不繼續(xù),選擇“2”能退出到刪除方式菜單,進(jìn)行接下來的刪除操作)3.2.5刪除模塊截圖3.2.6查詢模塊(在功能主菜單輸入“5”系統(tǒng)進(jìn)入成績查詢菜單。此功能可以對學(xué)生成績信息按學(xué)號查詢和按姓名查詢,以下以按學(xué)號查詢?yōu)槔?。輸入學(xué)號為“”的學(xué)生學(xué)號,系統(tǒng)以表格的形式顯示出該生的成績信息。輸入“1”能返回到查詢菜單繼續(xù)查詢,
16、輸入任意鍵系統(tǒng)退出到主菜單界面)3.2.6查詢模塊截圖3.2.7排序模塊(在功能主菜單輸入“6”進(jìn)入成績排名的界面,成績排名以總分的高低由高向低以表格的形式顯示出來)3.2.7排序詢模塊截圖3.2.8統(tǒng)計模塊(在功能主菜單輸入“7”進(jìn)入平均分統(tǒng)計菜單界面,菜單顯示:1、所有課程平均分2、單一課程平均分3、退出。以下輸入“2”進(jìn)入單一課程平均分界面,菜單界面顯示各科目的選擇列表,輸入“2”查詢數(shù)學(xué)成績的平均分,結(jié)果以表格形式輸出超過該科平均分的學(xué)生信息。查詢完數(shù)學(xué)這項后,還能繼續(xù)對其他科目的平均分統(tǒng)計信息進(jìn)行查詢。實(shí)現(xiàn)了“多次循環(huán)”的功能)3.2.8統(tǒng)計模塊截圖3.2.9退出模塊(在完成對該系統(tǒng)
17、的所有操作后,在功能主菜單界面輸入“8”進(jìn)入退出界面,如下圖:鍵入任意鍵即可退出該系統(tǒng))3.2.9退出模塊截圖四、問題分析及總結(jié)4.1問題分析從接到這個課題開始,我們就開始了為期一周的C語言課程設(shè)計。首先是針對本次課題設(shè)計進(jìn)行建庫工作,在開始建庫的過程中,就遇到了一點(diǎn)困難。建庫的時候一不留神就會使輸入的數(shù)據(jù)庫前功盡棄,為此嘗試了幾次,最后耐心地一項一項輸才建好庫。針對這個課題,老師給我們分了7人一組的小組進(jìn)行合作,我在組中主要負(fù)責(zé)了修改模塊程序的編寫和整個系統(tǒng)的美化工作。在調(diào)試過程中遇到了不少的錯誤、警告等信息,有時候因為一個符號的失誤導(dǎo)致程序的錯誤達(dá)到十幾個。在做完修改模塊后,個人覺得修改的
18、方式還是不夠妥當(dāng),不能實(shí)現(xiàn)多想同時修改而只能一項一項進(jìn)行修改保存。這是我個人覺得修改模塊存在的值得改進(jìn)的地方。4.2總結(jié)學(xué)習(xí)C語言已經(jīng)半年了,半年來,從接觸C語言這門課程到后來逐漸了解這門課程的點(diǎn)滴知識,使我自己對計算機(jī)方面的知識有了更加深刻的認(rèn)識。作為一個電腦愛好者,平時和同學(xué)們在一起就喜歡討論java編程和電腦系統(tǒng)方面的知識。從一年前拿到自己的第一臺智能手機(jī)刷機(jī)開始,漸漸了解一點(diǎn)關(guān)于安卓apk程序的開發(fā)及框架。每次的刷機(jī)都會使我自己對安卓系統(tǒng)有進(jìn)一步的了解,同時,每次解決一個問題,都會有一點(diǎn)點(diǎn)小小的成就感。最近的半年,由于電腦的使用頻率的增加,注意力開始轉(zhuǎn)移到電腦系統(tǒng)的安裝以及自己學(xué)習(xí)封裝
19、win7系統(tǒng)。由于對電腦軟件的使用和電腦知識了解較多,很多同學(xué)們電腦有問題都會找我?guī)兔?,這半年中,拆過許多筆記本電腦,用各種方法裝過很多臺電腦的系統(tǒng),還裝了幾臺機(jī)子的內(nèi)存以及對電腦主板上灰塵的進(jìn)行清理。這些在我看來簡單的操作給我自己帶來了許多快樂,同時也給別人帶去了方便。剛接觸到C語言這門課程時就感覺到了它的難度,但通過漸漸的學(xué)習(xí),我認(rèn)識到了它的重要性,更認(rèn)識到這是一種能力的培養(yǎng)。經(jīng)過幾次的上機(jī)操作,看到自己設(shè)計的程序能運(yùn)行出正確的結(jié)果,開始對C語言產(chǎn)生了興趣。同時,學(xué)習(xí)的東西越來越復(fù)雜,遇到的困難也越來越多。拿到我們組的課題時,心里十分的沒底,覺得很難不知道該如何下手。原因是自己沒把知識真正
20、學(xué)到手,不知道自己學(xué)的東西能不能用得上。但學(xué)習(xí)就是要不斷的發(fā)現(xiàn)問題,不斷的解決問題的。于是,在試探中開始了建庫的工作。曾以為建庫是很簡單很容易的,但是開始建立的時候,就很容易出錯。通過幾次失敗,幾次重試,終于建好了庫文件。接下來的任務(wù)就是做好我負(fù)責(zé)的修改模塊,在做修改模塊的時候,問題的困難程度還是顯現(xiàn)出來了,調(diào)用函數(shù)的時候經(jīng)常出錯。程序運(yùn)行起來不能對指定的學(xué)生成績信息進(jìn)行連續(xù)的修改,經(jīng)過同學(xué)們一起努力,慢慢改正了一點(diǎn)錯誤。上機(jī)調(diào)試的時候,在指導(dǎo)老師的幫助下逐漸將不能連續(xù)修改的問題解決。接著就遇到了程序運(yùn)行完畢不能退出到主菜單的問題,在幾次嘗試修改語句后,終于知道了語句缺失的命令,最后完美地解決
21、了這個問題。在解決問題的過程中,對于課堂上學(xué)的for,Switch和while語句還有結(jié)構(gòu)體的使用和指針的用法與作用都有了進(jìn)一步的認(rèn)識。后來遇到問題的時候,查閱了課本知識,通過網(wǎng)絡(luò)查找到與之類似的問題加以解決。經(jīng)過幾次上機(jī)調(diào)試后,其余同學(xué)已經(jīng)將剩下的模塊做得差不多了。但是我發(fā)現(xiàn)一個普遍的問題,那就是所有界面的布局都不夠合理。于是接下來的工作就把各模塊的顯示菜單進(jìn)行美化,使界面看起來清晰美觀。這個看似簡單的工作做起來卻是很費(fèi)時間,因為要想把顯示得居中,同時清晰明朗,得加入空格或者是加入“t”,可能就因為一個空格對不齊就不能很好地顯示對應(yīng)的信息。另外我發(fā)現(xiàn)程序運(yùn)行界面就是黑白相間,顯得不夠美觀,于
22、是在查閱資料后弄明白了,加入一個頭文件然后再主函數(shù)中加入顏色的調(diào)用命令。在網(wǎng)上查找了關(guān)于顏色的代碼,添加進(jìn)去后運(yùn)行界面顯得很漂亮,比以前黑白相間的界面更明朗美觀。一周的時間很快就過去了,C語言答辯安排就在老師安排下開始了。周五上午,我就在機(jī)房里完成了答辯?,F(xiàn)在覺得有點(diǎn)遺憾的就是,老師問我的問題因為緊張了一定就沒回答得很好,覺得有點(diǎn)失望。但是我的程序做得還是比較合理,因為在答辯運(yùn)行時,老師所要求的所有操作我的程序都能實(shí)現(xiàn),而且完美無瑕,這讓我覺得付出還是有回報的。經(jīng)過這次的C語言課程設(shè)計,我才真正了解到理論知識轉(zhuǎn)為實(shí)踐的重要性。其實(shí)從剛接到課題任務(wù)的時候,心里還是有點(diǎn)畏懼的,畢竟這個系統(tǒng)的源程序
23、就有好幾頁,看著就頭痛。但是看著同學(xué)們一個個認(rèn)真的坐在電腦面前幾個小時一點(diǎn)點(diǎn)摸索,自己才開始冷靜地思考著問題。通過自己的努力,同學(xué)們的幫助和老師的指導(dǎo),終于完成了這個課題的設(shè)計任務(wù)。同時,也使我對C語言課程有了更為深刻的認(rèn)識,讓我對自己有了信心。我想,若干年后,當(dāng)看到我做的這份報告,都會是一段美好的回憶。這段短短幾天的努力也會給我動力,給我在以后的學(xué)習(xí)中以鞭策,更加加深我對計算機(jī)知識的了解。五、參考文獻(xiàn)1賈宗璞,許合利. C語言程序設(shè)計.人民郵電出版社2陳世清,李杰君. C語言程序設(shè)計.浙江大學(xué)出版社3鄭莉. C+語言程序設(shè)計.清華大學(xué)出版社六、附件源程序清單:#include <std
24、io.h>#include <stdlib.h>#include <string.h>#include <conio.h>int N=0;struct stu int xh; /*學(xué)號*/ char name18; /*姓名*/ double yy; /*英語*/ double mat; /*數(shù)學(xué)*/ double jsj; /*計算機(jī)*/ double wl; /*物理*/ double zf; /*總分*/ s20;void Re_file() FILE *fp; fp=fopen("bjcjk.txt","r&quo
25、t;); while( fscanf(fp,"%dn%sn%lfn%lfn%lfn%lfn%lfn",&sN.xh,sN.name,&sN.yy,&sN.mat,&sN.jsj,&sN.wl,&sN.zf)!=EOF) N+; fclose(fp); void Wr_file()int i; FILE *fp; fp=fopen("nwejck.txt","w"); for(i=0;i<N;i+) fprintf(fp,"%dn%sn%lfn%lfn%lfn%lfn%lf
26、n",si.xh,,si.yy,si.mat,si.jsj,si.wl,si.zf); fclose(fp);void Js() /*計算總分*/int i; for(i=0;i<N;i+) si.zf=si.yy+si.mat+si.jsj+si.wl; void Sort() /*排序模塊*/int j,k; double ave20,t; struct stu m; Js(); for(k=0;k<N;k+) avek=sk.zf/4; /*計算平均分*/ for(k=0;k<N-1;k+) for(j=k+1;j<N;j+) if(ave
27、k<avej) t=avek;avek=avej;avej=t; /*對平均分排序*/ m=sk;sk=sj;sj=m; /*按平均分整體排序*/ void Disp() /*顯示模塊*/ Js();int i;printf("ntttt全班學(xué)生成績表n");printf("t -n");printf("t 學(xué)號 姓名 英語 數(shù)學(xué) 計算機(jī) 物理 總分 平均分 n");printf("t -n");for(i=0;i<N;i+)printf("t %dt %st %.1lft %.1lft %.
28、1lft %.1lft %.1lf %.1lfn",si.xh,,si.yy,si.mat,si.jsj,si.wl,si.zf,si.zf/4);printf("t -n");printf("按回車鍵返回主菜單:");getchar();void Total() /*統(tǒng)計模塊*/double av4=0.0;int xz,sum0,sum1,sum2,sum3; int xz2;int k,i;sum0=sum1=sum2=sum3=0;for(k=0;k<N;k+) /*計算各科課程平均分*/av0+=sk.yy;av1
29、+=sk.mat;av2+=sk.jsj;av3+=sk.wl;av0=av0/N;av1=av1/N;av2=av2/N;av3=av3/N;for(k=0;k<N;k+) /*比較學(xué)生各科成績與平均成績*/if(sk.yy>av0) sum0+;if(sk.mat>av1) sum1+;if(sk.jsj>av2) sum2+;if(sk.wl>av3) sum3+;while(1) /*統(tǒng)計菜單一*/ printf("nnn");printf(" 平均分統(tǒng)計菜單n");printf(" *n");
30、printf(" *-*n");printf(" * 1.所有課程平均分 *n");printf(" * 2.單一課程平均分 *n");printf(" * 3.退出 *n");printf(" *-*n");printf(" *n");printf("nn");printf("請輸入您要統(tǒng)計的方式:");while(1)scanf("%d",&xz);if(xz=1 |xz=2 | xz=3 ) break
31、;else printf("nnnn 輸入錯誤!請重新輸入!");break; if(xz=1)printf("nnn");printf(" 各科成績平均分n");printf(" -n");printf(" 英語 計算機(jī) 數(shù)學(xué) 物理n");printf(" -n");printf(" %10.1f%10.1f%10.1f%10.1fn",av0,av1,av2,av3);printf(" -n");if(xz=2)while(1)pr
32、intf("n 各科成績平均分統(tǒng)計:n"); /*統(tǒng)計菜單二*/ printf(" *n");printf(" *-*n");printf(" * 1.英語 2.數(shù)學(xué) *n");printf(" * 3.計算機(jī) 4.物理 *n");printf(" * 0.退出到平均分統(tǒng)計菜單 *n");printf(" *-*n");printf(" *n");printf("n請選擇您查詢的科目:");while(1)scanf
33、("%d",&xz2);if(xz2=1 |xz2=2 | xz2=3 | xz2=4 | xz2=0) break;else printf("n 輸入錯誤!請重新輸入:");if(xz2=1) /*統(tǒng)計超出英語平均分人數(shù)*/printf("n 英語平均成績:%.1ft超過人數(shù):%dn",av0,sum0);printf(" -n");printf(" 學(xué)號 姓名 英語 數(shù)學(xué) 計算機(jī) 物理 n");printf(" -n");for(i=0;i<N;i+)if(
34、si.yy>av0)printf(" %d %s%8.1lf%8.1lf%8.1lf%8.1lfn",si.xh,,si.yy,si.mat,si.jsj,si.wl);printf(" -n");if(xz2=2) /*統(tǒng)計超出數(shù)學(xué)平均分人數(shù)*/printf("n 數(shù)學(xué)平均成績:%.1ft超過人數(shù):%dn",av1,sum1);printf(" -n");printf(" 學(xué)號 姓名 英語 數(shù)學(xué) 計算機(jī) 物理 n");printf(" -n");for(
35、i=0;i<N;i+)if(si.mat>av1)printf(" %d %s%8.1lf%8.1lf%8.1lf%8.1lfn",si.xh,,si.yy,si.mat,si.jsj,si.wl);printf(" -n");if(xz2=3) /*統(tǒng)計超出計算機(jī)平均分人數(shù)*/printf("n 計算機(jī)平均成績:%.1ft超過人數(shù):%dn",av2,sum2);printf(" -n");printf(" 學(xué)號 姓名 英語 數(shù)學(xué) 計算機(jī) 物理 n");printf(&
36、quot; -n");for(i=0;i<N;i+)if(si.jsj>av2)printf(" %d %s%8.1lf%8.1lf%8.1lf%8.1lfn",si.xh,,si.yy,si.mat,si.jsj,si.wl);printf(" -n");if(xz2=4) /*統(tǒng)計超出物理平均分人數(shù)*/printf("n 物理平均成績:%.1ft超過人數(shù):%dn",av3,sum3);printf(" -n");printf(" 學(xué)號 姓名 英語 數(shù)學(xué) 計算機(jī) 物理
37、 n");printf(" -n");for(i=0;i<N;i+)if(si.wl>av3)printf(" %d %s%8.1lf%8.1lf%8.1lf%8.1lfn",si.xh,,si.yy,si.mat,si.jsj,si.wl);printf(" -n");if(xz2=0)break;if(xz=3) break;void Appe1() /*追加模塊1*/int i=N; printf("t學(xué)號:");scanf("%d",&si.x
38、h);printf("t姓名:");scanf("%s",);printf("t英語:");scanf("%lf",&si.yy);printf("t數(shù)學(xué):");scanf("%lf",&si.mat);printf("t計算機(jī):");scanf("%lf",&si.jsj);printf("t物理:");scanf("%lf",&si.wl);pri
39、ntf("t總分:");scanf("%lf",&si.zf);N+;void Appe() /*追加模塊*/ char s='y'int i;for(i=0;s='y' | s='Y'i+)printf("請輸入追加的學(xué)生成績信息:n");Appe1();getchar();printf("是否繼續(xù)輸入?n(Y/N)");scanf("%c",&s);Wr_file();void Modi1(int i) /*修改模塊1*/int
40、 n;double temp;while(1)printf("nnn");printf(" *n");printf(" *-*n");printf(" * 1.英語 2.數(shù)學(xué) *n");printf(" * 3.計算機(jī) 4.物理 *n");printf(" * 5.返回上級菜單 *n");printf(" *-*n");printf(" *n");printf("nn請輸入您的選擇:");while(1)scanf(
41、"%d",&n);if(n=1|n=2|n=3|n=4|n=5) break;else printf("tttt對不起,輸入有誤!請重新輸入:");if(n=1)printf("請修改后的英語成績?yōu)?");scanf("%lf",&temp);si.yy=temp;if(n=2)printf("請修改后的數(shù)學(xué)成績?yōu)?");scanf("%lf",&temp);si.mat=temp;if(n=3)printf("請修改后的計算機(jī)成績?yōu)?&qu
42、ot;);scanf("%lf",&temp);si.jsj=temp;if(n=4)printf("請修改后的物理成績?yōu)?");scanf("%lf",&temp);si.wl=temp;if(n=5) break;void Modi() /*修改模塊*/ int i,xz3,xh,j;char name10;while(1) printf(" 成績修改菜單n");printf(" *n");printf(" *-*n");printf(" * 1.按學(xué)號修改 *n");printf(" * 2.按姓名修改 *n");printf(" * 3.返回到所有成績及主菜單 *n");printf(" *-*n");printf(" *n");printf("nn請輸入您要修改的方式:");while(1)scanf("%d",&xz3);if(xz3=1|xz3=2|xz3=3) br
溫馨提示
- 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. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五版暨南大學(xué)離婚心理學(xué)研究與應(yīng)用合同3篇
- 二零二五年度電梯門套綠色環(huán)保材料采購合同3篇
- 二零二五年度集團(tuán)高層管理人員聘任與職務(wù)調(diào)整合同6篇
- 二零二五年股票代持與反洗錢義務(wù)合同3篇
- 二零二五年駕駛員勞務(wù)派遣與車輛充電樁油耗管理服務(wù)合同3篇
- 二零二五版戶外拓展訓(xùn)練特色課程開發(fā)與推廣合同3篇
- 二零二五年度玻璃器皿生產(chǎn)設(shè)備租賃合同3篇
- 2025年度國際教育培訓(xùn)機(jī)構(gòu)合作合同6篇
- 展會展位搭建服務(wù)合同(2篇)
- 2025年度餐飲設(shè)施設(shè)備租賃合同書3篇
- 醫(yī)院手術(shù)室醫(yī)院感染管理質(zhì)量督查評分表
- 心內(nèi)電生理導(dǎo)管及器械
- 稱量與天平培訓(xùn)試題及答案
- 超全的超濾與納濾概述、基本理論和應(yīng)用
- 2020年醫(yī)師定期考核試題與答案(公衛(wèi)專業(yè))
- 2022年中國育齡女性生殖健康研究報告
- 各種靜脈置管固定方法
- 消防報審驗收程序及表格
- 教育金規(guī)劃ppt課件
- 呼吸機(jī)波形分析及臨床應(yīng)用
- 常用緊固件選用指南
評論
0/150
提交評論