C語言|學(xué)生成績管理系統(tǒng)

要求設(shè)計的管理系統(tǒng)能夠?qū)崿F(xiàn)以下功能:

1.每一條記錄包括一個學(xué)生的學(xué)號、姓名、3個成績(平時成績、作業(yè)成績耗帕、考試成績)

2.成績錄入功能:(成績信息用文件保存,可以一次完成若干條記錄)

3.成績信息顯示瀏覽功能袱贮,完成全部學(xué)生記錄的顯示仿便。

4.查詢功能:完成按姓名查找學(xué)生記錄,并顯示

5.成績信息的刪除:按學(xué)號進行刪除某學(xué)生的成績

6.排序功能:按學(xué)生總成績進行排序

1.首先字柠,列出所需要的頭文件以及聲明所需要的函數(shù)探越,細心的同學(xué)會發(fā)現(xiàn)狡赐,就算是數(shù)字窑业,也用了字符串,方便輸入以及存取信息枕屉。

2.下面可以直接寫主函數(shù)常柄,也可以在聲明函數(shù)的時候,直接定義函數(shù)搀擂,在最后寫主函數(shù)西潘。

效果圖如下:

主函數(shù)菜單包括了題目中的所需信息,在每個選項的函數(shù)里都加了mei()這個函數(shù)哨颂,這個函數(shù)只是為了有一個這樣的效果

這個就是為了每次進行一次操作之后喷市,有一個進入成績管理系統(tǒng)的提示信息。

3.下面就是函數(shù)部分了威恼,從第一個開始品姓,添加學(xué)生,如果你在成績管理系統(tǒng)菜單選1箫措,就會進入添加學(xué)生的界面腹备,按照提示輸入對應(yīng)的信息即可。在這個函數(shù)中斤蔓,有學(xué)生數(shù)量的計數(shù)器植酥,也有循環(huán),直到在相應(yīng)位置輸入n即可跳出循環(huán)。

4.按照學(xué)號刪除學(xué)生友驮,這個需要寫好幾個函數(shù)漂羊,首先,提示用戶輸入想要刪除學(xué)生的學(xué)號卸留,然后拨与,根據(jù)學(xué)號與結(jié)構(gòu)體數(shù)組想對比,找出來該學(xué)號所對應(yīng)的結(jié)構(gòu)體數(shù)組下標艾猜。再呈現(xiàn)出該學(xué)生信息买喧,詢問用戶是否確認刪除,防止用戶誤刪信息匆赃。刪除信息也可以使用鏈表淤毛,對指針要求較高,后續(xù)會推出算柳。

根據(jù)下面這個函數(shù)可以找到該學(xué)號對應(yīng)的數(shù)組下標低淡,從而可以輸出該下標對應(yīng)的學(xué)生信息(Stu_display函數(shù))

5.成績信息顯示瀏覽功能,完成全部學(xué)生記錄的顯示瞬项。在進行學(xué)生的添加以及刪除之后蔗蹋,這個時候,已經(jīng)有了數(shù)據(jù)信息囱淋,就可以去顯示猪杭,顯示的方法很簡單,按照數(shù)組循環(huán)輸出各項信息即可妥衣。

6.查詢功能:完成按姓名查找學(xué)生記錄皂吮,并顯示。跟刪除學(xué)生類似税手,找出用戶輸入的名字信息蜂筹,去對照數(shù)組中的name,如果相同就返回對應(yīng)的數(shù)組下標芦倒。進行學(xué)生信息的顯示艺挪。

7.排序功能:按學(xué)生總成績進行排序,排序的方法很多兵扬,我在這就放一個最簡單的冒泡排序麻裳。共有九大排序方法,喜歡的話可以去研究一下周霉,其他的方法都比冒泡要快的多掂器。

