c語言課程設(shè)計(jì)班級(jí)成績管理系統(tǒng)_第1頁
c語言課程設(shè)計(jì)班級(jí)成績管理系統(tǒng)_第2頁
c語言課程設(shè)計(jì)班級(jí)成績管理系統(tǒng)_第3頁
c語言課程設(shè)計(jì)班級(jí)成績管理系統(tǒng)_第4頁
c語言課程設(shè)計(jì)班級(jí)成績管理系統(tǒng)_第5頁
已閱讀5頁,還剩35頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、 課 程 設(shè) 計(jì) 報(bào) 告課程名稱 C語言程序設(shè)計(jì) 課題名稱 班級(jí)成績管理系統(tǒng) 專 業(yè) 電氣工程及其自動(dòng)化 班 級(jí) 電氣1183班 學(xué) 號(hào) 201123456789 姓 名 黃 新 指導(dǎo)教師 王 穎 2013年 6 月 20 日湖南工程學(xué)院課 程 設(shè) 計(jì) 任 務(wù) 書課程名稱 C語言程序設(shè)計(jì) 課 題 班級(jí)成績管理系統(tǒng) 專業(yè)班級(jí) 電氣1183班 學(xué)生姓名 黃 鑫 學(xué) 號(hào) 201113010330 指導(dǎo)老師 王 穎 審 批 任務(wù)書下達(dá)日期 2013 年 6 月 15 日 任務(wù)完成日期 2013 年 6 月 23 日目錄一、引言1二、總體設(shè)計(jì)2三、詳細(xì)設(shè)計(jì)4四、問題分析及總結(jié)13五、參考文獻(xiàn)15六、附件

2、15一、設(shè)計(jì)內(nèi)容與設(shè)計(jì)要求1. 設(shè)計(jì)內(nèi)容:班級(jí)成績管理系統(tǒng)設(shè)計(jì)涉及的知識(shí)點(diǎn):掌握并熟練運(yùn)用C語言的基本數(shù)據(jù)類型與各種表達(dá)式,程序的流程控制語句;掌握數(shù)組的基本概念。熟練掌握一維數(shù)組、二維數(shù)組的應(yīng)用、掌握字符數(shù)組與字符串的關(guān)系以及字符串的簡單處理。掌握函數(shù)的定義,函數(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è)計(jì)要求:

3、1) 用C語言實(shí)現(xiàn)系統(tǒng);利用結(jié)構(gòu)體數(shù)組實(shí)現(xiàn)班級(jí)成績的數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì);系統(tǒng)的各個(gè)功能模塊要求用函數(shù)的形式實(shí)現(xiàn);應(yīng)提供一個(gè)界面來調(diào)用各個(gè)功能,調(diào)用界面和各個(gè)功能的操作界面應(yīng)盡可能清晰美觀;各項(xiàng)顯示數(shù)據(jù)均要求以表格的形式輸出;在各功能子模塊中應(yīng)設(shè)計(jì)相應(yīng)的二級(jí)菜單。2) 建立一個(gè)班級(jí)學(xué)生成績數(shù)據(jù)庫,文件名為bjcjk.txt,并從該文件中讀取數(shù)據(jù);3) 班級(jí)成績管理系統(tǒng)應(yīng)能提供以下功能:(1)主菜單界面設(shè)計(jì)。通過提示用戶輸入一個(gè)數(shù)字選項(xiàng),調(diào)用相應(yīng)的功能函數(shù)。(2)學(xué)生成績顯示:完成班級(jí)全部學(xué)生成績的顯示,顯示時(shí)按表格的形式,且應(yīng)有表頭;(3)學(xué)生成績追加:完成新增一個(gè)(或多個(gè))學(xué)生的成績記錄,要求在追加

