湖南工程學(xué)院C語言課程設(shè)計班級學(xué)生成績管理系統(tǒng)_第1頁
湖南工程學(xué)院C語言課程設(shè)計班級學(xué)生成績管理系統(tǒng)_第2頁
湖南工程學(xué)院C語言課程設(shè)計班級學(xué)生成績管理系統(tǒng)_第3頁
湖南工程學(xué)院C語言課程設(shè)計班級學(xué)生成績管理系統(tǒng)_第4頁
湖南工程學(xué)院C語言課程設(shè)計班級學(xué)生成績管理系統(tǒng)_第5頁
已閱讀5頁,還剩57頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

課程設(shè)計報告

課程名稱C語言程序設(shè)計___________

課題名稱班級成績管理系統(tǒng)

專業(yè)______________________________

班級______________________________

學(xué)號______________________________

姓名_______________________________

指導(dǎo)教師肖偉平何宏羅敬

2012年12月26日

湖南工程學(xué)院

課程設(shè)計任務(wù)書

課程名稱C語言程序設(shè)計

課題班級成績管理系統(tǒng)

專業(yè)班級_______________________

學(xué)生姓名_______________________

學(xué)號_______________________

指導(dǎo)老師肖偉平何宏羅敬

審批_______________________

任務(wù)書下達日期2023年12月26日

任務(wù)完畢日期2023年元月4日

目錄

一、引言...............

二、總體設(shè)計...........

三、詳細設(shè)計...........

四、問題分析及總結(jié).....................13

五、參照文獻...........................15

六、附件...............................15

一、設(shè)計內(nèi)容與設(shè)計規(guī)定

1.設(shè)計內(nèi)容:班級成績管理系統(tǒng)設(shè)計

波及時知識點:

①掌握并純熟運用C語言的基本數(shù)據(jù)類型與多種體現(xiàn)式,程序的流程控制語句;

②掌握數(shù)組的基本概念。純熟掌握一維數(shù)組、二維數(shù)組日勺應(yīng)用、掌握字符數(shù)組

與字符串的關(guān)系以及字符串日勺簡樸處理。

③掌握函數(shù)日勺定義,函數(shù)的返回值,函數(shù)的調(diào)用,函數(shù)日勺形式參數(shù)和實際參數(shù)

之間的關(guān)系;掌握變量日勺作用域與生存期,理解函數(shù)日勺作用域。

④掌握構(gòu)造體日勺概念,構(gòu)造體類型的定義,溝造體變量日勺定義和初始化,構(gòu)造

體組員日勺表達,構(gòu)造體變量日勺賦值含義,構(gòu)造體與指針、函數(shù)的關(guān)系。

⑤掌握文獻、文獻類型指針日勺基本概念,純熟掌握文獻日勺打開與關(guān)閉以及文獻

日勺建立、讀寫等有關(guān)操作。

2.設(shè)計規(guī)定:

1)用c語言實現(xiàn)系統(tǒng);運用構(gòu)造體數(shù)組實現(xiàn)班級成績?nèi)丈讛?shù)據(jù)構(gòu)造設(shè)計;系統(tǒng)的

各個功能模塊規(guī)定用函數(shù)的形式實現(xiàn);應(yīng)提供一種界面來調(diào)用各個功能,調(diào)

用界面和各個功能的操作界面應(yīng)盡量清晰美觀;各項顯示數(shù)據(jù)均規(guī)定以表格

歐I形式輸出;在各功能子模塊中應(yīng)設(shè)計對應(yīng)的二級菜單。

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é)生的成績記錄,規(guī)定在追加過程

中有對應(yīng)的提醒信息,完畢追加后能重新計算學(xué)生平均成績并顯示;

(4)學(xué)生成績修改:規(guī)定能按學(xué)號和按姓名兩種定位方式,且可以按顧客規(guī)

定修改記錄中除學(xué)號和姓名以外日勺指定內(nèi)容,并重新計算學(xué)生的平均成績;

(5)學(xué)生成績信息的查詢;要示系統(tǒng)能按學(xué)號、按姓名查詢以及能查詢總分在某

一指定范圍內(nèi)的學(xué)生信息,且能顯示符合條件的I所的記錄,若所需查詢歐I信息

不存在時應(yīng)有對應(yīng)日勺提醒信息。

(6)學(xué)生成績信息日勺刪除;規(guī)定可按指定口勺學(xué)號和指定的姓名兩種定位方式刪除

學(xué)生的成績記錄。

(7)規(guī)定在刪除模塊、修改模塊和查詢模塊中若找不到所需H勺記錄時,系統(tǒng)設(shè)計

中應(yīng)有一定的提醒信息。

(8)成績排序:按學(xué)生平均成績進行排序:

(9)成績記錄:

