新教務管理系統——實時設計

已經大體實現了,就是可能還有些小毛病。比如刪除的不完善等等。

//頭文件區上分界線 
#include<cstdio>
#include<cstring>
#include<conio.h>
#include<cstdlib>
#include<iostream>
#include<windows.h>
using namespace std;
#define true 1
#define false 0
//頭文件區下分界線 

//缺乏:開始讀入文件,中途讀入文件,結束讀入文件。管理員id查找學生的操作 有待完善。管理員id查找老師的操作有待完善。 
//測試剛做完管理員的模糊查詢 
//管理員端查成績。刪除操作沒有時間了,在做完這些測試改一些就開始加文件 
//goto: A,B,C,D,E,F,G,H,I,J,K,M,N,O,R,S,T,U,V,W,X,Y
//goto out1,out2,out3,out4,out5,out6,out7,out8,out9,out10,out11
// 結構體區上分界線 
//成績 
typedef struct GPA{
	char uaual_score[10];     //平時成績 
	char test_score[10];      //期末成績 
	char rate[10];            //期末成績佔比0到1 
	char overall_score[10];   //綜合成績 
} GPA,*Ptr_GPA; 

//主幹學生節點,這個學生節點是作爲主幹來的 
typedef struct STU1{
	char id[50];      				//學號:統一12位,考慮到現實情況學號沒有過長的。
	char code[50];              	//密碼用字符型方便隱私,開始爲666666。 
	char clname[100];           	//班級:全稱。 
	char name[50];    				//姓名:漢字,一個漢字佔兩個字節 。 
	char sex[10];                   //性別:男表示男性,女表示女性 
	char age[100];                  //出生年月 
	char dorid[50];                 //宿舍號:一般不會太長。 
	char pnum[50];                  //電話號碼:電話號碼統一11位。 
	struct STU1 *next;              //學生指針,指向下一個節點。 
	struct CLASS2 *cla;             //課程節點指向課程 。   
	                                //還有各種各樣的功能,如平均成績已經等等待補充的 
} STU1,*Ptr_STU1;

//分支學生節點,這個學生節點是作爲分支來的。 
typedef struct STU2{
	char id[50];      				//學號:統一12位,考慮到現實情況學號沒有過長的。 
	char name[50];    				//姓名:漢字,一個漢字佔兩個字節 
	char clname[100];           	//班級:全稱。 
	GPA gpa;                  		//最新分數:包含3種分數 
	char rebuild[10];               //重修次數:0表示沒有,非0表示次數 
	char pnum[50];                  //電話號碼:電話號碼統一11位。
	struct STU2 *next;              //學生指針,指向下一個節點學生節點 
} STU2,*Ptr_STU2;

//主幹課程節點,這個課程節點是作爲主幹來的 
typedef struct CLASS1{
	char id[100];               //課程編號:統一15位
	char name[100];             //課程名稱
	char test_aver_score[50];   //考試平均成績
	char is_nessary[50];        //必修還是選修 
	char credit[10];            //學分 
	char rebuild[10];           //重修人數,重修人名以後寫,是一個函數 
	struct STU2 *stu;           //選課學生,可以做很多事通過這個
	struct CLASS1 *next;        //課程指針,指向其他課程 
	struct TEACH1 *teach;       //老師節點 
} CLASS1,*Ptr_CLA1;
//分支課程節點,這個課程節點是作爲分支來的
typedef struct CLASS2{
	char id[100];                //課程編號:統一15位
	char name[100];             //課程名稱
	char is_nessary[50];        //必修還是選修 
	GPA gpa;                    //最新分數:包含3種分數 
	char credit[10];            //學分 
	char rebuild[10];           //重修次數:0表示沒有,非0表示次數
	struct CLASS2 *next;        //課程指針,指向其他課程 
	struct TEACH1 *teach;       //老師節點
} CLASS2,*Ptr_CLA2;

//主幹教師節點,用於教師端登入
typedef struct TEACH1{
	char id[100];              	    //老師工號:統一18位
	char code[50];              	//密碼用字符型方便隱私,開始爲666666。 
	char name[100];             	//老師名稱
	char sex[10];                   //性別:男表示男性,女表示女性  
	char age[10];                   //年齡: 
	struct TEACH1 *next;            //老師指針,指向其他老師
	struct CLASS1 *cla;             //課程指針,指向老師的教授課程 
} TEACH1,*Ptr_TEA1;
//結構體區下分界線 

//全局變量上分界區 
Ptr_STU1 L1=(Ptr_STU1)malloc(sizeof(STU1));   	  //學生主幹鏈表,最後應該要在運行前從文件中讀取初始化,帶頭節點。 

Ptr_TEA1 L2=(Ptr_TEA1)malloc(sizeof(TEACH1));                                 //老師鏈表,帶頭節點,用一個函數初始化尾指針 

Ptr_CLA1 L3=(Ptr_CLA1)malloc(sizeof(CLASS1));                                 //課程鏈表,帶頭節點 

char Initdorid[50]={"未填寫"};                    //初始化的宿舍號

char Initcode[50]={"666666"};                     //初始化密碼

char Initpnum[50]={"未填寫"};                     //初始化電話 

char Initrebuild[10]={"未統計"};                  //重修人數 

char Inittest_aver_score[50]={"未統計"};          //課程平均分數 

char Select_class_stu[10]={"關閉"};               //學生學課關閉,之後從文件讀取狀態

char Select_class_teach[10]={"關閉"};             //老師開課關閉 

char Init_do_not_konw[12]={"未填寫"};             //初始化爲未填寫 
// 全局變量下分界區 

//函數聲明區上分界線

void Page1();                              //起始界面 

Ptr_STU1 Page1_1_regist();                 //學生登錄頁面 

void Page1_1_page(Ptr_STU1 p);             //學生界面 

void Page1_1_1_watch__or_change(Ptr_STU1 p);  //學生查改信息 

void Page1_1_2_score(Ptr_STU1 p);          //將成績分爲3類,及格,不及格,未登分3類,全部輸出 

void Page1_1_3_Search_page();              //學生查詢課程界面 

void Page1_1_3_1_Search_all();             //輸出全部課程信息

void page1_1_3_2_id();                     //通過id查找

void page1_1_3_2_id_Print(Ptr_CLA1 p);     //通過id查找課程信息,具體實現

void Page1_1_4_Search_added_class(Ptr_STU1 p); //查看已添加課程 

void Page1_1_5_add(Ptr_STU1 stud1);        //添加課程頁面 

void Page1_1_5_add_choice_teach_page(Ptr_STU1 stud1,Ptr_CLA1 cla);  //添加課程頁面 ,查找老師 

void Page1_1_5_add_choice_teach_page(Ptr_STU1 stud1,Ptr_CLA1 cla,Ptr_TEA1 teach1);  //添加學生和老師信息,而且要同時改三個內容,而且要有副節點 

void Page1_1_6_change_code(Ptr_STU1 p);    //學生改密碼 

Ptr_TEA1 Page1_2_regist();                 //老師登錄頁面 

void Page1_2_page(Ptr_TEA1 p);             //老師界面 

void Page1_2_1_watch__or_change(Ptr_TEA1 p);   //老師查看自己的信息

void Page1_2_3_teaching(Ptr_TEA1 p);       //老師查看在教課程:1,查改分數,2,id查看課程 3,輸出全部課程 

void Page1_2_3_1_all(Ptr_TEA1 p);          //查看全部在教課程 

void Page1_2_3_2_id(Ptr_TEA1 p);          //按課程號查看課程 

void Page1_2_3_3_grade(Ptr_TEA1 p);        //老師給成績
 
void Page1_2_3_3_grade_choose(Ptr_CLA1 cla1); //老師給成績的兩種選擇

void Page1_2_3_3_grade_all(Ptr_CLA1 cla1);     //依次登分 

void Page1_2_3_3_grade_id(Ptr_CLA1 cla1);      //id號查詢登分

void Page1_2_4_add(Ptr_TEA1 p);            //老師添加課程 

void Page1_2_2_Search_page();              //老師查詢課程界面

void Page1_2_2_1_Search_all();             //輸出全部課程 

void Page1_2_5_change_code(Ptr_TEA1 p);    //老師改密碼 

void Page1_3_regist();                     //管理員登錄頁面 

void Page1_3_page(char id[]);              //管理員操作頁面

void Page1_3_1_page();                     //管理員操作學生的界面 

void page1_3_1_1_change();                 //管理員添加學生信息 

void page1_3_1_2_search_or_change();       //管理員查找學生信息的界面

void page1_3_1_2_2_all();                  //管理員查看所有學生的信息 

void page1_3_1_2_2_id();                   //管理員通過id查找學生信息 

void page1_3_1_2_2_id_Print(Ptr_STU1 p);   //管理員通過id查改學生信息的主幹 

void page1_3_1_2_3_key_find();             //管理員通過模糊查詢查看學生信息 

void Page1_3_2_page(); 					   //管理員操作老師的界面

void Page1_3_2_1_change();                 //管理員添加老師信息 

void page1_3_2_2_search_or_change();       //管理員查找老師信息的界面

void page1_3_2_2_2_all();                  //管理員查看所有老師的信息

void page1_3_2_2_2_id(); 				   //管理員通過id查找老師信息

void page1_3_2_2_2_id_Print(Ptr_TEA1 p);   //管理員通過id查改老師信息 

void page1_3_2_2_3_key_find();             //管理員模糊查找老師信息 

void Page1_3_3_page();                     //管理員管理選課信息 

void Page1_3_3_1_change();                 //管理員添加課程信息 

void Page1_3_3_2_search_or_change();       //管理員查看選課信息 

void Page1_3_3_2_1_all();                  //輸出全部課程信息,課程名稱,課程號碼,選修還是必修,學分

void Page1_3_3_2_2_id();                   //id查找某課程某老師的學生信息pand1 

void page1_3_3_2_2_id_in(Ptr_CLA1 p);      //id查找某課程某老師的學生信息pand2 

void page1_3_3_2_2_id_Print(Ptr_TEA1 tea1,Ptr_CLA1 p);//id查找某課程某老師的學生信息pand2

void Page1_3_3_2_3_key_find();             //管理員模糊查找課程 

void Page1_3_3_3_open_or_close();          //選課開啓與關閉,包括教師開課 

void Page1_4();                            //關於教務管理系統頁面 

void Page1_5();                            //幫助頁面 

void Page1_end();                          //結束圖片 

void Init_link();                          //初始化鏈表 

Ptr_STU1 Insert1(Ptr_STU1 stud1);          //按學號順序插入學生節點 

Ptr_TEA1 Insert2(Ptr_TEA1 teach1);         //按工號順序插入教師節點 

Ptr_CLA1 Insert3(Ptr_CLA1 cla1);           //按課號順序插入課程節點 

Ptr_STU1 Delete_student(Ptr_STU1 stud1);   //刪除學生節點

Ptr_TEA1 Delete_teacher(Ptr_TEA1 teach1);  //刪除該老師的節點

Ptr_STU1 Search_stud1(char id[]);          //在鏈表中查找學生賬號 

Ptr_TEA1 Search_teach1(char id[]); 		   //在鏈表中查找老師賬號 

Ptr_CLA1 Search_cla1(char id[]);           //在鏈表中查找課程賬號 

bool Search_class_in_teach(Ptr_TEA1 tea,Ptr_CLA1 cla); 		//找某個老師的課程,成功返回1,失敗返回0 

Ptr_CLA1 Search_class_in_teach_id(Ptr_TEA1 tea,char id[]);  //找到老師的課程,並返回 

Ptr_TEA1 Search_teach_in_class_id(Ptr_CLA1 p,char id[]);    //查找老師是否在該課程中 

Ptr_STU2 Search_stud_in_class_id(Ptr_CLA1 p,char id[]);     //判斷該學生是不是在該老師的課裏 

bool Search_class_in_stud(Ptr_STU1 stud1,Ptr_CLA1 cla);     //判斷該課程是否被該學生選,是返回1,不是返回0 

void Add_class_to_teach(Ptr_TEA1 teach,Ptr_CLA1 cla);       //添加課程給老師 

void Init_link_student(Ptr_STU1 L1);                        //建立學生主鏈

void Init_link_teacher(Ptr_TEA1 L2);                        //建立老師主鏈

void Init_link_class(Ptr_CLA1 L3);                          //建立課程主鏈

void Init_link_combine_student(Ptr_STU1 L1);                //鏈接學生課程信息 

void Init_link_combine_teacher(Ptr_TEA1 L2);                //鏈接老師和課程的信息 

void Init_link_combine_class(Ptr_CLA1 L3);                  //鏈接學生和課程的信息 

void Init_choice_class();                                   //從文件中寫出是否選課

void Write_to_file_student(Ptr_STU1 L1);                    //讀出信息到學生文件中  

void Write_to_file_teacher(Ptr_TEA1 L2);                    //讀出信息到教師文件中 

void Write_to_file_class(Ptr_CLA1 L3);                      //讀出信息到課程文件中 

void Write_to_file_combine_student(Ptr_STU1 L1);            //保存學生和課程的信息 

void Write_to_file_combine_teacher(Ptr_TEA1 L2);            //保存老師和課程的信息 

void Write_to_file_combine_class(Ptr_CLA1 L3);              //保存課程和老師的信息

void Write_to_file_choice_class();                          //將是否選課寫到文件 

void Page1_6();                                             //通知(關於選課) 
//函數聲明區下分界線 

//頁面區上分界線 
//主頁面,起始頁面(已完成) 
void Page1(){               
	printf("***********************************************************************************************************************\n");
	printf("*                                                                                                                     *\n");
	printf("*                                   歡迎使用華南農業大學教務管理系統                                                  *\n");
	printf("*                                                --設計師:陳緒棟                                                     *\n");
	printf("*                                                                                                                     *\n");
	printf("***********************************************************************************************************************\n");
	printf("*                                              請您選擇需要的操作                                                     *\n");
	printf("*                                                                                                                     *\n");
	printf("*                                 ---------------------------------------                                             *\n");
    printf("*                                *|                                     |*                                            *\n");
    printf("*                                *|                                     |*                                            *\n");
	printf("*                                *|            1:學生賬號登錄           |*                                            *\n");
	printf("*                                *|                                     |*                                            *\n");
	printf("*                                *|            2:教師賬號登錄           |*                                            *\n");
	printf("*                                *|                                     |*                                            *\n");
	printf("*                                *|            3:管理員賬號登錄         |*                                            *\n");
	printf("*                                *|                                     |*                                            *\n");
	printf("*                                *|            4:關於新教務系統         |*                                            *\n");
	printf("*                                *|                                     |*                                            *\n");
	printf("*                                *|            5:幫助                   |*                                            *\n");
	printf("*                                *|                                     |*                                            *\n");
	printf("*                                *|            6:通知                   |*                                            *\n");
	printf("*                                 ---------------------------------------                                             *\n");
	printf("*                                                                                                                     *\n");
	printf("*                                請按菜單前的數字選擇,或按其餘鍵退出選擇                                             *\n");
	printf("*                                                                                                                     *\n");
	printf("***********************************************************************************************************************\n");
} 