8.下面就是文件操作了。寫兩個函數(shù)俱箱,一個寫入国瓮,一個讀出。如果第一次運行該程序,尚未創(chuàng)建你的文件乃摹,那么禁漓,在你的寫入函數(shù)中就應(yīng)該考慮到這種情況,在沒有文件的時候孵睬,直接新建播歼。以后再運行就可以直接讀取了。輸入學(xué)生信息掰读,你可以按照菜單中的選項去執(zhí)行輸入信息秘狞,也可以你在那個自己創(chuàng)建的txt中,按照剛才存下來的那種格式蹈集,直接寫烁试,最后程序中,也是可以讀取你的信息的拢肆。

注意排序后的數(shù)據(jù)必須放到一個新的txt文件里减响。防止下次讀取的是排序后的文件。但是添加郭怪,刪除支示,你必須還存到第一個學(xué)生信息文件中(未排序)

一次輸入就存到文件里了,下次直接讀取就行鄙才,而且讀取根寫入是對應(yīng)的颂鸿,就不用考慮那么多細節(jié)了。

這樣說可能有點不清楚咒循,直接上代碼吧据途。

首先,介紹幾個函數(shù)

(1)gets()

char*fgets(char*buf,intbufsize, FILE *stream);

*buf: 字符型指針叙甸,指向用來存儲所得數(shù)據(jù)的地址。

bufsize: 整型數(shù)據(jù)位衩,指明存儲數(shù)據(jù)的大小裆蒸。

*stream: 文件結(jié)構(gòu)體指針,將要讀取的文件流糖驴。

返回值

成功僚祷,則返回第一個參數(shù)buf;

在讀字符時遇到end-of-file贮缕,則eof指示器被設(shè)置辙谜,如果還沒讀入任何字符就遇到這種情況,則buf保持原來的內(nèi)容感昼,返回NULL装哆;

如果發(fā)生讀入錯誤,error指示器被設(shè)置,返回NULL蜕琴,buf的值可能被改變萍桌。

(2)fread

size_tfread (void* ptr,size_tsize,size_tcount, FILE * stream );

其中,ptr:指向保存結(jié)果的指針十籍;size:每個數(shù)據(jù)類型的大斜鹂濉谨读;count:數(shù)據(jù)的個數(shù);stream:文件指針

函數(shù)返回讀取數(shù)據(jù)的個數(shù)藕施。

(3)fwrite

size_tfwrite (constvoid* ptr,size_tsize,size_tcount, FILE * stream );

其中,ptr:指向保存數(shù)據(jù)的指針凸郑;size:每個數(shù)據(jù)類型的大星Π;count:數(shù)據(jù)的個數(shù)线椰;stream:文件指針

函數(shù)返回寫入數(shù)據(jù)的個數(shù)胞谈。

注意!:┯洹烦绳!

寫操作fwrite()后必須關(guān)閉流,不關(guān)閉流的情況下配紫,每次讀或?qū)憯?shù)據(jù)后径密,文件指針都會指向下一個待寫或者讀數(shù)據(jù)位置的指針。

(4)fopen()

fopen函數(shù)是在當(dāng)前目錄下打開一個文件躺孝,其調(diào)用的一般形式為:

文件指針名=fopen(文件名,使用文件方式);

“文件指針名”必須是被說明為FILE 類型的指針變量享扔;

“文件名”是被打開文件的文件名;

“使用文件方式”是指文件的類型和操作要求,可參考c prime plus 第十三章文件操作植袍,此處不贅述惧眠。

“文件名”是字符串常量或字符數(shù)組。

另有:標準輸入文件(鍵盤)于个,標準輸出文件(顯示器)氛魁,標準出錯輸出(出錯信息)是由系統(tǒng)打開的,可直接使用厅篓。

讀取到文件的信息有數(shù)量和各項信息秀存。這是已保存的文件,從文件中讀取出來的信息

排序后的文件依然按照上面的寫入函數(shù)一樣羽氮,只不過文件名需要改動一下(只需要改動文件名盎蛄础)