①記錄并以表格IKJ形式顯示所有課程的平均分;

②記錄并顯示選定的某門課程的平均分以及超過該平均分的人數(shù),同步

能將超過該平均分的學(xué)生記錄以表格的形式顯示出來。

4)闡明:

(1)規(guī)定將修改后口勺數(shù)據(jù)寫入到一種新口勺數(shù)據(jù)文獻nwcjck.txt中。

(2)對系統(tǒng)有愛好口勺同學(xué)可以在實現(xiàn)基本規(guī)定的基礎(chǔ)上,完善系統(tǒng)的其他功能。

5)班級成績管理系統(tǒng)采用一種構(gòu)造體數(shù)組,學(xué)生成績數(shù)據(jù)庫構(gòu)造如下:

intxh/*學(xué)號*/

charname[10]/*姓名*/

產(chǎn)英語*/

doubleyy

doublemat/*數(shù)學(xué)*/

doublejsj/*計算機*/

doublewl/*物理*/

doublezf/*總分*/

注意:學(xué)號不能反復(fù)且不少于4位數(shù)字,各項字符串的長度規(guī)定在4?10之間,

數(shù)據(jù)庫應(yīng)有10條或多于10條以上的記錄。

6)規(guī)定:

⑴規(guī)定每個學(xué)生必須獨立思索,認真并準時完畢本課程設(shè)計所包括日勺所有內(nèi)容;

⑵規(guī)定學(xué)生必須按照課程設(shè)計匯報的完整格式闡明設(shè)計內(nèi)容,設(shè)計任務(wù)分析過

程和算法,給出程序流程圖和所有源程序;

⑶設(shè)計匯報日勺完整格式應(yīng)包括如下部分的內(nèi)容:

①系統(tǒng)設(shè)計總體思緒;

②系統(tǒng)日勺重要功能;

③系統(tǒng)功能模塊的劃分(規(guī)定畫出總體模塊框圖);

④重要功能H勺實現(xiàn)和各個程序模塊闡明(每個功能模塊的框圖、系統(tǒng)主模

塊的流程圖,各個功能模塊至少要有一種重要日勺流程圖);

⑤程序調(diào)試過程及各模塊調(diào)試中對應(yīng)的部分截圖;

?課程設(shè)計總結(jié)與體會(不少于5()()字)。

⑦課程設(shè)計參照文獻;

⑧程序清單;

(4)課程設(shè)計周內(nèi),凡規(guī)定的集中上機時間必須到機房調(diào)試程序;

⑸設(shè)計完畢后必須參與答辯,并按規(guī)定演示程序,提交課程設(shè)計匯報和有關(guān)電

子文檔。

7)分組及安排

所選題目根據(jù)學(xué)生班號和學(xué)號確定,(班號+學(xué)號)%6+1。如你的班號為01

班、學(xué)號為01,則所選題目號為:(1+1)%6+1=3,即課題號為3。

8)成績評估

①系統(tǒng)設(shè)計方案與否合理;②程序設(shè)計與否對日勺;③調(diào)試成果;④設(shè)計闡明

書FI勺質(zhì)量高下;⑤答辯時回答問題狀況;⑥課程設(shè)計周體現(xiàn)狀況;總評成績

記入“課程設(shè)計成績評分表”。

二、進度安排

第17周星期三14:00--17:00講課、布置任務(wù)

星期五8:00—-12:00機房上機調(diào)試程序

第18周星期三19:00-—22:00機房上機調(diào)試程序

星期四14:00-—18:00機房上機調(diào)試程序

星期五8:00—-12:00機房上機調(diào)試程序、答辯

附:課程設(shè)計匯報排版、打印和裝訂規(guī)定

1.課程設(shè)計匯報裝訂次序:封面、任務(wù)書、目錄、正文、附件、評分表。按A4大小的紙張排版和打

2.設(shè)計匯報的頁碼從目錄之后開始使用;

3.正文的格式:一級標題用3號黑體,二級標題用四號宋體加粗,正文用小四號宋體;行距為22磅。正文中程序清單

(英文)用英文字體TimesNewRoman,單倍行間距。

4.正文的內(nèi)容:一、課題的重要功能;二'課題的功能模塊的劃分(規(guī)走畫出模塊圖);三、重要功能的實現(xiàn)(至少

要有一種重要模塊的流程圖);四、程序調(diào)試(各模塊至少有一種程序調(diào)試的截圖);五、總結(jié)(不少于500字);六、

參照文獻;七'附件(包括所有程序的原代碼,且程序中應(yīng)有必要的注釋)。八.正文總字數(shù)規(guī)定在500C字以上(不

含程序原代碼)。

5.設(shè)計匯報中任務(wù)書和評分表不需重新排版。

一、引言