//學生登錄頁面(已完成) 
Ptr_STU1 Page1_1_regist(){
char id[50]={'\0'};                    //暫時存儲id 
char name[50]={'\0'};                  //暫時存儲name 
char code[50]={'\0'};                 //暫時存儲code
Ptr_STU1 p;                           //保存查找的該學生的信息 
char ch;
int pand1=0,pand2=0;                  //用pand1和pand2分別表示賬號和密碼是否讀取成功 
F:
	system("CLS");
	printf("                                                                                                                      \n");
	printf("                                                                                                                      \n");
	printf("                                                                                                                      \n");
	printf("                                                                                                                      \n");
	printf("                                                                                                                      \n");
	printf("**********************************************************************************************************************\n");
	printf("*                                             學生登錄頁面                                                           *\n");
	printf("*                                                                                                                    *\n");
	printf("**********************************************************************************************************************\n");
	printf("        請輸入12位真實學號:");
	if(pand1==0)scanf("%s",id);
	else printf("%s\n",id);
	p=Search_stud1(id);
	if(p==NULL){
		printf("\n\n\n\n沒有找到該學號信息,請確認或聯繫管理員進行添加!\n");
		printf("\n                             按空格鍵回到主頁面,按其餘鍵繼續登錄。\n"); 
		ch=getch();
		if(ch==' '){
			printf("\n返回主頁面...");
			Sleep(1000);
			return NULL;
		}
		printf("\n重新登錄...");
		Sleep(500); 
		goto F;
	}else{
		pand1=1;
	}
	printf("\n\n        請輸入密碼:");
	scanf("%s",code);
	if(strcmp(code,p->code)!=0){
		printf("\n\n\n\n密碼不正確,請重新輸入!");
		printf("\n\n\n\n\n                             按空格鍵回到主頁面,按其餘鍵繼續登錄。\n"); 
		ch=getch();
		if(ch==' '){
			printf("\n返回主頁面...");
			Sleep(1000);
			return NULL;
		}
		printf("\n重新登錄...");
		Sleep(500); 
		goto F;
	}
	printf("\n");
	printf("\n\n        登入成功,即將進入學生頁面...                                                                                 \n");
	Sleep(1000);
	Page1_1_page(p); 
	return p;
}

//學生操作頁面(已完成) 
void Page1_1_page(Ptr_STU1 p){   
    system("CLS");       
	printf("\n\n\n\n\n\n\n\n\n\n                                             歡迎回來,%s同學                              \n",p->name);
	Sleep(1000);
H:
	char choice;
	system("CLS");
	printf("**********************************************************************************************************************\n");
	printf("*                                                                                                                    *\n");
	printf("*                                                學生端界面                                                          *\n");
	printf("*                                                                                                                    *\n");
	printf("**********************************************************************************************************************\n");
	printf("*                                              請您選擇需要的操作                                                    *\n");
	printf("*                                 ---------------------------------------                                            *\n");
    printf("*                                *|                                     |*                                           *\n");
    printf("*                                *|                                     |*                                           *\n");
	printf("*                                *|            1:完善個人信息           |*                                           *\n");
	printf("*                                *|                                     |*                                           *\n");
	printf("*                                *|            2:查看成績               |*                                           *\n");
	printf("*                                *|                                     |*                                           *\n");
	printf("*                                *|            3:查詢課程               |*                                           *\n");
	printf("*                                *|                                     |*                                           *\n");
	printf("*                                *|            4:查看已添加課程         |*                                           *\n");
	printf("*                                *|                                     |*                                           *\n");
	printf("*                                *|            5:添加課程               |*                                           *\n");
	printf("*                                *|                                     |*                                           *\n");
	printf("*                                *|            6:修改密碼               |*                                           *\n");
	printf("*                                *|                                     |*                                           *\n");
	printf("*                                *|            7:幫助                   |*                                           *\n");
	printf("*                                *|                                     |*                                           *\n");
	printf("*                                *|                                     |*                                           *\n");
	printf("*                                 ---------------------------------------                                            *\n");
	printf("*                                請按菜單前的數字選擇,或按其餘鍵退出選擇                                            *\n");
	printf("*                                                                                                                    *\n");
	printf("**********************************************************************************************************************\n");
	choice=getch();
	switch(choice){
		case '1':{
			Page1_1_1_watch__or_change(p);
			goto H; 
			break;
		}
		case '2':{
			Page1_1_2_score(p);
			goto H; 
			break;
		}
		case '3':{
			Page1_1_3_Search_page();
			goto H; 
			break;
		}
		case '4':{
			Page1_1_4_Search_added_class(p);
			goto H; 
			break;
		}
		case '5':{
			if(strcmp(Select_class_stu,"關閉")==0){
				system("CLS"); 
				printf("\n\n\n\n\n\n不在開課時間!");
				Sleep(1000);
			}else{
					Page1_1_5_add(p);	
			}
			goto H; 
			break;
		}
		case '6':{
			Page1_1_6_change_code(p);  //學生改密碼 
			goto H; 
			break;
		}
		case '7':{
			Page1_5();                 //這個調用的就是主頁面顯示的幫助頁面 
			goto H; 
			break;
		}
		default:{
			system("CLS");
			printf("\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n回到主頁面...");
			Sleep(1000); 
			break;
		}
	}
	//還未聯繫起來Page1_1_choice(L);  //學生界面功能選擇 
}  

//學生查看自己的信息或者改自己的信息(已完成) 
void Page1_1_1_watch__or_change(Ptr_STU1 p){
	char ch;
O:
	system("CLS");
	printf("\n\n\n\n\n");
	printf("          1:學號:%s",p->id);
	printf("\n\n          2:姓名:%s",p->name);
	printf("\n\n          3:班級:%s",p->clname);
	printf("\n\n          4:性別:%s",p->sex);
	printf("\n\n          5:出生年月:%s",p->age);
	printf("\n\n          6:宿舍號:%s",p->dorid);
	printf("\n\n          7:電話號碼:%s",p->pnum);
	printf("\n\n                       請選擇序號進行修改,按其餘鍵返回");
	printf("\n                         注:1~5項不能修改,若有誤,聯繫管理員進行修改!");
	ch=getch();
	switch(ch){
		case '1':{
			printf("\n\n學號不可修改,如有誤,請於幫助頁面尋找管理員進行修改.");
			Sleep(1000);
			goto O;
			break;
		}
		case '2':{
			printf("\n\n姓名不可修改,如有誤,請於幫助頁面尋找管理員進行修改.");
			Sleep(1000);
			goto O;
			break;
		}
		case '3':{
			printf("\n\n班級不可修改,如有誤,請於幫助頁面尋找管理員進行修改.");
			Sleep(1000);
			goto O;
			break;
		}
		case '4':{
			printf("\n\n性別不可修改,如有誤,請於幫助頁面尋找管理員進行修改.");
			Sleep(1000);
			goto O;
			break;
		}
		case '5':{
			printf("\n\n出生年月不可修改,如有誤,請於幫助頁面尋找管理員進行修改.");
			Sleep(1000);
			goto O;
			break;
		}
		case '6':{
			printf("\n\n宿舍號:");
			scanf("%s",p->dorid);
			goto O;
			break;
		}
		case '7':{
			printf("\n\n電話號碼:");
			scanf("%s",p->pnum);
			goto O;
			break;
		}
		default:{
			break;
		}
		
	} 
}

//將成績分爲3類,及格,不及格,未登分3類,全部輸出 
void Page1_1_2_score(Ptr_STU1 p){
	char ch;
	Ptr_CLA2 cla2=p->cla;
	//及格
	system("CLS");
	printf("及格成績:\n");
	while(cla2!=NULL){
		if(atof(cla2->gpa.overall_score)>=60.0){
			printf("/ 課程號:%s/ 課程名:%s / 授課老師:%s / 平時成績:%s / 期末成績:%s / 綜合成績:%s /,\n\n",cla2->id,cla2->name,cla2->teach->name,cla2->gpa.uaual_score,cla2->gpa.test_score,cla2->gpa.overall_score);
		}
		cla2=cla2->next;
	} 
	printf("不及格成績:\n");
	cla2=p->cla;
	while(cla2!=NULL){
		if(atof(cla2->gpa.overall_score)<60.0&&(strcmp(cla2->gpa.overall_score,Init_do_not_konw)!=0)){
			printf("/ 課程號:%s/ 課程名:%s / 授課老師:%s / 平時成績:%s / 期末成績:%s / 綜合成績:%s /,\n\n",cla2->id,cla2->name,cla2->teach->name,cla2->gpa.uaual_score,cla2->gpa.test_score,cla2->gpa.overall_score);
		}
		cla2=cla2->next;
	} 
	printf("未登分成績:\n");
	cla2=p->cla;
	while(cla2!=NULL){
		if(strcmp(cla2->gpa.overall_score,Init_do_not_konw)==0){
			printf("/ 課程號:%s/ 課程名:%s / 授課老師:%s / 平時成績:%s / 期末成績:%s / 綜合成績:%s /,\n\n",cla2->id,cla2->name,cla2->teach->name,cla2->gpa.uaual_score,cla2->gpa.test_score,cla2->gpa.overall_score);
		}
		cla2=cla2->next;
	} 
	printf("\n\n按任意鍵退出");
	ch=getch(); 
}

//查詢課程界面 
void Page1_1_3_Search_page(){
	char ch;
out1:
	system("CLS");
	printf("\n\n\n\n");
	printf("                                               課程信息查看                                                           \n");
	printf("                                                                                                                      \n");
	printf("                                                                                                                      \n");
	printf("                                               1,輸出全部課程信息                                                     \n");
	printf("                                                                                                                      \n");
	printf("                                                                                                                      \n");
 	printf("                                               2,通過id查找                                                           \n");
	printf("                                                                                                                      \n");
	printf("                                                                                                                      \n");
	printf("                                               3,組合關鍵詞查找                                                       \n");
	printf("                                                                                                                      \n");
	printf("                                                                                                                      \n");
	printf("                                請按菜單前的數字選擇,或按其餘鍵退出選擇                                              \n");
	printf("                                                                                                                      \n");
	ch=getch();
	switch(ch){
		case '1':{
			Page1_1_3_1_Search_all();
			goto out1;
			break;
		}
		case '2':{
			page1_1_3_2_id(); 
			goto out1;
			break;
		}
		case '3':{
			Page1_3_3_2_3_key_find();                //這是管理員端的,盜用過來了,哈哈哈 
			goto out1;
			break;
		}
		default:{
			printf("\n\n\n\n\n\n\n正在返回上一界面...");
			Sleep(1000);
			break;
		}
	}
} 

//輸出全部課程信息,課程名稱,課程號碼,選修還是必修,學分
void Page1_1_3_1_Search_all(){
	char ch;
	system("CLS");
	Ptr_CLA1 p=L3->next;
	while(p!=NULL){
		printf("\n        / 課程號:%s / 課程名:%s / 性質:%s / 學分:%s /\n\n",p->id,p->name,p->is_nessary,p->credit);
		p=p->next;
	}
	printf("/n----------------------------------------------------------------------------------------/n");
	printf("顯示完畢,按空格鍵返回");
	while(1){
	ch=getch();
	if(ch==' ')break;
}
} 

//通過id查找
void page1_1_3_2_id(){
	char id[100];
	Ptr_CLA1 p;
	system("CLS");
	printf("\n\n\n\n\n       請輸入要查找課程的課程號:");
	scanf("%s",id);
	p=Search_cla1(id);
	if(p==NULL){
		printf("\n\n\n\n\n\n無該課程信息!"); 
		Sleep(1000);
	}else{
		page1_1_3_2_id_Print(p);                  
	}
} 

//通過id查找課程信息 
void page1_1_3_2_id_Print(Ptr_CLA1 p){
	char ch;
	Ptr_TEA1 teach1=p->teach;
	system("CLS");
	printf("\n\n\n\n\n");
	printf("          課程號:%s",p->id);
	printf("\n\n          課程名:%s",p->name);
	printf("\n\n          課程性質:%s",p->is_nessary);
	printf("\n\n          學分:%s",p->credit);
	printf("\n\n          開課老師");
	while(teach1!=NULL){
		printf("\n        / 工號:%s / 老師名:%s / 年齡:%s / 性別:%s /\n\n",teach1->id,teach1->name,teach1->age,teach1->sex);
		teach1=teach1->next;
	} 
	printf("\n----------------------------------------------------------------------------------------\n");
	printf("顯示完畢,按空格鍵返回");
	while(1){
	ch=getch();
	if(ch==' ')break;
}
}

//查看已添加課程
void Page1_1_4_Search_added_class(Ptr_STU1 p){
	char ch;
	system("CLS");
	Ptr_CLA2 cla2=p->cla;
	Ptr_TEA1 tea1;
	while(cla2!=NULL){
		tea1=cla2->teach;
		printf("\n        / 課程編號:%s / 課程名稱:%s / 課程性質:%s / 學分:%s / 重修次數:%s /\n",cla2->id,cla2->name,cla2->is_nessary,cla2->credit,cla2->rebuild);
		printf("        /授課老師:%s /授課老師工號:%s /\n\n",tea1->name,tea1->id);
		cla2=cla2->next;
	}
	printf("\n----------------------------------------------------------------------------------------\n");
	printf("顯示完畢,按空格鍵返回");
	while(1){
	ch=getch();
	if(ch==' ')break;
}
}

//添加課程,檢查是否有,檢查是否已添加 
void Page1_1_5_add(Ptr_STU1 stud1){
	char x[100]={'\0'};
	char ch;
	Ptr_CLA1 cla;
	system("CLS");
	printf("\n\n\n\n                  請輸入要添加的課程號碼:");
	scanf("%s",&x);
	cla=Search_cla1(x);
	if(cla==NULL){
		printf("\n\n\n\n\n\n未查到該課程");
		Sleep(1000);
	}else if(Search_class_in_stud(stud1,cla)==true){
		printf("\n\n\n\n\n\n已添加該課程");
		Sleep(1000);
	}else{
		Page1_1_5_add_choice_teach_page(stud1,cla);
	}
}

//添加課程頁面,查找老師 
void Page1_1_5_add_choice_teach_page(Ptr_STU1 stud1,Ptr_CLA1 cla){
	char x[100]={'\0'};
	char ch;
	Ptr_TEA1 teach1;
out3:
	system("CLS");
	printf("\n\n\n\n你正在添加的是:%s課程\n\n\n\n\n",cla->name);
	printf("請輸入要添加的授課老師的工號:");
	scanf("%s",&x);
	teach1=Search_teach_in_class_id(cla,x);
	if(teach1==NULL){
		printf("\n\n\n\n\n\n未查到該授課老師");
		printf("\n\n\n按空格鍵返回,按其他鍵重新填寫");
		ch=getch();
		if(ch!=' '){
			goto out3;
		} 
	}else {
		teach1=Search_teach1(x);
		Page1_1_5_add_choice_teach_page(stud1,cla,teach1);
		printf("\n\n\n\n添加課程成功");
		Sleep(1000);
	}
}

//添加學生和老師信息,而且要同時改三個內容,而且要有副節點 
void Page1_1_5_add_choice_teach_page(Ptr_STU1 stud1,Ptr_CLA1 cla1,Ptr_TEA1 teach1){
	Ptr_CLA2 cla2=(Ptr_CLA2)malloc(sizeof(CLASS2));
	Ptr_STU2 stud2=(Ptr_STU2)malloc(sizeof(STU2));
	Ptr_CLA1 cla=Search_class_in_teach_id(teach1,cla1->id);
	Ptr_CLA2 pcla=stud1->cla;
	Ptr_STU2 pstu2=cla->stu;
	//先複製課程的信息 
	strcpy(cla2->credit,cla->credit);
	strcpy(cla2->gpa.overall_score,Init_do_not_konw);
	strcpy(cla2->gpa.rate,Init_do_not_konw);
	strcpy(cla2->gpa.test_score,Init_do_not_konw);
	strcpy(cla2->gpa.uaual_score,Init_do_not_konw);
	strcpy(cla2->name,cla->name); 
	strcpy(cla2->is_nessary,cla->is_nessary);
	strcpy(cla2->id,cla->id);
	cla2->teach=teach1;
	cla2->next=NULL;
	cla2->teach=teach1;
	//有時間再考慮重修 
	strcpy(cla2->rebuild,"0");
	if(pcla==NULL){
		stud1->cla=cla2;
	}else{
		while(pcla->next!=NULL){
			pcla=pcla->next;
		}
		pcla->next=cla2;
	}
	//然後複製學生信息
	strcpy(stud2->clname,stud1->clname);
	strcpy(stud2->id,stud1->id);
	strcpy(stud2->gpa.overall_score,Init_do_not_konw);
	strcpy(stud2->gpa.rate,Init_do_not_konw);
	strcpy(stud2->gpa.test_score,Init_do_not_konw);
	strcpy(stud2->gpa.uaual_score,Init_do_not_konw);
	stud2->next=NULL;
	strcpy(stud2->name,stud1->name);
	strcpy(stud2->pnum,stud1->pnum);
	strcpy(stud2->rebuild,"0"); 
	if(pstu2==NULL){
		cla->stu=stud2;
	}else{
		while(pstu2->next!=NULL){
			pstu2=pstu2->next;
		}
		pstu2->next=stud2;
	}
}

