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

下載本文檔

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

文檔簡(jiǎn)介

1、<p>  課 程 設(shè) 計(jì) 報(bào) 告</p><p>  課程名稱 C語(yǔ)言程序設(shè)計(jì) </p><p>  課題名稱 班級(jí)成績(jī)管理系統(tǒng) </p><p>  專 業(yè) 建筑環(huán)境與設(shè)備工程 </p><p>  班 級(jí)

2、 </p><p>  學(xué) 號(hào) </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è)計(jì)2</b></p><p><b>  三、詳細(xì)設(shè)計(jì)4</b></p><p>  四、問(wèn)題分析及總結(jié)13</p><p>

4、;<b>  五、附件15</b></p><p>  一、設(shè)計(jì)內(nèi)容與設(shè)計(jì)要求</p><p>  1. 設(shè)計(jì)內(nèi)容:班級(jí)成績(jī)管理系統(tǒng)設(shè)計(jì)</p><p><b>  涉及的知識(shí)點(diǎn):</b></p><p> ?、僬莆詹⑹炀氝\(yùn)用C語(yǔ)言的基本數(shù)據(jù)類型與各種表達(dá)式,程序的流程控制語(yǔ)句;</p>

5、;<p> ?、谡莆諗?shù)組的基本概念。熟練掌握一維數(shù)組、二維數(shù)組的應(yīng)用、掌握字符數(shù)組</p><p>  與字符串的關(guān)系以及字符串的簡(jiǎn)單處理。</p><p> ?、壅莆蘸瘮?shù)的定義,函數(shù)的返回值,函數(shù)的調(diào)用,函數(shù)的形式參數(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> ?、菡莆瘴募?、文件類型指針的基本概念,熟練掌握文件的打開(kāi)與關(guān)閉以及文件的建立、讀寫等有關(guān)操作。</p><p><b>  2.設(shè)計(jì)要求:</b></p><p>  用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è)功能

7、模塊要求用函數(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í)菜單。</p><p>  2) 建立一個(gè)班級(jí)學(xué)生成績(jī)數(shù)據(jù)庫(kù),文件名為bjcjk.txt,并從該文件中讀取數(shù)據(jù);</p><p>  3) 班級(jí)成績(jī)管理系統(tǒng)應(yīng)能提供以下功能:</p><p>  (

8、1)主菜單界面設(shè)計(jì)。通過(guò)提示用戶輸入一個(gè)數(shù)字選項(xiàng),調(diào)用相應(yīng)的功能函數(shù)。</p><p>  (2)學(xué)生成績(jī)顯示:完成班級(jí)全部學(xué)生成績(jī)的顯示,顯示時(shí)按表格的形式,且應(yīng)有表頭;</p><p>  (3)學(xué)生成績(jī)追加:完成新增一個(gè)(或多個(gè))學(xué)生的成績(jī)記錄,要求在追加過(guò)程中有相應(yīng)的提示信息,完成追加后能重新計(jì)算學(xué)生平均成績(jī)并顯示;</p><p>  (4)學(xué)生成績(jī)修改:

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

10、刪除學(xué)生的成績(jī)記錄。</p><p>  (7)要求在刪除模塊、修改模塊和查詢模塊中若找不到所需的記錄時(shí),系統(tǒng)設(shè)計(jì)中應(yīng)有一定的提示信息。</p><p>  (8)成績(jī)排序:按學(xué)生平均成績(jī)進(jìn)行排序;</p><p><b>  (9)成績(jī)統(tǒng)計(jì):</b></p><p> ?、俳y(tǒng)計(jì)并以表格的形式顯示所有課程的平均分;<