L1序言

c語言課程設(shè)計是對學(xué)生的一種全面綜合訓(xùn)練,它包括問題分析,總體構(gòu)造設(shè)計,

顧客界面設(shè)計,程序設(shè)計基本技能和技巧的培養(yǎng)。是與課堂聽講、自學(xué)和練習(xí)相結(jié)合H勺

必不可少口勺一種環(huán)節(jié)。課程設(shè)計的課題比平時日勺習(xí)題復(fù)雜得多,也更靠近實際。全面熟

悉、掌握C語言基本知識,掌握C程序設(shè)計中的次序、分支、循環(huán)三種構(gòu)造及數(shù)組、函

數(shù)和C語言基本圖形編程等措施,把編程和實際結(jié)合起來,熟悉編制和調(diào)試程序H勺技巧,

掌握分析成果H勺若干有效措施,深入提高上機動手能力,培養(yǎng)使用計算機處理實際問題

H勺能力,養(yǎng)成提供文檔資料的習(xí)慣和規(guī)范編程H勺思想,為后來在專業(yè)課程中應(yīng)用計算機

系統(tǒng)處理計算、分析、試驗和設(shè)計等學(xué)習(xí)環(huán)節(jié)打下較扎實H勺基礎(chǔ)。

L2設(shè)計目的

伴隨電腦技術(shù)的發(fā)展越來越快,管理系統(tǒng)得到人們廣泛的應(yīng)用。本課題中編寫班級

成績管理系統(tǒng)重要是為了以便我們能愈加高效快捷地管理學(xué)生日勺各項成績信息,可以對

學(xué)生成績進行追加、修改、刪除等操作。并能對輸入日勺數(shù)據(jù)進行平均分、總分日勺計算以

及總分的排序,進而清晰明朗地顯示出來。

二、總體設(shè)計

2.1重要功能

重要實現(xiàn)對學(xué)生成績信息實現(xiàn)成績的顯示,成績的追加,成績?nèi)丈仔薷?,成績的查?

成績?nèi)丈讋h除,成績的排序和記錄等功能。

班級成績管理系統(tǒng)詳細提供如下功能:

a、成績顯示:完畢全班同學(xué)所有學(xué)生成績的顯示,以表格形式顯示出來,并帶

有表頭。

b、成績追加:新增學(xué)生成績記錄,在追加過程中有對應(yīng)的提醒信息并實現(xiàn)持續(xù)

追加時功能。追加成功日勺成績能重新計算學(xué)生的平均成績并顯示。

c、成績修改:實現(xiàn)按學(xué)號修改和按姓名修改兩種修改方式,并可以對指定的學(xué)

生n勺各科成績進行修改,修改正程中有對應(yīng)的提醒信息。修改后能重新計算學(xué)

生日勺平均成績。

d、成績刪除:疝指定的學(xué)號或者指定的姓名進行定位刪除,并有對應(yīng)的提醒信

息。

e、成績查詢:發(fā)指定的學(xué)號或指定口勺姓名進行定位查詢,并能顯示出符合條件

的查詢成果。查詢FJ信息不存在時有對應(yīng)的提醒信息。

f、成績排名:按學(xué)生平均成績進行排序,并以表格形式顯示。

g、成績記錄:以表格日勺形式顯示所有課程日勺平均分,并顯示選定的其門課

程日勺平均分以及超過該平均分的人數(shù),同步將超過該平均分日勺學(xué)生記錄以表

格的形式顯示出來。

2.2功能模塊劃分

(1)本程序由八個模塊構(gòu)成,其中主模塊是由系統(tǒng)函數(shù)搭建而成,其重要功能是顯示

出功能主菜單,由顧客作出選擇進入子菜單。在子菜單中操作完畢后,可以精確返回到

功能主菜單。

系統(tǒng)重要模塊流程圖如下:

(2)模塊闡明

主界面main()顧客選擇界面

顯示模塊DispO顯示所有學(xué)生的成績信息

追加模塊Appe()添加學(xué)生成績信息

修改模塊Modi()修改學(xué)生某項成績信息

刪除模塊Dele()刪除學(xué)生某項成績信息

查詢模塊Query()查詢學(xué)生成績信息

排序模塊Sort()按成績總分排序

記錄模塊Total()記錄各科目平均分信息

退出模塊QuitO退出系統(tǒng)并保留信息

三、詳細設(shè)計

3.1重要功能的實現(xiàn)(下面以追加模塊和修改模塊為例)

(1)追加模塊流程圖

(2)修改模塊流程圖

3.2程序調(diào)試

各模塊運行環(huán)節(jié)及界面

3.2.1功能主菜單項選擇擇界面

3.2.2顯示模塊(輸入“1”進入全班成績顯示菜單)