4、過程中有相應(yīng)的提示信息,完成追加后能重新計(jì)算學(xué)生平均成績并顯示; (4)學(xué)生成績修改:要求能按學(xué)號(hào)和按姓名兩種定位方式,且可以按用戶要求修改記錄中除學(xué)號(hào)和姓名以外的指定內(nèi)容,并重新計(jì)算學(xué)生的平均成績;(5)學(xué)生成績信息的查詢;要示系統(tǒng)能按學(xué)號(hào)、按姓名查詢以及能查總分在某一指定范圍內(nèi)的學(xué)生信息,且能顯示符合條件的所的記錄,若所需查詢的信息不存在時(shí)應(yīng)有相應(yīng)的提示信息。(6)學(xué)生成績信息的刪除;要求可按指定的學(xué)號(hào)和指定的姓名兩種定位方式刪除學(xué)生的成績記錄。(7)要求在刪除模塊、修改模塊和查詢模塊中若找不到所需的記錄時(shí),系統(tǒng)設(shè)計(jì)中應(yīng)有一定的提示信息。 (8)成績排序:按學(xué)生平均成績進(jìn)行排序;(9)成績

5、統(tǒng)計(jì): 統(tǒng)計(jì)并以表格的形式顯示所有課程的平均分; 統(tǒng)計(jì)并顯示選定的某門課程的平均分以及超過該平均分的人數(shù),同時(shí)能將超過該平均分的學(xué)生記錄以表格的形式顯示出來。4) 說明:(1) 要求將修改后的數(shù)據(jù)寫入到一個(gè)新的數(shù)據(jù)文件nwejck.txt中。(2) 對(duì)系統(tǒng)有興趣的同學(xué)可以在實(shí)現(xiàn)基本要求的基礎(chǔ)上,完善系統(tǒng)的其它功能。5) 班級(jí)成績管理系統(tǒng)采用一個(gè)結(jié)構(gòu)體數(shù)組,學(xué)生成績數(shù)據(jù)庫結(jié)構(gòu)如下:int xh /*學(xué)號(hào)*/char name10 /*姓名*/double yy /*英語*/double mat /*數(shù)學(xué)*/double jsj /*計(jì)算機(jī)*/double wl /*物理*/double zf /

6、*總分*/ 注意:學(xué)號(hào)不能重復(fù)且不少于4位數(shù)字,各項(xiàng)字符串的長度要求在410之間,數(shù)據(jù)庫應(yīng)有10條或多于10條以上的記錄。6) 要求:1 要求每個(gè)學(xué)生必須獨(dú)立思考,認(rèn)真并按時(shí)完成本課程設(shè)計(jì)所包含的所有內(nèi)容;2 要求學(xué)生必須按照課程設(shè)計(jì)報(bào)告的完整格式說明設(shè)計(jì)內(nèi)容,設(shè)計(jì)任務(wù)分析過程和算法,給出程序流程圖和全部源程序;3 設(shè)計(jì)報(bào)告的完整格式應(yīng)包括以下部分的內(nèi)容: 系統(tǒng)設(shè)計(jì)總體思路; 系統(tǒng)的主要功能; 系統(tǒng)功能模塊的劃分(要求畫出總體模塊框圖); 主要功能的實(shí)現(xiàn)和各個(gè)程序模塊說明(每個(gè)功能模塊的框圖統(tǒng)主模塊的流程圖,各個(gè)功能模塊至少要有一個(gè)主要的流程圖);程序調(diào)試過程及各模塊調(diào)試中相應(yīng)的部分截圖7)分

7、組及安排所選題目根據(jù)學(xué)生班號(hào)和學(xué)號(hào)確定,(班號(hào)+學(xué)號(hào))% 6+1。如你的班號(hào)為01班、學(xué)號(hào)為01,則所選題目號(hào)為:(1+1)%6+13,即課題號(hào)為3。8)成績?cè)u(píng)定系統(tǒng)設(shè)計(jì)方案是否合理;程序設(shè)計(jì)是否正確;調(diào)試結(jié)果;設(shè)計(jì)說明書的質(zhì)量高低;答辯時(shí)回答問題情況;課程設(shè)計(jì)周表現(xiàn)情況;總評(píng)成績記入“課程設(shè)計(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)告排