//學生改密碼 (已完成) 
void Page1_1_6_change_code(Ptr_STU1 p) {
	char code1[100]={'\0'},code2[100]={'\0'},code[100]={'\0'},pand=0;
	char ch; 
N:
	system("CLS");
	printf("\n\n\n\n\n\n            請輸入原密碼:%s",code);  
	if(pand==0)scanf("%s",code);
	if(pand==0&&strcmp(code,p->code)!=0){
		printf("\n\n\n\n\n\n\n\n\n\n原密碼輸入錯誤!");
		memset(code,0,sizeof(code));
		printf("\n\n\n\n\n                             按空格鍵回到上頁面,按其餘鍵繼續修改。\n"); 
		ch=getch();
		if(ch==' ');
		else goto N;
	}else{
		pand=1;
		printf("\n\n\n\n\n\n            請輸入新密碼:");
		scanf("%s",code1);
		printf("\n\n\n            請確認新密碼:");
		scanf("%s",code2);
		if(strcmp(code1,code2)!=0){
		printf("\n\n\n\n\n\n兩次設置密碼不一致,請重新設置!");
		memset(code1,0,sizeof(code1));
		memset(code2,0,sizeof(code2));
		Sleep(1500); 
		goto N;
	}else{
		strcpy(p->code,code1);
		printf("\n\n\n\n\n\n密碼設置成功");
		Sleep(1000); 
		return;
	}
	}
	system("CLS");
	printf("\n\n\n\n\n\n\n\n\n\n\n\n\n正在回到上頁面....."); 
	Sleep(1000);
}

//老師登錄頁面 
Ptr_TEA1 Page1_2_regist(){
	
char id[50]={'\0'};                    //暫時存儲id 
char name[50]={'\0'};                  //暫時存儲name 
char code[50]={'\0'};                 //暫時存儲code
Ptr_TEA1 p;                           //保存查找的該老師的信息 
char ch;
int pand1=0,pand2=0;                  //用pand1和pand2分別表示賬號和密碼是否讀取成功 
K:
	system("CLS");
	printf("                                                                                                                      \n");
	printf("                                                                                                                      \n");
	printf("                                                                                                                      \n");
	printf("                                                                                                                      \n");
	printf("                                                                                                                      \n");
	printf("**********************************************************************************************************************\n");
	printf("*                                             老師登錄頁面                                                           *\n");
	printf("*                                                                                                                    *\n");
	printf("**********************************************************************************************************************\n");
	printf("        請輸入18位真實工號:");
	if(pand1==0)scanf("%s",id);
	else printf("%s\n",id);
	p=Search_teach1(id);
	if(p==NULL){
		printf("\n\n\n\n沒有找到該工號信息,請確認或聯繫管理員進行添加!\n");
		printf("\n                             按空格鍵回到主頁面,按其餘鍵繼續登錄。\n");
		ch=getch();
		if(ch==' '){
			printf("\n返回主頁面...");
			Sleep(1000);
			return NULL;
		}
		printf("\n重新登錄...");
		Sleep(500); 
		goto K;
	}else{
		pand1=1;
	}
	printf("\n\n        請輸入密碼:");
	scanf("%s",code);
	if(strcmp(code,p->code)!=0){
		printf("密碼不正確,請重新輸入!");
		printf("\n\n\n\n\n                             按空格鍵回到主頁面,按其餘鍵繼續登錄。\n"); 
		ch=getch();
		if(ch==' '){
			printf("\n返回主頁面...");
			Sleep(1000);
			return NULL;
		}
		printf("\n重新登錄...");
		Sleep(500); 
		goto K;
	}
	printf("\n");
	printf("        登入成功,即將進入老師頁面...                                                                                 \n");
	Sleep(1000);
	Page1_2_page(p);
	return p;
}

//老師操作頁面
void Page1_2_page(Ptr_TEA1 p){              
    system("CLS");       
	printf("\n\n\n\n\n\n\n\n\n\n                                          歡迎回來,尊敬的%s老師                              \n",p->name);
	Sleep(1000);
M:
	char choice;
	system("CLS");
	printf("**********************************************************************************************************************\n");
	printf("*                                                                                                                    *\n");
	printf("*                                                老師端界面                                                          *\n");
	printf("*                                                                                                                    *\n");
	printf("**********************************************************************************************************************\n");
	printf("*                                              請您選擇需要的操作                                                    *\n");
	printf("*                                 ---------------------------------------                                            *\n");
    printf("*                                *|                                     |*                                           *\n");
    printf("*                                *|                                     |*                                           *\n");
	printf("*                                *|            1:完善個人信息           |*                                           *\n");
	printf("*                                *|                                     |*                                           *\n");
	printf("*                                *|            2:查詢課程               |*                                           *\n");
	printf("*                                *|                                     |*                                           *\n");
	printf("*                                *|            3:查看在教課程           |*                                           *\n");
	printf("*                                *|                                     |*                                           *\n");
	printf("*                                *|            4:添加課程               |*                                           *\n");
	printf("*                                *|                                     |*                                           *\n");
	printf("*                                *|            5:修改密碼               |*                                           *\n");
	printf("*                                *|                                     |*                                           *\n");
	printf("*                                *|            6:幫助                   |*                                           *\n");
	printf("*                                *|                                     |*                                           *\n");
	printf("*                                *|                                     |*                                           *\n");
	printf("*                                 ---------------------------------------                                            *\n");
	printf("*                                請按菜單前的數字選擇,或按其餘鍵退出選擇                                            *\n");
	printf("*                                                                                                                    *\n");
	printf("**********************************************************************************************************************\n");
	choice=getch();
	switch(choice){
		case '1':{
			Page1_2_1_watch__or_change(p); 
			goto M; 
			break;
		}
		case '2':{
			Page1_2_2_Search_page();
			goto M; 
			break;
		}
		case '3':{
			Page1_2_3_teaching(p);
			goto M; 
			break;
		}
		case '4':{
			if(strcmp(Select_class_teach,"關閉")==0){
				printf("\n\n\n\n\n\n不在開課時間!");
				Sleep(1000);
			}else{
					Page1_2_4_add(p);	
			}
			goto M; 
			break;
		}
		case '5':{
			Page1_2_5_change_code(p); 
			goto M; 
			break;
		}
		case '6':{
			Page1_5();                 //這個調用的就是主頁面顯示的幫助頁面 
			goto M; 
			break;
		}
		default:{
			system("CLS");
			printf("\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n回到主頁面...");
			Sleep(1000); 
			break;
		} 
	}
}

//老師查看自己的信息 
void Page1_2_1_watch__or_change(Ptr_TEA1 p){
	char ch;
	system("CLS");
	printf("\n\n\n\n\n");
	printf("          1:工號:%s",p->id);
	printf("\n\n          2:姓名:%s",p->name);
	printf("\n\n          3:性別:%s",p->sex);
	printf("\n\n          4:年齡:%s",p->age);
	printf("\n                         注:不能修改,若有誤,聯繫管理員進行修改!");
	printf("\n\n\n\n按任意鍵返回");
	ch=getch();
}

//查詢課程界面 
void Page1_2_2_Search_page(){
	char ch;
out2:
	system("CLS");
	printf("\n\n\n\n");
	printf("                                               課程信息查看                                                           \n");
	printf("                                                                                                                      \n");
	printf("                                                                                                                      \n");
	printf("                                               1,輸出全部課程信息                                                     \n");
	printf("                                                                                                                      \n");
	printf("                                                                                                                      \n");
 	printf("                                               2,通過id查找                                                           \n");
	printf("                                                                                                                      \n");
	printf("                                                                                                                      \n");
	printf("                                               3,組合關鍵詞查找                                                       \n");
	printf("                                                                                                                      \n");
	printf("                                                                                                                      \n");
	printf("                                請按菜單前的數字選擇,或按其餘鍵退出選擇                                              \n");
	printf("                                                                                                                      \n");
	ch=getch();
	switch(ch){
		case '1':{
			Page1_2_2_1_Search_all();
			goto out2;
			break;
		}
		case '2':{
			page1_1_3_2_id();                   //將學生端的用過來 
			goto out2;
			break;
		}
		case '3':{
			Page1_3_3_2_3_key_find();          //將選課端的用過來 
			goto out2;
			break;
		}
		default:{
			printf("\n\n\n\n\n\n\n正在返回上一界面...");
			Sleep(1000);
			break;
		}
	}
}

//輸出全部課程信息,課程名稱,課程號碼,選修還是必修,學分
void Page1_2_2_1_Search_all(){
	char ch;
	system("CLS");
	Ptr_CLA1 p=L3->next;
	while(p!=NULL){
		printf("\n        / 課程號:%s / 課程名:%s / 性質:%s / 學分:%s /\n\n",p->id,p->name,p->is_nessary,p->credit);
		p=p->next;
	}
	printf("/n----------------------------------------------------------------------------------------/n");
	printf("顯示完畢,按空格鍵返回");
	while(1){
	ch=getch();
	if(ch==' ')break;
}
} 

//老師查看在教課程:1,查改分數,2,id查看課程 3,輸出全部課程 
void Page1_2_3_teaching(Ptr_TEA1 p){
	char choice;
out3:
	system("CLS");
	printf("\n\n\n\n");
	printf("                                                 課程信息                                                             \n");
	printf("                                                                                                                      \n");
	printf("                                                                                                                      \n");
	printf("                                               1,查看所有課程                                                         \n");
	printf("                                                                                                                      \n");
	printf("                                                                                                                      \n");
 	printf("                                               2,查看課程詳細信息                                                     \n");
	printf("                                                                                                                      \n");
	printf("                                                                                                                      \n");
	printf("                                               3,課程登分                                                             \n");
	printf("                                                                                                                      \n");
	printf("                                請按菜單前的數字選擇,或按其餘鍵退出選擇                                              \n");
	printf("                                                                                                                      \n");
	printf("                                                                                                                      \n");
	choice=getch();
	switch(choice){
		case '1':{
			Page1_2_3_1_all(p);
			goto out3;
			break;
		}
		case '2':{
			Page1_2_3_2_id(p);  
			goto out3;
			break;
		}
		case '3':{
			Page1_2_3_3_grade(p);
			goto out3;
			break;
		}
		default:{
			printf("\n\n\n\n\n\n\n\n\n\n返回原頁面中....."); 
			Sleep(1000);
			break;
		}
	}
}

//查看全部在教課程 
void Page1_2_3_1_all(Ptr_TEA1 p){
	Ptr_CLA1 x=p->cla;
	char ch;
	system("CLS");
	while(x!=NULL){
		printf("\n        / 課程號:%s / 課程名:%s / 課程性質:%s / 課程學分:%s /\n\n",x->id,x->name,x->is_nessary,x->credit);
		x=x->next;
	}
	printf("/n----------------------------------------------------------------------------------------/n");
	printf("顯示完畢,按空格鍵返回");
	while(1){
	ch=getch();
	if(ch==' ')break;
}
}

// id查看在教課程
void Page1_2_3_2_id(Ptr_TEA1 p){
	char id[50]={'\0'};
	char ch1,ch2;
	Ptr_CLA1 cla1;
	Ptr_STU2 stud2;
out4:
	system("CLS");
	printf("\n\n\n\n\n\n\n                        請輸入課程的課程號:");
	scanf("%s",&id);
	cla1=Search_class_in_teach_id(p,id);
	if(cla1==NULL){
		printf("\n\n\n\n\n\n未查詢到該課程,按空格鍵返回上一界面,其餘鍵繼續查詢");
		ch1=getch();
		if(ch1!=' '){
			goto out4;
		}
	}else{
		printf("\n        / 課程號:%s / 課程名:%s / 課程性質:%s / 課程學分:%s /\n\n",cla1->id,cla1->name,cla1->is_nessary,cla1->credit);
		stud2=cla1->stu;
		while(stud2!=NULL){
			printf("\n   /學號:%s /姓名:%s /班級:%s /平時成績:%s /期末成績:%s /綜合成績:%s \n",stud2->id,stud2->name,stud2->clname,stud2->gpa.uaual_score,stud2->gpa.test_score,stud2->gpa.overall_score); 
			 stud2=stud2->next;
		}
		printf("\n\n-----------------------------------------------------------\n查詢完畢,按任意鍵返回上一界面");
		ch2=getch();
	}
}

//老師給成績
void Page1_2_3_3_grade(Ptr_TEA1 p){
	Ptr_CLA1 cla1;
	char id[50]={'\0'};
	char ch1,ch2,ch3,ch4;
out9:
	system("CLS");
	printf("\n\n\n\n\n\n請輸入要登分課程的課程號:");
	scanf("%s",id);
	cla1=Search_class_in_teach_id(p,id);
	if(cla1==NULL){
	printf("\n\n\n\n輸入課程碼錯誤,按空格鍵退出,其餘鍵繼續");
	ch1=getch();
	if(ch1!=' '){
		
		goto out9;
	} 
	}else{
		Page1_2_3_3_grade_choose(cla1); 
	}
}

//老師給成績的兩種選擇 
void Page1_2_3_3_grade_choose(Ptr_CLA1 cla1){
	char choice;
out10:
	system("CLS");
	printf("\n\n\n\n");
	printf("                                                 課程登分                                                             \n");
	printf("                                                                                                                      \n");
	printf("                                                                                                                      \n");
	printf("                                               1,依次登分                                                             \n");
	printf("                                                                                                                      \n");
	printf("                                                                                                                      \n");
 	printf("                                               2,id號查詢登分                                                         \n");
	printf("                                                                                                                      \n");
	printf("                                                                                                                      \n");
	printf("                                                                                                                      \n");
	printf("                                請按菜單前的數字選擇,或按其餘鍵退出選擇                                              \n");
	printf("                                                                                                                      \n");
	printf("                                                                                                                      \n");
	choice=getch();
	switch(choice){
		case '1':{
			Page1_2_3_3_grade_all(cla1);
			goto out10;
			break;
		}
		case '2':{
			Page1_2_3_3_grade_id(cla1);
			goto out10;
			break;
		}
		default:{
			printf("\n\n\n\n\n\n\n\n\n\n\n\n\n\n返回原頁面中....."); 
			Sleep(1000);
			break;
		}
	}
}