11、;/p><p> ?、诮y(tǒng)計(jì)并顯示選定的某門課程的平均分以及超過(guò)該平均分的人數(shù),同時(shí)能將超過(guò)該平均分的學(xué)生記錄以表格的形式顯示出來(lái)。</p><p><b>  4) 說(shuō)明:</b></p><p>  要求將修改后的數(shù)據(jù)寫入到一個(gè)新的數(shù)據(jù)文件nwejck.txt中。</p><p>  對(duì)系統(tǒng)有興趣的同學(xué)可以在實(shí)現(xiàn)基本要求的

12、基礎(chǔ)上,完善系統(tǒng)的其它功能。</p><p>  5) 班級(jí)成績(jī)管理系統(tǒng)采用一個(gè)結(jié)構(gòu)體數(shù)組,學(xué)生成績(jī)數(shù)據(jù)庫(kù)結(jié)構(gòu)如下:</p><p>  int xh /*學(xué)號(hào)*/</p><p>  char name[10] /*姓名*/</p><p>  double yy

13、 /*英語(yǔ)*/</p><p>  double mat /*數(shù)學(xué)*/</p><p>  double jsj /*計(jì)算機(jī)*/</p><p>  double wl /*物理*/</p><p>  double zf /*總分*/&l

14、t;/p><p><b>  6) 要求:</b></p><p>  要求每個(gè)學(xué)生必須獨(dú)立思考,認(rèn)真并按時(shí)完成本課程設(shè)計(jì)所包含的所有內(nèi)容;</p><p>  要求學(xué)生必須按照課程設(shè)計(jì)報(bào)告的完整格式說(shuō)明設(shè)計(jì)內(nèi)容,設(shè)計(jì)任務(wù)分析過(guò)程和算法,給出程序流程圖和全部源程序;</p><p>  設(shè)計(jì)報(bào)告的完整格式應(yīng)包括以下部分的內(nèi)容

15、:</p><p><b>  系統(tǒng)設(shè)計(jì)總體思路;</b></p><p><b>  系統(tǒng)的主要功能;</b></p><p>  系統(tǒng)功能模塊的劃分(要求畫出總體模塊框圖);</p><p>  主要功能的實(shí)現(xiàn)和各個(gè)程序模塊說(shuō)明(每個(gè)功能模塊的框圖統(tǒng)主模塊的流程圖,各個(gè)功能模塊至少要有一個(gè)主要的

16、流程圖);</p><p>  程序調(diào)試過(guò)程及各模塊調(diào)試中相應(yīng)的部分截圖</p><p><b>  7)成績(jī)?cè)u(píng)定</b></p><p> ?、傧到y(tǒng)設(shè)計(jì)方案是否合理;②程序設(shè)計(jì)是否正確;③調(diào)試結(jié)果;④設(shè)計(jì)說(shuō)明書的質(zhì)量高低;⑤答辯時(shí)回答問(wèn)題情況;⑥課程設(shè)計(jì)周表現(xiàn)情況;總評(píng)成績(jī)記入“課程設(shè)計(jì)成績(jī)?cè)u(píng)分表”。</p><p>

17、<b>  二、進(jìn)度安排</b></p><p><b>  上課時(shí)間另外安排。</b></p><p>  附:課程設(shè)計(jì)報(bào)告排版、打印和裝訂要求</p><p>  1. 課程設(shè)計(jì)報(bào)告裝訂順序:封面、任務(wù)書、目錄、正文、附件、評(píng)分表。按A4大小的紙張排版和打印。 </p><p>  2. 設(shè)計(jì)

18、報(bào)告的頁(yè)碼從目錄之后開(kāi)始使用;</p><p>  3. 正文的格式:一級(jí)標(biāo)題用3號(hào)黑體,二級(jí)標(biāo)題用四號(hào)宋體加粗,正文用小四號(hào)宋體;行距為22磅。正文中程序清單(英文)用英文字體Times New Roman,單倍行間距。 </p><p>  4. 正文的內(nèi)容:一、課題的主要功能;二、課題的功能模塊的劃分(要求畫出模塊圖);三、主要功能的實(shí)現(xiàn)(至少要有一個(gè)主要模塊的流程圖);四、程序調(diào)

