學生資訊的錄入和列印,函式的封裝

2021-07-02 16:40:18 字數 1791 閱讀 7282

內容: 

用鍊錶的形式完成乙個學生資訊錄入和列印;

使用結構體,定義相應的資料型別;

實現鍊錶的建立和插入,使用函式封裝(不同的函式放入不同的檔案中,在主函式中新增標頭檔案,然後呼叫);

實現學生成績的錄入和列印;

編寫主函式進行測試。

使用gcc進行編譯

編寫makefile檔案,使用預定義變數和自動變數

使用gdb進行除錯

今天寫的就是這樣的程式,這是乙個比較簡單的程式,有機會寫到這樣的程式,想發表一下自己的觀點,這是乙個c語言的程式,但是在嵌入式中,這樣的程式就要有封裝的效果,以及在學c的時候沒有的makefile等。。

程式我不多說,每個人有每個人的習慣,當然**也不同,那怕是簡單的程式,**在下,仔細看,總會找到與自己不同的想法,我說的就是函式的封裝,對與剛接觸c的人來說,這也算是乙個難點啦,這是在linux上實現的**,不同的函式放入不同的檔案中,這一點不難,相信很多人都會這乙個問題。但是放入後怎麼執行就是我們要注意的問題啦,在剛開始的時候我們都將函式什麼都放在main函式中,這對以後大的程式來說是不好的,所以有了函式的封裝,main函式中應該放什麼,這一點,其實通俗點,就是,main函式中是函式的呼叫,在.h中放入結構體的宣告,以及函式的宣告,在.c檔案中實現不同的函式實現。比如下面的**:

main.c:

#include

#include "han.h"

int main()

han.h:

#include

#include

#include

#define len sizeof(struct student)

typedef struct student

s;s* createhead(s* head);

void input(s* head);

void output(s* head);

createhead.c:

#include "han.h"

s* createhead(s *head)

head -> next = null;

return head;}

input.c:

#include "han.h"

void input(s *head)}

output.c:

#include "han.h"

void output(s *head)

}這就是函式的封裝,當然,想法不同,我也不能這麼說,只能說這是基本的,對於這種程式怎麼在linux中執行呢,linux上是用的gcc編譯器,以這個題為例子,gcc main.c createhead.c input.c output.c -o main這樣就實現多檔案的編譯。

對於makefile檔案,在這一篇中不多說,畢竟這個東西也多,我將**給出來;可以參考下:

student:main.o input.o output.o createhead.o

gcc main.o input.o output.o createhead.o -o main

main.o:main.c han.h 

gcc main.c -c

input.o:input.c han.h

gcc input.c -c

output.o:output.c han.h

gcc output.c -c

createhead.o:createhead.c han.h

gcc createhead.c -c

clean:

rm -f *.o student

希望給大家一些幫助。

學生資訊系統 用函式實現新增和輸出學生資訊功能

編寫兩個函式用於封裝 錄入學生的資訊和列印學生資訊的功能 1 def input student 此函式獲取學生資訊,並返回學生資訊的列表 2 def output student l 以 形式再列印學生資訊 l def input student while 1 name input 請輸入學生姓...

學生的資訊

1 乙個學生的資訊是 姓名,學號,性別,年齡等資訊,用乙個鍊錶,把這些學生資訊連在一起,給出乙個age,在些鍊錶中刪除學生年齡等於age的學生資訊。程式 i nclude stdio.h i nclude conio.h struct stu linklist struct stu creatlis...

6 9 學生成績的快速錄入(建構函式) 10分

現在需要錄入一批學生的成績 學號,成績 其中學號是正整數,並且錄入時,後錄入學生的學號會比前面的學號大 成績分兩等,通過 pass,錄入時用1代表 不通過 fail,錄入時用0代表 由於很多學號都是相鄰的,並且學號相鄰的學生成績常常相同。所以在錄入時,適當地加了速。如果當前學生的學號比前面的學號大1...