日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > windows >内容正文

windows

用matlab时提示数据写入文件期间被裁剪_用C语言简单开发学生成绩管理系统

發(fā)布時間:2025/3/15 windows 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 用matlab时提示数据写入文件期间被裁剪_用C语言简单开发学生成绩管理系统 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

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

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

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

3.成績信息顯示瀏覽功能,完成全部學生記錄的顯示。

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

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

6.排序功能:按學生總成績進行排序

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

ancientear

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

ancientear

ancientear

ancientear

效果圖如下:

ancientear

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

ancientear

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

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

ancientear

4.按照學號刪除學生,這個需要寫好幾個函數(shù),首先,提示用戶輸入想要刪除學生的學號,然后,根據(jù)學號與結構體數(shù)組想對比,找出來該學號所對應的結構體數(shù)組下標。再呈現(xiàn)出該學生信息,詢問用戶是否確認刪除,防止用戶誤刪信息。刪除信息也可以使用鏈表,對指針要求較高,后續(xù)會推出。

ancientear

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

ancientear

ancientear

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

ancientear

6.查詢功能:完成按姓名查找學生記錄,并顯示。跟刪除學生類似,找出用戶輸入的名字信息,去對照數(shù)組中的name,如果相同就返回對應的數(shù)組下標。進行學生信息的顯示。

ancientear

ancientear

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

ancientear

8.下面就是文件操作了。寫兩個函數(shù),一個寫入,一個讀出。如果第一次運行該程序,尚未創(chuàng)建你的文件,那么,在你的寫入函數(shù)中就應該考慮到這種情況,在沒有文件的時候,直接新建。以后再運行就可以直接讀取了。輸入學生信息,你可以按照菜單中的選項去執(zhí)行輸入信息,也可以你在那個自己創(chuàng)建的txt中,按照剛才存下來的那種格式,直接寫,最后程序中,也是可以讀取你的信息的。

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

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

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

ancientear

ancientear

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

(1)gets()

char *fgets(char *buf, int bufsize, FILE *stream);

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

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

*stream: 文件結構體指針,將要讀取的文件流。

返回值

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

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

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

(2)fread

size_t fread ( void * ptr, size_t size, size_t count, FILE * stream );

其中,ptr:指向保存結果的指針;size:每個數(shù)據(jù)類型的大小;count:數(shù)據(jù)的個數(shù);stream:文件指針

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

(3)fwrite

size_t fwrite ( const void * ptr, size_t size, size_t count, FILE * stream );

其中,ptr:指向保存數(shù)據(jù)的指針;size:每個數(shù)據(jù)類型的大小;count:數(shù)據(jù)的個數(shù);stream:文件指針

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

注意!!!

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

(4)fopen()

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

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

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

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

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

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

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

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

ancientear

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

有同學會問,這樣就可以讀取了嗎?是的。注意開頭的主函數(shù)中調(diào)用寫入函數(shù)和讀出函數(shù)的地方,好好理解,并運用一下吧。比如說寫入函數(shù),只要你在哪里調(diào)用,之前所有輸入的信息都會保存到文件里。讀取信息的時候,是按照結構體數(shù)組一個一個讀取,采用循環(huán)即可

總結

以上是生活随笔為你收集整理的用matlab时提示数据写入文件期间被裁剪_用C语言简单开发学生成绩管理系统的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。