19、試(各模塊至少有一個(gè)程序調(diào)試的截圖);五、總結(jié)(不少于500字);六、參考文獻(xiàn);七、附件(包含所有程序的原代碼,且程序中應(yīng)有必要的注釋)。八.正文總字?jǐn)?shù)要求在5000字以上(不含程序原代碼)。</p><p>  5.設(shè)計(jì)報(bào)告中任務(wù)書和評(píng)分表不需重新排版。</p><p><b>  一、引言</b></p><p><b>  1.

20、1前言</b></p><p>  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)試程

21、序的技巧,掌握分析結(jié)果的若干有效方法,進(jìn)一步提高上機(jī)動(dòng)手能力,培養(yǎng)使用計(jì)算機(jī)解決實(shí)際問(wèn)題的能力,養(yǎng)成提供文檔資料的習(xí)慣和規(guī)范編程的思想,為以后在專業(yè)課程中應(yīng)用計(jì)算機(jī)系統(tǒng)解決計(jì)算、分析、實(shí)驗(yàn)和設(shè)計(jì)等學(xué)習(xí)環(huán)節(jié)打下較扎實(shí)的基礎(chǔ)。</p><p><b>  1.2設(shè)計(jì)目的</b></p><p>  隨著電腦技術(shù)的發(fā)展越來(lái)越快,管理系統(tǒng)得到人們廣泛的應(yīng)用。本課題中編寫班級(jí)成

22、績(jī)管理系統(tǒng)主要是為了方便我們能更加高效快捷地管理學(xué)生的各項(xiàng)成績(jī)信息,能夠?qū)W(xué)生成績(jī)進(jìn)行追加、修改、刪除等操作。并能對(duì)輸入的數(shù)據(jù)進(jìn)行平均分、總分的計(jì)算以及總分的排序,進(jìn)而清楚明朗地顯示出來(lái)。</p><p><b>  二、總體設(shè)計(jì)</b></p><p><b>  2.1主要功能</b></p><p>  主要實(shí)現(xiàn)對(duì)學(xué)

23、生成績(jī)信息實(shí)現(xiàn)成績(jī)的顯示,成績(jī)的追加,成績(jī)的修改,成績(jī)的查詢,成績(jī)的刪除,成績(jī)的排序和統(tǒng)計(jì)等功能。</p><p>  班級(jí)成績(jī)管理系統(tǒng)具體提供以下功能:</p><p>  a、成績(jī)顯示:完成全班同學(xué)全部學(xué)生成績(jī)的顯示,以表格形式顯示出來(lái),并帶有表頭。</p><p>  b、成績(jī)追加:新增學(xué)生成績(jī)記錄,在追加過(guò)程中有相應(yīng)的提示信息并實(shí)現(xiàn)連續(xù)追加的功能。追加成功的

24、成績(jī)能重新計(jì)算學(xué)生的平均成績(jī)并顯示。</p><p>  c、成績(jī)修改:實(shí)現(xiàn)按學(xué)號(hào)修改和按姓名修改兩種修改方式,并可以對(duì)指定的學(xué)生的各科成績(jī)進(jìn)行修改,修改過(guò)程中有相應(yīng)的提示信息。修改后能重新計(jì)算學(xué)生的平均成績(jī)。</p><p>  d、成績(jī)刪除:對(duì)指定的學(xué)號(hào)或者指定的姓名進(jìn)行定位刪除,并有相應(yīng)的提示信息。</p><p>  e、成績(jī)查詢:對(duì)指定的學(xué)號(hào)或指定的姓名進(jìn)

