內容:
用鍊錶的形式完成乙個學生資訊錄入和列印;
使用結構體,定義相應的資料型別;
實現鍊錶的建立和插入,使用函式封裝(不同的函式放入不同的檔案中,在主函式中新增標頭檔案,然後呼叫);
實現學生成績的錄入和列印;
編寫主函式進行測試。
使用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...