8、版、打印和裝訂要求1. 課程設(shè)計(jì)報(bào)告裝訂順序:封面、任務(wù)書、目錄、正文、附件、評(píng)分表。按A4大小的紙張排版和打印。 2. 設(shè)計(jì)報(bào)告的頁碼從目錄之后開始使用;3. 正文的格式:一級(jí)標(biāo)題用3號(hào)黑體,二級(jí)標(biāo)題用四號(hào)宋體加粗,正文用小四號(hào)宋體;行距為22磅。正文中程序清單(英文)用英文字體Times New Roman,單倍行間距。 4. 正文的內(nèi)容:一、課題的主要功能;二、課題的功能模塊的劃分(要求畫出模塊圖);三、主要功能的實(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ù)書和評(píng)分表不需重新排版。一、引言1.1前言C語言課程設(shè)計(jì)是對(duì)學(xué)生的一種全面綜合訓(xùn)練,它包括問題分析,總體結(jié)構(gòu)設(shè)計(jì),用戶界面設(shè)計(jì),程序設(shè)計(jì)基本技能和技巧的培養(yǎng)。是與課堂聽講、自學(xué)和練習(xí)相結(jié)合的必不可少的一個(gè)環(huán)節(jié)。課程設(shè)計(jì)的課題比平時(shí)的習(xí)題復(fù)雜得多,也更接近實(shí)際。全面熟悉、掌握C語言基本知識(shí),掌握C程序設(shè)計(jì)中的順序、分支、循環(huán)三種結(jié)構(gòu)及數(shù)組、函數(shù)和C語言基本圖形編程等方法,把編程和實(shí)際結(jié)合起來,熟悉編制和調(diào)試程序的技巧,掌握分析結(jié)果的若干有效方法,進(jìn)一步提高上機(jī)動(dòng)手能力,培養(yǎng)使用計(jì)算機(jī)解決實(shí)際問題的能力,養(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ǔ)。1.2設(shè)計(jì)目的隨著電腦技術(shù)的發(fā)展越來越快,管理系統(tǒng)得到人們廣泛的應(yīng)用。本課題中編寫班級(jí)成績管理系統(tǒng)主要是為了方便我們能更加高效快捷地管理學(xué)生的各項(xiàng)成績信息,能夠?qū)W(xué)生成績進(jìn)行追加、修改、刪除等操作。并能對(duì)輸入的數(shù)據(jù)進(jìn)行平均分、總分的計(jì)算以及總分的排序,進(jìn)而清楚明朗地顯示出來。二、總體設(shè)計(jì)2.1主要功能主要實(shí)現(xiàn)對(duì)學(xué)生成績信息實(shí)現(xiàn)成績的顯示,成績的追加,成績的修改,成績的查詢,成績的刪除,成績的排序和統(tǒng)計(jì)等功能。班級(jí)成績管理系統(tǒng)具體提供以下功能:a、成績顯示:完成全班同學(xué)全部學(xué)生成績的顯

11、示,以表格形式顯示出來,并帶有表頭。b、成績追加:新增學(xué)生成績記錄,在追加過程中有相應(yīng)的提示信息并實(shí)現(xiàn)連續(xù)追加的功能。追加成功的成績能重新計(jì)算學(xué)生的平均成績并顯示。c、成績修改:實(shí)現(xiàn)按學(xué)號(hào)修改和按姓名修改兩種修改方式,并可以對(duì)指定的學(xué)生的各科成績進(jìn)行修改,修改過程中有相應(yīng)的提示信息。修改后能重新計(jì)算學(xué)生的平均成績。d、成績刪除:對(duì)指定的學(xué)號(hào)或者指定的姓名進(jìn)行定位刪除,并有相應(yīng)的提示信息。e、成績查詢:對(duì)指定的學(xué)號(hào)或指定的姓名進(jìn)行定位查詢,并能顯示出符合條件的查詢結(jié)果。查詢的信息不存在時(shí)有相應(yīng)的提示信息。f、成績排名:按學(xué)生平均成績進(jìn)行排序,并以表格形式顯示。g、成績統(tǒng)計(jì):以表格的形式顯示所有課