?-I:\C\Debug\clllkt4.exe-

1___仝掰學(xué)耳▲

1里姓名英語數(shù)學(xué)計算機物理總分平均分?一,1

1201301李軍82.070.070.085.0307.076.84

1201302吳雨辛97.092.090.095.0374.093.51

1201303趙娜88.090.080.080.0338.084.5

201304劉宇85.090.090.071.0336.084.0

201305曹領(lǐng)80.080.080.092.0332.083.0

201306湛靜90.082.070.080.0322.080.5

201307楊松80.098.065.058.0301.075.3

201308李娜98.075.092.097.0362.090.5

201309徐維80.090.070.083.0323.080.8

201310汪東城75.088.065.098.0318.079.5

I'--:「二”二「

單:

-

3.2.2顯示模塊截圖

3.2.3追加模塊(在功能主菜單輸入“2”進入成績追加界面,這里輸入一組追加信息后,

系統(tǒng)會提醒與否繼續(xù)追加,從而實現(xiàn)了“持續(xù)追加”日勺功能)

瓦級疆暮量薪

一功能菜單

**全班成績2:成績追加

**3:成績修改4:成績刪除

**5:成績查詢6:成績排名

**7:成績統(tǒng)計8:退出系統(tǒng)?

你的選

段:2

的4

于4

里號-

?2l1

名?0

:yy

宜95

子86

機:

理9

分0

翠的

姓!2013L3

名IW

^道

央!95

干86

忌:5

理:94

輸10

-生

M?

bL

<v

3.2.4追加模塊截圖

(注:這里的總分輸入值為0,由于在該程序中,總分會計算出來)

修改模塊(在功能主菜單輸入“4”進入成績修改菜單,這里可以根據(jù)學(xué)號和姓名查找

到對應(yīng)學(xué)生成績信息進行修改。下面以按姓名修改為例,對姓名為“wwF勺學(xué)生的計算

機成績進行修改后,系統(tǒng)還能提醒與否對該生的其他科目成績進行繼續(xù)修改,實現(xiàn)了“一

人多項”的修改功能。修改完系統(tǒng)會退到所有學(xué)生成績菜單,可以清晰地看到修改后的

學(xué)生的成績信息)

3.2.4修改模塊截圖

3.2.5刪除模塊(在功能主菜單輸入“4”進入刪除方式菜單,此功能可以對學(xué)生成績信

息進行按學(xué)號刪除和按姓名刪除兩種刪除方式。下面以對姓名為“ww”的學(xué)生成績進行

刪除,輸入該生姓名后,系統(tǒng)能顯示該生日勺各項成績信息,并提醒與否確認刪除。刪除

后,系統(tǒng)還能提醒與否繼續(xù)進行刪除操作。這里歐I刪除模塊實現(xiàn)了“多人多項”的刪除

功能,操作使用起來十分便利高效。假如不繼續(xù),選擇“2”能退出到刪除方式菜單,

進行接下來日勺刪除操作)

3.2.5刪除模塊截圖

3.2.6查詢模塊(在功能主菜單輸入“5”系統(tǒng)進入成績查詢菜單。此功能可以對學(xué)生成

績信息按學(xué)號查詢和按姓名查詢,如下以按學(xué)號查詢?yōu)槔?。輸入學(xué)號為“202310”的學(xué)

生學(xué)號,系統(tǒng)以表格H勺形式顯示出該生的成績信息。輸入“1”能返回到查詢菜單繼續(xù)

查詢,輸入任意鍵系統(tǒng)退出到主菜單界面)

查詢模塊截圖

3.2.7排序模塊(在功能主菜單輸入“6”進入成績徘名的界面,成績排名以總分的高下

由高向低以表格日勺形式顯示出來)

■I:\C\Debug\clllkt4.exe,

請軸入您的選擇:6

全班學(xué)生成績表

L

¥名_數(shù)支計算機州理總分子殛

201302要雨五97.092.090.095.0374.093.5

手娜

20130898.075.092.097.0362.090.5

201303趙娜88.090.080.080.0338.084.5

201304劉宇85.090.090.071.0336.084.0

20130580.080.080.092.0332.083.0

201309—徐維80.090.070.083.0323.080.8

201306湛靜90.082.070.080.0322.080.5

201310汪東城75.080.065.098.0318.079.5

201301李軍82.070.070.085.0307.076.8

201307楊松80.098.065.058.0301.075.3