25、行定位查詢,并能顯示出符合條件的查詢結(jié)果。查詢的信息不存在時(shí)有相應(yīng)的提示信息。</p><p>  f、成績(jī)排名:按學(xué)生平均成績(jī)進(jìn)行排序,并以表格形式顯示。</p><p>  g、成績(jī)統(tǒng)計(jì):以表格的形式顯示所有課程的平均分,并顯示選定的某門課程的平均分以及超過(guò)該平均分的人數(shù),同時(shí)將超過(guò)該平均分的學(xué)生記錄以表格的形式顯示出來(lái)。</p><p><b>  

26、2.2功能模塊劃分</b></p><p> ?。?)本程序由八個(gè)模塊構(gòu)成,其中主模塊是由系統(tǒng)函數(shù)搭建而成,其重要功能是顯示出功能主菜單,由用戶作出選擇進(jìn)入子菜單。在子菜單中操作完畢后,能夠準(zhǔn)確返回到功能主菜單。</p><p>  系統(tǒng)主要模塊流程圖如下:</p><p><b> ?。?)模塊說(shuō)明</b></p>

27、<p>  主界面 main() 用戶選擇界面</p><p>  顯示模塊 Disp() 顯示所有學(xué)生的成績(jī)信息</p><p>  追加模塊 Appe() 添加學(xué)生成績(jī)信息</p><p>  修改模塊 Mo

28、di() 修改學(xué)生某項(xiàng)成績(jī)信息</p><p>  刪除模塊 Dele() 刪除學(xué)生某項(xiàng)成績(jī)信息</p><p>  查詢模塊 Query() 查詢學(xué)生成績(jī)信息</p><p>  排序模塊 Sort() 按成績(jī)總分排

29、序</p><p>  統(tǒng)計(jì)模塊 Total() 統(tǒng)計(jì)各科目平均分信息</p><p>  退出模塊 Quit() 退出系統(tǒng)并保存信息</p><p><b>  三、詳細(xì)設(shè)計(jì)</b></p><p>  3.1主要功能的實(shí)現(xiàn)(下面以追加模

30、塊和修改模塊為例)</p><p> ?。?)追加模塊流程圖</p><p><b>  修改模塊流程圖</b></p><p><b>  3.2程序調(diào)試</b></p><p>  各模塊運(yùn)行步驟及界面</p><p>  3.2.1功能主菜單選擇界面</p>

31、<p>  3.2.2顯示模塊(輸入“1”進(jìn)入全班成績(jī)顯示菜單)</p><p>  3.2.2顯示模塊截圖</p><p>  3.2.3追加模塊(在功能主菜單輸入“2”進(jìn)入成績(jī)追加界面,這里輸入一組追加信息后,系統(tǒng)會(huì)提示是否繼續(xù)追加,從而實(shí)現(xiàn)了“連續(xù)追加”的功能)</p><p>  3.2.4追加模塊截圖</p><p>

32、 ?。ㄗⅲ哼@里的總分輸入值為0,因?yàn)樵谠摮绦蛑?,總分?huì)計(jì)算出來(lái))</p><p>  3.2.4修改模塊(在功能主菜單輸入“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ì)該生的其他科目成績(jī)進(jìn)行繼續(xù)修改,實(shí)現(xiàn)了“一人多項(xiàng)”的修改功能。修改完系統(tǒng)會(huì)退到所有學(xué)生成績(jī)菜單,可以清楚地看到修改后的學(xué)生的成績(jī)信

33、息)</p><p>  3.2.4修改模塊截圖</p><p>  3.2.5刪除模塊(在功能主菜單輸入“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)”的刪除功能,操作

34、使用起來(lái)十分便利高效。如果不繼續(xù),選擇“2”能退出到刪除方式菜單,進(jìn)行接下來(lái)的刪除操作)</p><p>  3.2.5刪除模塊截圖</p><p>  3.2.6查詢模塊(在功能主菜單輸入“5”系統(tǒng)進(jìn)入成績(jī)查詢菜單。此功能可以對(duì)學(xué)生成績(jī)信息按學(xué)號(hào)查詢和按姓名查詢,以下以按學(xué)號(hào)查詢?yōu)槔?。輸入學(xué)號(hào)為“201310”的學(xué)生學(xué)號(hào),系統(tǒng)以表格的形式顯示出該生的成績(jī)信息。輸入“1”能返回到查詢菜單繼

