版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、課程設(shè)計(jì)報(bào)告課程名稱 C語(yǔ)言程序設(shè)計(jì)課題名稱班級(jí)成績(jī)管理系統(tǒng)專業(yè)班級(jí)學(xué)號(hào)姓名指導(dǎo)教師 肖偉平 何宏 羅敬2012年12月26日湖南工程學(xué)院課程設(shè)計(jì)任務(wù)書(shū)課程名稱C語(yǔ)言程序設(shè)計(jì)課 題班級(jí)成績(jī)管理系統(tǒng)專業(yè)班級(jí)學(xué)生姓名 學(xué)號(hào)指導(dǎo)老師肖偉平何宏 羅敬審批任務(wù)書(shū)下達(dá)日期2012 年12 月26日任務(wù)完成日期 2013年元月4 日目錄一、設(shè)計(jì)內(nèi)容與設(shè)計(jì)要求1. 設(shè)計(jì)內(nèi)容:班級(jí)成績(jī)管理系統(tǒng)設(shè)計(jì)涉及的知識(shí)點(diǎn): 掌握并熟練運(yùn)用C語(yǔ)言的基本數(shù)據(jù)類型與各種表達(dá)式,程序的流程控制語(yǔ)句; 掌握數(shù)組的基本概念。熟練掌握一維數(shù)組、二維數(shù)組的應(yīng)用、掌握字符數(shù)組 與字符串的關(guān)系以及字符串的簡(jiǎn)單處理。 掌握函數(shù)的定義,函數(shù)的返回
2、值,函數(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)系。 掌握文件、文件類型指針的基本概念,熟練掌握文件的打開(kāi)與關(guān)閉以及文件的建立、讀寫(xiě)等有關(guān)操作。2. 設(shè)計(jì)要求:1) 用C語(yǔ)言實(shí)現(xiàn)系統(tǒng);利用結(jié)構(gòu)體數(shù)組實(shí)現(xiàn)班級(jí)成績(jī)的數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì);系統(tǒng)的各個(gè)功能模塊要求用函數(shù)的形式實(shí)現(xiàn);應(yīng)提供一個(gè)界面來(lái)調(diào)用各個(gè)功能,調(diào)用界面和各個(gè)功能的操作界面應(yīng)盡可能清晰美觀;各項(xiàng)顯示數(shù)據(jù)均要求以表格的形 式輸出;在各功能子模塊中應(yīng)設(shè)計(jì)相應(yīng)的二級(jí)菜單。2)
3、 建立一個(gè)班級(jí)學(xué)生成績(jī)數(shù)據(jù)庫(kù),文件名為,并從該文件中讀取數(shù)據(jù);3) 班級(jí)成績(jī)管理系統(tǒng)應(yīng)能提供以下功能:(1) 主菜單界面設(shè)計(jì)。通過(guò)提示用戶輸入一個(gè)數(shù)字選項(xiàng),調(diào)用相應(yīng)的功能函數(shù)。(2) 學(xué)生成績(jī)顯示:完成班級(jí)全部學(xué)生成績(jī)的顯示,顯示時(shí)按表格的形式,且應(yīng)有表頭;(3) 學(xué)生成績(jī)追加:完成新增一個(gè)(或多個(gè))學(xué)生的成績(jī)記錄,要求在追加過(guò)程 中有相應(yīng)的提示信息,完成追加后能重新計(jì)算學(xué)生平均成績(jī)并顯示;(4) 學(xué)生成績(jī)修改:要求能按學(xué)號(hào)和按姓名兩種定位方式,且可以按用戶要求修改記錄中除學(xué)號(hào)和姓名以外的指定內(nèi)容,并重新計(jì)算學(xué)生的平均成績(jī);(5) 學(xué)生成績(jī)信息的查詢;要示系統(tǒng)能按學(xué)號(hào)、按姓名查詢以及能查詢總分
4、在 某一指定范圍內(nèi)的學(xué)生信息,且能顯示符合條件的所的記錄,若所需查詢的 信息不存在時(shí)應(yīng)有相應(yīng)的提示信息。(6) 學(xué)生成績(jī)信息的刪除; 要求可按指定的學(xué)號(hào)和指定的姓名兩種定位方式刪除 學(xué)生的成績(jī)記錄。(7) 要求在刪除模塊、 修改模塊和查詢模塊中若找不到所需的記錄時(shí), 系統(tǒng)設(shè)計(jì) 中應(yīng)有一定的提示信息。(8) 成績(jī)排序:按學(xué)生平均成績(jī)進(jìn)行排序;(9) 成績(jī)統(tǒng)計(jì): 統(tǒng)計(jì)并以表格的形式顯示所有課程的平均分; 統(tǒng)計(jì)并顯示選定的某門(mén)課程的平均分以及超過(guò)該平均分的人數(shù),同時(shí)能將超過(guò)該平均分的學(xué)生記錄以表格的形式顯示出來(lái)。4) 說(shuō)明:(1) 要求將修改后的數(shù)據(jù)寫(xiě)入到一個(gè)新的數(shù)據(jù)文件中。(2) 對(duì)系統(tǒng)有興趣的同
5、學(xué)可以在實(shí)現(xiàn)基本要求的基礎(chǔ)上,完善系統(tǒng)的其它功能。5) 班級(jí)成績(jī)管理系統(tǒng)采用一個(gè)結(jié)構(gòu)體數(shù)組,學(xué)生成績(jī)數(shù)據(jù)庫(kù)結(jié)構(gòu)如下:int xh/*學(xué)號(hào)*/char name10/*姓名*/double yy/*英語(yǔ)*/double mat/*數(shù)學(xué)*/double jsj/*計(jì)算機(jī)*/double wl/*物理*/double zf/*總分*/注意:學(xué)號(hào)不能重復(fù)且不少于 4位數(shù)字,各項(xiàng)字符串的長(zhǎng)度要求在 410之 間,數(shù)據(jù)庫(kù)應(yīng)有 10 條或多于 10 條以上的記錄。6) 要求: 要求每個(gè)學(xué)生必須獨(dú)立思考, 認(rèn)真并按時(shí)完成本課程設(shè)計(jì)所包含的所有內(nèi)容 ; 要求學(xué)生必須按照課程設(shè)計(jì)報(bào)告的完整格式說(shuō)明設(shè)計(jì)內(nèi)容,設(shè)計(jì)任
6、務(wù)分析過(guò) 程和算法,給出程序流程圖和全部源程序 ; 設(shè)計(jì)報(bào)告的完整格式應(yīng)包括以下部分的內(nèi)容: 系統(tǒng)設(shè)計(jì)總體思路; 系統(tǒng)的主要功能; 系統(tǒng)功能模塊的劃分(要求畫(huà)出總體模塊框圖) ; 主要功能的實(shí)現(xiàn)和各個(gè)程序模塊說(shuō)明 (每個(gè)功能模塊的框圖、 系統(tǒng)主模塊的流程圖,各個(gè)功能模塊至少要有一個(gè)主要的流程圖) ; 程序調(diào)試過(guò)程及各模塊調(diào)試中相應(yīng)的部分截圖; 課程設(shè)計(jì)總結(jié)與體會(huì)(不少于 500 字)。 課程設(shè)計(jì)參考文獻(xiàn); 課程設(shè)計(jì)周內(nèi),凡規(guī)定的集中上機(jī)時(shí)間必須到機(jī)房調(diào)試程序; 設(shè)計(jì)完成后必須參加答辯,并按要求演示程序,提交課程設(shè)計(jì)報(bào)告和有關(guān)電 子文檔。7)分組及安排 所選題目根據(jù)學(xué)生班號(hào)和學(xué)號(hào)確定, (班號(hào)+
7、學(xué)號(hào)) % 6+1。如你的班號(hào)為 01 班、學(xué)號(hào)為01,則所選題目號(hào)為:(1+1) %6+仁3,即課題號(hào)為3。8)成績(jī)?cè)u(píng)定系統(tǒng)設(shè)計(jì)方案是否合理;程序設(shè)計(jì)是否正確;調(diào)試結(jié)果;設(shè)計(jì)說(shuō)明書(shū)的質(zhì)量高低;答辯時(shí)回答問(wèn)題情況;課程設(shè)計(jì)周表現(xiàn)情況;總評(píng)成績(jī)記入“課程設(shè)計(jì)成績(jī)?cè)u(píng)分表”。二、進(jìn)度安排第 17 周 星期三 14: 0017: 00講課、布置任務(wù)星期五 8 :0012: 00機(jī)房上機(jī)調(diào)試程序第 18 周 星期三 19: 0022: 00機(jī)房上機(jī)調(diào)試程序星期四 14: 0018: 00機(jī)房上機(jī)調(diào)試程序星期五 8 :0012: 00機(jī)房上機(jī)調(diào)試程序、答辯附:課程設(shè)計(jì)報(bào)告排版、打印和裝訂要求1. 課程設(shè)計(jì)
8、報(bào)告裝訂順序:封面、任務(wù)書(shū)、目錄、正文、附件、評(píng)分表。按A4大小的紙張排版和打印。2. 設(shè)計(jì)報(bào)告的頁(yè)碼從目錄之后開(kāi)始使用;3. 正文的格式 :一級(jí)標(biāo)題用 3號(hào)黑體,二級(jí)標(biāo)題用四號(hào)宋體加粗 ,正文用小四號(hào)宋體 ;行距為 22磅。正文中程序清單(英 文)用英文字體 Times New Roman,單倍行間距。4. 正文的內(nèi)容 : 一、課題的主要功能;二、課題的功能模塊的劃分(要求畫(huà)出模塊圖);三、主要功能的實(shí)現(xiàn)(至少要有一個(gè)主要模塊的流程圖) ;四、程序調(diào)試(各模塊至少有一個(gè)程序調(diào)試的截圖) ;五、總結(jié)(不少于 500 字);六、參 考文獻(xiàn) ;七、附件(包含所有程序的原代碼,且程序中應(yīng)有必要的注釋
9、)。八.正文總字?jǐn)?shù)要求在 5000 字以上(不含程序原代碼)。5設(shè)計(jì)報(bào)告中任務(wù)書(shū)和評(píng)分表不需重新排版。一、引言、尸、 亠前言C語(yǔ)言課程設(shè)計(jì)是對(duì)學(xué)生的一種全面綜合訓(xùn)練,它包括問(wèn)題分析,總體結(jié)構(gòu)設(shè)計(jì),用戶界面設(shè)計(jì),程序設(shè)計(jì)基本技能和技巧的培養(yǎng)。是與課堂聽(tīng)講、自學(xué)和練習(xí)相結(jié)合的 必不可少的一個(gè)環(huán)節(jié)。課程設(shè)計(jì)的課題比平時(shí)的習(xí)題復(fù)雜得多,也更接近實(shí)際。全面熟 悉、掌握C語(yǔ)言基本知識(shí),掌握C程序設(shè)計(jì)中的順序、分支、循環(huán)三種結(jié)構(gòu)及數(shù)組、函 數(shù)和C語(yǔ)言基本圖形編程等方法,把編程和實(shí)際結(jié)合起來(lái),熟悉編制和調(diào)試程序的技巧, 掌握分析結(jié)果的若干有效方法,進(jìn)一步提高上機(jī)動(dòng)手能力,培養(yǎng)使用計(jì)算機(jī)解決實(shí)際問(wèn) 題的能力,養(yǎng)
10、成提供文檔資料的習(xí)慣和規(guī)范編程的思想,為以后在專業(yè)課程中應(yīng)用計(jì)算 機(jī)系統(tǒng)解決計(jì)算、分析、實(shí)驗(yàn)和設(shè)計(jì)等學(xué)習(xí)環(huán)節(jié)打下較扎實(shí)的基礎(chǔ)。設(shè)計(jì)目的 隨著電腦技術(shù)的發(fā)展越來(lái)越快,管理系統(tǒng)得到人們廣泛的應(yīng)用。本課題中編寫(xiě)班級(jí) 成績(jī)管理系統(tǒng)主要是為了方便我們能更加高效快捷地管理學(xué)生的各項(xiàng)成績(jī)信息, 能夠?qū)?學(xué)生成績(jī)進(jìn)行追加、修改、刪除等操作。并能對(duì)輸入的數(shù)據(jù)進(jìn)行平均分、總分的計(jì)算以 及總分的排序,進(jìn)而清楚明朗地顯示出來(lái)。二、總體設(shè)計(jì)主要功能主要實(shí)現(xiàn)對(duì)學(xué)生成績(jī)信息實(shí)現(xiàn)成績(jī)的顯示, 成績(jī)的追加, 成績(jī)的修改, 成績(jī)的查詢, 成績(jī)的刪除,成績(jī)的排序和統(tǒng)計(jì)等功能。班級(jí)成績(jī)管理系統(tǒng)具體提供以下功能:a、成績(jī)顯示:完成全班
11、同學(xué)全部學(xué)生成績(jī)的顯示,以表格形式顯示出來(lái),并 帶有表頭。b、成績(jī)追加:新增學(xué)生成績(jī)記錄,在追加過(guò)程中有相應(yīng)的提示信息并實(shí)現(xiàn)連 續(xù)追加的功能。追加成功的成績(jī)能重新計(jì)算學(xué)生的平均成績(jī)并顯示。c、成績(jī)修改:實(shí)現(xiàn)按學(xué)號(hào)修改和按姓名修改兩種修改方式,并可以對(duì)指定的 學(xué)生的各科成績(jī)進(jìn)行修改,修改過(guò)程中有相應(yīng)的提示信息。修改后能重新計(jì) 算學(xué)生的平均成績(jī)。d、成績(jī)刪除:對(duì)指定的學(xué)號(hào)或者指定的姓名進(jìn)行定位刪除,并有相應(yīng)的提示 信息。件的查詢結(jié)果。查詢的信息不存在時(shí)有相應(yīng)的提示信息。f、成績(jī)排名:按學(xué)生平均成績(jī)進(jìn)行排序,并以表格形式顯示。g、成績(jī)統(tǒng)計(jì):以表格的形式顯示所有課程的平均分,并顯示選定的某門(mén) 課程的平
12、均分以及超過(guò)該平均分的人數(shù),同時(shí)將超過(guò)該平均分的學(xué)生記 錄以表格的形式顯示出來(lái)。功能模塊劃分(1) 本程序由八個(gè)模塊構(gòu)成,其中主模塊是由系統(tǒng)函數(shù)搭建而成,其重要功能是顯示 出功能主菜單,由用戶作出選擇進(jìn)入子菜單。在子菜單中操作完畢后,能夠準(zhǔn)確返回到 功能主菜單。系統(tǒng)主要模塊流程圖如下:(2) 模塊說(shuō)明主界面mai n()用戶選擇界面顯示模塊Disp()顯示所有學(xué)生的成績(jī)信息追加模塊Appe()添加學(xué)生成績(jī)信息修改模塊Modi()修改學(xué)生某項(xiàng)成績(jī)信息刪除模塊Dele()刪除學(xué)生某項(xiàng)成績(jī)信息查詢模塊Query()查詢學(xué)生成績(jī)信息三、詳細(xì)設(shè)計(jì)輸入修改的成績(jī)Sort模塊退出模塊否繼(Y/N)排序模塊
13、統(tǒng)計(jì)續(xù)保存并退出息丿 111、輸入修改的成績(jī)卜排序主要功能的實(shí)現(xiàn)(下面以追加(1)追加模塊流程圖結(jié)束結(jié)存并退出到成績(jī)修改菜單(2)修改模塊流程圖程序調(diào)試各模塊運(yùn)行步驟及界面“ 1”進(jìn)入全班成績(jī)顯示菜單)模塊截圖在功能主菜單輸入“ 2”進(jìn)入成績(jī)追加界面,這里輸入一組追加信息后,系統(tǒng)會(huì)提示是 否繼續(xù)追加,從而實(shí)現(xiàn)了“連續(xù)追加”的功能)模塊截圖(注:這里的總分輸入值為0,因?yàn)樵谠摮绦蛑?,總分?huì)計(jì)算出來(lái))修改模塊(在功能主菜單輸入“ 4”進(jìn)入成績(jī)修改菜單,這里可以根據(jù)學(xué)號(hào)和姓名查找 到對(duì)應(yīng)學(xué)生成績(jī)信息進(jìn)行修改。下面以按姓名修改為例,對(duì)姓名為“ ww的學(xué)生的計(jì)算 機(jī)成績(jī)進(jìn)行修改后,系統(tǒng)還能提示是否對(duì)該生
14、的其他科目成績(jī)進(jìn)行繼續(xù)修改,實(shí)現(xiàn)了 “一人多項(xiàng)”的修改功能。修改完系統(tǒng)會(huì)退到所有學(xué)生成績(jī)菜單,可以清楚地看到修改后的 學(xué)生的成績(jī)信息)模塊截圖在功能主菜單輸入“ 4”進(jìn)入刪除方式菜單,此功能可以對(duì)學(xué)生成績(jī)信息進(jìn)行按學(xué)號(hào)刪 除和按姓名刪除兩種刪除方式。下面以對(duì)姓名為“ ww的學(xué)生成績(jī)進(jìn)行刪除,輸入該生 姓名后,系統(tǒng)能顯示該生的各項(xiàng)成績(jī)信息,并提示是否確認(rèn)刪除。刪除后,系統(tǒng)還能提 示是否繼續(xù)進(jìn)行刪除操作。這里的刪除模塊實(shí)現(xiàn)了“多人多項(xiàng)”的刪除功能,操作使用 起來(lái)十分便利高效。如果不繼續(xù),選擇“ 2”能退出到刪除方式菜單,進(jìn)行接下來(lái)的刪 除操作)模塊截圖“5”系統(tǒng)進(jìn)入成績(jī)查詢菜單。此功能可以對(duì)學(xué)生成
15、績(jī)信息按學(xué)號(hào)查詢和按姓名查詢, 以下以按學(xué)號(hào)查詢?yōu)槔?。輸入學(xué)號(hào)為“ 201310”的學(xué)生學(xué)號(hào),系統(tǒng)以表格的形式顯示出 該生的成績(jī)信息。輸入“ 1”能返回到查詢菜單繼續(xù)查詢,輸入任意鍵系統(tǒng)退出到主菜 單界面)查詢模塊截圖“6”進(jìn)入成績(jī)排名的界面,成績(jī)排名以總分的高低由高向低以表格的形式顯示出來(lái))排序詢模塊截圖“7”進(jìn)入平均分統(tǒng)計(jì)菜單界面,菜單顯示: 1、所有課程平均分 2、單一課程平均分 3、 退出。以下輸入“ 2”進(jìn)入單一課程平均分界面,菜單界面顯示各科目的選擇列表,輸 入“ 2”查詢數(shù)學(xué)成績(jī)的平均分,結(jié)果以表格形式輸出超過(guò)該科平均分的學(xué)生信息。查 詢完數(shù)學(xué)這項(xiàng)后, 還能繼續(xù)對(duì)其他科目的平均分
16、統(tǒng)計(jì)信息進(jìn)行查詢。 實(shí)現(xiàn)了“多次循環(huán)” 的功能)模塊截圖 “8”進(jìn)入退出界面,如下圖:鍵入任意鍵即可退出該系統(tǒng))模塊截圖四、問(wèn)題分析及總結(jié)問(wèn)題分析從接到這個(gè)課題開(kāi)始,我們就開(kāi)始了為期一周的 C 語(yǔ)言課程設(shè)計(jì)。首先是針對(duì)本次 課題設(shè)計(jì)進(jìn)行建庫(kù)工作,在開(kāi)始建庫(kù)的過(guò)程中,就遇到了一點(diǎn)困難。建庫(kù)的時(shí)候一不留 神就會(huì)使輸入的數(shù)據(jù)庫(kù)前功盡棄,為此嘗試了幾次,最后耐心地一項(xiàng)一項(xiàng)輸才建好庫(kù)。 針對(duì)這個(gè)課題,老師給我們分了 7 人一組的小組進(jìn)行合作,我在組中主要負(fù)責(zé)了修改模 塊程序的編寫(xiě)和整個(gè)系統(tǒng)的美化工作。在調(diào)試過(guò)程中遇到了不少的錯(cuò)誤、警告等信息, 有時(shí)候因?yàn)橐粋€(gè)符號(hào)的失誤導(dǎo)致程序的錯(cuò)誤達(dá)到十幾個(gè)。在做完修改
17、模塊后,個(gè)人覺(jué)得 修改的方式還是不夠妥當(dāng),不能實(shí)現(xiàn)多想同時(shí)修改而只能一項(xiàng)一項(xiàng)進(jìn)行修改保存。這是 我個(gè)人覺(jué)得修改模塊存在的值得改進(jìn)的地方??偨Y(jié)學(xué)習(xí)C語(yǔ)言已經(jīng)半年了,半年來(lái),從接觸 C語(yǔ)言這門(mén)課程到后來(lái)逐漸了解這門(mén)課程 的點(diǎn)滴知識(shí),使我自己對(duì)計(jì)算機(jī)方面的知識(shí)有了更加深刻的認(rèn)識(shí)。 作為一個(gè)電腦愛(ài)好者, 平時(shí)和同學(xué)們?cè)谝黄鹁拖矚g討論 java 編程和電腦系統(tǒng)方面的知識(shí)。從一年前拿到自己 的第一臺(tái)智能手機(jī)刷機(jī)開(kāi)始,漸漸了解一點(diǎn)關(guān)于安卓 apk 程序的開(kāi)發(fā)及框架。每次的刷 機(jī)都會(huì)使我自己對(duì)安卓系統(tǒng)有進(jìn)一步的了解,同時(shí),每次解決一個(gè)問(wèn)題,都會(huì)有一點(diǎn)點(diǎn) 小小的成就感。最近的半年,由于電腦的使用頻率的增加,注意
18、力開(kāi)始轉(zhuǎn)移到電腦系統(tǒng) 的安裝以及自己學(xué)習(xí)封裝 win7 系統(tǒng)。由于對(duì)電腦軟件的使用和電腦知識(shí)了解較多,很 多同學(xué)們電腦有問(wèn)題都會(huì)找我?guī)兔Γ@半年中,拆過(guò)許多筆記本電腦,用各種方法裝過(guò) 很多臺(tái)電腦的系統(tǒng),還裝了幾臺(tái)機(jī)子的內(nèi)存以及對(duì)電腦主板上灰塵的進(jìn)行清理。這些在 我看來(lái)簡(jiǎn)單的操作給我自己帶來(lái)了許多快樂(lè),同時(shí)也給別人帶去了方便。剛接觸到 C 語(yǔ)言這門(mén)課程時(shí)就感覺(jué)到了它的難度,但通過(guò)漸漸的學(xué)習(xí),我認(rèn)識(shí)到了 它的重要性,更認(rèn)識(shí)到這是一種能力的培養(yǎng)。經(jīng)過(guò)幾次的上機(jī)操作,看到自己設(shè)計(jì)的程 序能運(yùn)行出正確的結(jié)果,開(kāi)始對(duì) C 語(yǔ)言產(chǎn)生了興趣。同時(shí),學(xué)習(xí)的東西越來(lái)越復(fù)雜,遇 到的困難也越來(lái)越多。拿到我們組的課題
19、時(shí),心里十分的沒(méi)底,覺(jué)得很難不知道該如何下手。原因是自己 沒(méi)把知識(shí)真正學(xué)到手,不知道自己學(xué)的東西能不能用得上。但學(xué)習(xí)就是要不斷的發(fā)現(xiàn)問(wèn) 題,不斷的解決問(wèn)題的。于是,在試探中開(kāi)始了建庫(kù)的工作。曾以為建庫(kù)是很簡(jiǎn)單很容 易的,但是開(kāi)始建立的時(shí)候,就很容易出錯(cuò)。通過(guò)幾次失敗,幾次重試,終于建好了庫(kù) 文件。接下來(lái)的任務(wù)就是做好我負(fù)責(zé)的修改模塊,在做修改模塊的時(shí)候,問(wèn)題的困難程 度還是顯現(xiàn)出來(lái)了,調(diào)用函數(shù)的時(shí)候經(jīng)常出錯(cuò)。程序運(yùn)行起來(lái)不能對(duì)指定的學(xué)生成績(jī)信 息進(jìn)行連續(xù)的修改,經(jīng)過(guò)同學(xué)們一起努力,慢慢改正了一點(diǎn)錯(cuò)誤。上機(jī)調(diào)試的時(shí)候,在 指導(dǎo)老師的幫助下逐漸將不能連續(xù)修改的問(wèn)題解決。 接著就遇到了程序運(yùn)行完畢不
20、能退 出到主菜單的問(wèn)題,在幾次嘗試修改語(yǔ)句后,終于知道了語(yǔ)句缺失的命令,最后完美地 解決了這個(gè)問(wèn)題。在解決問(wèn)題的過(guò)程中,對(duì)于課堂上學(xué)的 for ,Switch 和 while 語(yǔ)句還 有結(jié)構(gòu)體的使用和指針的用法與作用都有了進(jìn)一步的認(rèn)識(shí)。后來(lái)遇到問(wèn)題的時(shí)候,查閱 了課本知識(shí),通過(guò)網(wǎng)絡(luò)查找到與之類似的問(wèn)題加以解決。經(jīng)過(guò)幾次上機(jī)調(diào)試后,其余同學(xué)已經(jīng)將剩下的模塊做得差不多了。但是我發(fā)現(xiàn)一個(gè) 普遍的問(wèn)題,那就是所有界面的布局都不夠合理。于是接下來(lái)的工作就把各模塊的顯示 菜單進(jìn)行美化,使界面看起來(lái)清晰美觀。這個(gè)看似簡(jiǎn)單的工作做起來(lái)卻是很費(fèi)時(shí)間,因 為要想把顯示得居中,同時(shí)清晰明朗,得加入空格或者是加入“
21、t ”,可能就因?yàn)橐粋€(gè) 空格對(duì)不齊就不能很好地顯示對(duì)應(yīng)的信息。另外我發(fā)現(xiàn)程序運(yùn)行界面就是黑白相間,顯 得不夠美觀,于是在查閱資料后弄明白了,加入一個(gè)頭文件然后再主函數(shù)中加入顏色的 調(diào)用命令。在網(wǎng)上查找了關(guān)于顏色的代碼,添加進(jìn)去后運(yùn)行界面顯得很漂亮,比以前黑 白相間的界面更明朗美觀。一周的時(shí)間很快就過(guò)去了, C 語(yǔ)言答辯安排就在老師安排下開(kāi)始了。周五上午,我 就在機(jī)房里完成了答辯。現(xiàn)在覺(jué)得有點(diǎn)遺憾的就是,老師問(wèn)我的問(wèn)題因?yàn)榫o張了一定就 沒(méi)回答得很好,覺(jué)得有點(diǎn)失望。但是我的程序做得還是比較合理,因?yàn)樵诖疝q運(yùn)行時(shí), 老師所要求的所有操作我的程序都能實(shí)現(xiàn),而且完美無(wú)瑕,這讓我覺(jué)得付出還是有回報(bào) 的。經(jīng)
22、過(guò)這次的 C 語(yǔ)言課程設(shè)計(jì),我才真正了解到理論知識(shí)轉(zhuǎn)為實(shí)踐的重要性。其實(shí)從 剛接到課題任務(wù)的時(shí)候,心里還是有點(diǎn)畏懼的,畢竟這個(gè)系統(tǒng)的源程序就有好幾頁(yè),看 著就頭痛。但是看著同學(xué)們一個(gè)個(gè)認(rèn)真的坐在電腦面前幾個(gè)小時(shí)一點(diǎn)點(diǎn)摸索,自己才開(kāi) 始冷靜地思考著問(wèn)題。通過(guò)自己的努力,同學(xué)們的幫助和老師的指導(dǎo),終于完成了這個(gè) 課題的設(shè)計(jì)任務(wù)。同時(shí),也使我對(duì) C語(yǔ)言課程有了更為深刻的認(rèn)識(shí),讓我對(duì)自己有了信 心。我想,若干年后,當(dāng)看到我做的這份報(bào)告,都會(huì)是一段美好的回憶。這段短短幾天 的努力也會(huì)給我動(dòng)力,給我在以后的學(xué)習(xí)中以鞭策,更加加深我對(duì)計(jì)算機(jī)知識(shí)的了解。五、參考文獻(xiàn)1 賈宗璞,許合利 . C 語(yǔ)言程序設(shè)計(jì) .
23、 人民郵電出版社2 陳世清,李杰君 . C 語(yǔ)言程序設(shè)計(jì) . 浙江大學(xué)出版社3 鄭莉. C+ 語(yǔ)言程序設(shè)計(jì) . 清華大學(xué)出版社六、附件源程序清單:#include #include #include #include int N=0;struct stuint xh; /*學(xué)號(hào)*/char name18; /*姓名*/double yy; /*英語(yǔ)*/double mat; /*數(shù)學(xué)*/double jsj; /*計(jì)算機(jī) */double wl; /*物理*/double zf; /*總分*/s20;void Re_file()FILE *fp;fp=fopen(,r);while( fsca
24、nf(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(,w); for(i=0;iN;i+)fprintf(fp,%dn%sn%lfn%lfn%lfn%lfn%lfn,si.xh,,si.yy,s i.mat,si.jsj,si.wl,si.zf);fclose(fp);void Js() /*計(jì)算總分 */int i;for(i=0;iN;i+)
25、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;kN;k+)avek=sk.zf/4; /* 計(jì)算平均分 */for(k=0;kN-1;k+)for(j=k+1;jN;j+)if(avekavej) t=avek;avek=avej;avej=t; /* 對(duì)平均分排序 */ m=sk;sk=sj;sj=m; /* 按平均分整體排序 */void Disp() /* 顯示模塊 */Js();int i;printf(ntttt 全班學(xué)生成績(jī)表
26、 n);printf(tn);平均分printf(t 學(xué)號(hào) 姓名 英語(yǔ) 數(shù)學(xué) 計(jì)算機(jī) 物理 總分 n);printf(tn); for(i=0;iN;i+)printf(t %dt %st %.1lft %.1lft %.1lft %.1lft %.1lf %.1lfn,s i.xh,,si.yy,si.mat,si.jsj,si.wl,si.zf,si.zf/4);printf(tn);printf( 按回車(chē)鍵返回主菜單: getchar();void Total() /*double av4=;int xz,sum0,sum1,sum2,sum3;int xz2;int k,
27、i; sum0=sum1=sum2=sum3=0; for(k=0;kN;k+) av0+=sk.yy;av1+=sk.mat; av2+=sk.jsj; av3+=sk.wl;av0=av0/N; av1=av1/N; av2=av2/N; av3=av3/N; for(k=0;kav0) sum0+; if(sk.matav1) sum1+; if(sk.jsjav2) sum2+; if(sk.wlav3) while(1) sum3+;/*printf(nnn); printf( printf( printf( printf( printf( printf( printf( print
28、f( printf(nn);計(jì)算各科課程平均分 */比較學(xué)生各科成績(jī)與平均成績(jī)統(tǒng)計(jì)菜單一 */*/平均分統(tǒng)計(jì)菜單 n);*n);*n); 所有課程平均分 單一課程平均分 退出 *n);*n);*n);*1.2.3.*n);*n);printf( 請(qǐng)輸入您要統(tǒng)計(jì)的方式 :); while(1)scanf(%d,&xz);if(xz=1 |xz=2 | xz=3 ) break;入!);else printf(nnnn輸入錯(cuò)誤 ! 請(qǐng)重新輸break; if(xz=1) printf(nnn);printf(各科成績(jī)平均分 n);printf(n);printf(英語(yǔ)計(jì)算機(jī)數(shù)學(xué)物理 n)print
29、f(n);printf(%n,av0,av1,av2,av3);printf(n);if(xz=2)while(1)各科成績(jī)平均分統(tǒng)計(jì):n);printf(n/* 統(tǒng)計(jì)菜單二 */printf( printf( printf( printf( printf( printf( printf( printf(n while(1)*n);*n);英語(yǔ) 2.計(jì)算機(jī) 4.退出到平均分統(tǒng)計(jì)菜單*n);1.3.0.數(shù)學(xué)物理*n); 請(qǐng)選擇您查詢的科目 :);*n);*n);*n); scanf(%d,&xz2); if(xz2=1 |xz2=2 | xz2=3 | xz2=4 | xz2=0) break;
30、else printf(n入:);if(xz2=1) /*printf(n數(shù): %dn,av0,sum0);printf(輸入錯(cuò)誤 ! 請(qǐng)重新輸統(tǒng)計(jì)超出英語(yǔ)平均分人數(shù) */英語(yǔ)平均成績(jī):%.1ft超過(guò)人printf(學(xué)號(hào)姓名 英語(yǔ) 數(shù)學(xué)計(jì)算機(jī) 物理 n);printf(n);for(i=0;iav0)printf(n);if(xz2=2)/*.jsj,si.wl);統(tǒng)計(jì)超出數(shù)學(xué)平均分人數(shù) */數(shù)學(xué)平均成績(jī): %.1ft 超過(guò)人學(xué)號(hào) 姓名 英語(yǔ) 數(shù)學(xué) 計(jì)算機(jī)printf( %d %s%n,si.xh,,si.yy,si.mat,siprintf(n數(shù): %dn,av1,sum1);
31、printf(n);printf(物理 n);printf(n);for(i=0;iav1)if(xz2=3) /*printf(n數(shù): %dn,av2,sum2);printf( n);printf(printf(.jsj,si.wl);%d %s%n,si.xh,,si.yy,si.mat,siprintf(n);統(tǒng)計(jì)超出計(jì)算機(jī)平均分人數(shù) */計(jì)算 機(jī)平 均成績(jī): %.1ft 超 過(guò)人學(xué)號(hào) 姓名 英語(yǔ) 數(shù)學(xué) 計(jì)算機(jī)printf(n);for(i=0;iav2)printf( %d %s%n,si.xh,,si.yy,si.mat,siprintf(n);if(x
32、z2=4)printf(n/*數(shù):%dn,av3,sum3);printf(printf(-n);物理n);printf(for(i=0;iav3)統(tǒng)計(jì)超出物理平均分人數(shù) */物理平均成績(jī): %.1ft學(xué)號(hào) 姓名 英語(yǔ) 數(shù)學(xué)超過(guò)人計(jì)算機(jī)printf( %d %s%n,si.xh,,si.yy,si.mat,s i.jsj,si.wl);printf( n); if(xz2=0) break;if(xz=3) break;void Appe1() /* 追加模塊 1*/int i=N;printf(t學(xué)號(hào): );scanf(%d,&si.xh); printf(t姓名: );sca
33、nf(%s,); printf(t英語(yǔ): );scanf(%lf,&si.yy); printf(t數(shù)學(xué): );scanf(%lf,&si.mat); printf(t 計(jì)算機(jī): ); scanf(%lf,&si.jsj); printf(t物理: );scanf(%lf,&si.wl); printf(t總分: );scanf(%lf,&si.zf); N+;void Appe() /* 追加模塊 */char s=y;int i;for(i=0;s=y | s=Y;i+)n);printf( 請(qǐng)輸入追加的學(xué)生成績(jī)信息: Appe1();getchar();printf( 是否
34、繼續(xù)輸入 n(Y/N); scanf(%c,&s);Wr_file();void Modi1(int i) /* 修改模塊 1*/int n;double temp;while(1)printf(nnn);printf( *n);printf(printf(1. 英 語(yǔ)2. 數(shù) 學(xué)*n);5. 返 回 上 級(jí) 菜 單*n);printf(*n);printf(*n);printf(*n);*printf(nn 請(qǐng)輸入您的選擇 :);while(1) scanf(%d,&n);if(n=1|n=2|n=3|n=4|n=5) break;else printf(tttt 對(duì)不起,輸入有誤 ! 請(qǐng)重
35、新輸入 :); if(n=1)printf( 請(qǐng)修改后的英語(yǔ)成績(jī)?yōu)?:); scanf(%lf,&temp);si.yy=temp;if(n=2)printf( 請(qǐng)修改后的數(shù)學(xué)成績(jī)?yōu)?:); scanf(%lf,&temp);si.mat=temp;if(n=3)printf( 請(qǐng)修改后的計(jì)算機(jī)成績(jī)?yōu)?:);scanf(%lf,&temp);si.jsj=temp;if(n=4)printf( 請(qǐng)修改后的物理成績(jī)?yōu)?:);scanf(%lf,&temp);si.wl=temp;if(n=5)break;*n);printf( *n);printf( *n);printf( *n);printf
36、(*1. 按 學(xué)號(hào) 修改2. 按 姓 名 修 改3.返回到所 有成績(jī)及主菜 單*n);printf(*n); printf(nn 請(qǐng)輸入您要修改的方式: while(1)scanf(%d,&xz3); if(xz3=1|xz3=2|xz3=3) break; printf(tttif(xz3=1)/*II);對(duì)不起,輸入有誤 !請(qǐng)重新輸入 :n);按學(xué)號(hào)修改 */void Modi() /* 修改模塊 */ int i,xz3,xh,j;char name10;while(1)成績(jī)修改菜單 n);printf(printf(*n);printf(*printf( 輸入你要修改的學(xué)號(hào): ); w
37、hile(1)scanf(%d,&xh); for(j=0,i=0;i=N;i+) if(xh=si.xh)Modi1(i); j+;if(j=0) break;printf(nnttt 輸入有誤 !nttt 請(qǐng)重新輸入學(xué)號(hào): );if(j=1) break;if(xz3=2) /* 按姓名修改 */printf( 輸入你要修改的姓名: ); while(1) scanf(%s,name); for(j=0,i=0;i=N;i+) if(strcmp(name,)=0) Modi1(i); j+;if(j=0)printf(nnttt 輸入有誤 !nttt 請(qǐng)重新輸入姓名: );
38、 if(j=1) break;if(xz3=3) break;Wr_file();void Dele() /* 刪除模塊 */int h=0,n,i=0,k,d,j,b=0,o,bb,y;struct stu *p;p=s;char a10;while(h=0) printf(nnn); printf( printf( printf( printf( printf( printf( printf( printf( printf( printf(printf(n刪除方式菜單 n);*n);*n);、按學(xué)號(hào)刪除成績(jī)*n);、按姓名刪除成績(jī)*n);、返回到主菜單*n);*n);請(qǐng)選擇刪除方式: );
39、*n);*n);*n);scanf(%d,&j); switch(j) case 1:printf( 請(qǐng)輸入要?jiǎng)h除的學(xué)號(hào) :); scanf(%d,&n);bb=0;for(i=0;iN;i+)if(si.xh=n)bb=1;printf(ttn);printf(t 學(xué)號(hào) 姓名 英語(yǔ) 數(shù)學(xué) 計(jì)算機(jī) 物理 n);printf(ttn);printf(tt%dt%st%.0lft%.0lft%.0lft%.0lftn,si.xh,,si. yy,si.mat,si.jsj,si.wl);printf(ttn);printf(1 、確認(rèn)刪除 n2 、顯示所有學(xué)生成績(jī)并返回主菜單 n 請(qǐng)
40、問(wèn)您 是否確認(rèn)刪除 :);scanf(%d,&o);switch(o)case 1:for(y=i;yN;y+)py=py+1;N-;h=1;while(b=0)printf(nntttt 刪除成功 !nn);printf(n1 、返回繼續(xù)刪除 n2 、顯示所有成績(jī)并返回到主菜 單n是否繼續(xù)刪除:);scanf(%d,&d);if(d=1)bb=1;h=0;break;elseh=1; break;break; default: h=1; break;break; while(bb=0)printf(nntttt 您的輸入有誤 ! 請(qǐng)重新輸入 :); bb=1;break;break;case
41、 2:printf( 請(qǐng)輸入要?jiǎng)h除的姓名 :); scanf(%s,a);bb=0;for(i=0;iN;i+)k=strcmp(a,);if (k=0)bb=1;printf(ttn);printf(t 學(xué)號(hào) 姓名 英語(yǔ) 數(shù)學(xué) 計(jì)算機(jī) 物理 n);printf(ttn);printf(tt%dt%st%.0lft%.0lft%.0lft%.0lftn,si.xh,,si. yy,si.mat,si.jsj,si.wl);printf(ttn);printf(1 、確認(rèn)刪除 n2 、顯示所有學(xué)生成績(jī)并返回到主菜單 n 請(qǐng)問(wèn) 您是否確認(rèn)刪除 );scanf(%d,&o
42、);switch(o)case 1:for(y=i;yN;y+)py=py+1;N-;k=1;h=1;while(b=0) printf(nntttt刪除成功 !nn);printf(n1 、繼續(xù)刪除 n2 、返回主菜單 n 是否繼續(xù)刪除 :); scanf(%d,&d);if(d=1) h=0; k=1; break; else h=1; k=1; break;break; default:h=1;break; while(bb=0) printf(nntttt 您的輸入有誤 ! 請(qǐng)重新輸入 :n); bb=1; break;break;default:h=1;break;if(h=1) b
43、reak;void Query() /*查詢模塊 */int h=0,n,i=0,k,d,j,b=0,bb;char a10;Js();while(h=0)printf(nn);printf(*n);printf( * 成績(jī)查詢方式printf( * *n);printf(*1、按學(xué)號(hào)查詢printf(*n);printf(*2、按姓名查詢printf(*n);printf(*3、返回主菜單printf( *n);*n);*n);*n);*n);printf(*n);printf(n 請(qǐng)輸入相應(yīng)查詢方式 :);scanf(%d,&j);switch(j)case 1:printf(n 請(qǐng)輸入您
44、要查詢的學(xué)號(hào) :); scanf(%d,&n);for(i=0;iN;i+)bb=0;if(si.xh=n)bb=1;printf(nnnn);printf(您查詢的成績(jī)?nèi)缦?n);printf(*n);printf( 學(xué)號(hào) 姓名 英語(yǔ) 數(shù)學(xué)計(jì)算機(jī) 物理 總分 n);printf(n);printf(t%dt%st%.0lft%.0lft%.0lft%.0lft%.0lfn,si.xh,,si.yy,si.mat,si.jsj,si.wl,si.zf);printf(*松 H break;*n);printf( 學(xué)號(hào) 姓名 英語(yǔ) 數(shù)學(xué)計(jì)算機(jī) 物理 總分 n);if(bb=0)printf(n您的輸入有誤 ! 請(qǐng)重新輸入 !n);break;while(b=0)printf(nnnn 1 、 輸 入 1 返 回 查 詢 菜 單 n 2、輸入任意鍵返回主菜單 n 請(qǐng)輸入您的選擇 :);scanf(%d,&d);i
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 《模具制造工藝學(xué)》教學(xué)大綱
- 教案裝訂順序
- 四個(gè)自信課件
- 玉溪師范學(xué)院《現(xiàn)代教育技術(shù)》2022-2023學(xué)年第一學(xué)期期末試卷
- 玉溪師范學(xué)院《田徑》2021-2022學(xué)年第一學(xué)期期末試卷
- 教練員繼續(xù)教育考試題目及答案-知識(shí)題庫(kù)
- 湖南師大附中2024-25屆高三年級(jí)月考試卷(二)(英語(yǔ))
- 電商公司整體薪酬設(shè)計(jì)(早期)
- 《信號(hào)基礎(chǔ)設(shè)備》全套教學(xué)課件
- 2023年雙頻、雙模移動(dòng)通信手機(jī)項(xiàng)目綜合評(píng)估報(bào)告
- 《老年人生活照護(hù)》試卷A卷及答案
- 消防安全知識(shí)培訓(xùn)課件
- 高中歷史選擇性必修2知識(shí)點(diǎn)總結(jié)歸納
- 16J914-1 公用建筑衛(wèi)生間
- 物聯(lián)網(wǎng)應(yīng)用技術(shù)職業(yè)生涯規(guī)劃
- 2024年廣東恒健投資控股有限公司招聘筆試參考題庫(kù)含答案解析
- 2型糖尿病人生活質(zhì)量評(píng)定量表(中文版)
- GR326CORE規(guī)范講解
- 新訓(xùn)工作總結(jié)(共5篇)
- 五年級(jí)下冊(cè)牛津英語(yǔ)期中試卷【精】
- 《垃圾分類》ppt課件
評(píng)論
0/150
提交評(píng)論