大一上學期的期末作業,只記得當時弄了好長時間。在寫**的過程中,能發現很多問題,錯誤,折磨人的很。不過也確實學到了好多東西。這其中,有王瑤哥和菲菲姐的熱心幫助。在此謝謝他們嘍~
當然,現在看來,**還有很多可以優化的地方。本程式功能還算齊全,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...