[按回車鍵顰主菜單;.

III____________

?■

3.2.7排序詢模塊截圖

3.2.8記錄模塊(在功能主菜單輸入“7”進入平均分記錄菜單界面,菜單顯示:1、所

有課程平均分2、單一課程平均分3、退出。如下輸入“2”進入單一課程平均分界面,

菜單界面顯示各科目【付選擇列表,輸入“2”查詢數(shù)學(xué)成績的I平均分,成果以表格形式

輸出超過該科平均分的學(xué)生信息。查詢完數(shù)學(xué)這項后,還能繼續(xù)對具他科目的平均分記

錄信息進行查詢。實現(xiàn)了“多次循環(huán)”的功能)

請輸入您要統(tǒng)計的方式:2

各科成績平均分統(tǒng)計:

請選擇您查詢的科目:2

數(shù)學(xué)平均成績?84.7超過人數(shù);5

學(xué)號姓名英語數(shù)學(xué)計算機物理

201302吳雨羊97.092.090.095.0

201303趙娜88.090.080.080.0

201304劉宇85.090.090.071.0

201309徐維80.090.070.083.0

201307楊松80.098.065.058.0

各科成繳平均分統(tǒng)計:

書選擇您篁詢的科目:

3.2.8記錄模塊截圖

3.2.9退出模塊(在完畢對該系統(tǒng)的所有操作后,在功能主菜單界面輸入“8”進入退出

界面,如下圖:鍵入任意鍵即可退出該系統(tǒng))

3.2.9退出模塊截圖

四、問題分析及總結(jié)

4.1問題分析

從接到這個課題開始,我們就開始了為期一周的c語言課程設(shè)計。首先是針對本次

課題設(shè)計進行建庫工作,在開始建庫的過程中,就碰到了一點困難。建庫日勺時候一不留

神就會使輸入H勺數(shù)據(jù)庫前功盡棄,為此嘗試了幾次,最終耐心地一項一項輸才建好庫。

針對這個課題,老師給我們分了7人一組H勺小組進行合作,我在組中重要負責(zé)了修改模

塊程序的編寫和整個系統(tǒng)日勺美化工作。在調(diào)試過程中碰到了不少的錯誤、警告等信息,

有時候由于一種符號日勺失誤導(dǎo)致程序日勺錯誤到達十幾種。在做完修改模塊后,個人覺得

修改日勺方式還是不夠妥當,不能實現(xiàn)多想同步修改而只能一項一項進行修改保留。這是

我個人覺得修改模塊存在日勺值得改善日勺地方。

4.2總結(jié)

學(xué)習(xí)C語言已經(jīng)六個月了,六個月來,從接觸C語言這門課程到后來逐漸理解這門

課程H勺點滴知識,使我自己對計算機方面日勺知識有了愈加深刻H勺認識。作為一種電腦愛

好者,平時和同學(xué)們在一起就喜歡討論java編程和電腦系統(tǒng)方面的知識。從一年前拿

到自己的第一臺智能刷機開始,漸漸理解一點有關(guān)安卓apk程序日勺開發(fā)及框架。每

次的刷機都會使我自己對安卓系統(tǒng)有深入H勺理解,同步,每次處理一種問題,都會有一

點點小小H勺成就感。近來的六個月,由于電腦的使用頻率的增長,注意力開始轉(zhuǎn)移到電

腦系統(tǒng)的安裝以及自己學(xué)習(xí)封裝曬n7系統(tǒng)。由于對電腦軟件H勺使用和電腦知識理解較

多,諸多同學(xué)們電腦有問題都會找我?guī)兔?,這六個月中,拆過許多筆記本電腦,用多種

措施裝過諸多臺電腦的系統(tǒng),還裝了幾臺機子的內(nèi)存以及對電腦主板上灰塵日勺進行清

理。這些在我看來簡樸的操作給我自己帶來了許多快樂,同步也給他人帶去了以便。

剛接觸到C語言這門課程時就感覺到了它日勺難度,但通過漸漸日勺學(xué)習(xí),我認識到了

它的重要性,更認識到這是一種能力的培養(yǎng)。通過幾次的上機操作,看到自己設(shè)計的程

序能運行出對H勺的成果,開始對C語言產(chǎn)生了愛好。同步,學(xué)習(xí)的東西越來越復(fù)雜,碰

到的困難也越來越多。

拿到我們組歐J課題時,心里十分的沒底,覺得很難不懂得該怎樣下手。原因是自己

沒把知識真正學(xué)到手,不懂得自己學(xué)H勺東西能不能用得上。但學(xué)習(xí)就是要不停日勺發(fā)現(xiàn)問

題,不停日勺處理問題日勺。于是,在試探中開始了建庫日勺工作。曾認為建庫是很簡樸很輕

易的,不過開始建立日勺時候,就很輕易出錯。通過幾次失敗,幾次重試,終于建好了庫

文獻。接下來日勺任務(wù)就是做好我負責(zé)歐I修改模塊,在做修改模塊日勺時候,問題日勺困難程

