教務管理系統——補充(結構體)

這是我們主要的數據結構形式

/*
剛開始的時候,先不要求要有太高級的操作,所以簡化操作。
現在是主幹是兩條帶有兩個尾指針的鏈表,一條是學生信息鏈,一條是課程信息鏈。
有一些功能在初次代碼中將不會去實現,之後有時間就去完善。 
1:在這裏,簡化了老師這一人物,將它看成了課程,如果要加上老師這一人物,將會變爲帶有三個尾節點的鏈表。
2:在這裏,我沒有用數組二分查找加快查找過程。
3:在這裏,我沒有用模糊查詢。 
4:以後可以考慮加密保等方式加強安全性。 
*/
//成績 
typedef struct GPA{
	double uaual_score;     //平時成績 
	double test_score;      //期末成績 
	double rate;            //期末成績佔比0到1 
	double overall_score    //綜合成績 
} GPA,*Ptr_GPA; 

//主幹學生節點,這個學生節點是作爲主幹來的 
typedef struct STU1{
	long long id;      			//學號:統一12位,考慮到現實情況學號沒有過長的。
	char code[30];              //密碼用字符型方便隱私。 
	char clname[100];           //班級:全稱。 
	char name[30];    			//姓名:漢字,一個漢字佔兩個字節 。 
	int sex;                    //性別:1表示男性,2表示女性,0表示不詳。 
	int age;                    //年齡: 
	long long dorid;            //宿舍號:一般不會太長。 
	long long pnum;             //電話號碼:電話號碼統一11位。 
	Ptr_STU1 next;              //學生指針,指向下一個節點。 
	Ptr_CLA2 cla;               //課程節點指向課程 。   
	                            //還有各種各樣的功能,如平均成績已經等等待補充的 
} STU1,*Ptr_STU1;
//分支學生節點,這個學生節點是作爲分支來的。 
typedef struct STU2{
	long long id;      			//學號:統一12位,考慮到現實情況學號沒有過長的。 
	char name[30];    			//姓名:漢字,一個漢字佔兩個字節 
	char clname[100];           //班級:全稱。 
	GPA gpa;                    //最新分數:包含3種分數 
	int rebuild;               //重修次數:0表示沒有,非0表示次數 
	long long pnum;             //電話號碼:電話號碼統一11位
	Ptr_STU2 next;              //學生指針,指向下一個節點學生節點 
} STU2,*Ptr_STU2;
//主幹課程節點,這個課程節點是作爲主幹來的 
typedef struct CLASS1{
	long long id;               //課程編號:統一15位
	char name[100];             //課程名稱
	char code[30];              //本科目管理員密碼 
	int test_aver_score;        //考試平均成績
	GPA avergpa;                //最新分數:包含3種平均分數
	int credit;                 //學分 
	int rebuild;                //重修人數,重修人名以後寫,是一個函數 
	Ptr_STU2 stu;               //選課學生,可以做很多事通過這個
	Ptr_CLA1 next;             //課程指針,指向其他課程 
} CLASS1,*Ptr_CLA1;
//分支課程節點,這個課程節點是作爲分支來的
typedef struct CLASS2{
	long long id;               //課程編號:統一15位
	char name[100];             //課程名稱
	GPA gpa;                    //最新分數:包含3種分數 
	int credit;                 //學分 
	int rebuild;               //重修次數:0表示沒有,非0表示次數
	Ptr_CLA2 next;             //課程指針,指向其他課程 
} CLASS2,*Ptr_CLA2;

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章