12、程的平均分,并顯示選定的某門課程的平均分以及超過該平均分的人數(shù),同時(shí)將超過該平均分的學(xué)生記錄以表格的形式顯示出來。2.2功能模塊劃分(1)本程序由八個(gè)模塊構(gòu)成,其中主模塊是由系統(tǒng)函數(shù)搭建而成,其重要功能是顯示出功能主菜單,由用戶作出選擇進(jìn)入子菜單。在子菜單中操作完畢后,能夠準(zhǔn)確返回到功能主菜單。系統(tǒng)主要模塊流程圖如下:主函數(shù)主界面顯示成績成績追加成績修改成績刪除成績查詢成績排名成績統(tǒng)計(jì)退出系統(tǒng)(2)模塊說明主界面 main() 用戶選擇界面顯示模塊 Disp() 顯示所有學(xué)生的成績信息追加模塊 Appe() 添加學(xué)生成績信息修改模塊 Modi() 修改學(xué)生某項(xiàng)成績信息刪除模塊 Dele() 刪

13、除學(xué)生某項(xiàng)成績信息查詢模塊 Query() 查詢學(xué)生成績信息排序模塊 Sort() 按成績總分排序統(tǒng)計(jì)模塊 Total() 統(tǒng)計(jì)各科目平均分信息退出模塊 Quit() 退出系統(tǒng)并保存信息三、詳細(xì)設(shè)計(jì)3.1主要功能的實(shí)現(xiàn)(下面以追加模塊和修改模塊為例)(1)追加模塊流程圖FILE *fp調(diào)用Re_file ()主菜單成績追加開始輸入學(xué)生各項(xiàng)信息是否繼續(xù)(Y/N)?保存并退出結(jié)束(2) 修改模塊流程圖開始FILE *fp調(diào)用Re_file ()主菜單成績修改按學(xué)號(hào)修改成績修改菜單按姓名修改返回到主菜單選擇要修改的科目輸入要修改的學(xué)號(hào)輸入修改的成績輸入修改的成績輸入修改的姓名選擇要修改的科目目是否繼

14、續(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”進(jìn)入成績追加界面,這里輸入一組追加信息后,系統(tǒng)會(huì)提示是否繼續(xù)追加,從而實(shí)現(xiàn)了“連續(xù)追加”的功能)3.2.4追加模塊截圖(注:這里的總分輸入值為0,因?yàn)樵谠摮绦蛑?,總分?huì)計(jì)算出來)3.2.4修改模塊(在功能主菜單輸入“4”進(jìn)入成績修改菜單,這里可以根據(jù)學(xué)號(hào)和姓名查找到對(duì)應(yīng)學(xué)生成績信息進(jìn)行修改。下面以按姓名修改為例,對(duì)姓名為“ww”的學(xué)生的計(jì)算機(jī)成績進(jìn)行修改后,

15、系統(tǒng)還能提示是否對(duì)該生的其他科目成績進(jìn)行繼續(xù)修改,實(shí)現(xiàn)了“一人多項(xiàng)”的修改功能。修改完系統(tǒng)會(huì)退到所有學(xué)生成績菜單,可以清楚地看到修改后的學(xué)生的成績信息)3.2.4修改模塊截圖3.2.5刪除模塊(在功能主菜單輸入“4”進(jìn)入刪除方式菜單,此功能可以對(duì)學(xué)生成績信息進(jìn)行按學(xué)號(hào)刪除和按姓名刪除兩種刪除方式。下面以對(duì)姓名為“ww”的學(xué)生成績進(jìn)行刪除,輸入該生姓名后,系統(tǒng)能顯示該生的各項(xiàng)成績信息,并提示是否確認(rèn)刪除。刪除后,系統(tǒng)還能提示是否繼續(xù)進(jìn)行刪除操作。這里的刪除模塊實(shí)現(xiàn)了“多人多項(xiàng)”的刪除功能,操作使用起來十分便利高效。如果不繼續(xù),選擇“2”能退出到刪除方式菜單,進(jìn)行接下來的刪除操作)3.2.5刪除模