35、續(xù)查詢,輸入任意鍵系統(tǒng)退出到主菜單界面)</p><p>  3.2.6查詢模塊截圖</p><p>  3.2.7排序模塊(在功能主菜單輸入“6”進(jìn)入成績(jī)排名的界面,成績(jī)排名以總分的高低由高向低以表格的形式顯示出來(lái))</p><p>  3.2.7排序詢模塊截圖</p><p>  3.2.8統(tǒng)計(jì)模塊(在功能主菜單輸入“7”進(jìn)入平均分統(tǒng)計(jì)菜

36、單界面,菜單顯示:1、所有課程平均分2、單一課程平均分3、退出。以下輸入“2”進(jìn)入單一課程平均分界面,菜單界面顯示各科目的選擇列表,輸入“2”查詢數(shù)學(xué)成績(jī)的平均分,結(jié)果以表格形式輸出超過(guò)該科平均分的學(xué)生信息。查詢完數(shù)學(xué)這項(xiàng)后,還能繼續(xù)對(duì)其他科目的平均分統(tǒng)計(jì)信息進(jìn)行查詢。實(shí)現(xiàn)了“多次循環(huán)”的功能)</p><p>  3.2.8統(tǒng)計(jì)模塊截圖</p><p>  3.2.9退出模塊(在完成對(duì)該

37、系統(tǒng)的所有操作后,在功能主菜單界面輸入“8”進(jìn)入退出界面,如下圖:鍵入任意鍵即可退出該系統(tǒng))</p><p>  3.2.9退出模塊截圖</p><p><b>  四、問(wèn)題分析及總結(jié)</b></p><p><b>  4.1問(wèn)題分析</b></p><p>  從接到這個(gè)課題開(kāi)始,我們就開(kāi)始了為

38、期一周的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é)了修改模塊程序的編寫和整個(gè)系統(tǒng)的美化工作。在調(diào)試過(guò)程中遇到了不少的錯(cuò)誤、警告等信息,有時(shí)候因?yàn)橐粋€(gè)符號(hào)的失誤導(dǎo)致程序的錯(cuò)誤達(dá)到十幾個(gè)。在做完修改模塊后,個(gè)人覺(jué)得修改的方式還是不夠妥當(dāng)

39、,不能實(shí)現(xiàn)多想同時(shí)修改而只能一項(xiàng)一項(xiàng)進(jìn)行修改保存。這是我個(gè)人覺(jué)得修改模塊存在的值得改進(jìn)的地方。</p><p><b>  4.2總結(jié)</b></p><p>  學(xué)習(xí)C語(yǔ)言已經(jīng)半年了,半年來(lái),從接觸C語(yǔ)言這門課程到后來(lái)逐漸了解這門課程的點(diǎn)滴知識(shí),使我自己對(duì)計(jì)算機(jī)方面的知識(shí)有了更加深刻的認(rèn)識(shí)。作為一個(gè)電腦愛(ài)好者,平時(shí)和同學(xué)們?cè)谝黄鹁拖矚g討論java編程和電腦系統(tǒng)方面的

40、知識(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)小小的成就感。最近的半年,由于電腦的使用頻率的增加,注意力開(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ī)子的

41、內(nèi)存以及對(duì)電腦主板上灰塵的進(jìn)行清理。這些在我看來(lái)簡(jiǎn)單的操作給我自己帶來(lái)了許多快樂(lè),同時(shí)也給別人帶去了方便。</p><p>  剛接觸到C語(yǔ)言這門課程時(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)越多。</p><p> 

42、 拿到我們組的課題時(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ì)指