//依次登分 
void Page1_2_3_3_grade_all(Ptr_CLA1 cla1){
	Ptr_STU2 stu2=cla1->stu;
	Ptr_STU1 stu1;
	Ptr_CLA2 cla2;
	char ch1,ch2;
	char all[50]={'\0'};
	double rate=0,s1=0,s2=0,s3=0;
	system("CLS");
	if(stu2==NULL){
		printf("\n\n\n\n                                            無選該課學生!"); 
	}
	printf("\n\n\n");
	while(stu2!=NULL){
		printf("/ 學號:%s / 姓名:%s / 班級:%s / 平時成績:%s / 期末成績:%s / 期末成績佔比:%s / 總成績:%s /",stu2->id,stu2->name,stu2->clname,stu2->gpa.uaual_score,stu2->gpa.test_score,stu2->gpa.rate,stu2->gpa.overall_score);
		printf("\n\n按1進行登分,按其他鍵退出登分\n"); 
		ch1=getch();
		if(ch1=='1'){
			printf("平時成績:");
			scanf("%s",stu2->gpa.uaual_score);
			printf("\n\n期末成績:");
			scanf("%s",stu2->gpa.test_score);
			printf("\n\n期末成績佔比(0~1):"); 
			scanf("%s",stu2->gpa.rate);
			rate=atof(stu2->gpa.rate);
			s1=atof(stu2->gpa.uaual_score);
			s2=atof(stu2->gpa.test_score);
			s3=s2*rate+s1*(1-rate);
			sprintf(stu2->gpa.overall_score,"%lf",s3);
			printf("按回車鍵繼續");
			ch2=getch();
			//現在同時要改變學生應該看到的成績
			stu1=Search_stud1(stu2->id);
			cla2=stu1->cla;
			strcpy(cla2->gpa.overall_score,stu2->gpa.overall_score);
			strcpy(cla2->gpa.rate,stu2->gpa.rate);
			strcpy(cla2->gpa.test_score,stu2->gpa.test_score);
			strcpy(cla2->gpa.uaual_score,stu2->gpa.uaual_score); 
			while(ch2!='\r'){
				ch2=getch();
			}
		}else{
			break;
		}
		stu2=stu2->next;
	}
	printf("\n\n\n\n\n\n返回上一界面...");
	Sleep(1000);
}

//id號查詢登分
void Page1_2_3_3_grade_id(Ptr_CLA1 cla1){
	Ptr_STU2 stu2;
	Ptr_STU1 stu1;
	Ptr_CLA2 cla2;
	char ch1,ch2;
	char id[50]={'\0'};
	double rate=0,s1=0,s2=0,s3=0;
out11:
	system("CLS");
	printf("\n\n\n                請輸入要查找學生的id:");
	scanf("%s",id);
	stu2=Search_stud_in_class_id(cla1,id);
	if(stu2==NULL){
		printf("該課程下無該學員信息!");
		Sleep(1000);
		goto out11;
	}else{
		printf("/ 學號:%s / 姓名:%s / 班級:%s / 平時成績:%s / 期末成績:%s / 期末成績佔比:%s / 總成績:%s /",stu2->id,stu2->name,stu2->clname,stu2->gpa.uaual_score,stu2->gpa.test_score,stu2->gpa.rate,stu2->gpa.overall_score);
		printf("\n\n按1進行登分,按其他鍵退出登分\n\n\n"); 
		ch1=getch();
		if(ch1=='1'){
			printf("平時成績:");
			scanf("%s",stu2->gpa.uaual_score);
			printf("\n\n期末成績:");
			scanf("%s",stu2->gpa.test_score);
			printf("\n\n期末成績佔比(0~1):"); 
			scanf("%s",stu2->gpa.rate);
			rate=atof(stu2->gpa.rate);
			s1=atof(stu2->gpa.uaual_score);
			s2=atof(stu2->gpa.test_score);
			s3=s2*rate+s1*(1-rate);
			sprintf(stu2->gpa.overall_score,"%lf",s3);               //字符串轉浮點數 
			printf("按回車鍵繼續,按空格鍵退出");
			ch2=getch();
			//現在同時要改變學生應該看到的成績
			stu1=Search_stud1(stu2->id);
			cla2=stu1->cla;
			strcpy(cla2->gpa.overall_score,stu2->gpa.overall_score);
			strcpy(cla2->gpa.rate,stu2->gpa.rate);
			strcpy(cla2->gpa.test_score,stu2->gpa.test_score);
			strcpy(cla2->gpa.uaual_score,stu2->gpa.uaual_score); 
			while(ch2!='\r'){
				if(ch2==' ')break; 
				ch2=getch();
				if(ch2==' ')break; 
			}
			
	}
	
}
}

//添加課程,檢查是否有,檢查是否已添加 
void Page1_2_4_add(Ptr_TEA1 p){
	char x[100]={'\0'};
	char ch;
	Ptr_CLA1 cla;
	system("CLS");
	printf("\n\n\n\n                  請輸入要添加的課程號碼:");
	scanf("%s",&x);
	cla=Search_cla1(x);
	if(cla==NULL){
		printf("\n\n\n\n\n\n未查到該課程");
		Sleep(1000);
	}else if(Search_class_in_teach(p,cla)==true){
		printf("\n\n\n\n\n\n已添加該課程");
		Sleep(1000);
	}else{
		Add_class_to_teach(p,cla);
		printf("\n\n\n\n\n\n添加課程成功!"); 
		printf("\n\n\n按任意鍵退出"); 
		ch=getch();
	}
}

//老師改密碼 
void Page1_2_5_change_code(Ptr_TEA1 p) {
	char code1[100]={'\0'},code2[100]={'\0'},code[100]={'\0'},pand=0;
	char ch; 
U:
	system("CLS");
	printf("\n\n\n\n\n\n            請輸入原密碼:%s",code);  
	if(pand==0)scanf("%s",code);
	if(pand==0&&strcmp(code,p->code)!=0){
		printf("\n\n\n\n\n\n\n\n\n\n原密碼輸入錯誤!");
		memset(code,0,sizeof(code));
		printf("\n\n\n\n\n                             按空格鍵回到上頁面,按其餘鍵繼續登錄。\n"); 
		ch=getch();
		if(ch==' ');
		else goto U;
	}else{
		pand=1;
		printf("\n\n\n\n\n\n            請輸入新密碼:");
		scanf("%s",code1);
		printf("\n\n\n            請確認新密碼:");
		scanf("%s",code2);
		if(strcmp(code1,code2)!=0){
		printf("兩次設置密碼不一致,請重新設置!");
		memset(code1,0,sizeof(code1));
		memset(code2,0,sizeof(code2));
		Sleep(1500); 
		goto U;
	}else{
		strcpy(p->code,code1);
		printf("\n\n\n\n\n\n密碼設置成功");
		Sleep(1000); 
	}
	}
	system("CLS");
}

//管理員登錄頁面,含判斷是否登錄成功,但賬號設置較爲簡單(已完成) 
void Page1_3_regist(){
	//原來正常管理員是有結構體的,爲了方便,後面錄入,這裏僅設計一個賬號爲Jcdoing,密碼爲13141718的管理員賬號 
	char id[100],code[100],m[100]; 
	char ch1,ch2,id1[100]={'\0'},code1[100]={'\0'};
	int i=0,j=-1,k,n,pand=1;
	strcpy(id,"Jcdoing");
	strcpy(code,"13141718");
B:
	system("CLS");	
	printf("\n\n                                          尊敬的管理員,請先登錄賬號");
	printf("\n\n\n\n           賬號:%s",id1);
	if(pand==1)scanf("%s",id1);
	else printf("\n");
	pand=2;
	printf("\n\n\n\n           密碼:");
	n=strlen(code1);
	for(k=0;k<n;k++)printf("*");
	ch2=getch();
	if(ch2=='\r'){
		
	}else if(ch2=='\b'){
		if(j>=0){
		code1[j]='\0';
		j--;
		}
		goto B;
	}else{
		j++;
		code1[j]=ch2;
		goto B;
	}
	if(strcmp(id,id1)==0&&strcmp(code,code1)==0){
		Page1_3_page(id);
	}else{
		system("CLS");
		printf("\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n賬號或密碼錯誤,正在返回主頁面....."); 
		Sleep(1000);
	}
}

//管理員操作頁面,分支處(已完成) 
void Page1_3_page(char id[]){
	char choice;
	system("CLS");
	printf("\n\n                                          尊敬的%s管理員,歡迎回來",id);
	Sleep(1000);
C:
	system("CLS");
	printf("**********************************************************************************************************************\n");
	printf("*                                                                                                                    *\n");
	printf("*                                                管理員界面                                                          *\n");
	printf("*                                                                                                                    *\n");
	printf("**********************************************************************************************************************\n");
	printf("*                                              請您選擇需要的操作                                                    *\n");
	printf("*                                 ---------------------------------------                                            *\n");
    printf("*                                *|                                     |*                                           *\n");
    printf("*                                *|                                     |*                                           *\n");
	printf("*                                *|            1:學生信息               |*                                           *\n");
	printf("*                                *|                                     |*                                           *\n");
	printf("*                                *|                                     |*                                           *\n");
	printf("*                                *|            2:老師信息               |*                                           *\n");
	printf("*                                *|                                     |*                                           *\n");
	printf("*                                *|                                     |*                                           *\n");
	printf("*                                *|            3:課程信息               |*                                           *\n");
	printf("*                                *|                                     |*                                           *\n");
	printf("*                                *|                                     |*                                           *\n");
	printf("*                                 ---------------------------------------                                            *\n");
	printf("*                                請按菜單前的數字選擇,或按其餘鍵退出選擇                                            *\n");
	printf("*                                                                                                                    *\n");
	printf("**********************************************************************************************************************\n");
	choice=getch();
	switch(choice){
		case '1':{
			Page1_3_1_page();
			goto C;
			break;
		}
		case '2':{
			Page1_3_2_page();
			goto C;
			break;
		}
		case '3':{
			Page1_3_3_page();
			goto C;
			break;
		}
		default :{
			printf("\n\n\n返回主頁面....."); 
			Sleep(1000);
			break;
		}
	}
}

//管理員管理學生信息(已完成) 
void Page1_3_1_page(){
	char choice;
E: 
	system("CLS");
	printf("\n\n\n\n");
	printf("                                                 學生信息                                                             \n");
	printf("                                                                                                                      \n");
	printf("                                                                                                                      \n");
	printf("                                               1,添加新學生                                                           \n");
	printf("                                                                                                                      \n");
	printf("                                                                                                                      \n");
 	printf("                                               2,查改學生信息                                                         \n");
	printf("                                                                                                                      \n");
	printf("                                                                                                                      \n");
	printf("                                請按菜單前的數字選擇,或按其餘鍵退出選擇                                              \n");
	printf("                                                                                                                      \n");
	printf("                                                                                                                      \n");
	choice=getch();
	switch(choice){
		case '1':{
			page1_3_1_1_change(); 
			goto E;
			break;
		}
		case '2':{
			page1_3_1_2_search_or_change();
			goto E;
			break;
		}
		default:{
			printf("\n\n\n\n\n\n\n\n\n\n\n\n\n返回管理員頁面中....."); 
			Sleep(1000);
			break;
		}
	}
}

//管理員添加學生信息(已完成) 
void page1_3_1_1_change(){                                     
	char id[50]={'\0'},clname[100]={'\0'},name[50]={'\0'},sex[10]={'\0'},age[100]={'\0'},x[100]={'\0'};
	char choice;
	int pand1=0,pand2=0,pand3=0,pand4=0,pand5=0,sum;
	Ptr_STU1 stud1=(Ptr_STU1)malloc(sizeof(STU1));
D:
	system("CLS");
	printf("\n\n\n\n                                   1,學號:%s                                    \n\n",id);
	printf("                                   2,班級: %s                                    \n\n",clname);
	printf("                                   3,姓名: %s                                    \n\n",name);
	printf("                                   4,性別: %s                                    \n\n",sex);
	printf("                                   5,出生日期: %s                                \n\n",age);
	printf("                                   6,確認創建\n\n");
	printf("                                   7,放棄創建"); 
	printf("\n\n\n\n\n\n\n\n\n                     請選擇數字符號進行修改創建或放棄創建\n\n"); 
	choice=getch();
	switch(choice){                                                                          //有點缺陷,就是如果選錯了,就無法重新選過 
		case '1':{
			printf("學號:");
			scanf("%s",x);
			if(strlen(x)!=12){
				memset(x,0,sizeof(x));
				printf("請輸入12位學號");
				Sleep(1000); 
			}else if(Search_stud1(x)!=NULL){
				memset(x,0,sizeof(x));
				printf("該學號已存在,請勿重複添加!");
				Sleep(1000);
			}else{
				strcpy(id,x);
				pand1=1;
			}
			goto D;
			break;
		}
		case '2':{
			printf("班級:");
			scanf("%s",clname);
			pand2=1;
			goto D;
			break;
		}
		case '3':{
			printf("姓名:");
			scanf("%s",name);
			pand3=1;
			goto D;
			break;
		}
		case '4':{
			printf("性別:");
			scanf("%s",x);
			if(strcmp(x,"男")!=0&&strcmp(x,"女")!=0){
				memset(x,0,sizeof(x));
				printf("性別請輸男或女!");
				Sleep(1000); 
			}else{
				strcpy(sex,x);
				pand4=1;
			}
			goto D; 
			break;
		}
		case '5':{
			printf("出生日期:");
			scanf("%s",age);
			pand5=1;
			goto D;
			break;
		}
		case '6':{
			sum=pand1+pand2+pand3+pand4+pand5;
			if(sum<5){
				printf("信息未填完整,請補充");
				Sleep(1000);
				goto D;
			}else {
				strcpy(stud1->id,id);
				strcpy(stud1->clname,clname);
				strcpy(stud1->name,name);
				strcpy(stud1->sex,sex);
				strcpy(stud1->age,age);
				Insert1(stud1); 
				printf("創建成功!");
				Sleep(1000);
			}
			break;
		}
		case '7':{
			printf("放棄創建");
			Sleep(1000);
			break;
		}
		default:{
			goto D;
			break;
		}
	}
}

//管理員查找學生信息的頁面(已完成) 
void page1_3_1_2_search_or_change(){
	char choice;
G:
	system("CLS");
	printf("\n\n\n\n");
	printf("                                               學生信息查改                                                           \n");
	printf("                                                                                                                      \n");
	printf("                                                                                                                      \n");
	printf("                                               1,輸出全部學生信息                                                     \n");
	printf("                                                                                                                      \n");
	printf("                                                                                                                      \n");
 	printf("                                               2,通過id查找                                                           \n");
	printf("                                                                                                                      \n");
	printf("                                                                                                                      \n");
	printf("                                               3,組合關鍵詞查找                                                       \n");
	printf("                                                                                                                      \n");
	printf("                                                                                                                      \n");
	printf("                                請按菜單前的數字選擇,或按其餘鍵退出選擇                                              \n");
	printf("                                                                                                                      \n");
	choice=getch();
	switch(choice){
		case '1':{
			page1_3_1_2_2_all();
			goto G; 
			break;
		}
		case '2':{
			page1_3_1_2_2_id();                            //可以進化爲二分查找的,有時間再搞。 
			goto G;
			break;
		}
		case '3':{
			page1_3_1_2_3_key_find(); 
			goto G; 
			break;
		}
		default:{
			printf("\n\n\n\n\n\n\n返回主頁面");
			Sleep(1000); 
			break;
		}
	}
} 

//輸出所有學生的賬號,密碼,姓名和班級(已完成)
void page1_3_1_2_2_all(){
	char ch;
	system("CLS");
	Ptr_STU1 p=L1->next;
	while(p!=NULL){
		printf("\n        / 學號:%s / 姓名:%s / 班級:%s / 密碼:%s /\n\n",p->id,p->name,p->clname,p->code);
		p=p->next;
	}
	printf("\n----------------------------------------------------------------------------------------\n");
	printf("顯示完畢,按空格鍵返回");
	while(1){
	ch=getch();
	if(ch==' ')break;
}
}

//通過id查找,並可以修改 
void page1_3_1_2_2_id(){
	char id[100];
	Ptr_STU1 p;
	system("CLS");
	printf("\n\n\n\n\n       請輸入要查找學生的id:");
	scanf("%s",id);
	p=Search_stud1(id);
	if(p==NULL){
		printf("\n\n\n\n\n\n無該學生信息!"); 
		Sleep(1000);
	}else{
		page1_3_1_2_2_id_Print(p);                 //還差課程信息 
	}
} 