度還是顯現(xiàn)出來了,調(diào)用函數(shù)日勺時候常常出錯。程序運行起來不能對指定日勺學(xué)生成績信

息進行持續(xù)的修改,通過同學(xué)們一起努力,慢慢改正了一點錯誤。上機調(diào)試的時候,在

指導(dǎo)老師日勺協(xié)助下逐漸將不能持續(xù)修改的問題處理。接著就碰到了程序運行完畢不能退

出到主菜單的I問題,在幾次嘗試修改語句后,終于懂得了語句缺失歐I命令,最終完美地

處理了這個問題。在處理問題的過程中,對于課堂上學(xué)的for,Switch和while語句尚有

構(gòu)造體的使用和指針的便用方法與作用均有了深入的認識。后米碰到問題口勺時候,查閱

了書本知識,通過網(wǎng)絡(luò)查找到與之類似的問題加以處理。

通過幾次上機調(diào)試后,其他同學(xué)已經(jīng)將剩余的噗塊做得差不多了。不過我發(fā)現(xiàn)一種

普遍的問題,那就是所有界面的布局都不夠合理。于是接下來的工作就把各模塊的顯示

菜單講行美化,使界面看起來清晰美觀。這個看似簡樸的工作做起來卻是很短時間,由

于要想把顯示得居中,同步清晰明朗,得加入空格或者是加入“\t”,也許就由于一種

空格對不齊就不能很好地顯示對應(yīng)的信息。此外我發(fā)現(xiàn)程序運行界面就是黑白相間,顯

得不夠美觀,于是在查閱資料后弄明白了,加入一種頭文獻然后再主函數(shù)中加入顏色的

調(diào)用命令。在網(wǎng)上查找了有關(guān)顏色H勺代碼,添加進去后運行界面顯得很漂亮,比此前黑

白相間的界面更明朗美觀。

一周口勺時間很快就過去了,C語言答辯安排就在老師安排下開始了。周五上午,我

就在機房里完畢了答辯。目前覺得有點遺憾的就是,老師問我的問題由于緊張了一定就

沒回答得很好,覺得有點失望。不過我的程序做得還是比較合理,由于在答辯運行時,

老師所規(guī)定的I所有操作我口勺程序都能實現(xiàn),并旦完美無瑕,這讓我覺得付出還是有回報

日勺。

通過這次日勺C語言課程設(shè)計,我才真正理解到理論知識轉(zhuǎn)為實踐日勺重要性。其實從

剛接到課題任務(wù)的時候,心里還是有點畏懼的,畢竟這個系統(tǒng)的源程序就有好兒頁,看

著就頭痛。不過看著同學(xué)們一種個認真的坐在電腦面前兒種小時一點點探索,自己才開

始冷靜地思索著問題。通過自己的努力,同學(xué)們?nèi)丈讌f(xié)助和老師的指導(dǎo),終于完畢了這個

課題日勺設(shè)計任務(wù)。同步,也使我對C語言課程有了更為深刻日勺認識,讓我對自己有了信

心。我想,若干年后,當看到我做日勺這份匯報,都會是一段美好的回憶。這段短短幾天

的努力也會給我動力,給我在后來的學(xué)習(xí)中以鞭策,愈加加深我對計算機知識的理解。

五、參照文獻

[1]賈宗璞,許合利.c語言程序設(shè)計.人民郵電出版社

[2]陳世清,李杰君.C語言程序設(shè)計.浙江大學(xué)出版社

[3]鄭莉.C++語言程序設(shè)計.清華大學(xué)出版社

六、附件

源程序清單:

#include<stdio.h>

#include<stdlib.h>

#include<string.h>

#include<conio.h>

intN=();

structstu

intxh;/*學(xué)號*/

charnamefl8];/*姓名*/

doubleyy;/*英語*/

doublemat;/*數(shù)學(xué)*/

doublejsj;/*計算機*/

doublewl;物理*/

doublezf;/*總分*/

聞20];

voidRe_file()

(

FILE*fp;

fp=fopen(,,bjcjk.txtu,',r");

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)!=EOF)N++;

fclose(fp);

voidWr_file()

{inti;

FILE*fp;

fp=fopen("nwejck.txt","w");

for(i=();i<N;i++)

fprintf(fp,"%d\n%s\n%lf\n%lf\n%lf\n%lf\n%lf\nu,s[i].xh,s[i].name,s[i].yy,s[i].mat,s[i].jsj,s[i].

wl,s[i].zf);

fclose(fp);

)

voidJs()/*計算總分*/

{inti;

for(i=0;i<N;i++)

s[i].zf=s[i].yy+s[i].mat+s[i].jsj+s[i].wl;

)

voidSort()/*排序模塊*/