43、定的學(xué)生成績(jī)信息進(jìn)行連續(xù)的修改,經(jīng)過(guò)同學(xué)們一起努力,慢慢改正了一點(diǎn)錯(cuò)誤。上機(jī)調(diào)試的時(shí)候,在指導(dǎo)老師的幫助下逐漸將不能連續(xù)修改的問(wèn)題解決。接著就遇到了程序運(yùn)行完畢不能退出到主菜單的問(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ò)查找到與之類似

44、的問(wèn)題加以解決。</p><p>  經(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í)間,因?yàn)橐氚扬@示得居中,同時(shí)清晰明朗,得加入空格或者是加入“\t”,可能就因?yàn)橐粋€(gè)空格對(duì)不齊就不能很好地顯示對(duì)應(yīng)的信息。另外我發(fā)現(xiàn)程序運(yùn)行界面就是黑白相間,顯

45、得不夠美觀,于是在查閱資料后弄明白了,加入一個(gè)頭文件然后再主函數(shù)中加入顏色的調(diào)用命令。在網(wǎng)上查找了關(guān)于顏色的代碼,添加進(jìn)去后運(yùn)行界面顯得很漂亮,比以前黑白相間的界面更明朗美觀。</p><p>  一周的時(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)

46、行時(shí),老師所要求的所有操作我的程序都能實(shí)現(xiàn),而且完美無(wú)瑕,這讓我覺(jué)得付出還是有回報(bào)的。</p><p>  經(jīng)過(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è)

47、計(jì)任務(wù)。同時(shí),也使我對(duì)C語(yǔ)言課程有了更為深刻的認(rèn)識(shí),讓我對(duì)自己有了信心。我想,若干年后,當(dāng)看到我做的這份報(bào)告,都會(huì)是一段美好的回憶。這段短短幾天的努力也會(huì)給我動(dòng)力,給我在以后的學(xué)習(xí)中以鞭策,更加加深我對(duì)計(jì)算機(jī)知識(shí)的了解。</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é)號(hào)*/</p><p>  char name[18]; /*姓名*/</p><p>  double yy;

50、 /*英語(yǔ)*/</p><p>  double mat; /*數(shù)學(xué)*/</p><p>  double jsj; /*計(jì)算機(jī)*/</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() /*計(jì)算總分*/</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、/*計(jì)算平均分*/</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; /*對(duì)平均分排序*/</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é)生成績(jī)表\n");</p><p>  printf("\t -------------------------------------------------

61、-------------\n");</p><p>  printf("\t 學(xué)號(hào) 姓名 英語(yǔ) 數(shù)學(xué) 計(jì)算機(jī) 物理 總分 平均分 \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)計(jì)模塊*/</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++) /*計(jì)算各科課程平均分*/</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é)生各科成績(jī)與平均成績(jī)*/</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)計(jì)菜單一*/ </p><p>  printf("\n\n\n");</p><p>  printf(" 平均分統(tǒng)計(jì)菜單\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("請(qǐng)輸入您要統(tǒng)計(jì)的方式:");</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 輸入錯(cuò)誤!請(qǐng)重新輸入!");</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(" 各科成績(jī)平均分\n");</p><p&