//管理員通過id查改學生信息(當然我這裏有很大的問題,就是我這裏雖然改了主鏈表上數據的信息,但其他造成的後續影響沒有改,那樣有些複製,而我沒時間了) 
void page1_3_1_2_2_id_Print(Ptr_STU1 p){
	char ch;
	char x[50];
R:
	system("CLS");
	printf("\n\n\n\n\n");
	printf("          1:學號:%s",p->id);
	printf("\n\n          2:姓名:%s",p->name);
	printf("\n\n          3:班級:%s",p->clname);
	printf("\n\n          4:性別:%s",p->sex);
	printf("\n\n          5:出生年月:%s",p->age);
	printf("\n\n          6:宿舍號:%s",p->dorid);
	printf("\n\n          7:電話號碼:%s",p->pnum);
	printf("\n\n          8:密碼:%s",p->code);
	printf("\n\n          9:選課信息");     //這裏先用學生端的,正常是可以改的 
	printf("\n\n          A:刪除該學生信息"); 
	printf("\n\n                       請選擇序號進行修改,按其餘鍵返回");
	ch=getch();
	switch(ch){
		case '1':{
			printf("\n\n學號:");
			scanf("%s",p->id);
			goto R;
			break;
		}
		case '2':{
			printf("\n\n姓名:");
			scanf("%s",p->name);
			goto R;
			break;
		}
		case '3':{
			printf("\n\n班級:");
			scanf("%s",p->clname);
			goto R;
			break;
		}
		case '4':{
			printf("\n\n性別:");
			scanf("%s",p->sex);
			goto R;
			break;
		}
		case '5':{
			printf("\n\n出生年月:");
			scanf("%s",p->age);
			goto R;
			break;
		}
		case '6':{
			printf("\n\n宿舍號:");
			scanf("%s",p->dorid);
			goto R;
			break;
		}
		case '7':{
			printf("\n\n電話號碼:");
			scanf("%s",p->pnum);
			goto R;
			break;
		}
		case '8':{
			printf("\n\n密碼:");
			scanf("%s",p->code);
			goto R;
			break;
		}
		case '9':{
			Page1_1_4_Search_added_class(p); 
			goto R;
			break;
		}
		case 'A':{
			system("CLS");
			printf("\n\n\n\n\n                                         確認刪除該學生節點?");
			printf("\n\n        請再次輸入待刪除學生的學號:");
			scanf("%s",x);
			if(strcmp(x,p->id)==0){
				Delete_student(p);
				printf("刪除成功!");
				Sleep(1000); 
				return;
			}else{
				printf("學號輸入錯誤"); 
				Sleep(1000);
				goto R;
			}
			break;
		}
		default:{
			printf("\n\n返回主頁面!");
			Sleep(1000);
			break;
		}
		
	}
}

//管理員模糊查找學生信息(已完成) 
void page1_3_1_2_3_key_find(){
	char id[50]={'\0'},clname[100]={'\0'},name[50]={'\0'},sex[10]={'\0'},age[100]={'\0'},x[100]={'\0'};
	char choice;
	char ch; 
	Ptr_STU1 stud1=(Ptr_STU1)malloc(sizeof(STU1));
out5:
	system("CLS");
	printf("\n\n\n\n");
	printf("                                   1,班級: %s                                    \n\n",clname);
	printf("                                   2,姓名: %s                                    \n\n",name);
	printf("                                   3,性別: %s                                    \n\n",sex);
	printf("                                   4,出生日期: %s                                \n\n",age);
	printf("                                   5,確認查詢\n\n");
	printf("                                   6,放棄查詢\n\n");
	printf("\n\n                     請選擇數字符號進行修改查詢條件或放棄查詢"); 
	printf("\n\n                     請選擇性的填寫光鍵詞於恰當序號後,關鍵詞不必完整但一定要連續且無誤,也可以不填\n\n"); 
	choice=getch();
	switch(choice){                                                                          //有點缺陷,就是如果選錯了,就無法重新選過 
		case '1':{
			printf("班級:");
			memset(x,0,sizeof(x));
			scanf("%s",x);
			strcpy(clname,x);
			goto out5;
			break;
		}
		case '2':{
			printf("姓名:");
			memset(x,0,sizeof(x));
			scanf("%s",x);
			strcpy(name,x);
			goto out5;
			break;
		}
		case '3':{
			printf("性別:");
			scanf("%s",x);
			if(strcmp(x,"男")!=0&&strcmp(x,"女")!=0){
				memset(x,0,sizeof(x));
				printf("性別請輸男或女!");
				Sleep(1000); 
			}else{
				strcpy(sex,x);
			}
			goto out5; 
			break;
		}
		case '4':{
			printf("出生日期:");
			memset(x,0,sizeof(x));
			scanf("%s",x);
			strcpy(age,x);
			goto out5;
			break;
		}
		case '5':{
			system("CLS");
			printf("\n\n");
			for(stud1=L1->next;stud1!=NULL;stud1=stud1->next){
				if(strcmp(clname,"\0")!=0&&strstr(stud1->clname,clname)==NULL)continue;
				if(strcmp(name,"\0")!=0&&strstr(stud1->name,name)==NULL)continue;
				if(strcmp(sex,"\0")!=0&&strstr(stud1->sex,sex)==NULL)continue;
				if(strcmp(age,"\0")!=0&&strstr(stud1->age,age)==NULL)continue;
				printf("\n     / 學號:%s / 姓名:%s / 性別:%s / 班級:%s / 密碼:%s /\n\n",stud1->id,stud1->name,stud1->sex,stud1->clname,stud1->code);
			}
				printf("\n----------------------------------------------------------------------------------------\n");
				printf("顯示完畢,按空格鍵返回");
				while(1){
					ch=getch();
					if(ch==' ')break;
					}	
		}
		case '6':{
			break;
		}
		default:{
			goto out5;
			break;
		}
	}
}

//管理員查改老師信息(已完成) 
void Page1_3_2_page(){
	char choice;
J: 
	system("CLS");
	printf("\n\n\n\n");
	printf("                                                 老師信息                                                             \n");
	printf("                                                                                                                      \n");
	printf("                                                                                                                      \n");
	printf("                                               1,添加新老師                                                           \n");
	printf("                                                                                                                      \n");
	printf("                                                                                                                      \n");
 	printf("                                               2,查改老師信息                                                         \n");
	printf("                                                                                                                      \n");
	printf("                                                                                                                      \n");
	printf("                                請按菜單前的數字選擇,或按其餘鍵退出選擇                                              \n");
	printf("                                                                                                                      \n");
	printf("                                                                                                                      \n");
	choice=getch();
	switch(choice){
		case '1':{
			Page1_3_2_1_change();
			goto J;
			break;
		}
		case '2':{
			page1_3_2_2_search_or_change();
			goto J;
			break;
		}
		default:{
			printf("\n\n\n\n\n\n\n\n\n\n\n\n\n返回管理員頁面中.....");  
			Sleep(1000);
			break;
		}
	}
}

//管理員添加老師信息(已完成) 
void Page1_3_2_1_change(){
	char id[50]={'\0'},name[50]={'\0'},sex[10]={'\0'},age[100]={'\0'},x[100]={'\0'};
	char choice;
	int pand1=0,pand2=0,pand3=0,pand4=0,sum;
	Ptr_TEA1 teach1=(Ptr_TEA1)malloc(sizeof(TEACH1));
I:
	system("CLS");
	printf("\n\n\n\n                                   1,工號:%s                                    \n\n",id);
	printf("                                   2,姓名: %s                                    \n\n",name);
	printf("                                   3,性別: %s                                    \n\n",sex);
	printf("                                   4,年齡: %s                                \n\n",age);
	printf("                                   5,確認添加\n\n");
	printf("                                   6,放棄添加"); 
	printf("\n\n\n\n\n\n\n\n\n                     請選擇數字符號進行修改創建或放棄創建\n\n"); 
	choice=getch();
	switch(choice){                                                                          //有點缺陷,就是如果選錯了,就無法重新選過 
		case '1':{
			printf("工號:");
			scanf("%s",x);
			if(strlen(x)!=18){
				memset(x,0,sizeof(x));
				printf("請輸入18位工號");
				Sleep(1000); 
			}else if(Search_teach1(x)!=NULL){
				memset(x,0,sizeof(x));
				printf("該工號已被添加,請勿重複添加!");
				Sleep(1000); 
			}else{
				strcpy(id,x);
				pand1=1;
			}
			goto I;
			break;
		}
		case '2':{
			printf("姓名:");
			scanf("%s",name);
			pand2=1;
			goto I;
			break;
		}
		case '3':{
			printf("性別:");
			scanf("%s",x);
			if(strcmp(x,"男")!=0&&strcmp(x,"女")!=0){
				memset(x,0,sizeof(x));
				printf("性別請輸男或女!");
				Sleep(1000); 
			}else{
				strcpy(sex,x);
				pand3=1;
			}
			goto I; 
			break;
		}
		case '4':{
			printf("年齡:");
			scanf("%s",age);
			pand4=1;
			goto I;
			break;
		}
		case '5':{
			sum=pand1+pand2+pand3+pand4;
			if(sum<4){
				printf("信息未填完整,請補充");
				Sleep(1000);
				goto I;
			}else {
				strcpy(teach1->id,id);
				strcpy(teach1->name,name);
				strcpy(teach1->sex,sex);
				strcpy(teach1->age,age);
				Insert2(teach1);
				printf("創建成功!");
				Sleep(1000);
			}
			break;
		}
		case '6':{
			printf("放棄創建");
			Sleep(1000);
			break;
		}
		default:{
			goto I;
			break;
		}
	}
}

//管理員查找老師信息的頁面 (已完成) 
void page1_3_2_2_search_or_change(){
	char choice;
S:
	system("CLS");
	printf("\n\n\n\n");
	printf("                                               老師信息查改                                                           \n");
	printf("                                                                                                                      \n");
	printf("                                                                                                                      \n");
	printf("                                               1,輸出全部老師信息                                                     \n");
	printf("                                                                                                                      \n");
	printf("                                                                                                                      \n");
 	printf("                                               2,通過id查找                                                           \n");
	printf("                                                                                                                      \n");
	printf("                                                                                                                      \n");
	printf("                                               3,組合關鍵詞查找                                                       \n");
	printf("                                                                                                                      \n");
	printf("                                                                                                                      \n");
	printf("                                請按菜單前的數字選擇,或按其餘鍵退出選擇                                              \n");
	printf("                                                                                                                      \n");
	choice=getch();
	switch(choice){
		case '1':{
			page1_3_2_2_2_all();                             //輸出所有老師的信息 
			goto S; 
			break;
		}
		case '2':{
			page1_3_2_2_2_id();                            //可以進化爲二分查找的,有時間再搞。 
			goto S;
			break;
		}
		case '3':{
			page1_3_2_2_3_key_find(); 
			goto S; 
			break;
		}
		default:{
			printf("\n\n\n\n\n\n\n返回主頁面");
			Sleep(1000); 
			break;
		}
	}
} 

//輸出所有老師的賬號,密碼,姓名和班級(已完成) 
void page1_3_2_2_2_all(){
	char ch;
	system("CLS");
	Ptr_TEA1 p=L2->next;
	while(p!=NULL){
		printf("\n        / 工號:%s / 姓名:%s / 性別:%s /年齡:%s / 密碼:%s /\n\n",p->id,p->name,p->sex,p->age,p->code);
		p=p->next;
	}
	printf("\n----------------------------------------------------------------------------------------\n");
	printf("顯示完畢,按空格鍵返回");
	while(1){
	ch=getch();
	if(ch==' ')break;
}
}

//通過id查找,並可以修改 
void page1_3_2_2_2_id(){
	char id[100];
	Ptr_TEA1 p;
	system("CLS");
	printf("\n\n\n\n\n       請輸入要查找老師的工號:");
	scanf("%s",id);
	p=Search_teach1(id);
	if(p==NULL){
		printf("\n\n\n\n\n\n無該老師信息!"); 
		Sleep(1000);
	}else{
		page1_3_2_2_2_id_Print(p);                 //還差課程信息 
	}
} 

//管理員通過id查改老師信息 
void page1_3_2_2_2_id_Print(Ptr_TEA1 p){
	char x[100];
	char ch;
T:
	system("CLS");
	printf("\n\n\n\n\n");
	printf("          1:工號:%s",p->id);
	printf("\n\n          2:姓名:%s",p->name);
	printf("\n\n          3:性別:%s",p->sex);
	printf("\n\n          4:年齡:%s",p->age);
	printf("\n\n          5:密碼:%s",p->code);
	printf("\n\n          6:選課信息");
	printf("\n\n          7:刪除該老師信息"); 
	printf("\n\n                       請選擇序號進行修改,按其餘鍵返回");
	ch=getch();
	switch(ch){
		case '1':{
			printf("\n\n工號:");
			scanf("%s",p->id);
			goto T;
			break;
		}
		case '2':{
			printf("\n\n姓名:");
			scanf("%s",p->name);
			goto T;
			break;
		}
		case '3':{
			printf("\n\n性別:");
			scanf("%s",p->sex);
			goto T;
			break;
		}
		case '4':{
			printf("\n\n年齡:");
			scanf("%s",p->age);
			goto T;
			break;
		}
		case '5':{
			printf("\n\n密碼:");
			scanf("%s",p->code);
			goto T;
			break;
		}
		case '6':{
			Page1_2_3_1_all(p);
			goto T;
			break;
		}
		case '7':{
			system("CLS");
			printf("\n\n\n\n\n                                         確認刪除該老師節點?");
			printf("\n\n        請再次輸入待刪除老師的工號:");
			scanf("%s",x);
			if(strcmp(x,p->id)==0){
				Delete_teacher(p);
				printf("刪除成功!");
				Sleep(1000); 
				return;
			}else{
				printf("工號輸入錯誤"); 
				Sleep(1000);
				goto T;
			}
			break;
		}
		default:{
			printf("\n\n返回主頁面!");
			Sleep(1000);
			break;
		}
		
	}
}

//管理員模糊查找老師信息 (已完成) 
void page1_3_2_2_3_key_find(){
	char name[50]={'\0'},sex[10]={'\0'},age[100]={'\0'},x[100]={'\0'};
	char choice;
	char ch; 
	Ptr_TEA1 teach1=(Ptr_TEA1)malloc(sizeof(TEACH1));
out6:
	system("CLS");
	printf("\n\n\n\n");
	printf("                                   1,姓名: %s                                    \n\n",name);
	printf("                                   2,性別: %s                                    \n\n",sex);
	printf("                                   3,年齡: %s                                \n\n",age);
	printf("                                   4,確認查詢\n\n");
	printf("                                   5,放棄查詢\n\n");
	printf("\n\n\n\n\n                     請選擇數字符號進行修改查詢條件或放棄查詢\n\n"); 
	printf("                     請選擇性的填寫光鍵詞於恰當序號後,關鍵詞不必完整但一定要連續且無誤,也可以不填\n\n"); 
	choice=getch();
	switch(choice){                                                                          //有點缺陷,就是如果選錯了,就無法重新選過 
		case '1':{
			printf("姓名:");
			memset(x,0,sizeof(x));
			scanf("%s",x);
			strcpy(name,x);
			goto out6;
			break;
		}
		case '2':{
			printf("性別:");
			scanf("%s",x);
			if(strcmp(x,"男")!=0&&strcmp(x,"女")!=0){
				memset(x,0,sizeof(x));
				printf("性別請輸男或女!");
				Sleep(1000); 
			}else{
				strcpy(sex,x);
			}
			goto out6; 
			break;
		}
		case '3':{
			printf("年齡:");
			memset(x,0,sizeof(x));
			scanf("%s",x);
			strcpy(age,x);
			goto out6;
			break;
		}
		case '4':{
			system("CLS");
			printf("\n\n");
			for(teach1=L2->next;teach1!=NULL;teach1=teach1->next){
				if(strcmp(name,"\0")!=0&&strstr(teach1->name,name)==NULL)continue;
				if(strcmp(sex,"\0")!=0&&strstr(teach1->sex,sex)==NULL)continue;
				if(strcmp(age,"\0")!=0&&strstr(teach1->age,age)==NULL)continue;
						printf("\n        / 工號:%s / 姓名:%s / 性別:%s /年齡:%s / 密碼:%s /\n\n",teach1->id,teach1->name,teach1->sex,teach1->age,teach1->code);
			}
				printf("/n----------------------------------------------------------------------------------------/n");
				printf("顯示完畢,按空格鍵返回");
				while(1){
					ch=getch();
					if(ch==' ')break;
					}	
		}
		case '5':{
			break;
		}
		default:{
			goto out6;
			break;
		}
	}
}