16、塊截圖3.2.6查詢模塊(在功能主菜單輸入“5”系統(tǒng)進(jìn)入成績查詢菜單。此功能可以對(duì)學(xué)生成績信息按學(xué)號(hào)查詢和按姓名查詢,以下以按學(xué)號(hào)查詢?yōu)槔?。輸入學(xué)號(hào)為“201310”的學(xué)生學(xué)號(hào),系統(tǒng)以表格的形式顯示出該生的成績信息。輸入“1”能返回到查詢菜單繼續(xù)查詢,輸入任意鍵系統(tǒng)退出到主菜單界面)3.2.6查詢模塊截圖3.2.7排序模塊(在功能主菜單輸入“6”進(jìn)入成績排名的界面,成績排名以總分的高低由高向低以表格的形式顯示出來)3.2.7排序詢模塊截圖3.2.8統(tǒng)計(jì)模塊(在功能主菜單輸入“7”進(jìn)入平均分統(tǒng)計(jì)菜單界面,菜單顯示:1、所有課程平均分2、單一課程平均分3、退出。以下輸入“2”進(jìn)入單一課程平均分界面

17、,菜單界面顯示各科目的選擇列表,輸入“2”查詢數(shù)學(xué)成績的平均分,結(jié)果以表格形式輸出超過該科平均分的學(xué)生信息。查詢完數(shù)學(xué)這項(xiàng)后,還能繼續(xù)對(duì)其他科目的平均分統(tǒng)計(jì)信息進(jìn)行查詢。實(shí)現(xiàn)了“多次循環(huán)”的功能)3.2.8統(tǒng)計(jì)模塊截圖3.2.9退出模塊(在完成對(duì)該系統(tǒng)的所有操作后,在功能主菜單界面輸入“8”進(jìn)入退出界面,如下圖:鍵入任意鍵即可退出該系統(tǒng))3.2.9退出模塊截圖四、問題分析及總結(jié)4.1問題分析從接到這個(gè)課題開始,我們就開始了為期一周的C語言課程設(shè)計(jì)。首先是針對(duì)本次課題設(shè)計(jì)進(jìn)行建庫工作,在開始建庫的過程中,就遇到了一點(diǎn)困難。建庫的時(shí)候一不留神就會(huì)使輸入的數(shù)據(jù)庫前功盡棄,為此嘗試了幾次,最后耐心地一

18、項(xiàng)一項(xiàng)輸才建好庫。針對(duì)這個(gè)課題,老師給我們分了7人一組的小組進(jìn)行合作,我在組中主要負(fù)責(zé)了修改模塊程序的編寫和整個(gè)系統(tǒng)的美化工作。在調(diào)試過程中遇到了不少的錯(cuò)誤、警告等信息,有時(shí)候因?yàn)橐粋€(gè)符號(hào)的失誤導(dǎo)致程序的錯(cuò)誤達(dá)到十幾個(gè)。在做完修改模塊后,個(gè)人覺得修改的方式還是不夠妥當(dāng),不能實(shí)現(xiàn)多想同時(shí)修改而只能一項(xiàng)一項(xiàng)進(jìn)行修改保存。這是我個(gè)人覺得修改模塊存在的值得改進(jìn)的地方。4.2總結(jié)學(xué)習(xí)C語言已經(jīng)半年了,半年來,從接觸C語言這門課程到后來逐漸了解這門課程的點(diǎn)滴知識(shí),使我自己對(duì)計(jì)算機(jī)方面的知識(shí)有了更加深刻的認(rèn)識(shí)。作為一個(gè)電腦愛好者,平時(shí)和同學(xué)們?cè)谝黄鹁拖矚g討論java編程和電腦系統(tǒng)方面的知識(shí)。從一年前拿到自己