{intj,k;

doubleave[20],t;

structstum;

Js();

for(k=0;k<N;k++)

ave[k]=s[k].zf/4;/*計算平均分列

for(k=0;k<N-l;k++)

for(j=k+l;j<N;j++)

if(ave[k]<ave[j])

{t=ave[k];ave[k]=ave[j];ave[j]=t;/*對平均分排序*/

m=s[k];s[k]=s[j];s|j]=m;}/*按平均分整體排序*/

)

voidDisp()/*顯示模塊*/

{

Js();

inti;

printf("\n\t\t\t\t全班學(xué)生成績表\n");

printf("\t----------------------------------------------------------------\nM);

printf("\t學(xué)號姓名英語數(shù)學(xué)計算機物理總分平均分

\n");

printf("\t----------------------------------------------------------------\n");

for(i=0;i<N;i++)

(

printf("\t%d\t%s\t%.Ilf%.llf\n",s[i].xh,s[i].name,s[i].

yy.s[i].inat.s[i].jsj,s[i].wLs;i].zf,s[i].zf/4);

printf(u\t----------------------------------------------------------------\nM);

)

printf(”按回車鍵返回主菜單:”);

getchar();

}

voidTotal()/*記錄模塊*/

(

doubleav[4]={0.0};

intxz,sumO,sum1,sum2,sum3;

intxz2;

intk,i;

suinO=sum1=sum2=sum3=0;

for(k=0;k<N;k++)/*計算各科課程平均分*/

{av[0]+=s[k].yy;

av[l]4-=s[k].mat;

av[2]+=s[k].jsj;

av[3]+=s[k].wl;

)

av[()]=av[()]/N;

av[l]=av[l]/N;

av[2]=av[2]/N;

av[3]=av[3]/N;

for(k=0;k<N;k++)/*比較學(xué)生各科成績與平均成績*/

(

if(s[k].yy>av[O])sumO++;

if(s[k].mat>av[l])suml++;

if(s[k].jsj>av[2])sum2++;

if(s[k].wl>av[3])sum3++;

)

whiic(l)

(/*記錄菜單一*/

printf(n\n\n\n");

printf(u平均分記錄菜單\n”);

printf(u**********************************\n=)‘

printf(u*---------------------------------*\n");

u

printf(*1.所有課程平均分*\n”);

printf(u*2.單一課程平均分*\n");

printf(u*3.退出*\n”);

printf(n*............................................*\n");

111\

printf(nrT?eivrt*VNrjwrnrvarT?ri?rv?rrernri?rv?rY?ri?\■?

printf(n\n\n");

prinlf("請輸入您要記錄的方式

while(l)

scanf(n%dH,&xz);

if(xz==1||xz==2||xz==3)break;

elseprintf("\n\n\n\n輸入錯誤!請重新輸入1');

break;

1

if(xz==l)

printf("\n\n\n");

printf(u各科成績平均分\n");

printf(u---------------------------------------\nM);

printfC1英語計算機數(shù)學(xué)物理\n”):

printf(H---------------------------------------\nu);

printf(u%10.1f%10.1f%10.1f%10.1f\n",av[0],av[lJ,av[2],avl3J);

printfC---------------------------------------\n");

)

if(xz==2)

while(l)

printf("\n各科成績平均分記錄:\n”);

記錄菜單二*/

???-X*!??!>\f|X

printf("小小—小不不小小小不…小小小小小不小—小不小小小小…、n);

printf(H*-------------------------------------*\n");

printf(u*1.英語2.數(shù)學(xué)*\n");

printf(H*3.計算機4.物理沁n”);

printf(H*。.退出到平均分記錄菜單nn");

printf(u*-------------------------------------*\n");

?:/.[??!??1???*”,\11\

printf(H木木木¥小木木率*杉木字小木木率半木木木¥*木木木斗仙木**木木木¥小木也);

pnntf("\n請選擇您查詢的科目:“);

whilc(l)

(

scanf("%d”,&xz2);

if(xz2==l||xz2==2||xz2==3||xz2==4||xz2==0)break:

elseprintf("\n輸入錯誤!請重新輸入:");

if(xz2==l)/*記錄超過英語平均分人數(shù)*/

(

printfC'Xn英語平均成績:%.1八1超過人

數(shù):%d\nn,av[0],sum0);

printfC'..............................................................\nH);

printfC學(xué)號姓名英語數(shù)學(xué)計算機物理

\n");

printf("\n");

for(i=0;i<N;i++)

if(s[i].yy>av[O])

printf("%d%s%8.1lf%8.1lf%8.11^8.1mnn,s[i].xh,s[i].name,s[ij.yy,s[i].rn

at,s[i].jsj,s[i].wl);

printf(n-------------\n");

)

)

I

if(xz2==2)/*記錄超過數(shù)學(xué)平均分人數(shù)列

(

printfCAn數(shù)學(xué)平均成績:%.lf\t超過人

數(shù):%d\nu,av[l],suml);

printfC'---------------------------\n");

printfC學(xué)號姓名英語數(shù)學(xué)計算機物

理\nu);

printf("..................................\n");

for(i=0;i<N;i++)

if(s[i].mat>av[l])

printf(M%d%s%8.1im.1lf%8.11^8.11i\nn,s[i].xh,s[i].name,s[i].yy,s[i].m

at,s[i].jsj,s[i].wl);

printf(n--------------------------------------------\nu);

)

1

)

if(xz2==3)/*記錄超過計算機平均分人數(shù)*/

(

printf("\n計算機平均成績:%.1N超過人

數(shù):%d\nn.av[2J.sum2):

printf("---------------------------------------------\n");

printfC'學(xué)號姓名英語數(shù)學(xué)計算機物

理\n");

printfC'-------------------------'n”);

for(i=0;i<N;i++)

if(s[i].jsj>av[2])

printf(u%d%s%8.1H%8.1lf%8.1lf%8.1H\n",s[i].xh,s[i].name,s[i].yy,s[i].

mat,s[i].jsj,s[i].wl);

printf(n----------------------------------------------------------\n");

)

}

I

if(xz2==4)/*記錄超過物理平均分人數(shù)*/

(

pnntfCAn物理平均成績:%.1枚超過人

數(shù):%d\nu,av[3],sum3);

printf("-------------------------------------------------------\nM);

printf("學(xué)號姓名英語數(shù)學(xué)計算機物

理\n");

printf(M--------------------------------------------------------\n");

for(i=0;i<N;i++)

(

if(s[i].wl>av[3])

{

printf("%d%s%8.1lf%8.1lf%8.1lf%8.1lfV,s[i].xh,s[i].name,s[i].yy,s[i]

.mat,s[i].jsj,s[i].wl);

printf(M

-----------------------------------------\n");

)

1

)

if(xz2==0)

break;

I

I

if(xz==3)

break;

)

1

voidAppe1()/*追加模塊1*/

(

int仁N;

printf("\t學(xué)號:");

scanf("%d",&s[i].xh);

printf(、姓名:”);

scanf(M%s",s[i].name);

printf(、英語:”);

scanf("%lf',&s[i].yy);

printf("\t數(shù)學(xué):");

scanf("%lf',&s[i].mat);

printf("\t計算機:”);

scanf("%lf',&s[i].jsj);

printf(”\t物理:");

scanf(M%lf',&s[i].wl);

printf("\t總分:");

scanf(H%ir,&s[i].zf);

N++;

)

voidAppe()/*追加模塊*/

(

chars='y';

inti;

for(i=0;s==,y,||s=='Y';i++)

{

printf("請輸入追加的I學(xué)生成績信息:\n");

Appel();

getchar();

printf("與否繼續(xù)輸入?\n(Y/N)”);

scanf(u%c".&s):

Wr_tile();

}

voidModil(inti)/*修改模塊1*/

intn;

doubletemp;

while(l)

(

printf("\n\n\n");

?*?ala?!?*1??1>?]?a*??1*1,Q、)

printf("*¥***************************************3;

printf("*------------------------------------------*\n");

printf(n*1.英語2.數(shù)學(xué)*\n”);

printf("*3.計算機4.物理*\n“);

printf(u*5.返回上級菜單*\n");

printf("*------------------------------------------*\*;

?J??!?????1????力.“?*1?一義?!??!?4??!???*1,,\

printf(n字卒—不*一小小亭*小木紅小木木不*小小小不小小事不本不比)?

printf(u\n\n請輸入您日勺選擇

while(l)

scanf(u%d';&n);

if(n==1||n==2||n==3||n==4||n==5)break;

elseprintf("\l\t\t\t對不起,輸入有誤!請重新輸入:"):

}

if(n==l)

(

printf("請修改后日勺英語成績?yōu)?");

scanf("%lf',&temp);

s[i].yy=temp;

}

if(n==2)

(

printf(”請修改后日勺數(shù)學(xué)成績?yōu)?“);

scanf("%lf',&temp);

s[i].mat=temp;

)

if(n==3)

(

prints請修改后日勺計算機成績?yōu)?");

scanf(n%lf\&temp);

s[i].jsj=temp;

if(n==4)

(

printfC請修改后日勺物理成績?yōu)?/p>

scanf(u%Ifr,&temp);

s[i].wl=temp;

)

if(n==5)

(

break;

I

)

)

voidModi()/*修改模塊*/

f

inti,xz3,xh,j;

charname[10];

while(l)

printf(H成績修改菜單\n");

printf("

printf(n*------------------------------------------*\n");

printf("*

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論