想要成為一個優(yōu)秀的、有能力程序員档押,做軟件開發(fā)的話澳盐,就來學(xué)習(xí)C/C++吧祈纯,而且學(xué)習(xí)編程的話有一個學(xué)習(xí)的氛圍跟交流圈子特別重要!這里我推薦一個C語言C++交流扣裙洞就,--先八七零九盆繁;后63251,不管你是大牛還是小白旬蟋,大家都一起成長進步油昂。


有同學(xué)會問,這樣就可以讀取了嗎倾贰?是的冕碟。注意開頭的主函數(shù)中調(diào)用寫入函數(shù)和讀出函數(shù)的地方,好好理解匆浙,并運用一下吧安寺。比如說寫入函數(shù),只要你在哪里調(diào)用首尼,之前所有輸入的信息都會保存到文件里挑庶。讀取信息的時候,是按照結(jié)構(gòu)體數(shù)組一個一個讀取软能,采用循環(huán)即可迎捺。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市查排,隨后出現(xiàn)的幾起案子凳枝,更是在濱河造成了極大的恐慌,老刑警劉巖跋核,帶你破解...
    沈念sama閱讀 216,324評論 6 498
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件岖瑰,死亡現(xiàn)場離奇詭異,居然都是意外死亡砂代,警方通過查閱死者的電腦和手機蹋订,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,356評論 3 392
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來泊藕,“玉大人辅辩,你說我怎么就攤上這事⊥拊玻” “怎么了?”我有些...
    開封第一講書人閱讀 162,328評論 0 353
  • 文/不壞的土叔 我叫張陵蛾茉,是天一觀的道長讼呢。 經(jīng)常有香客問我,道長谦炬,這世上最難降的妖魔是什么悦屏? 我笑而不...
    開封第一講書人閱讀 58,147評論 1 292
  • 正文 為了忘掉前任节沦,我火速辦了婚禮,結(jié)果婚禮上础爬,老公的妹妹穿的比我還像新娘甫贯。我一直安慰自己,他們只是感情好看蚜,可當(dāng)我...
    茶點故事閱讀 67,160評論 6 388
  • 文/花漫 我一把揭開白布叫搁。 她就那樣靜靜地躺著,像睡著了一般供炎。 火紅的嫁衣襯著肌膚如雪渴逻。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,115評論 1 296
  • 那天音诫,我揣著相機與錄音惨奕,去河邊找鬼。 笑死竭钝,一個胖子當(dāng)著我的面吹牛梨撞,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播香罐,決...
    沈念sama閱讀 40,025評論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼卧波,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了穴吹?” 一聲冷哼從身側(cè)響起幽勒,我...
    開封第一講書人閱讀 38,867評論 0 274
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎港令,沒想到半個月后啥容,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,307評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡顷霹,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,528評論 2 332
  • 正文 我和宋清朗相戀三年咪惠,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片淋淀。...
    茶點故事閱讀 39,688評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡遥昧,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出朵纷,到底是詐尸還是另有隱情炭臭,我是刑警寧澤,帶...
    沈念sama閱讀 35,409評論 5 343
  • 正文 年R本政府宣布袍辞,位于F島的核電站鞋仍,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏搅吁。R本人自食惡果不足惜威创,卻給世界環(huán)境...
    茶點故事閱讀 41,001評論 3 325
  • 文/蒙蒙 一落午、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧肚豺,春花似錦溃斋、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,657評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至呛谜,卻和暖如春在跳,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背隐岛。 一陣腳步聲響...
    開封第一講書人閱讀 32,811評論 1 268
  • 我被黑心中介騙來泰國打工猫妙, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人聚凹。 一個月前我還...
    沈念sama閱讀 47,685評論 2 368
  • 正文 我出身青樓割坠,卻偏偏與公主長得像,于是被迫代替她去往敵國和親妒牙。 傳聞我的和親對象是個殘疾皇子彼哼,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,573評論 2 353

推薦閱讀更多精彩內(nèi)容