19、的第一臺(tái)智能手機(jī)刷機(jī)開始,漸漸了解一點(diǎn)關(guān)于安卓apk程序的開發(fā)及框架。每次的刷機(jī)都會(huì)使我自己對(duì)安卓系統(tǒng)有進(jìn)一步的了解,同時(shí),每次解決一個(gè)問題,都會(huì)有一點(diǎn)點(diǎn)小小的成就感。最近的半年,由于電腦的使用頻率的增加,注意力開始轉(zhuǎn)移到電腦系統(tǒng)的安裝以及自己學(xué)習(xí)封裝win7系統(tǒng)。由于對(duì)電腦軟件的使用和電腦知識(shí)了解較多,很多同學(xué)們電腦有問題都會(huì)找我?guī)兔Γ@半年中,拆過許多筆記本電腦,用各種方法裝過很多臺(tái)電腦的系統(tǒng),還裝了幾臺(tái)機(jī)子的內(nèi)存以及對(duì)電腦主板上灰塵的進(jìn)行清理。這些在我看來簡單的操作給我自己帶來了許多快樂,同時(shí)也給別人帶去了方便。剛接觸到C語言這門課程時(shí)就感覺到了它的難度,但通過漸漸的學(xué)習(xí),我認(rèn)識(shí)到了它的

20、重要性,更認(rèn)識(shí)到這是一種能力的培養(yǎng)。經(jīng)過幾次的上機(jī)操作,看到自己設(shè)計(jì)的程序能運(yùn)行出正確的結(jié)果,開始對(duì)C語言產(chǎn)生了興趣。同時(shí),學(xué)習(xí)的東西越來越復(fù)雜,遇到的困難也越來越多。拿到我們組的課題時(shí),心里十分的沒底,覺得很難不知道該如何下手。原因是自己沒把知識(shí)真正學(xué)到手,不知道自己學(xué)的東西能不能用得上。但學(xué)習(xí)就是要不斷的發(fā)現(xiàn)問題,不斷的解決問題的。于是,在試探中開始了建庫的工作。曾以為建庫是很簡單很容易的,但是開始建立的時(shí)候,就很容易出錯(cuò)。通過幾次失敗,幾次重試,終于建好了庫文件。接下來的任務(wù)就是做好我負(fù)責(zé)的修改模塊,在做修改模塊的時(shí)候,問題的困難程度還是顯現(xiàn)出來了,調(diào)用函數(shù)的時(shí)候經(jīng)常出錯(cuò)。程序運(yùn)行起來不

21、能對(duì)指定的學(xué)生成績信息進(jìn)行連續(xù)的修改,經(jīng)過同學(xué)們一起努力,慢慢改正了一點(diǎn)錯(cuò)誤。上機(jī)調(diào)試的時(shí)候,在指導(dǎo)老師的幫助下逐漸將不能連續(xù)修改的問題解決。接著就遇到了程序運(yùn)行完畢不能退出到主菜單的問題,在幾次嘗試修改語句后,終于知道了語句缺失的命令,最后完美地解決了這個(gè)問題。在解決問題的過程中,對(duì)于課堂上學(xué)的for,Switch和while語句還有結(jié)構(gòu)體的使用和指針的用法與作用都有了進(jìn)一步的認(rèn)識(shí)。后來遇到問題的時(shí)候,查閱了課本知識(shí),通過網(wǎng)絡(luò)查找到與之類似的問題加以解決。經(jīng)過幾次上機(jī)調(diào)試后,其余同學(xué)已經(jīng)將剩下的模塊做得差不多了。但是我發(fā)現(xiàn)一個(gè)普遍的問題,那就是所有界面的布局都不夠合理。于是接下來的工作就把各

