C語言學生資訊管理系統(動態鍊錶版)

2021-06-09 02:45:34 字數 3775 閱讀 3354

大一上學期的期末作業,只記得當時弄了好長時間。在寫**的過程中,能發現很多問題,錯誤,折磨人的很。不過也確實學到了好多東西。這其中,有王瑤哥和菲菲姐的熱心幫助。在此謝謝他們嘍~

當然,現在看來,**還有很多可以優化的地方。本程式功能還算齊全,bug還有待發現,沒有包含輸入檢測機制。精力有限,後悔當年沒有養成寫注釋的習慣,現在放在那裡自己都不願意看了,=_=!  等以後有機會用c++再寫個吧。

圖樣:

* c語言學生資訊管理系統(動態鍊錶版)

* 功能:增添新鍵資料、修改刪除資料、查詢統計資料

* 平台:windows

*/#include #include #include #include # define len sizeof(struct student)

struct student ;

char filename[30];//全域性變數,用來儲存要開啟的檔案名字

/*生成鍊錶*/

struct student *creat(int n)

else

} return(head);

}/*資料存檔(wb只寫)*/

void writedata_wb(struct student *head)

p=p->next;

} fclose(fp);

}/*資料存檔(ab追加)*/

void writedata_ab(struct student *head)

p=p->next;

} fclose(fp);

}/*讀取資料*/

/*讀取資料檔案儲存到鍊錶中 ,返回指向此煉表頭指標*/

struct student *readdata(void)

while(!feof(fp))

if(fread(p1,len,1,fp)!=1)

if(head==null)

head=p2=p1;

else

} fclose(fp);

return (head);

}/*全量查詢*/

void print_inquire_all(void) while(pt!=null);

printf("\n\n");

}/*學號查詢*/

int print_inquire_num()

pt = pt->next;

}while(pt!=null);

printf("資料庫中沒有儲存您要查詢的資料!\n");

printf("\n\n");

return 0;

}/*姓名查詢*/

int print_inquire_name()

pt = pt->next;

}while(pt!=null);

printf("資料庫中沒有儲存您要查詢的資料!\n");

printf("\n\n");

return 0;

}/*模糊查詢*/

int print_inquire_fuzzy(void)

pt = pt->next;

}while(pt!=null);

if(!m)

printf("資料庫中沒有儲存您要查詢的資料!\n");

printf("\n\n");

return 0;

}/*成績統計*/

int print_inquire_stats(void)

if(p1->cscore < cmin)

if(p1->escore > emax)

if(p1->escore < emin)

if((p1->cscore + p1->escore) > smax)

if((p1->cscore + p1->escore) < smin)

p1 = p1->next;

} printf("\n");

printf("◎資料庫中c語言最高分為:%4.1f \n", cmax);

printf("◎資料庫中c語言最低分為:%4.1f \n\n", cmin);

printf("◎資料庫中英語最高分為:%4.1f \n", emax);

printf("◎資料庫中英語最低分為:%4.1f \n\n", emin);

printf("◎資料庫中總成績最高分為:%4.1f \n", smax);

printf("◎資料庫中總成績最低分為:%4.1f \n\n", smin);

printf("\n");

printf("【ps:更多統計功能更在開發中,敬請期待o(∩_∩)o】\n\n");

return 0;

}/*修改資料之刪除記錄*/

int delete()

else if(strcmp(pt2->num,str_num)==0)

pt2 = pt2->next;

pt1 = pt1->next;

} if(pt2!=null)

printf("資料庫中沒有儲存您要刪除的資料!\n");

printf("\n\n");

return 0;

}/*修改資料之修改記錄*/

int amend()

else if(strcmp(pt2->num,str_num)==0)

pt2 = pt2->next;

pt1 = pt1->next;

} if(pt2!=null)

printf("資料庫中沒有儲存您要刪除的資料!\n");

return 0;

}/*修改資料之整理資料*/

int neaten()

} if(first==null)

else

if(min==head)

else

} if(first!=null)

head = first;

writedata_wb(head);

return 0;

}/*輸入寫入資料的數量*/

int creat_num(void)

return n;

}/*選擇將要開啟的檔案*/

int file_name()

/*主選單*/

void menu(void)

switch(a)

getchar();

}/*二級選單之新增資料*/

void menu_add(void)

switch(a)

}/*二級選單之查詢資料*/

void menu_inquire(void)

switch(a) }}

/*二級選單之修改資料*/

void menu_amend(void)

switch(a) }}

/*輸入輸出提示欄*/

void menu_print_in(void)

void menu_print_out(void)

/*主函式*/

int main(void)

c語言學生資訊管理系統

超簡單的學生資訊管理系統 使用順序表實現 適合入門,新手學習使用 include include include include define n 20 int count 0 typedef struct student typedef struct sqlist void create sqli...

學生資訊管理系統 鍊錶

實驗內容 定義乙個包含學生資訊 學號,姓名,成績 的鍊錶,使其具有如下功能 1 根據指定學生個數,逐個輸入學生資訊 2 逐個顯示學生表中所有學生的相關資訊 3 根據姓名進行查詢,返回此學生的學號和成績 4 根據指定的位置可返回相應的學生資訊 學號,姓名,成績 5 給定乙個學生資訊,插入到表中指定的位...

C語言學生資訊管理系統課設

專案說明 本系統基於c語言開發,適用於剛入門的 c語言新手專案課設,開發軟體採用 vc 6.0 開發,vs dev c 等均可執行。專案執行截圖 介面截圖 部分關鍵 從檔案載入資訊至鍊錶,改變全域性頭指標 phint readf file pf stu p,tail pf fopen studata...