//管理員管理選課信息 
void Page1_3_3_page(){
	char choice;
X:
	system("CLS");
	printf("\n\n\n\n");
	printf("                                                 課程信息                                                             \n");
	printf("                                                                                                                      \n");
	printf("                                                                                                                      \n");
	printf("                                               1,添加新的選課                                                         \n");
	printf("                                                                                                                      \n");
	printf("                                                                                                                      \n");
 	printf("                                               2,查改課程信息                                                         \n");
	printf("                                                                                                                      \n");
	printf("                                                                                                                      \n");
	printf("                                               3,開啓選課時間                                                         \n");
	printf("                                                                                                                      \n");
	printf("                                請按菜單前的數字選擇,或按其餘鍵退出選擇                                              \n");
	printf("                                                                                                                      \n");
	printf("                                                                                                                      \n");
	choice=getch();
	switch(choice){
		case '1':{
			Page1_3_3_1_change(); 
			goto X;
			break;
		}
		case '2':{
			Page1_3_3_2_search_or_change();
			goto X;
			break;
		}
		case '3':{
			Page1_3_3_3_open_or_close(); 
			goto X;
			break;
		}
		default:{
			printf("\n\n\n\n\n\n\n\n\n\n返回管理員頁面中....."); 
			Sleep(1000);
			break;
		}
	}
}

//管理員添加選課息 
void Page1_3_3_1_change(){
	char id[100]={'\0'},name[50]={'\0'},is_nessary[50]={'\0'},credit[10]={'\0'},x[100]={'\0'};
	char choice;
	int pand1=0,pand2=0,pand3=0,pand4=0,sum;
	Ptr_CLA1 cla1=(Ptr_CLA1)malloc(sizeof(CLASS1));
W:
	system("CLS");
	printf("\n\n\n\n                                   1,課程編號:%s                                    \n\n",id);
	printf("                                   2,課程名稱: %s                                    \n\n",name);
	printf("                                   3,是否必修: %s                                    \n\n",is_nessary);
	printf("                                   4,學分: %s                                \n\n",credit);
	printf("                                   5,確認添加\n\n");
	printf("                                   6,放棄添加"); 
	printf("\n\n\n\n\n\n\n\n\n                     請選擇數字符號進行修改創建或放棄創建\n\n"); 
	choice=getch();
	switch(choice){                                                                          //有點缺陷,就是如果選錯了,就無法重新選過 
		case '1':{
			printf("課程編號:");
			scanf("%s",x);
			if(strlen(x)!=15){
				memset(x,0,sizeof(x));
				printf("請輸入15位課程編號");
				Sleep(1000); 
			}else if(Search_cla1(x)!=NULL){
				memset(x,0,sizeof(x));
				printf("該課程編號已被添加,請勿重複添加!");
				Sleep(1000); 
			}else{
				strcpy(id,x);
				pand1=1;
			}
			goto W;
			break;
		}
		case '2':{
			printf("課程名稱:");
			scanf("%s",name);
			pand2=1;
			goto W;
			break;
		}
		case '3':{
			printf("是否必修:");
			scanf("%s",x);
			if(strcmp(x,"必修")!=0&&strcmp(x,"選修")!=0){
				memset(x,0,sizeof(x));
				printf("是否必修請輸必修或選修!");
				Sleep(1000); 
			}else{
				strcpy(is_nessary,x);
				pand3=1;
			}
			goto W; 
			break;
		}
		case '4':{
			printf("學分:");
			scanf("%s",credit);
			pand4=1;
			goto W;
			break;
		}
		case '5':{
			sum=pand1+pand2+pand3+pand4;
			if(sum<4){
				printf("信息未填完整,請補充");
				Sleep(1000);
				goto W;
			}else {
				strcpy(cla1->id,id);
				strcpy(cla1->name,name);
				strcpy(cla1->is_nessary,is_nessary);
				strcpy(cla1->credit,credit);
				Insert3(cla1);
				printf("添加成功!");
				Sleep(1000);
			}
			break;
		}
		case '6':{
			printf("放棄添加");
			Sleep(1000);
			break;
		}
		default:{
			goto W;
			break;
		}
	}
}

//管理員查看選課信息 
void Page1_3_3_2_search_or_change(){
	char choice;
out7:
	system("CLS");
	printf("\n\n\n\n");
	printf("                                               選課信息查改                                                           \n");
	printf("                                                                                                                      \n");
	printf("                                                                                                                      \n");
	printf("                                               1,輸出全部選課信息                                                     \n");
	printf("                                                                                                                      \n");
	printf("                                                                                                                      \n");
 	printf("                                               2,通過id查找                                                           \n");
	printf("                                                                                                                      \n");
	printf("                                                                                                                      \n");
	printf("                                               3,組合名字關鍵詞模糊查找                                               \n");
	printf("                                                                                                                      \n");
	printf("                                                                                                                      \n");
	printf("                                請按菜單前的數字選擇,或按其餘鍵退出選擇                                              \n");
	printf("                                                                                                                      \n");
	choice=getch();
	switch(choice){
		case '1':{
			Page1_3_3_2_1_all();
			goto out7; 
			break;
		}
		case '2':{
			Page1_3_3_2_2_id();
			goto out7;
			break;
		}
		case '3':{
			Page1_3_3_2_3_key_find();
			goto out7; 
			break;
		}
		default:{
			printf("\n\n\n\n\n\n\n返回主頁面");
			Sleep(1000); 
			break;
		}
	}
}

//輸出全部課程信息,課程名稱,課程號碼,選修還是必修,學分
void Page1_3_3_2_1_all(){
	char ch;
	system("CLS");
	Ptr_CLA1 p=L3->next;
	Ptr_TEA1 tea1;
	while(p!=NULL){
		printf("\n        / 課程號:%s / 課程名:%s / 性質:%s / 學分:%s /\n\n",p->id,p->name,p->is_nessary,p->credit);
		for(tea1=p->teach;tea1!=NULL;tea1=tea1->next){
			printf("\n        / 授課老師工號:%s / 老師名:%s /\n",tea1->id,tea1->name);
		}
		printf("\n\n");
		p=p->next;
	}
	printf("\n----------------------------------------------------------------------------------------\n");
	printf("顯示完畢,按空格鍵返回");
	while(1){
	ch=getch();
	if(ch==' ')break;
}
} 

//id查找某課程某老師的學生信息pand1 
void Page1_3_3_2_2_id(){
	char id[100];
	Ptr_CLA1 p;
	system("CLS");
	printf("\n\n\n\n\n       請輸入要查找課程的課程號:");
	scanf("%s",id);
	p=Search_cla1(id);
	if(p==NULL){
		printf("\n\n\n\n\n\n無該課程信息!"); 
		Sleep(1000);
	}else{
		page1_3_3_2_2_id_in(p);                  
	}
}

//id查找某課程某老師的學生信息pand2 
void page1_3_3_2_2_id_in(Ptr_CLA1 p){
	char id[100];
	Ptr_TEA1 teach1,teach;
	system("CLS");
	printf("\n\n\n\n\n       請輸入要查找老師的工號:");
	scanf("%s",id);
	teach1=Search_teach_in_class_id(p,id);
	if(teach1==NULL){
		printf("\n\n\n\n\n\n無該課程信息!"); 
		Sleep(1000);
	}else{
		teach=Search_teach1(teach1->id);
		page1_3_3_2_2_id_Print(teach,p);                  
	}
}

//id查找某課程某老師的學生信息pand3
void page1_3_3_2_2_id_Print(Ptr_TEA1 tea1,Ptr_CLA1 p){
	char ch;
	Ptr_CLA1 cla1;
	cla1=Search_class_in_teach_id(tea1,p->id);
	Ptr_STU2 stu2=cla1->stu;
	system("CLS");
	printf("\n\n\n\n\n");
	printf("          課程工號:%s",cla1->id);
	printf("\n\n          課程名:%s",cla1->name);
	printf("\n\n          課程性質:%s",cla1->is_nessary);
	printf("\n\n          學分:%s",cla1->credit);
	printf("\n\n          開課老師");
	printf("\n        / 工號:%s / 老師名:%s / 年齡:%s / 性別:%s /\n\n",tea1->id,tea1->name,tea1->age,tea1->sex);
	while(stu2!=NULL){
		printf("\n        / 學號:%s / 姓名:%s / 班級:%s / 重修次數:%s / 電話號碼:%s /\n",stu2->id,stu2->name,stu2->clname,stu2->rebuild,stu2->pnum);
		printf("        / 平時分:%s / 期末分:%s / 比例:%s / 綜合分:%s /\n\n",stu2->gpa.uaual_score,stu2->gpa.test_score,stu2->gpa.rate,stu2->gpa.overall_score);
		stu2=stu2->next;
	} 
	printf("\n----------------------------------------------------------------------------------------\n");
	printf("顯示完畢,按空格鍵返回");
	while(1){
	ch=getch();
	if(ch==' ')break;
}
}

//管理員模糊查找課程 
void Page1_3_3_2_3_key_find(){
	char key1[100]={'\0'},key2[100]={'\0'},key3[100]={'\0'},key4[100]={'\0'},key5[100]={'\0'},x[100];
	char choice;
	char ch; 
	Ptr_CLA1 cla1=(Ptr_CLA1)malloc(sizeof(CLASS1));
	Ptr_TEA1 tea1;
out8:
	system("CLS");
	printf("\n\n\n\n");
	printf("                                   1,關鍵詞1: %s                                    \n\n",key1);
	printf("                                   2,關鍵詞2: %s                                    \n\n",key2);
	printf("                                   3,關鍵詞3: %s                                    \n\n",key3);
	printf("                                   4,關鍵詞4: %s                                    \n\n",key4);
	printf("                                   5,確認查詢\n\n");
	printf("                                   6,放棄查詢\n\n");
	printf("\n\n\n\n                     請選擇數字符號進行修改查詢條件或放棄查詢\n\n"); 
	printf("                     請選擇性的填寫光鍵詞於恰當序號後,關鍵詞不必完整但一定要連續且無誤,也可以不填\n\n"); 
	choice=getch();
	switch(choice){                                                                          //有點缺陷,就是如果選錯了,就無法重新選過 
		case '1':{
			printf("關鍵詞1:");
			memset(x,0,sizeof(x));
			scanf("%s",x);
			strcpy(key1,x);
			goto out8;
			break;
		}
		case '2':{
			printf("關鍵詞2:");
			memset(x,0,sizeof(x));
			scanf("%s",x);
			strcpy(key2,x);
			goto out8;
			break;
		}
		case '3':{
			printf("關鍵詞3:");
			memset(x,0,sizeof(x));
			scanf("%s",x);
			strcpy(key3,x);
			goto out8;
			break;
		}
		case '4':{
			printf("關鍵詞4:");
			memset(x,0,sizeof(x));
			scanf("%s",x);
			strcpy(key4,x);
			goto out8;
			break;
		}
		case '5':{
			system("CLS");
			printf("\n\n");
			for(cla1=L3->next;cla1!=NULL;cla1=cla1->next){
				if(strcmp(key1,"\0")!=0&&strstr(cla1->name,key1)==NULL)continue;
				if(strcmp(key2,"\0")!=0&&strstr(cla1->name,key2)==NULL)continue;
				if(strcmp(key3,"\0")!=0&&strstr(cla1->name,key3)==NULL)continue;
				if(strcmp(key4,"\0")!=0&&strstr(cla1->name,key4)==NULL)continue;
				printf("\n        / 課程號:%s / 課程名:%s / 性質:%s / 學分:%s /\n\n",cla1->id,cla1->name,cla1->is_nessary,cla1->credit);
				for(tea1=cla1->teach;tea1!=NULL;tea1=tea1->next){
					printf("\n        / 授課老師工號:%s / 老師名:%s /\n",tea1->id,tea1->name);
				}
				printf("\n\n\n\n");
				}
				printf("\n----------------------------------------------------------------------------------------\n");
				printf("顯示完畢,按空格鍵返回");
				while(1){
					ch=getch();
					if(ch==' ')break;
					}	
		}
		case'6':{
			break;
		}
		default:{
			goto out8;
			break;
		}
	}
}

//選課開啓管理 
void Page1_3_3_3_open_or_close(){
	char ch;
Y:
	system("CLS");
	printf("\n\n\n\n\n\n\n       1:學生選課狀態:%s",Select_class_stu);
	printf("\n\n\n       2:老師開課狀態:%s",Select_class_teach);
	printf("\n\n\n                 選擇狀態前的序號進行狀態切換,或按空格鍵退出");
	ch=getch();
	switch(ch){
		case '1':{
			if(strcmp(Select_class_stu,"關閉")==0){
				strcpy(Select_class_stu,"開啓"); 
			}else{
				strcpy(Select_class_stu,"關閉");
			}
			printf("\n\n\n學生選課狀態%s",Select_class_stu);
			Sleep(1000);
			goto Y;
			break;
		}
		case '2':{
			if(strcmp(Select_class_teach,"關閉")==0){
				strcpy(Select_class_teach,"開啓"); 
			}else{
				strcpy(Select_class_teach,"關閉");
			}
			printf("\n\n\n老師開課狀態%s",Select_class_teach);
			Sleep(1000);
			goto Y;
			break;
		}
		case ' ':{
			printf("\n\n\n正在返回上一界面");
			Sleep(1000);
			break;
		}
		default:{
			goto Y;
			break;
		}
	}
}

//關於教務管理系統頁面(已完成) 
void Page1_4(){
	system("CLS");
	char ch;
	printf("\n\n\n");
	printf("                                                                                                                      \n");
	printf("                                     歡迎使用華南農業大學教務管理系統                                                 \n");
	printf("                                                                                                                      \n");
	printf("                                                                                                                      \n");
	printf("                                                                                                                      \n");
	printf("           該教務系統是由智慧帥氣的陳老師引導,並由陳緒棟同學設計新型管理系統,功能多,性能優。                       \n");
	printf("           不僅如此,還有感謝大家在製作過程中的幫助,纔能有如此好的新型教務管理系統!                                 \n");
	printf("                                                                                                                      \n");
	printf("                                         總設計師:陳老師                                                             \n");
	printf("                                                                                                                      \n");
	printf("                                          設計師:陳緒棟                                                              \n");
	printf("                                                                                                                      \n");
	printf("           鳴謝嘉賓:羅澤華,張洪,葉繁,蔡俊毅,餘嘉琪等等人士                                                        \n");
	printf("                                                                                                                      \n");
	printf("\n\n\n\n\n\n\n\n\n\n\n");
	printf("按任意鍵返回主頁面                                                                                                    \n");
	ch=getch();
} 