22、模塊的顯示菜單進(jìn)行美化,使界面看起來清晰美觀。這個(gè)看似簡單的工作做起來卻是很費(fèi)時(shí)間,因?yàn)橐氚扬@示得居中,同時(shí)清晰明朗,得加入空格或者是加入“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í)間很快就過去了,C語言答辯安排就在老師安排下開始了。周五上午,我就在機(jī)房里完成了答辯?,F(xiàn)在覺得有點(diǎn)遺憾的就是,老師問我的問題因?yàn)榫o張了一定就沒回答得很好,覺得有點(diǎn)失望。但是我的程

23、序做得還是比較合理,因?yàn)樵诖疝q運(yùn)行時(shí),老師所要求的所有操作我的程序都能實(shí)現(xiàn),而且完美無瑕,這讓我覺得付出還是有回報(bào)的。經(jīng)過這次的C語言課程設(shè)計(jì),我才真正了解到理論知識(shí)轉(zhuǎn)為實(shí)踐的重要性。其實(shí)從剛接到課題任務(wù)的時(shí)候,心里還是有點(diǎn)畏懼的,畢竟這個(gè)系統(tǒng)的源程序就有好幾頁,看著就頭痛。但是看著同學(xué)們一個(gè)個(gè)認(rèn)真的坐在電腦面前幾個(gè)小時(shí)一點(diǎn)點(diǎn)摸索,自己才開始冷靜地思考著問題。通過自己的努力,同學(xué)們的幫助和老師的指導(dǎo),終于完成了這個(gè)課題的設(shè)計(jì)任務(wù)。同時(shí),也使我對(duì)C語言課程有了更為深刻的認(rèn)識(shí),讓我對(duì)自己有了信心。我想,若干年后,當(dāng)看到我做的這份報(bào)告,都會(huì)是一段美好的回憶。這段短短幾天的努力也會(huì)給我動(dòng)力,給我在以后

24、的學(xué)習(xí)中以鞭策,更加加深我對(duì)計(jì)算機(jī)知識(shí)的了解。五、參考文獻(xiàn)1賈宗璞,許合利. C語言程序設(shè)計(jì).人民郵電出版社2陳世清,李杰君. C語言程序設(shè)計(jì).浙江大學(xué)出版社3鄭莉. C+語言程序設(shè)計(jì).清華大學(xué)出版社六、附件源程序清單:#include #include #include #include int N=0;struct stu int xh; /*學(xué)號(hào)*/ char name18; /*姓名*/ double yy; /*英語*/ double mat; /*數(shù)學(xué)*/ double jsj; /*計(jì)算機(jī)*/ double wl; /*物理*/ double zf; /*總分*/ s20;voi

25、d Re_file() FILE *fp; fp=fopen(bjcjk.txt,r); 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;iN;i+) fprintf(fp,%dn%sn%lfn%lfn%lfn%lfn%lfn,si.xh,,si.yy,si.mat,s

26、i.jsj,si.wl,si.zf); fclose(fp);void Js() /*計(jì)算總分*/int i; for(i=0;iN;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;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=s

27、j;sj=m; /*按平均分整體排序*/ void Disp() /*顯示模塊*/ Js();int i;printf(ntttt全班學(xué)生成績表n);printf(t -n);printf(t 學(xué)號(hào) 姓名 英語 數(shù)學(xué) 計(jì)算機(jī) 物理 總分 平均分 n);printf(t -n);for(i=0;iN;i+)printf(t %dt %st %.1lft %.1lft %.1lft %.1lft %.1lf %.1lfn,si.xh,,si.yy,si.mat,si.jsj,si.wl,si.zf,si.zf/4);printf(t -n);printf(按回車鍵返回主菜單:);ge

28、tchar();void Total() /*統(tǒng)計(jì)模塊*/double av4=0.0;int xz,sum0,sum1,sum2,sum3; int xz2;int k,i;sum0=sum1=sum2=sum3=0;for(k=0;kN;k+) /*計(jì)算各科課程平均分*/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) sum

29、3+;while(1) /*統(tǒng)計(jì)菜單一*/ printf(nnn);printf( 平均分統(tǒng)計(jì)菜單n);printf( *n); printf( *-*n);printf( * 1.所有課程平均分 *n);printf( * 2.單一課程平均分 *n);printf( * 3.退出 *n);printf( *-*n);printf( *n);printf(nn);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)p