77、gt;  printf(" ---------------------------------------------\n");</p><p>  printf(" 英語(yǔ) 計(jì)算機(jī) 數(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 各科成績(jī)平均分統(tǒng)計(jì):\n"); /*統(tǒng)計(jì)菜單二*/ </p><p>  printf(" **********************************

81、****\n");</p><p>  printf(" *------------------------------------*\n");</p><p>  printf(" * 1.英語(yǔ) 2.數(shù)學(xué) *\n");</p>&l

82、t;p>  printf(" * 3.計(jì)算機(jī) 4.物理 *\n");</p><p>  printf(" * 0.退出到平均分統(tǒng)計(jì)菜單 *\n");</p><p>  printf(" *--

83、----------------------------------*\n");</p><p>  printf(" **************************************\n");</p><p>  printf("\n請(qǐng)選擇您查詢的科目:");</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 輸入錯(cuò)誤!請(qǐng)重新輸入:");</p><p><b>  }</b></p><p>  if(xz2==1) /*統(tǒng)計(jì)超出英語(yǔ)平均分人數(shù)*/</p><p><b>  {&

86、lt;/b></p><p>  printf("\n 英語(yǔ)平均成績(jī):%.1f\t超過(guò)人數(shù):%d\n",av[0],sum0);</p><p>  printf(" ----------------------------------------------\n");</p>

87、<p>  printf(" 學(xué)號(hào) 姓名 英語(yǔ) 數(shù)學(xué) 計(jì)算機(jī) 物理 \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)計(jì)超出數(shù)學(xué)平均分人數(shù)*/</p><p><b>  {</b></p><p>  printf("\n

91、 數(shù)學(xué)平均成績(jī):%.1f\t超過(guò)人數(shù):%d\n",av[1],sum1);</p><p>  printf(" -----------------------------------------------\n");</p><p>  printf(" 學(xué)號(hào) 姓名 英語(yǔ)

92、 數(shù)學(xué) 計(jì)算機(jī) 物理 \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)計(jì)超出計(jì)算機(jī)平均分人數(shù)*/</p><p><b>  {</b></p><p>  printf("\n 計(jì)算機(jī)平均成績(jī):%.1f\t超過(guò)人數(shù):%d\n",av[2],su

96、m2);</p><p>  printf(" -----------------------------------------------\n");</p><p>  printf(" 學(xué)號(hào) 姓名 英語(yǔ) 數(shù)學(xué) 計(jì)算機(jī) 物理 \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)計(jì)超出物理平均分人數(shù)*/</p><p><b>  {</b></p><p>  printf("\n 物理平均成績(jī):%.1f\t超過(guò)人數(shù):%d\n",av[3],sum3);</p><p>  printf("

101、 ---------------------------------------------\n");</p><p>  printf(" 學(xué)號(hào) 姓名 英語(yǔ) 數(shù)學(xué) 計(jì)算機(jī) 物理 \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é)號(hào):");</p><p>  scanf("%d",&s[i].xh);</p><p>  printf("\t姓名:");</p><p>  scanf("%s",s[i].name);</p><p>  printf("\t英語(yǔ):

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計(jì)算機(jī):&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("請(qǐng)輸入追加的學(xué)生成績(jī)信息:\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.英語(yǔ) 2.數(shù)學(xué) *\n");</p><p>  printf(" * 3.計(jì)算機(jī) 4.物理 *\n"

117、);</p><p>  printf(" * 5.返回上級(jí)菜單 *\n");</p><p>  printf(" *-----------------------------------------*\n");</p><

118、p>  printf(" *******************************************\n");</p><p>  printf("\n\n請(qǐng)輸入您的選擇:");</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對(duì)不起,輸入有誤!請(qǐng)重新輸入:");</p><

120、p><b>  }</b></p><p><b>  if(n==1)</b></p><p><b>  {</b></p><p>  printf("請(qǐng)修改后的英語(yǔ)成績(jī)?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("請(qǐng)

122、修改后的數(shù)學(xué)成績(jī)?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("請(qǐng)修改后的計(jì)算機(jī)成績(jī)?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("請(qǐng)修改后的物理成績(jī)?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、 成績(jī)修改菜單\n");</p><p>  printf(" **********************************************\n");</p><p>  printf(" *------------------------------------

129、--------*\n");</p><p>  printf(" * 1.按學(xué)號(hào)修改 *\n");</p><p>  printf(" * 2.按姓名修改

130、 *\n");</p><p>  printf(" * 3.返回到所有成績(jī)及主菜單 *\n");</p><p>  printf(" *--------------------------------------------*\n"

溫馨提示

  • 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ù)僅提供信息存儲(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)論