//幫助頁面(已完成) 
void Page1_5(){
	system("CLS");
	char ch;
	printf("\n\n\n");
	printf("                                                                                                                      \n");
	printf("                                     歡迎使用華南農業大學教務管理系統                                                 \n");
	printf("                                                                                                                      \n");
	printf("           如果您在操作過程中發現了一些無法解決的問題,請及時向我們反饋,我們將盡快回復!您的反饋就是對我們最好的幫助。\n");
	printf("                                                                                                                      \n");
	printf("                                                                                                                      \n");
	printf("                                       反饋電話:18938536892                                                          \n");
	printf("                                                                                                                      \n");
	printf("                                       反饋QQ:  2201961842                                                           \n");
	printf("                                                                                                                      \n");
	printf("                                       反饋郵箱:[email protected]                                                    \n");
	printf("                                                                                                                      \n");
	printf("            工作時間 :                                                                                               \n");
	printf("                      週一到週五 :上午8:00---下午5:00                                                              \n");
	printf("                      週末:       上午9:00---下午4:00                                                              \n");
	printf("                                                                                                                      \n");
	printf("\n\n\n\n\n\n\n\n\n");
	printf("按任意鍵返回                                                                                                          \n");
	ch=getch();
}

//提示選課是否開啓 
void Page1_6(){
	char ch;
	system("CLS");
	printf("\n\n\n\n\n                                                 學生選課:%s",Select_class_stu);
	printf("\n\n\n                                                 老師選課:%s",Select_class_teach);
	printf("\n\n\n\n\n\n\n\n\n\n\n\n\n\n按任意鍵退出"); 
	ch=getch();
}

//離開系統時的圖片界面(已完成) 
void Page1_end(){
char ch;
system("CLS");  
printf("\n\n\n\n\n\n                                    即將退出程序,請放大頁面欣賞退出形式!");
printf("\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n按任意鍵繼續");
ch=getch();
system("CLS");  
cout<<"                                                          "<<endl;
cout<<"                                              您已成功退出程序!                                         "<<endl;
cout<<"                                                            "<<endl;
cout<<"                                    歡迎您的再次使用,若有建議歡迎提出!                                 "<<endl;                              
cout<<"                                                                               .ZBBQ                                               "<<endl;                       
cout<<"                                                                              JBBBBBr                                              "<<endl;                        
cout<<"                                                                             XBQBQBBI                                              "<<endl;           
cout<<"                                                                           :DQgggQBBK                                              "<<endl;   
cout<<"                                                                          1MMbDEMQBBP                                              "<<endl;           
cout<<"                                                                         PBgPEdDMQQBd                                              "<<endl;          
cout<<"                                                                       .BBBMRggggMBQZ                                              "<<endl;           
cout<<"                                                                      5BQBBBQBBBMQQBd                                              "<<endl;          
cout<<"                                                                     bB1.  .71QBBQBBd                                              "<<endl;           
cout<<"                                                                    bZ.  .    .5BBBBq                                              "<<endl;           
cout<<"                                                                   qP  ...:.... LBBQ1                                              "<<endl;           
cout<<"                                                                  5b ..:...:..:i vBB.                                              "<<endl;          
cout<<"                                                                 sd. .........ri: bQ                                               "<<endl;           
cout<<"                                                                sg. .........ii::.Eg                                               "<<endl;          
cout<<"                                                               uQi .....:...iii::iMJ                                               "<<endl;           
cout<<"                                                   .:...:iYKEdEMBL .....:.:.:ii:r:vBv                                              "<<endl;           
cout<<"                                                 .KPririiivLjUB5 .....::...irr77:1QU2UJr:.                                         "<<endl;           
cout<<"                                             JPrir::.....    .:....:.....:rvvv7rrEJrr::r7J17:.      .rYJ7ririrrrri::...::...       "<<endl;           
cout<<"                                           iruSi....................:...iYs777ri1QBBQEXLi...rs2r.iI5Lri::::::...:.::::i:irrv17sJ   "<<endl;           
cout<<"                                         .PZv:...:.............:.......:iv7Lr7rJZq5gQBBBQZu: .:YSbL::::i:iii::::...:...::rr7v1PE.. "<<endl;           
cout<<"                             .r7v7552uqqPZq:.:............................:i7rYSKu.  .L1bRBgPr..::v77:::::::::iiiiri7rvr77LsXqXi:. "<<endl;          
cout<<"                    .7s2XPEggQdUriii::...:.:.......................:........:irL:jgMSv   .rUSY.....irvriirrrrv7rirr7777vLU5P2:     "<<endl;          
cout<<"             iKqgDQQBQgZZKP5qs  ..........:::.......................:.:......:rir:2QBQBD2    .....:.:r27ivqKPXXI52SSS5X5PKS.       "<<endl;           
cout<<"             gQBBBBQggqKII5bPv.........:............................:....:....:i::rJ..vXKi...:::.::i:.iJLXdJLvr7ri::iv77:.         "<<endl;           
cout<<"              SBBBBBQgDEEERBgi7:..:ir:ii:.........................:.:.:.......:.:.:..    .:.::::::::::.rK1v::::::.                 "<<endl;           
cout<<"                iPBBBBBBBBBBE:r7rrii::::.........................:.:....  ...:.................::i:i::::YSi..:::.. .               "<<endl;           
cout<<"                   sEBBBBBBBD.:irii.:7s..............................   ... ....................::::::::.IqJ:                      "<<endl;           
cout<<"                      rPBBBBBU...::::Ss.:....................:.::... .XQBBd1 ....:...:.:.......:::::::::.riY5X.                    "<<endl;           
cout<<"                          JPBBQdq1siiSv.i::.......:.............::: .MBBBPrZq ..:.....:.....:::::::::::::r:::1b:    ..... .        "<<endl;           
cout<<"                              7SPRRMED7.:i::.:...........:.:....:.. uBRRgMgBQ. ............:::::::::::::rviri.rXirYIUJLvi::::      "<<endl;          
cout<<"                                   .uP7.:::::.:...:.............:.. sBDKZgQQB:  .  ........:::iiiir7rriiYvrrvv7KXir::......        "<<endl;           
cout<<"                                     Xr..i::::::.:::...:...:........ gQI2KEBK r1juY7.......i:i7Y777v77iJuvvsvjSZi                  "<<endl;           
cout<<"                                     S2.:::::::.::::..................KPKXb2.sqIUu12I.....:ii:iv7rrrrL5ddKPZEPdj:.::.              "<<endl;           
cout<<"                                     .5.::::::::::......:..........:.       vZuusJuIr.....:i:::r7ir5KbIvrLv7r:                     "<<endl;           
cout<<"                                      2Y:::::...  . ..:::..Jv...:..::.......1dqIXqD1..:...::i:iiv1EXjrv7ri:...                     "<<endl;          
cout<<"                           .:i::.:... 7di.::. .rL2SSi..:.:iUr  ..:.:.:..:::r7KPEEb1. ..:.::irivSdPJiirvYuUjY77rri:.                "<<endl;           
cout<<"                           .iirrs12j7jSPK...7PBMd5Iu7:ii777iLs7:7I:::::.:ir7i7K2Y. ...::::7rrLQqJ..:........::iirri.               "<<endl;           
cout<<"                                .:::sKr.uu.:iYLLr:.:irrv7uS5UUj1JJirrr:::i7rrIY. ..::::::rrr7gP:..             ..iii.              "<<endl;           
cout<<"                                  ..Sv..7SJ7ii:.ir7r7rv7v7Y7777rrr7r7rrr7riiIY....::iirrriirERi .  ..                              "<<endl;           
cout<<"                                   .2. .LqJJJU2ILrr7r77vr7irrLv7rrr77v7i::i5s.:iii:irrr7iisgZY. ......                             "<<endl;          
cout<<"                                   :E5uiLZbSSI5Sqvri7r7r7rriririi:::i:rY5PBQv.::ii::iir7UPDU:........ .                            "<<endl;           
cout<<"                               :7vr75ERgDBQRgMEdZIvJLLvYLsLJLsJ11SKZDRQBQgSPgPSIs1jsjI5KU7   . .                                   "<<endl;           
cout<<"                              .i:..r7::r:  .:vuJ25qqPqbPbqdPbPZZDbPPqIUr:...71u2UYI1UYi                                            "<<endl;           
cout<<"                                   ..              . .                   . .                                                       "<<endl;
Sleep(2000);
}
//頁面區下分界線

//功能函數上分界線 

//初始化鏈表 
void Init_link(){
	L1->next=NULL;
	L2->next=NULL;
	L3->next=NULL;
} 

//按學號順序插入學生節點(已完成) 
Ptr_STU1 Insert1(Ptr_STU1 stud1){
	Ptr_STU1 p=L1->next,pre=L1; 
	stud1->cla=NULL;
	stud1->next=NULL;
	strcpy(stud1->dorid,Initdorid);
	strcpy(stud1->code,Initcode);
	strcpy(stud1->pnum,Initpnum);
	while((p!=NULL)&&(strcmp(p->id,stud1->id)<0)){
		pre=p;
		p=p->next;
	}
		stud1->next=pre->next;
		pre->next=stud1;
	return L1;
}

//按工號順序插入老師節點(已完成)
Ptr_TEA1 Insert2(Ptr_TEA1 teach1){
	Ptr_TEA1 p=L2->next,pre=L2; 
	teach1->cla=NULL;
	teach1->next=NULL;
	strcpy(teach1->code,Initcode);
	while((p!=NULL)&&(strcmp(p->id,teach1->id)<0)){
		pre=p;
		p=p->next;
	}
		teach1->next=pre->next;
		pre->next=teach1;
	return L2;
}

//按課程號插入課程 
Ptr_CLA1 Insert3(Ptr_CLA1 cla1){
	Ptr_CLA1 p=L3->next,pre=L3; 
	cla1->next=NULL;
	cla1->stu=NULL;
	cla1->teach=NULL;
	strcpy(cla1->rebuild,Initrebuild);
	strcpy(cla1->test_aver_score,Inittest_aver_score); 
	while((p!=NULL)&&(strcmp(p->id,cla1->id)<0)){
		pre=p;
		p=p->next;
	}
		cla1->next=pre->next;
		pre->next=cla1;
	return L3;
}

//刪除該學生的節點
Ptr_STU1 Delete_student(Ptr_STU1 stud1){
	Ptr_STU1 p=L1->next,pre=L1,t;
	while((p!=NULL)&&(strcmp(p->id,stud1->id)!=0)){
		pre=p;
		p=p->next;
	}
	if(p!=NULL){
		pre->next=p->next;
		free(p);
	}
	return L1; 
} 

//刪除該老師的節點
Ptr_TEA1 Delete_teacher(Ptr_TEA1 teach1){
	Ptr_TEA1 p=L2->next,pre=L2,t;
	while((p!=NULL)&&(strcmp(p->id,teach1->id)!=0)){
		pre=p;
		p=p->next;
	}
	if(p!=NULL){
		pre->next=p->next;
		free(p);
	}
	return L2; 
} 

//查找是否有學生賬號信息(已完成) 
Ptr_STU1 Search_stud1(char id[]){
	Ptr_STU1 p=L1->next;
	while(p!=NULL){
		if(strcmp(p->id,id)==0)break;
		p=p->next;
	}
	return p;
}

//查找是否有老師賬號信息(已完成) 
Ptr_TEA1 Search_teach1(char id[]){
	Ptr_TEA1 p=L2->next;
	while(p!=NULL){
		if(strcmp(p->id,id)==0)break;
		p=p->next;
	}
	return p;
}

//查找是否有該課程的信息信息(已完成) 
Ptr_CLA1 Search_cla1(char id[]){
	Ptr_CLA1 p=L3->next;
	while(p!=NULL){
		if(strcmp(p->id,id)==0)break;
		p=p->next;
	}
	return p;
}

//找某個老師的課程,成功返回1,失敗返回2 
bool Search_class_in_teach(Ptr_TEA1 tea,Ptr_CLA1 cla){
	Ptr_CLA1 p=tea->cla;
	while(p!=NULL){
		if(strcmp(p->id,cla->id)==0)break;
		p=p->next;
	}
	if(p==NULL)return false;
	else return true;
}

//找某個老師的課程,並返回該課程 
Ptr_CLA1 Search_class_in_teach_id(Ptr_TEA1 tea,char id[]){
	Ptr_CLA1 p=tea->cla;
	while(p!=NULL){
		if(strcmp(p->id,id)==0)break;
		p=p->next;
	}
	return p;
}

//查找老師是否在該課程中 
Ptr_TEA1 Search_teach_in_class_id(Ptr_CLA1 p,char id[]){
	Ptr_TEA1 teach1=p->teach;
	while(teach1!=NULL){
		if(strcmp(teach1->id,id)==0)break;
		teach1=teach1->next;
	}
	return teach1;
}

//查看學生是否在課程中 
Ptr_STU2 Search_stud_in_class_id(Ptr_CLA1 p,char id[]){
	Ptr_STU2 stu2=p->stu;
	while(stu2!=NULL){
		if(strcmp(stu2->id,id)==0)break;
		stu2=stu2->next;
	}
	return stu2;
}

//判斷該課程是否被該學生選 
bool Search_class_in_stud(Ptr_STU1 stud1,Ptr_CLA1 cla){
	Ptr_CLA2 p=stud1->cla;
	while(p!=NULL){
		if(strcmp(p->id,cla->id)==0)break;
		p=p->next;
	}
	if(p==NULL)return false;
	else return true;
}

//添加課程 給老師 
void Add_class_to_teach(Ptr_TEA1 teach,Ptr_CLA1 cla){
	Ptr_TEA1 newteach=(Ptr_TEA1)malloc(sizeof(TEACH1));
	Ptr_CLA1 newclass=(Ptr_CLA1)malloc(sizeof(CLASS1));
	Ptr_TEA1 ptea=(Ptr_TEA1)malloc(sizeof(TEACH1));
	Ptr_CLA1 pcla=(Ptr_CLA1)malloc(sizeof(CLASS1));
	ptea=cla->teach;
	pcla=teach->cla;
	*newteach=*teach;
	newteach->next=NULL;
	*newclass=*cla;
	newclass->next=NULL;
	if(ptea==NULL){
	cla->teach=newteach;
	}else{
		while(ptea->next!=NULL)ptea=ptea->next;
		ptea->next=newteach;
	}
	if(pcla==NULL){
		teach->cla=newclass;
	}else{
		while(pcla->next!=NULL)pcla=pcla->next;
		pcla->next=newclass;
	}
	
	
}
//功能函數下分界線

//文件操作上分界線

//建立學生主鏈
void Init_link_student(Ptr_STU1 L1){
	FILE*fp;
	char ch,ch2;
	fp=fopen("C:\\Users\\jackc\\Desktop\\教務管理系統文件\\student.txt","r"); 
	Ptr_STU1 p=L1->next,pre=L1,stu1=(Ptr_STU1)malloc(sizeof(STU1));
	stu1->next=NULL;
	stu1->cla=NULL; 
	while(fscanf(fp,"%s %s %s %s %s %s %s %s",stu1->id,stu1->code,stu1->clname,stu1->name,stu1->sex,stu1->age,stu1->dorid,stu1->pnum)!=EOF){
		ch=fgetc(fp);
		pre->next=stu1;
		pre=pre->next;
		stu1=(Ptr_STU1)malloc(sizeof(STU1));
		stu1->next=NULL;
		stu1->cla=NULL; 
	}
} 