30、rintf(nnn);printf( 各科成績平均分n);printf( -n);printf( 英語 計(jì)算機(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)printf(n 各科成績平均分統(tǒng)計(jì):n); /*統(tǒng)計(jì)菜單二*/ printf( *n);printf( *-*n);printf( * 1.英語 2.數(shù)學(xué) *n);printf( * 3.計(jì)算機(jī) 4.物理 *n);printf( * 0.退出到平均分統(tǒng)計(jì)菜單 *n);printf( *-

31、*n);printf( *n);printf(n請(qǐng)選擇您查詢的科目:);while(1)scanf(%d,&xz2);if(xz2=1 |xz2=2 | xz2=3 | xz2=4 | xz2=0) break;else printf(n 輸入錯(cuò)誤!請(qǐng)重新輸入:);if(xz2=1) /*統(tǒng)計(jì)超出英語平均分人數(shù)*/printf(n 英語平均成績:%.1ft超過人數(shù):%dn,av0,sum0);printf( -n);printf( 學(xué)號(hào) 姓名 英語 數(shù)學(xué) 計(jì)算機(jī) 物理 n);printf( -n);for(i=0;iav0)printf( %d %s%8.1lf%8.1lf%8.1lf%8.1

32、lfn,si.xh,,si.yy,si.mat,si.jsj,si.wl);printf( -n);if(xz2=2) /*統(tǒng)計(jì)超出數(shù)學(xué)平均分人數(shù)*/printf(n 數(shù)學(xué)平均成績:%.1ft超過人數(shù):%dn,av1,sum1);printf( -n);printf( 學(xué)號(hào) 姓名 英語 數(shù)學(xué) 計(jì)算機(jī) 物理 n);printf( -n);for(i=0;iav1)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ì)超出計(jì)算機(jī)

33、平均分人數(shù)*/printf(n 計(jì)算機(jī)平均成績:%.1ft超過人數(shù):%dn,av2,sum2);printf( -n);printf( 學(xué)號(hào) 姓名 英語 數(shù)學(xué) 計(jì)算機(jī) 物理 n);printf( -n);for(i=0;iav2)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)計(jì)超出物理平均分人數(shù)*/printf(n 物理平均成績:%.1ft超過人數(shù):%dn,av3,sum3);printf( -n);printf( 學(xué)號(hào) 姓名 英語

34、 數(shù)學(xué) 計(jì)算機(jī) 物理 n);printf( -n);for(i=0;iav3)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é)號(hào):);scanf(%d,&si.xh);printf(t姓名:);scanf(%s,);printf(t英語:);scanf(%lf,&si.yy);printf(t數(shù)學(xué):);sca

35、nf(%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+)printf(請(qǐng)輸入追加的學(xué)生成績信息:n);Appe1();getchar();printf(是否繼續(xù)輸入?n(Y/N);scanf(%c,&s);Wr_file();void Modi1(int i) /*修改模塊1*/int n;double temp

36、;while(1)printf(nnn);printf( *n);printf( *-*n);printf( * 1.英語 2.數(shù)學(xué) *n);printf( * 3.計(jì)算機(jī) 4.物理 *n);printf( * 5.返回上級(jí)菜單 *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)重新輸入:);if(n=1)printf(請(qǐng)修改后的英語成績?yōu)?);scanf(%lf,&temp);si.yy=temp;if(n=2)printf(請(qǐng)修改后的數(shù)學(xué)成績?yōu)?);scanf(%lf,&temp);si.mat=temp;if(n=3)printf(請(qǐng)修改后的計(jì)算機(jī)成績?yōu)?);scanf(%lf,&temp);si.jsj=temp;if(n=4)printf(請(qǐng)修改后的物理成績?yōu)?);scanf(%lf,&temp);si.wl=temp;if(n=5) break;void Modi() /*修改模塊*/ int i,xz3,xh,j;

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論