//建立老師主鏈
void Init_link_teacher(Ptr_TEA1 L2){
	FILE*fp;
	char ch,ch2;
	fp=fopen("C:\\Users\\jackc\\Desktop\\教務管理系統文件\\teacher.txt","r"); 
	Ptr_TEA1 p=L2->next,pre=L2,teach1=(Ptr_TEA1)malloc(sizeof(TEACH1));
	teach1->cla=NULL;
	teach1->next=NULL;
	while(fscanf(fp,"%s %s %s %s %s",teach1->id,teach1->code,teach1->name,teach1->sex,teach1->age)!=EOF){
		ch=fgetc(fp);
		pre->next=teach1;
		pre=pre->next;
		teach1=(Ptr_TEA1)malloc(sizeof(TEACH1));
		teach1->cla=NULL;
		teach1->next=NULL;
	}
} 

//建立課程主鏈
void Init_link_class(Ptr_CLA1 L3){
	FILE*fp;
	char ch,ch2;
	fp=fopen("C:\\Users\\jackc\\Desktop\\教務管理系統文件\\class.txt","r"); 
	Ptr_CLA1 p=L3->next,pre=L3,cla1=(Ptr_CLA1)malloc(sizeof(CLASS1));
	cla1->next=NULL;
	cla1->stu=NULL;
	cla1->teach=NULL;
	while(fscanf(fp,"%s %s %s %s %s %s",cla1->id,cla1->name,cla1->test_aver_score,cla1->is_nessary,cla1->credit,cla1->rebuild)!=EOF){
		ch=fgetc(fp);
		pre->next=cla1;
		pre=pre->next;
		cla1=(Ptr_CLA1)malloc(sizeof(CLASS1));
		cla1->next=NULL;
		cla1->stu=NULL;
		cla1->teach=NULL;
	}
} 

//鏈接學生和課程的信息 
void Init_link_combine_student(Ptr_STU1 L1){
	FILE*fp;
	char ch1,ch2,ch3,ch4,ch;
	fp=fopen("C:\\Users\\jackc\\Desktop\\教務管理系統文件\\combinestudent.txt","r"); 
	Ptr_STU1 p;
	Ptr_CLA2 cla2=(Ptr_CLA2)malloc(sizeof(CLASS2)),list;
	cla2->next=NULL;
	cla2->teach=NULL;
	Ptr_TEA1 tea1=(Ptr_TEA1)malloc(sizeof(TEACH1));
	tea1->cla=NULL;
	tea1->next=NULL;
	char id[100]={'\0'};
	while(1){
		if((ch1=fgetc(fp))==EOF)return;
		if(ch1=='S'){
			ch=fgetc(fp);
			fscanf(fp,"%s",id);
			p=Search_stud1(id);
			list=p->cla;
			ch=fgetc(fp);
		while(1){
		if((ch1=fgetc(fp))==EOF)return;
			if(ch1=='C'){
				ch=fgetc(fp);
				fscanf(fp,"%s %s %s %s %s %s %s %s %s",cla2->id,cla2->name,cla2->is_nessary,cla2->gpa.uaual_score,cla2->gpa.test_score,cla2->gpa.rate,cla2->gpa.overall_score,cla2->credit,cla2->rebuild);
				ch=fgetc(fp);
				ch=fgetc(fp);
				ch=fgetc(fp);
				fscanf(fp,"%s %s %s %s %s",tea1->id,tea1->code,tea1->name,tea1->sex,tea1->age);
				ch=fgetc(fp);
				cla2->teach=tea1;
				if(p->cla==NULL){
				p->cla=cla2;
				list=p->cla;	
				}else{
					list->next=cla2;
					list=list->next;
				}
				cla2=(Ptr_CLA2)malloc(sizeof(CLASS2));
				cla2->next=NULL;
				cla2->teach=NULL;
				tea1=(Ptr_TEA1)malloc(sizeof(TEACH1));
				tea1->cla=NULL;
				tea1->next=NULL;
			}else if(ch1=='S'){
				fseek(fp,-1L,SEEK_CUR);
				break;
			}
		}
	}
	}
} 
 
//鏈接老師和課程的信息 
void Init_link_combine_teacher(Ptr_TEA1 L2){
	FILE*fp;
	char ch1,ch2,ch3,ch4,ch;
	fp=fopen("C:\\Users\\jackc\\Desktop\\教務管理系統文件\\combineteacher.txt","r"); 
	Ptr_TEA1 p;
	Ptr_CLA1 cla1=(Ptr_CLA1)malloc(sizeof(CLASS1)),list1;
	cla1->next=NULL;
	cla1->teach=NULL;
	cla1->stu=NULL;
	Ptr_STU2 stu2=(Ptr_STU2)malloc(sizeof(STU2)),list2;
	stu2->next=NULL;
	char id[100]={'\0'};
	while(1){
		if((ch1=fgetc(fp))==EOF)return;
		if(ch1=='T'){
			ch=fgetc(fp);
			fscanf(fp,"%s",id);
			p=Search_teach1(id);
			//if(p==NULL)printf("ok");
			list1=p->cla;
			ch=fgetc(fp);
		while(1){
		if((ch1=fgetc(fp))==EOF)return;
			if(ch1=='C'){
				ch=fgetc(fp);
				fscanf(fp,"%s %s %s %s %s %s",cla1->id,cla1->name,cla1->test_aver_score,cla1->is_nessary,cla1->credit,cla1->rebuild);
				list2=cla1->stu;
				ch=fgetc(fp);
				if(p->cla==NULL){
				p->cla=cla1;
				list1=p->cla;	
				}else{
					list1->next=cla1;
					list1=list1->next;
				}
				while(1){
				if((ch1=fgetc(fp))==EOF)return;
				if(ch1=='S'){
					ch=fgetc(fp);
					fscanf(fp,"%s %s %s %s %s %s %s %s %s",stu2->id,stu2->name,stu2->clname,stu2->gpa.uaual_score,stu2->gpa.test_score,stu2->gpa.rate,stu2->gpa.overall_score,stu2->rebuild,stu2->pnum);
					ch=fgetc(fp);
					if(cla1->stu==NULL){
						cla1->stu=stu2;
						list2=cla1->stu;
					}else{
						list2->next=stu2;
					}
						stu2=(Ptr_STU2)malloc(sizeof(STU2));
						stu2->next=NULL;
				}else if(ch1=='C'){
					cla1=(Ptr_CLA1)malloc(sizeof(CLASS1));
					cla1->next=NULL;
					cla1->teach=NULL;
					cla1->stu=NULL;
					fseek(fp,-1L,SEEK_CUR);
					break;
				}else if(ch1=='T'){
					cla1=(Ptr_CLA1)malloc(sizeof(CLASS1));
					cla1->next=NULL;
					cla1->teach=NULL;
					cla1->stu=NULL;
					fseek(fp,-1L,SEEK_CUR);
					break;
				}
			}
			}else if(ch1=='T'){
				fseek(fp,-1L,SEEK_CUR);
				break;
			}
		}
	}
	}
} 
 
//鏈接課程和老師的信息 
void Init_link_combine_class(Ptr_CLA1 L3){
	FILE*fp;
	char ch1,ch2,ch3,ch4,ch;
	fp=fopen("C:\\Users\\jackc\\Desktop\\教務管理系統文件\\combineclass.txt","r"); 
	Ptr_CLA1 p;
	Ptr_TEA1 tea1=(Ptr_TEA1)malloc(sizeof(TEACH1)),list;
	tea1->cla=NULL;
	tea1->next=NULL;
	char id[100]={'\0'};
	while(1){
		if((ch1=fgetc(fp))==EOF)return;
		if(ch1=='C'){
			ch=fgetc(fp);
			fscanf(fp,"%s",id);
			p=Search_cla1(id);
			list=p->teach;
			ch=fgetc(fp);
		while(1){
		if((ch1=fgetc(fp))==EOF)return;
			if(ch1=='T'){
				ch=fgetc(fp);
				fscanf(fp,"%s %s %s %s %s",tea1->id,tea1->code,tea1->name,tea1->sex,tea1->age);
				ch=fgetc(fp);
				if(p->teach==NULL){
				p->teach=tea1;
				list=p->teach;	
				}else{
					list->next=tea1;
					list=list->next;
				}
				tea1=(Ptr_TEA1)malloc(sizeof(TEACH1));
				tea1->cla=NULL;
				tea1->next=NULL;
			}else if(ch1=='C'){
				fseek(fp,-1L,SEEK_CUR);
				break;
			}
		}
	}
	}
} 
 
//從文件中寫出是否選課
void Init_choice_class(){
	FILE*fp;
	char ch,ch1;
	char a[10]={'\0'},b[10]={'\0'};
	int t=2;
	fp=fopen("C:\\Users\\jackc\\Desktop\\教務管理系統文件\\choiceclass.txt","r"); 
	while(t--){
		//printf("a");
	if((ch1=fgetc(fp))==EOF)return;
	else if(ch1=='S'){
		ch=fgetc(fp);
		fscanf(fp,"%s",Select_class_stu);
		ch=fgetc(fp);
	}else if(ch1=='T'){
		ch=fgetc(fp);
		fscanf(fp,"%s",Select_class_teach);
		ch=fgetc(fp);
	}
}
	fclose(fp);
}   
 
//讀出信息到學生文件中 
void Write_to_file_student(Ptr_STU1 L1){
	FILE*fp;
	fp=fopen("C:\\Users\\jackc\\Desktop\\教務管理系統文件\\student.txt","w"); 
	Ptr_STU1 p=L1->next,pre=L1;
	while(p!=NULL){
		fprintf(fp,"%s %s %s %s %s %s %s %s\n",p->id,p->code,p->clname,p->name,p->sex,p->age,p->dorid,p->pnum);
		p=p->next;
	}
	fclose(fp);
}

//讀出信息到教師文件中 
void Write_to_file_teacher(Ptr_TEA1 L2){
	FILE*fp;
	fp=fopen("C:\\Users\\jackc\\Desktop\\教務管理系統文件\\teacher.txt","w"); 
	Ptr_TEA1 p=L2->next,pre=L2;
	while(p!=NULL){
		fprintf(fp,"%s %s %s %s %s\n",p->id,p->code,p->name,p->sex,p->age);
		p=p->next;
	}
	fclose(fp);
}

//讀出信息到課程文件中 
void Write_to_file_class(Ptr_CLA1 L3){
	FILE*fp;
	fp=fopen("C:\\Users\\jackc\\Desktop\\教務管理系統文件\\class.txt","w"); 
	Ptr_CLA1 p=L3->next,pre=L3;
	while(p!=NULL){
		fprintf(fp,"%s %s %s %s %s %s\n",p->id,p->name,p->test_aver_score,p->is_nessary,p->credit,p->rebuild);
		p=p->next;
	}
	fclose(fp);
}

//保存學生和課程的信息 
void Write_to_file_combine_student(Ptr_STU1 L1){
	FILE*fp;
	fp=fopen("C:\\Users\\jackc\\Desktop\\教務管理系統文件\\combinestudent.txt","w"); 
	Ptr_STU1 p=L1->next,pre=L1;
	Ptr_CLA2 cla2;
	Ptr_TEA1 tea1;
	while(p!=NULL){
		fprintf(fp,"S %s\n",p->id);
		for(cla2=p->cla;cla2!=NULL;cla2=cla2->next){
			fprintf(fp,"C %s %s %s %s %s %s %s %s %s\n",cla2->id,cla2->name,cla2->is_nessary,cla2->gpa.uaual_score,cla2->gpa.test_score,cla2->gpa.rate,cla2->gpa.overall_score,cla2->credit,cla2->rebuild);
			tea1=cla2->teach;
			fprintf(fp,"T %s %s %s %s %s\n",tea1->id,tea1->code,tea1->name,tea1->sex,tea1->age);
		} 
		p=p->next;
	}
	fclose(fp);
}

//保存老師和課程的信息 
void Write_to_file_combine_teacher(Ptr_TEA1 L2){
	FILE*fp;
	fp=fopen("C:\\Users\\jackc\\Desktop\\教務管理系統文件\\combineteacher.txt","w"); 
	Ptr_TEA1 p=L2->next,pre=L2;
	Ptr_CLA1 cla1;
	Ptr_STU2 stu2;
	while(p!=NULL){
		fprintf(fp,"T %s\n",p->id);
		for(cla1=p->cla;cla1!=NULL;cla1=cla1->next){
			fprintf(fp,"C %s %s %s %s %s %s\n",cla1->id,cla1->name,cla1->test_aver_score,cla1->is_nessary,cla1->credit,cla1->rebuild);
			for(stu2=cla1->stu;stu2!=NULL;stu2=stu2->next){
			fprintf(fp,"S %s %s %s %s %s %s %s %s %s\n",stu2->id,stu2->name,stu2->clname,stu2->gpa.uaual_score,stu2->gpa.test_score,stu2->gpa.rate,stu2->gpa.overall_score,stu2->rebuild,stu2->pnum);	
			}
		} 
		p=p->next;
	}
	fclose(fp);
}

//保存課程和老師的信息
void Write_to_file_combine_class(Ptr_CLA1 L3){
	FILE*fp;
	fp=fopen("C:\\Users\\jackc\\Desktop\\教務管理系統文件\\combineclass.txt","w"); 
	Ptr_CLA1 p=L3->next,pre=L3;
	Ptr_TEA1 tea1;
	while(p!=NULL){
		fprintf(fp,"C %s\n",p->id);
		for(tea1=p->teach;tea1!=NULL;tea1=tea1->next){
			fprintf(fp,"T %s %s %s %s %s\n",tea1->id,tea1->code,tea1->name,tea1->sex,tea1->age);
		} 
		p=p->next;
	}
	fclose(fp);
}
//文件操作下分界線 

//將是否選課寫到文件 
void Write_to_file_choice_class(){
	FILE*fp;
	fp=fopen("C:\\Users\\jackc\\Desktop\\教務管理系統文件\\choiceclass.txt","w"); 
	fprintf(fp,"S %s\n",Select_class_stu);
	fprintf(fp,"T %s\n",Select_class_teach);
	fclose(fp);
}

//主函數區上分界線 
int main(){
	Init_link();
	Init_link_student(L1);
	Init_link_teacher(L2);
	Init_link_class(L3);
	Init_link_combine_student(L1); 
	Init_link_combine_teacher(L2);
	Init_link_combine_class(L3); 
	Init_choice_class(); 
	char choice;       							 
A:
	system("CLS");                                
	Page1();                                     //2:起始進入頁面(已完成) 
	choice=getch();   							 //通過輸入字符來選擇功能 
	switch(choice){                              //主分支 
	case '1':{
		Page1_1_regist();                        //學生登錄,還有點問題,先做好管理員查學生端再看 
		goto A;                                  //執行完學生操作後回到主頁面 
		break;
	}
	case '2':{
		Page1_2_regist();                        //老師登錄 
		goto A;
		break;
	}
	case '3':{
		Page1_3_regist();                         //5:管理員的一系列操作 
		goto A;                                    
		break;
	}
	case '4':{                                   //3:關於新教務管理系統(已完成) 
		Page1_4();
		goto A;
		break;
	}	
	case '5':{                                   //4:幫助頁面(已完成) 
		Page1_5();
		goto A;
		break;
	}
	case '6':{                                    //計劃是由管理員發的一些通知可以在這看 
		Page1_6();
		goto A;
		break;
	}
	default:{                                     //退出程序(已完成)
		Write_to_file_student(L1);                //讀出學生信息到文件中  
		Write_to_file_teacher(L2);                //讀出老師信息到文件中 
		Write_to_file_class(L3);                  //讀出課程信息到文件中 
		Write_to_file_combine_student(L1);        //保存老師和課程的信息 
		Write_to_file_combine_teacher(L2);        //保存課程和老師的信息
		Write_to_file_combine_class(L3);          //保存學生和課程的信息 
		Write_to_file_choice_class();             //是否開啓選課 
		Page1_end();
		system("CLS");
		break;
	}
	} 
	return 0;
} 
//主函數區下分界線 
 

 

 


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