1
This commit is contained in:
1
College_number.txt
Normal file
1
College_number.txt
Normal file
@@ -0,0 +1 @@
|
||||
10
|
||||
1
Major_number.txt
Normal file
1
Major_number.txt
Normal file
@@ -0,0 +1 @@
|
||||
8
|
||||
1
Student_number.txt
Normal file
1
Student_number.txt
Normal file
@@ -0,0 +1 @@
|
||||
7
|
||||
7
Students_data.txt
Normal file
7
Students_data.txt
Normal file
@@ -0,0 +1,7 @@
|
||||
20245865 <20><>һ <20><> <20><><EFBFBD><EFBFBD>ѧԺ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 2405
|
||||
20246188 <20><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD>ѧԺ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 2405
|
||||
20245963 <20><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD>ѧԺ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 2405
|
||||
20245866 <20><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD>˼<EFBFBD><CBBC><EFBFBD><EFBFBD>ѧԺ <20><><EFBFBD><EFBFBD>˼<EFBFBD><CBBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѧ 2466
|
||||
20247777 <20><><EFBFBD><EFBFBD> <20><> δ<><CEB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѧԺ <20>˹<EFBFBD><CBB9><EFBFBD><EFBFBD><EFBFBD> 2401
|
||||
20248888 <20><><EFBFBD><EFBFBD> <20><> δ<><CEB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѧԺ <20>˹<EFBFBD><CBB9><EFBFBD><EFBFBD><EFBFBD> 2401
|
||||
20243012 <20><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD>ѧԺ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 2405
|
||||
0
Teacher_number.txt
Normal file
0
Teacher_number.txt
Normal file
1
Teachers_data.txt
Normal file
1
Teachers_data.txt
Normal file
@@ -0,0 +1 @@
|
||||
10001 <20><><EFBFBD><EFBFBD> Ů <20><>ѧԺ Math 2405 10001
|
||||
10
colleges.txt
Normal file
10
colleges.txt
Normal file
@@ -0,0 +1,10 @@
|
||||
1000 <20><><EFBFBD><EFBFBD>ѧԺ
|
||||
2000 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѧԺ
|
||||
3000 <20><>ϢѧԺ
|
||||
4000 <20><>Ժ
|
||||
5000 <20>ķ<EFBFBD>ѧԺ
|
||||
6000 δ<><CEB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѧԺ
|
||||
7000 <20><><EFBFBD>̹<EFBFBD><CCB9><EFBFBD>ѧԺ
|
||||
8000 <20><>ѧԺ
|
||||
9000 ұ<><D2B1>ѧԺ
|
||||
10000 <20><><EFBFBD><EFBFBD>ѧԺ
|
||||
0
hunnan-nanhu.txt
Normal file
0
hunnan-nanhu.txt
Normal file
8
majors.txt
Normal file
8
majors.txt
Normal file
@@ -0,0 +1,8 @@
|
||||
1001 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 1000
|
||||
2002 <20>ƿ<EFBFBD> 2000
|
||||
3003 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 3000
|
||||
4004 <20><><EFBFBD><EFBFBD> 4000
|
||||
8005 <20><>ѧ 8000
|
||||
6006 <20>˹<EFBFBD><CBB9><EFBFBD><EFBFBD><EFBFBD> 6000
|
||||
9007 ұ<><D2B1> 9000
|
||||
1008 <20><><EFBFBD><EFBFBD>ý<EFBFBD>弼<EFBFBD><E5BCBC> 1000
|
||||
8
money.txt
Normal file
8
money.txt
Normal file
@@ -0,0 +1,8 @@
|
||||
20245865 50.00
|
||||
20245865 50.00
|
||||
20245865 0.00
|
||||
20245865 0.00
|
||||
20245865 0.00
|
||||
20245865 0.00
|
||||
20245865 48.00
|
||||
20245865 46.00
|
||||
0
requests.txt
Normal file
0
requests.txt
Normal file
2
room_change_request.txt
Normal file
2
room_change_request.txt
Normal file
@@ -0,0 +1,2 @@
|
||||
20245865 playZZZ IamML
|
||||
|
||||
0
student_password.txt
Normal file
0
student_password.txt
Normal file
0
teacher_password.txt
Normal file
0
teacher_password.txt
Normal file
2386
主函数.cpp
Normal file
2386
主函数.cpp
Normal file
@@ -0,0 +1,2386 @@
|
||||
#include<stdio.h>
|
||||
#include<stdlib.h>
|
||||
#include<string.h>
|
||||
#include<stdbool.h>
|
||||
#include<windows.h>
|
||||
#include<ctype.h>
|
||||
|
||||
#define COLLEGE_URL "colleges.txt"
|
||||
#define COLLEGE_NUMBER_URL "College_number.txt"
|
||||
#define MAJOR_URL "majors.txt"
|
||||
#define MAJOR_NUMBER_URL "Major_number.txt"
|
||||
#define ROOM_CHANGE_REQUESTS_URL "room_change_request.txt"
|
||||
#define ROOM_LEAVE_REQUESTS_URL "room_leave_request.txt"
|
||||
#define STUDENT_DATA_URL "Students_data.txt"
|
||||
#define STUDENT_NUMBER_URL "Student_number.txt"
|
||||
#define TEACHER_DATA_URL "Teachers_data.txt"
|
||||
#define TEACHER_NUMBER_URL "Teacher_number.txt"
|
||||
#define COURSE_NUMBER 4
|
||||
#define INIT_CLASS_NUMBER 10
|
||||
|
||||
#define DIRECT_ID 114514
|
||||
#define DIRECT_PASSWORD 1919810
|
||||
|
||||
#define REQUEST_URL "requests.txt"
|
||||
#define STUDENT_URL "students.txt"
|
||||
#define STUDENT_PASSWORD_URL "student_password.txt"
|
||||
#define TEACHER_PASSWORD_URL "teacher_password.txt"
|
||||
#define MONEY_URL "money.txt"
|
||||
#define BUS_RESERVE_COST 2
|
||||
#define FACILITY_RESERVE_COST 5
|
||||
|
||||
#define P 10007
|
||||
#define Q 10009//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define E 65537 //<2F><>Կ <20><>PHI(N)<29><><EFBFBD><EFBFBD>
|
||||
#define N (P * Q)
|
||||
#define PHI ((P - 1) * (Q - 1))
|
||||
#define D 35910881//Dʹ<44><CAB9>(E * D) % PHI = 1
|
||||
|
||||
#define BUS_ROUTE_ONE "<22>Ϻ<EFBFBD>-<2D><><EFBFBD><EFBFBD>.txt"
|
||||
#define BUS_ROUTE_TWO "<22><><EFBFBD><EFBFBD>-<2D>Ϻ<EFBFBD>.txt"
|
||||
#define TABLE_SIZE 10003
|
||||
|
||||
int INDEX = 1;
|
||||
|
||||
typedef struct _Courses{
|
||||
float credit; // ѧ<><D1A7>
|
||||
char name[20]; // <20>γ<EFBFBD><CEB3><EFBFBD>
|
||||
}Course;
|
||||
typedef struct _Scores{
|
||||
int Math;
|
||||
int English;
|
||||
int Computer;
|
||||
int Politics;
|
||||
}Scores;
|
||||
typedef struct _Student {
|
||||
int Class; // <20><>λ<EFBFBD><CEBB><EFBFBD><EFBFBD>
|
||||
char gender[3];
|
||||
int id;
|
||||
int dorm_index; // (6λ<36><CEBB><EFBFBD><EFBFBD>:¥<><C2A5>+AB+<2B><><EFBFBD>Һ<EFBFBD>+<2B><>λ<EFBFBD><CEBB>)
|
||||
double money;
|
||||
double GPA;
|
||||
long long password;
|
||||
char name[10];
|
||||
char major[20];
|
||||
char college[23];
|
||||
Scores scores;
|
||||
struct _Student *next;
|
||||
}Student;
|
||||
typedef struct _Teacher {
|
||||
char gender[3];
|
||||
int id;
|
||||
int teaching_class; // <20><>λ<EFBFBD><CEBB><EFBFBD><EFBFBD>
|
||||
long long password;
|
||||
char name[10];
|
||||
char course[20];
|
||||
char college[23];
|
||||
struct _Teacher *next;
|
||||
}Teacher;
|
||||
typedef struct _Colleges{
|
||||
int id;
|
||||
char college_name[23];
|
||||
}Colleges;
|
||||
typedef struct _Major{
|
||||
int college_id; // <20>洢<EFBFBD><E6B4A2>רҵ<D7A8><D2B5><EFBFBD><EFBFBD>ѧԺ<D1A7>ı<EFBFBD><C4B1><EFBFBD>
|
||||
int id;//:1001/1000*1000
|
||||
char name[23];
|
||||
}Major;
|
||||
typedef struct TreeNode{
|
||||
Student* student;
|
||||
struct TreeNode* left;
|
||||
struct TreeNode* right;
|
||||
}TreeNode;
|
||||
typedef struct _BusSchedule{
|
||||
int index;
|
||||
char date[40]; // <20><EFBFBD><E0B3B5><EFBFBD><EFBFBD>
|
||||
char time[40]; // <20>ʱ<E0B3B5><CAB1>
|
||||
}BusSchedule;
|
||||
typedef struct _siteSchedule{
|
||||
char siteType[100]; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
char date[100]; // <20><><EFBFBD>ؿ<EFBFBD>ԤԼ<D4A4><D4BC><EFBFBD><EFBFBD>
|
||||
char time[100]; // <20><><EFBFBD>ؿ<EFBFBD>ԤԼʱ<D4BC><CAB1>
|
||||
}siteSchedule;
|
||||
typedef struct _HashTable {
|
||||
Student* students[TABLE_SIZE];
|
||||
}HashTable;
|
||||
|
||||
|
||||
//<2F><>ϣ<EFBFBD><CFA3>
|
||||
int hashFunction(int id);
|
||||
HashTable* createHashTable(void);
|
||||
bool insertStudent(HashTable* table, Student* student);
|
||||
Student* findStudent(HashTable* table, int id);
|
||||
bool deleteStudent(HashTable* table, int id);
|
||||
bool freeHashTable(HashTable* table);
|
||||
|
||||
//<2F><><EFBFBD><EFBFBD>ѧԺ
|
||||
void Admin_College(int* number);
|
||||
void Write_File_College_Number(int number);
|
||||
void Read_File_College_Number(int*number);
|
||||
Colleges* Read_College(int college_number);
|
||||
void Print_College(Colleges* colleges, int college_number);
|
||||
//<2F><><EFBFBD><EFBFBD>רҵ
|
||||
void Read_File_Major_Number(int *major_number);
|
||||
void Admin_Major(Colleges* colleges, int college_number,int* major_number);
|
||||
void Write_File_Major_Number(int number);
|
||||
Major* Read_Major(int major_number);
|
||||
//<2F>鲢<EFBFBD><E9B2A2><EFBFBD><EFBFBD>
|
||||
int getCourseScore(Scores* scores, const char* courseName);// <20><><EFBFBD>ݿγ<DDBF><CEB3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҷ<EFBFBD>Ӧ<EFBFBD>ijɼ<C4B3>
|
||||
int compareStudents(Student* s1, Student* s2, const char* courseName);// <20>ȽϺ<C8BD><CFBA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݿγ<DDBF><CEB3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
void merge(Student* array, int left, int mid, int right, const char* courseName);// <20>鲢<EFBFBD><E9B2A2><EFBFBD>ϲ<F2A3BABA><CFB2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>õ<EFBFBD><C3B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
void mergeSort(Student* array, int left, int right, const char* courseName);// <20>鲢<EFBFBD><E9B2A2><EFBFBD><EFBFBD><EFBFBD>ݹ麯<DDB9><E9BAAF>
|
||||
///<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӳ<EFBFBD><D3B2>洢ѧ<E6B4A2><D1A7><EFBFBD><EFBFBD>Ϣ
|
||||
TreeNode* insert(TreeNode* root, Student* student);//<2F><><EFBFBD><EFBFBD><EFBFBD>ڵ㵽<DAB5><E3B5BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
TreeNode* createBinaryTree(Student* students, int size);// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
void printInOrder(TreeNode* node);// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӡ<EFBFBD><D3A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
void freeTree(TreeNode* node);// <20>ͷŶ<CDB7><C5B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڴ<EFBFBD>
|
||||
TreeNode* find(TreeNode* root, int id);// <20><><EFBFBD>ҽڵ<D2BD>
|
||||
void sortByCourseScore(Student* students, int size, const char* courseName);// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD>Ŀ<EFBFBD>ɼ<EFBFBD><C9BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѧ<EFBFBD><D1A7><EFBFBD><EFBFBD>Ϣ
|
||||
bool select_college(Colleges* colleges,int college_number,char* college);//<2F>ڸ<EFBFBD><DAB8><EFBFBD>ѧԺ<D1A7><D4BA>ѡ<EFBFBD><D1A1>ѧԺ<D1A7><D4BA>רҵ
|
||||
bool select_major(Colleges* colleges,int college_number,Major* majors,int major_number,char* college,char* major);
|
||||
void Read_File_Student_Number(int* student_number);//<2F><>ȡ<EFBFBD><C8A1>ǰ<EFBFBD><C7B0>ѧ<EFBFBD><D1A7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
//<2F><>ʼ<EFBFBD><CABC>ѧ<EFBFBD><D1A7>,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>
|
||||
void inputStudentInfo(Colleges* colleges,int college_number,Major* majors,int major_number,int* student_number);
|
||||
void Write_File_Student_Number(int student_number);//<2F><><EFBFBD><EFBFBD>ѧ<EFBFBD><D1A7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
Student* Read_Students(int student_number);//<2F><><EFBFBD>ļ<EFBFBD><C4BC>ж<EFBFBD>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD>µ<EFBFBD>Students<74><73><EFBFBD><EFBFBD>
|
||||
void Undefined_Inital_Stu(Student* students,int student_number);
|
||||
void Read_File_Teacher_Number(int* teacher_number);//<2F><>ȡ<EFBFBD><C8A1>ǰ<EFBFBD>Ľ<EFBFBD>ʦ<EFBFBD><CAA6><EFBFBD><EFBFBD>
|
||||
//<2F><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD>ʦ,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>
|
||||
void inputTeacherInfo(Colleges* colleges,Course courses[],int college_number,int* teacher_number);
|
||||
void Write_File_Teacher_Number(int teacher_number);//<2F><><EFBFBD>½<EFBFBD>ʦ<EFBFBD><CAA6><EFBFBD><EFBFBD>
|
||||
Teacher* Read_Teachers(int teacher_number);//<2F><><EFBFBD>ļ<EFBFBD><C4BC>ж<EFBFBD>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD>µ<EFBFBD>Teachers<72><73><EFBFBD><EFBFBD>
|
||||
//<2F><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
void Inital_password(Student* students,int student_number,Teacher* teachers,int teacher_number);
|
||||
//<2F><>ʦ<EFBFBD><CAA6>¼
|
||||
bool Teacher_Login(Teacher* teachers,Teacher *target_teacher,int teacher_number);
|
||||
//<2F><>ʦ¼<CAA6><C2BC><EFBFBD>ɼ<EFBFBD>
|
||||
void Teacher_Import_Grade(Student*students,int student_number,Teacher *teacher,int teacher_number,Course courses[]);
|
||||
//<2F><><EFBFBD><EFBFBD>ij<EFBFBD><C4B3>ѧ<EFBFBD><D1A7><EFBFBD><EFBFBD>ǰ<EFBFBD><C7B0>GPA
|
||||
double Total_GPA_Calculation(Student* student,Course courses[],int student_number);
|
||||
//<2F><><EFBFBD><EFBFBD>ij<EFBFBD><C4B3>ѧ<EFBFBD><D1A7><EFBFBD><EFBFBD>GPA
|
||||
void Update_GPA(Student* student,Course courses[], int student_number);
|
||||
//ѧ<><D1A7><EFBFBD>鿴<EFBFBD>ɼ<EFBFBD><C9BC><EFBFBD>GPA
|
||||
void Student_Watch_Grade(Student* student);
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Һ<EFBFBD>
|
||||
void assignDormitory(Student* students, int numStudents);
|
||||
bool Student_Login(Student* students,Student *target_student,int student_number);
|
||||
//<2F><>ȡѧ<C8A1><D1A7><EFBFBD>ɼ<EFBFBD><C9BC>ļ<EFBFBD>
|
||||
void Students_Read_Grade_File(TreeNode* root,int student_number);
|
||||
//ȡģ<C8A1><C4A3><EFBFBD><EFBFBD>
|
||||
//<2F><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD>ģ
|
||||
// <20>ȶԵ<C8B6><D4B5><EFBFBD>ȡģ<C8A1><C4A3>С <20>ٶ<EFBFBD>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD>С ֱ<><D6B1>ָ<EFBFBD><D6B8>Ϊ0
|
||||
long long quick_pow(long long base, long long power, long long mod);
|
||||
// <20><><EFBFBD>ܺ<EFBFBD><DCBA><EFBFBD>
|
||||
long long encrypt(long long original_password);
|
||||
// <20><><EFBFBD>ܺ<EFBFBD><DCBA><EFBFBD>
|
||||
long long decrypt(long long ciphertext);
|
||||
void Read_Password(Student*students,int student_number,Teacher*teachers,int teacher_number,TreeNode* root);
|
||||
//<2F><><EFBFBD><EFBFBD>ϵͳ
|
||||
void Read_Money(Student*students,int student_number,Teacher*teachers,int teacher_number,TreeNode* root);
|
||||
void Moneys_System(Student* student,int student_number,BusSchedule*b1,BusSchedule*b2,int bn1,int bn2);
|
||||
//<2F><EFBFBD><E0B3B5><EFBFBD><EFBFBD>
|
||||
void inputBusSchedule(BusSchedule *schedule);
|
||||
void saveBusScheduleToFile(const BusSchedule *schedule,const char *filename,int counter);
|
||||
int Counter(const char *filename);
|
||||
BusSchedule* Print_Bus_Conditions(const char *filename);
|
||||
//<2F><><EFBFBD>ع<EFBFBD><D8B9><EFBFBD>
|
||||
void inputSiteSchedule(siteSchedule *schedule);
|
||||
void saveSiteScheduleToFile(const siteSchedule *schedule,const char *filename,int counter);
|
||||
|
||||
|
||||
|
||||
|
||||
int main()
|
||||
{
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
int college_number = 0;
|
||||
bool first=false;
|
||||
int major_number = 0;
|
||||
Colleges* colleges;
|
||||
Major* majors;
|
||||
BusSchedule *bus_schedule1;
|
||||
BusSchedule *bus_schedule2;
|
||||
BusSchedule schedule;
|
||||
int student_number=0;
|
||||
Student* students;
|
||||
int teacher_number=0;
|
||||
Teacher* teachers;
|
||||
TreeNode* root;
|
||||
Student target_student;
|
||||
target_student.money=48.0;
|
||||
//<2F>ٶ<EFBFBD>ֻ<EFBFBD><D6BB>4<EFBFBD>ſγ̣<CEB3><CCA3>ֱ<EFBFBD>Ϊ<EFBFBD><CEAA>Math, English, Computer,Politics
|
||||
Course courses[]={{5,"Math"}, {3.5,"English"},{3,"Computer"},{3,"Politics"}};
|
||||
//<2F><>¼ϵͳ
|
||||
printf("<EFBFBD><EFBFBD>ӭ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\n");
|
||||
Sleep(2000);
|
||||
system("cls");
|
||||
start:
|
||||
printf("<EFBFBD>״<EFBFBD><EFBFBD>Զ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ա<EFBFBD>˵<EFBFBD>½ϵͳ:\n1.<2E><><EFBFBD><EFBFBD>ѧԺ<D1A7><D4BA>רҵģ<D2B5><C4A3>\n2.<2E><><EFBFBD><EFBFBD>ѧ<EFBFBD><D1A7><EFBFBD>ͽ<EFBFBD>ʦ<EFBFBD><CAA6>Ϣ\n3.<2E><><EFBFBD>ð<C3B0><E0B3B5><EFBFBD><EFBFBD>\n\n"
|
||||
"<EFBFBD><EFBFBD>1<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʦ<EFBFBD>˵<EFBFBD>¼ϵͳ:\n1.¼<><C2BC><EFBFBD>ɼ<EFBFBD>\n2.<2E><>ѯ<EFBFBD>ɼ<EFBFBD>\n3.<2E>ijɼ<C4B3>\n4.<2E><EFBFBD><DEB8><EFBFBD><EFBFBD><EFBFBD>\n5.չʾ<D5B9>ɼ<EFBFBD>\n6.<2E>˳<EFBFBD><CBB3><EFBFBD>¼\n\n"
|
||||
"<EFBFBD><EFBFBD>2<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѧ<EFBFBD><EFBFBD><EFBFBD>˵<EFBFBD>¼ϵͳ:\n1.<2E>γ̳ɼ<CCB3>\n2.<2E><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\n3.<2E><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ԤԼϵͳ\n4.<2E><EFBFBD><DEB8><EFBFBD><EFBFBD><EFBFBD>\n5.<2E>˳<EFBFBD>ϵͳ\n\n"
|
||||
"<EFBFBD><EFBFBD>3<EFBFBD><EFBFBD><EFBFBD>뵼Ա<EFBFBD>˵<EFBFBD>½ϵͳ\n1.<2E><><EFBFBD><EFBFBD>У<EFBFBD><D0A3>ס<EFBFBD><D7A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\n\n<EFBFBD><EFBFBD>4<EFBFBD>˳<EFBFBD>ϵͳ\n\n");
|
||||
www:
|
||||
printf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˳<EFBFBD><EFBFBD><EFBFBD><EFBFBD>01234<EFBFBD><EFBFBD><EFBFBD>״<EFBFBD>ѡ<EFBFBD><EFBFBD><EFBFBD>Զ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>й<EFBFBD><EFBFBD><EFBFBD>Ա<EFBFBD><EFBFBD>ʼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
int login_choice;
|
||||
if(!first)
|
||||
{
|
||||
system("pause");
|
||||
system("cls");
|
||||
printf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ա<EFBFBD>˵<EFBFBD>½ϵͳ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڲ<EFBFBD><EFBFBD><EFBFBD>Ŀ<EFBFBD>Ĵ˴<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>룩\n");
|
||||
printf(("1.<2E><><EFBFBD><EFBFBD>ѧԺ<D1A7><D4BA>רҵģ<D2B5><C4A3>\n2.<2E><><EFBFBD><EFBFBD>ѧ<EFBFBD><D1A7><EFBFBD>ͽ<EFBFBD>ʦ<EFBFBD><CAA6>Ϣ\n3.<2E><><EFBFBD>ð<C3B0><E0B3B5><EFBFBD><EFBFBD>\n"));
|
||||
printf("<EFBFBD><EFBFBD><EFBFBD>ڹ<EFBFBD><EFBFBD><EFBFBD>Աϵͳ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ԣ<EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><EFBFBD><EFBFBD>ζ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ<EFBFBD><EFBFBD><EFBFBD>г<EFBFBD>ʼ<EFBFBD><EFBFBD>\n");
|
||||
//<2F><><EFBFBD><EFBFBD>Ա<EFBFBD><D4B1>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѧ<EFBFBD><D1A7><EFBFBD><EFBFBD>ѧԺ<D1A7><D4BA>רҵģ<D2B5><C4A3>
|
||||
//<2F>ȶ<EFBFBD>ȡ<EFBFBD>Ѵ<EFBFBD><D1B4><EFBFBD>ѧԺ<D1A7><D4BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѧԺ
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD>ӵ<EFBFBD>ѧԺ<D1A7><D4BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ԭ<EFBFBD><D4AD>ѧԺ<D1A7><D4BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӣ<EFBFBD><D3A3>õ<EFBFBD>ѧԺ<D1A7><D4BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>
|
||||
printf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѧԺ<EFBFBD><EFBFBD>רҵģ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\n");
|
||||
system("pause");
|
||||
system("cls");
|
||||
printf("1.<2E><><EFBFBD><EFBFBD>ѧԺ<D1A7><D4BA>\n");
|
||||
printf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѧԺ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ÿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><EFBFBD>ѧԺ<EFBFBD><EFBFBD>һ<EFBFBD>λس<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ctrl+Zֹͣ<CDA3><D6B9><EFBFBD>룩<EFBFBD><EBA3A9>\n");
|
||||
Read_File_College_Number(&college_number);
|
||||
Admin_College(&college_number);
|
||||
Write_File_College_Number(college_number);
|
||||
//<2F><>ѧԺ<D1A7><D4BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>飬<EFBFBD><E9A3AC><EFBFBD>պ<EFBFBD>ѧ<EFBFBD><D1A7><EFBFBD><EFBFBD>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD>ѡ<EFBFBD><D1A1>
|
||||
colleges = Read_College(college_number);
|
||||
printf("ѧԺ<EFBFBD><EFBFBD><EFBFBD>ý<EFBFBD><EFBFBD><EFBFBD>\n");
|
||||
Sleep(500);
|
||||
system("cls");
|
||||
printf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Աϵͳ<EFBFBD><EFBFBD>2.<2E><><EFBFBD><EFBFBD>רҵ<D7A8><D2B5>\n");
|
||||
Print_College(colleges,college_number);
|
||||
printf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѧԺid<EFBFBD><EFBFBD>רҵ<EFBFBD><EFBFBD><EFBFBD>ƣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>س<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ctrl+Zֹͣ<CDA3><D6B9><EFBFBD>룩<EFBFBD><EBA3A9>\n");
|
||||
Read_File_Major_Number(&major_number);
|
||||
Admin_Major(colleges,college_number,&major_number);
|
||||
Write_File_Major_Number(major_number);
|
||||
//<2F><>רҵ<D7A8><D2B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>飬<EFBFBD><E9A3AC><EFBFBD>պ<EFBFBD>ѧ<EFBFBD><D1A7><EFBFBD><EFBFBD>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD>ѡ<EFBFBD><D1A1>
|
||||
majors = Read_Major(major_number);
|
||||
printf("רҵ<EFBFBD><EFBFBD><EFBFBD>ý<EFBFBD><EFBFBD><EFBFBD>\n");
|
||||
Sleep(500);
|
||||
system("cls");
|
||||
Sleep(500);
|
||||
|
||||
printf("<EFBFBD><EFBFBD>ʼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ա<EFBFBD><EFBFBD>Ϣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>\n");
|
||||
Sleep(1000);
|
||||
system("cls");
|
||||
//ѧ<><D1A7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD>
|
||||
Read_File_Student_Number(&student_number);
|
||||
inputStudentInfo(colleges,college_number,majors,major_number,&student_number);
|
||||
Write_File_Student_Number(student_number);
|
||||
Sleep(500);
|
||||
system("cls");
|
||||
Sleep(500);
|
||||
//<2F><>ʦ<EFBFBD><CAA6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD>
|
||||
Read_File_Teacher_Number(&teacher_number);
|
||||
inputTeacherInfo(colleges,courses,college_number,&teacher_number);
|
||||
Write_File_Teacher_Number(teacher_number);
|
||||
students = Read_Students(student_number);
|
||||
Undefined_Inital_Stu(students,student_number);
|
||||
assignDormitory(students,student_number);
|
||||
|
||||
teachers = Read_Teachers(teacher_number);
|
||||
//<2F><>ʼ<EFBFBD><CABC>ջ<EFBFBD><D5BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
Inital_password(students,student_number,teachers,teacher_number);
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD><CFA2><EFBFBD>ý<EFBFBD><C3BD><EFBFBD>
|
||||
Sleep(500);
|
||||
system("cls");
|
||||
Sleep(500);
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
root = createBinaryTree(students,student_number);
|
||||
//<2F><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD>ֶ<EFBFBD><D6B6><EFBFBD><EFBFBD>ù<EFBFBD><C3B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
Read_Password(students,student_number,teachers,teacher_number,root);
|
||||
//<2F><>ȡ<EFBFBD>ɼ<EFBFBD><C9BC>ļ<EFBFBD><C4BC><EFBFBD>Ϣ
|
||||
Students_Read_Grade_File(root,student_number);
|
||||
Read_Money(students,student_number,teachers,teacher_number,root);
|
||||
printf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\n");
|
||||
//<2F><EFBFBD><E0B3B5><EFBFBD><EFBFBD>
|
||||
int choice_buses;
|
||||
printf("<EFBFBD>Ϻ<EFBFBD> --> <20><><EFBFBD>ϣ<EFBFBD>\n");
|
||||
bus_schedule1=Print_Bus_Conditions(BUS_ROUTE_ONE);
|
||||
|
||||
printf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD> --> <20>Ϻ<EFBFBD><CFBA><EFBFBD>\n");
|
||||
bus_schedule2=Print_Bus_Conditions(BUS_ROUTE_TWO);
|
||||
|
||||
while (true)
|
||||
{
|
||||
printf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ã<EFBFBD>\n");
|
||||
printf("1. <20>Ϻ<EFBFBD> --> <20><><EFBFBD><EFBFBD>\n");
|
||||
printf("2. <20><><EFBFBD><EFBFBD> --> <20>Ϻ<EFBFBD>\n");
|
||||
printf("3. <20>˳<EFBFBD>\n");
|
||||
printf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ţ<EFBFBD>");
|
||||
scanf("%d",&choice_buses);
|
||||
if (choice_buses==3)
|
||||
{
|
||||
break;
|
||||
}
|
||||
if(choice_buses==1)
|
||||
{
|
||||
inputBusSchedule(&schedule);
|
||||
int NanhuCounter=Counter(BUS_ROUTE_ONE)+1;
|
||||
saveBusScheduleToFile(&schedule,BUS_ROUTE_ONE,NanhuCounter);
|
||||
Sleep(1000);
|
||||
system("cls");
|
||||
}
|
||||
else if(choice_buses==2)
|
||||
{
|
||||
inputBusSchedule(&schedule);
|
||||
int HunnanCounter=Counter(BUS_ROUTE_TWO)+1;
|
||||
saveBusScheduleToFile(&schedule,BUS_ROUTE_TWO,HunnanCounter);
|
||||
Sleep(1000);
|
||||
system("cls");
|
||||
}
|
||||
else
|
||||
{
|
||||
printf("<EFBFBD><EFBFBD>Ч<EFBFBD><EFBFBD>ѡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>롣\n");
|
||||
Sleep(1000);
|
||||
system("cls");
|
||||
}
|
||||
}
|
||||
first=true;
|
||||
Sleep(1000);
|
||||
system("cls");
|
||||
goto start;
|
||||
|
||||
}
|
||||
scanf("%d",&login_choice);
|
||||
system("cls");
|
||||
|
||||
switch(login_choice)
|
||||
{
|
||||
case 1:
|
||||
//<2F><>ʦ<EFBFBD><CAA6>¼
|
||||
printf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʦ<EFBFBD>˵<EFBFBD>¼ϵͳ\n");
|
||||
Teacher target_teacher;
|
||||
if(Teacher_Login(teachers,&target_teacher,teacher_number))
|
||||
{
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʦ<EFBFBD><CAA6>Ϣ
|
||||
printf("<EFBFBD><EFBFBD><EFBFBD>ţ<EFBFBD>%08d\n<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>%s\n<EFBFBD>Ա<EFBFBD><EFBFBD><EFBFBD>%s\n<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѧԺ<EFBFBD><EFBFBD>%s\n<EFBFBD><EFBFBD>ѧ<EFBFBD>γ̣<EFBFBD>%s\n<EFBFBD>ڿΰ༶<EFBFBD><EFBFBD>%d\n",
|
||||
target_teacher.id,target_teacher.name,target_teacher.gender,
|
||||
target_teacher.college,target_teacher.course,target_teacher.teaching_class);
|
||||
system("pause");
|
||||
system("cls");
|
||||
asd:
|
||||
printf("<EFBFBD><EFBFBD>ѡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>\n1.¼<><C2BC><EFBFBD>ɼ<EFBFBD>\n2.<2E><>ѯ<EFBFBD>ɼ<EFBFBD>\n3.<2E>ijɼ<C4B3>\n4.<2E><EFBFBD><DEB8><EFBFBD><EFBFBD><EFBFBD>\n5.չʾ<D5B9>ɼ<EFBFBD>\n6.<2E>˳<EFBFBD><CBB3><EFBFBD>¼\n");
|
||||
int bb;
|
||||
scanf("%d",&bb);
|
||||
if(bb==1)
|
||||
{
|
||||
//<2F><>ʦ¼<CAA6><C2BC><EFBFBD>ɼ<EFBFBD>
|
||||
bool jutice = true;
|
||||
while(true)
|
||||
{
|
||||
printf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>%d<><64><EFBFBD><EFBFBD>%s<>ɼ<EFBFBD>¼<EFBFBD>루1<EBA3A8><31>0<EFBFBD><30><EFBFBD><EFBFBD>",target_teacher.teaching_class,target_teacher.course);
|
||||
int choice_grade_enter;
|
||||
scanf("%d",&choice_grade_enter);
|
||||
if(choice_grade_enter==0)
|
||||
{
|
||||
jutice=false;
|
||||
break;
|
||||
}
|
||||
else if(choice_grade_enter==1)
|
||||
{
|
||||
jutice=true;
|
||||
break;
|
||||
}
|
||||
else
|
||||
{
|
||||
printf("\n<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>룡\n");
|
||||
continue;
|
||||
}
|
||||
}
|
||||
system("cls");
|
||||
if(jutice)
|
||||
{
|
||||
printf("ѧ<EFBFBD><EFBFBD><EFBFBD>ɼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϵͳ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>......\n");
|
||||
Sleep(1000);
|
||||
printf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̰༶<EFBFBD><EFBFBD>ѧ<EFBFBD><EFBFBD><EFBFBD>ɼ<EFBFBD>¼<EFBFBD><EFBFBD>......\n");
|
||||
Sleep(2000);
|
||||
system("cls");
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD>γ<EFBFBD><CEB3>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڴ洢ѧ<E6B4A2><D1A7><EFBFBD>ɼ<EFBFBD>
|
||||
//<2F>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD>ʽΪ<CABD><CEAA><EFBFBD>γ<EFBFBD><CEB3><EFBFBD><EFBFBD>༶.txt<78><74><EFBFBD><EFBFBD>Math2405.txt<78><74>
|
||||
//<2F>洢<EFBFBD>ɼ<EFBFBD><C9BC><EFBFBD>ʽΪ<CABD><CEAA>ѧ<EFBFBD><D1A7>ID(<28>ո<EFBFBD>)<29>ɼ<EFBFBD>(<28><><EFBFBD><EFBFBD>)
|
||||
Teacher_Import_Grade(students,student_number,&target_teacher,teacher_number,courses);
|
||||
//ֹͣ¼<D6B9><C2BC><EFBFBD>ɼ<EFBFBD>
|
||||
}
|
||||
}
|
||||
else if(bb==2)
|
||||
{
|
||||
//<2F><>ʦ<EFBFBD><CAA6>ѯ<EFBFBD>ɼ<EFBFBD>
|
||||
printf("ѧ<EFBFBD><EFBFBD><EFBFBD>ɼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϵͳ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>......\n");
|
||||
Sleep(1000);
|
||||
printf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̰༶<EFBFBD><EFBFBD>ѧ<EFBFBD><EFBFBD><EFBFBD>ɼ<EFBFBD><EFBFBD><EFBFBD>ѯ......\n");
|
||||
Sleep(2000);
|
||||
system("cls");
|
||||
printf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><EFBFBD>ѯ<EFBFBD>ɼ<EFBFBD><EFBFBD><EFBFBD>ѧ<EFBFBD><EFBFBD>ID<EFBFBD><EFBFBD>");
|
||||
//<2F><>ȡstudents<74><73><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>Ӧ<EFBFBD>༶<EFBFBD><E0BCB6>ѧ<EFBFBD><D1A7><EFBFBD>ɼ<EFBFBD>
|
||||
int to_find_student_id;
|
||||
scanf("%d",&to_find_student_id);
|
||||
TreeNode* target_student = find(root,to_find_student_id);
|
||||
if(target_student!=NULL)
|
||||
{
|
||||
Student_Watch_Grade(target_student->student);
|
||||
}
|
||||
}
|
||||
else if(bb==3)
|
||||
{
|
||||
//<2F><>ʦ<EFBFBD>ijɼ<C4B3>
|
||||
printf("ѧ<EFBFBD><EFBFBD><EFBFBD>ɼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϵͳ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>......\n");
|
||||
Sleep(1000);
|
||||
printf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̰༶<EFBFBD><EFBFBD>ѧ<EFBFBD><EFBFBD><EFBFBD>ɼ<EFBFBD><EFBFBD><EFBFBD>......\n");
|
||||
Sleep(2000);
|
||||
system("cls");
|
||||
//<2F><>ȡstudents<74><73><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>Ӧ<EFBFBD>༶<EFBFBD><E0BCB6>ѧ<EFBFBD><D1A7><EFBFBD>ɼ<EFBFBD>
|
||||
printf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD>ijɼ<EFBFBD><EFBFBD><EFBFBD>ѧ<EFBFBD><EFBFBD>ID<EFBFBD><EFBFBD>");
|
||||
int to_find_student_id;
|
||||
scanf("%d",&to_find_student_id);
|
||||
TreeNode* target_student = find(root,to_find_student_id);
|
||||
if(target_student!=NULL)
|
||||
{
|
||||
char temp_course_url[30];
|
||||
sprintf(temp_course_url,"%s.txt",target_teacher.course);
|
||||
//<2F><><EFBFBD><EFBFBD>/<2F><><EFBFBD><EFBFBD><EFBFBD>ɼ<EFBFBD><C9BC>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD>ʽΪ<CABD><CEAA><EFBFBD>̹<EFBFBD><CCB9>ſγ<C5BF><CEB3><EFBFBD><EFBFBD>༶<EFBFBD><E0BCB6>.txt<78><74><EFBFBD>磺Math.txt
|
||||
//<2F><><EFBFBD>ݴ洢<DDB4><E6B4A2>ʽ<EFBFBD><CABD>ѧ<EFBFBD>żӿո<D3BF><D5B8>ӳɼ<D3B3><C9BC><EFBFBD><EFBFBD>磺20245738 90
|
||||
FILE* fp = fopen(temp_course_url,"a+");
|
||||
if(fp==NULL)
|
||||
{
|
||||
printf("<EFBFBD>ļ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD>ܣ<EFBFBD>\n");
|
||||
return 0;
|
||||
}
|
||||
printf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ĺ<EFBFBD><EFBFBD>ijɼ<EFBFBD><EFBFBD><EFBFBD>");
|
||||
int grade_to_change;
|
||||
scanf("%d",&grade_to_change);
|
||||
//<2F>ijɼ<C4B3>
|
||||
fprintf(fp,"%s %d\n",to_find_student_id,grade_to_change);
|
||||
fclose(fp);
|
||||
printf("<EFBFBD>ɼ<EFBFBD><EFBFBD>ijɹ<EFBFBD><EFBFBD><EFBFBD>\n");
|
||||
Sleep(2000);
|
||||
system("cls");
|
||||
}
|
||||
else
|
||||
{
|
||||
printf("δ<EFBFBD>ҵ<EFBFBD><EFBFBD><EFBFBD>ѧ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>\n");
|
||||
Sleep(2000);
|
||||
system("cls");
|
||||
}
|
||||
}
|
||||
else if(bb==4)
|
||||
{
|
||||
int time_count=0; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
//<2F>Ľ<DEB8>ʦ<EFBFBD><CAA6><EFBFBD><EFBFBD>
|
||||
password_enter:
|
||||
printf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǰ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>룺");
|
||||
long long former_password;
|
||||
scanf("%lld",&former_password);
|
||||
if(former_password==target_teacher.password)
|
||||
{
|
||||
printf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ĺ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>룺");
|
||||
long long new_password;
|
||||
scanf("%lld",&new_password);
|
||||
target_teacher.password = new_password;
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܺ<EFBFBD><DCBA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>
|
||||
FILE* fTeacher= fopen(TEACHER_PASSWORD_URL,"a+");
|
||||
fprintf(fTeacher,"%s %lld\n",target_teacher.id,encrypt(target_teacher.password));
|
||||
fclose(fTeacher);
|
||||
printf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ijɹ<EFBFBD><EFBFBD><EFBFBD>\n");
|
||||
Sleep(2000);
|
||||
system("cls");
|
||||
}
|
||||
else
|
||||
{
|
||||
printf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\n");
|
||||
time_count++;
|
||||
//<2F>ж<EFBFBD><D0B6>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
if(time_count>3)
|
||||
{
|
||||
printf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>࣡\n");
|
||||
Sleep(2000);
|
||||
system("cls");
|
||||
goto choice_one;
|
||||
}
|
||||
jjj:
|
||||
int a;
|
||||
printf("<EFBFBD>Ƿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>룿<EFBFBD><EFBFBD>1<EFBFBD><EFBFBD>0<EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
scanf("%d",&a);
|
||||
if(a==1)
|
||||
{
|
||||
goto password_enter;
|
||||
}
|
||||
else if(a==0)
|
||||
{
|
||||
system("cls");
|
||||
}
|
||||
else
|
||||
{
|
||||
printf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>룡\n");
|
||||
goto jjj;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
else if(bb==5)
|
||||
{
|
||||
printf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>밴1<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>밴0<EFBFBD><EFBFBD>");
|
||||
int choice_sort;
|
||||
scanf("%d",&choice_sort);
|
||||
if(choice_sort==1)
|
||||
{
|
||||
// <20><><EFBFBD><EFBFBD>ij<EFBFBD><C4B3><EFBFBD>ɼ<EFBFBD><C9BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
Sleep(500);
|
||||
system("cls");
|
||||
printf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\n<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ<EFBFBD><EFBFBD>\nMath\nEnglish\nComputer\nPolitics\n");
|
||||
printf("GPA\nid\nClass\n<EFBFBD><EFBFBD>ѡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ<EFBFBD><EFBFBD>");
|
||||
char choices[20];
|
||||
scanf("%s",choices);
|
||||
while(true)
|
||||
{
|
||||
if(strcmp(choices,"Math")!=0&&strcmp(choices,"English")!=0&&strcmp(choices,"Computer")!=0&&strcmp(choices,"Politics")!=0&&strcmp(choices,"GPA")!=0&&strcmp(choices,"id")!=0&&strcmp(choices,"Class")!=0)
|
||||
{
|
||||
printf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>룺");
|
||||
continue;
|
||||
}
|
||||
else
|
||||
{
|
||||
break;
|
||||
}
|
||||
}
|
||||
printf("<EFBFBD><EFBFBD>ѡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>1<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>-1<><31><EFBFBD><EFBFBD>");
|
||||
while(true)
|
||||
{
|
||||
int order;
|
||||
scanf("%d",&order);
|
||||
Sleep(500);
|
||||
system("cls");
|
||||
if(order==1||order==(-1))
|
||||
{
|
||||
INDEX=order;
|
||||
sortByCourseScore(students,student_number,choices);
|
||||
INDEX=1; //<2F><>ԭ
|
||||
break;
|
||||
}
|
||||
else
|
||||
{
|
||||
printf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>룺");
|
||||
continue;
|
||||
}
|
||||
}
|
||||
}
|
||||
else if(choice_sort==0)
|
||||
{
|
||||
printf("<EFBFBD>˳<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\n");
|
||||
Sleep(2000);
|
||||
system("cls");
|
||||
}
|
||||
else
|
||||
{
|
||||
printf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>룡");
|
||||
Sleep(2000);
|
||||
system("cls");
|
||||
goto choice_start;
|
||||
}
|
||||
|
||||
}
|
||||
else if(bb==6)
|
||||
{
|
||||
//<2F>˳<EFBFBD>ϵͳ
|
||||
printf("<EFBFBD>˳<EFBFBD>ϵͳ<EFBFBD>ɹ<EFBFBD><EFBFBD><EFBFBD>\n");
|
||||
Sleep(2000);
|
||||
system("cls");
|
||||
}
|
||||
else
|
||||
{
|
||||
printf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>룡\n");
|
||||
goto asd;
|
||||
}
|
||||
|
||||
int a1;
|
||||
choice_one:
|
||||
printf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>1<EFBFBD><EFBFBD>0<EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
scanf("%d",&a1);
|
||||
if(a1==1)
|
||||
{
|
||||
system("cls");
|
||||
goto start;
|
||||
}
|
||||
else if(a1==0)
|
||||
{
|
||||
system("cls");
|
||||
}
|
||||
else
|
||||
{
|
||||
printf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>룡\n");
|
||||
goto choice_one;
|
||||
}
|
||||
break;
|
||||
case 2:
|
||||
//ѧ<><D1A7><EFBFBD><EFBFBD>¼
|
||||
printf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѧ<EFBFBD><EFBFBD><EFBFBD>˵<EFBFBD>¼ϵͳ\n");
|
||||
|
||||
|
||||
if(Student_Login(students,&target_student,student_number))
|
||||
{
|
||||
|
||||
//<2F><><EFBFBD><EFBFBD>ѧ<EFBFBD><D1A7><EFBFBD><EFBFBD>Ϣ
|
||||
printf("ѧ<EFBFBD>ţ<EFBFBD>%08d\n<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>%s\n<EFBFBD>Ա<EFBFBD><EFBFBD><EFBFBD>%s\n<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѧԺ<EFBFBD><EFBFBD>%s\n<EFBFBD><EFBFBD>ѧרҵ<EFBFBD><EFBFBD>%s\n<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>༶<EFBFBD><EFBFBD>%d\n",
|
||||
target_student.id,target_student.name,target_student.gender,
|
||||
target_student.college,target_student.major,target_student.Class);
|
||||
system("pause");
|
||||
system("cls");
|
||||
ggg:
|
||||
printf("1.<2E>γ̳ɼ<CCB3>\n2.<2E><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\n3.<2E><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ԤԼϵͳ\n4.<2E><EFBFBD><DEB8><EFBFBD><EFBFBD><EFBFBD>\n5.<2E>˳<EFBFBD>ϵͳ\n");
|
||||
printf("<EFBFBD><EFBFBD>ѡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD>鿴<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݣ<EFBFBD>");
|
||||
//ѧ<><D1A7><EFBFBD>鿴<EFBFBD>ɼ<EFBFBD>
|
||||
int op;
|
||||
scanf("%d",&op);
|
||||
if(op==1)
|
||||
{
|
||||
printf("ѧ<EFBFBD><EFBFBD><EFBFBD>ɼ<EFBFBD>ϵͳ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>......\n");
|
||||
Sleep(1000);
|
||||
printf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>γ̵ijɼ<EFBFBD><EFBFBD><EFBFBD>ѯ......\n");
|
||||
Sleep(2000);
|
||||
system("cls");
|
||||
//<2F><>ȡ<EFBFBD>γ<EFBFBD><CEB3>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɼ<EFBFBD>
|
||||
Student_Watch_Grade(&target_student);
|
||||
system("pause");
|
||||
}
|
||||
else if(op==2)
|
||||
{
|
||||
//a*100000+ b*10000+c*1000+d*10+e
|
||||
// 21
|
||||
int location = target_student.dorm_index;
|
||||
int bed = location%10;
|
||||
location/=10;
|
||||
int area = location%1000;
|
||||
location/=1000;
|
||||
int AB = location%10;
|
||||
char ab;
|
||||
if(AB==1)
|
||||
ab='A';
|
||||
else if(AB==2)
|
||||
ab='B';
|
||||
int buliding = location/10;
|
||||
printf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD>ã<EFBFBD>%d<><64> %c%d %d<>Ŵ<EFBFBD>\n",buliding,ab,area,bed);
|
||||
ops:
|
||||
printf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>У<EFBFBD><EFBFBD>ס<EFBFBD>ޣ<EFBFBD><EFBFBD><EFBFBD>1.<2E><>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD> 2.<2E><><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD>룩:");
|
||||
int opt;
|
||||
scanf("%d",&opt);
|
||||
if(opt==1)
|
||||
{
|
||||
FILE* Out_live=fopen(ROOM_CHANGE_REQUESTS_URL,"a+");
|
||||
rewind(Out_live);
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7>ύ<EFBFBD><E1BDBB>,<2C>ظ<EFBFBD><D8B8><EFBFBD>
|
||||
int stud_id;
|
||||
char reason[50];
|
||||
char answer[10];
|
||||
int result;
|
||||
bool whether_find=false;
|
||||
bool whether_reply=false;
|
||||
while ((result = fscanf(Out_live,"%d %s %s",&stud_id,reason,answer))==3)
|
||||
{
|
||||
|
||||
if(stud_id==target_student.id)
|
||||
{
|
||||
whether_find=true;
|
||||
size_t len=strcspn(answer, "\n"); // <20>ҵ<EFBFBD><D2B5><EFBFBD><EFBFBD>з<EFBFBD><D0B7><EFBFBD>λ<EFBFBD><CEBB>
|
||||
answer[len]='\0'; // <20>ڻ<EFBFBD><DABB>з<EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD>ֹ<EFBFBD>ַ<EFBFBD><D6B7><EFBFBD>
|
||||
if (strcmp(answer,"IamML")!=0)
|
||||
{
|
||||
// <20><><EFBFBD>ύ<EFBFBD><E1BDBB><EFBFBD>ѻظ<D1BB>
|
||||
whether_reply = true;
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (whether_find)
|
||||
{
|
||||
if (whether_reply)
|
||||
{
|
||||
printf("Has been replied, please check\n");
|
||||
} else
|
||||
{
|
||||
printf("Has been submitted, but no answer yet, please wait\n");
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
printf("Hasn't submit\n");
|
||||
char reasons[50];
|
||||
printf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɣ<EFBFBD>20<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڣ<EFBFBD><EFBFBD><EFBFBD>");
|
||||
scanf("%s", reasons);
|
||||
fprintf(Out_live, "%d %s IamML\n", target_student.id, reasons);
|
||||
printf("<EFBFBD>ύ<EFBFBD>ɹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȴ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\n");
|
||||
}
|
||||
fclose(Out_live);
|
||||
}
|
||||
else if(opt==2)
|
||||
{
|
||||
printf("<EFBFBD>˳<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\n");
|
||||
}
|
||||
else if(opt!=1&&opt!=2)
|
||||
{
|
||||
printf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\n");
|
||||
goto ops;
|
||||
}
|
||||
}
|
||||
else if(op==3)
|
||||
{
|
||||
//<2F><><EFBFBD><EFBFBD>ϵͳ
|
||||
printf("ѧ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϵͳ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>......\n");
|
||||
Sleep(1000);
|
||||
|
||||
system("pause");
|
||||
system("cls");
|
||||
int bn1 = Counter(BUS_ROUTE_ONE);
|
||||
int bn2 = Counter(BUS_ROUTE_TWO);
|
||||
Moneys_System(&target_student,student_number,bus_schedule1,bus_schedule2,bn1,bn2);
|
||||
|
||||
}
|
||||
else if(op==4)
|
||||
{
|
||||
int time_count=0; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
//<2F><EFBFBD>ѧ<EFBFBD><D1A7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
password_enter1:
|
||||
printf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǰ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>룺");
|
||||
long long former_password;
|
||||
scanf("%lld",&former_password);
|
||||
if(former_password==target_student.password)
|
||||
{
|
||||
printf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ĺ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>룺");
|
||||
long long new_password;
|
||||
scanf("%lld",&new_password);
|
||||
target_student.password = new_password;
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܺ<EFBFBD><DCBA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>
|
||||
FILE* fStudent= fopen(STUDENT_PASSWORD_URL,"a+");
|
||||
fprintf(fStudent,"%s %lld\n",target_student.id,encrypt(target_student.password));
|
||||
fclose(fStudent);
|
||||
printf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ijɹ<EFBFBD><EFBFBD><EFBFBD>\n");
|
||||
Sleep(2000);
|
||||
system("cls");
|
||||
}
|
||||
else
|
||||
{
|
||||
printf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\n");
|
||||
time_count++;
|
||||
//<2F>ж<EFBFBD><D0B6>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
if(time_count>3)
|
||||
{
|
||||
printf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>࣡\n");
|
||||
Sleep(2000);
|
||||
system("cls");
|
||||
goto choice_two;
|
||||
}
|
||||
jjj1:
|
||||
int b;
|
||||
printf("<EFBFBD>Ƿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>룿<EFBFBD><EFBFBD>1<EFBFBD><EFBFBD>0<EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
scanf("%d",&b);
|
||||
if(b==1)
|
||||
{
|
||||
goto password_enter1;
|
||||
}
|
||||
else if(b==0)
|
||||
{
|
||||
system("cls");
|
||||
}
|
||||
else
|
||||
{
|
||||
printf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>룡\n");
|
||||
goto jjj1;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
else if(op==5)
|
||||
{
|
||||
printf("<EFBFBD>˳<EFBFBD><EFBFBD><EFBFBD>¼<EFBFBD><EFBFBD>\n");
|
||||
Sleep(2000);
|
||||
system("cls");
|
||||
}
|
||||
else
|
||||
{
|
||||
printf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>룡\n");
|
||||
goto ggg;
|
||||
}
|
||||
}
|
||||
choice_two:
|
||||
int a2;
|
||||
printf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>1<EFBFBD><EFBFBD>0<EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
scanf("%d",&a2);
|
||||
if(a2==1)
|
||||
{
|
||||
system("cls");
|
||||
goto start;
|
||||
}
|
||||
else if(a2==0)
|
||||
{
|
||||
system("cls");
|
||||
}
|
||||
else
|
||||
{
|
||||
printf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>룡\n");
|
||||
goto choice_two;
|
||||
}
|
||||
break;
|
||||
case 3:
|
||||
//<2F><>Ա<EFBFBD><D4B1>¼
|
||||
printf("<EFBFBD><EFBFBD><EFBFBD>뵼Ա<EFBFBD>˵<EFBFBD>¼ϵͳ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>´<EFBFBD><EFBFBD>ڲ<EFBFBD><EFBFBD><EFBFBD>Ŀ<EFBFBD><EFBFBD>ֱ<EFBFBD>Ӹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˺<EFBFBD><EFBFBD><EFBFBD><EFBFBD>룬<EFBFBD>밴<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>룩\n");
|
||||
printf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>빤<EFBFBD>ţ<EFBFBD>114514<EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
int Direct_id;
|
||||
long long Direct_password;
|
||||
scanf("%d",&Direct_id);
|
||||
printf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>루1919810<EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
scanf("%lld",&Direct_password);
|
||||
if(Direct_id==DIRECT_ID&&Direct_password==DIRECT_PASSWORD)
|
||||
{
|
||||
printf("<EFBFBD><EFBFBD>¼<EFBFBD>ɹ<EFBFBD><EFBFBD><EFBFBD>\n");
|
||||
Sleep(2000);
|
||||
system("cls");
|
||||
printf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>...");
|
||||
Sleep(2000);
|
||||
system("cls");
|
||||
printf("1.У<><D0A3>ס<EFBFBD><EFBFBD><DEB4><EFBFBD> 2.<2E>˳<EFBFBD>ҳ<EFBFBD><D2B3>\n");
|
||||
printf("<EFBFBD><EFBFBD>ѡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݣ<EFBFBD>");
|
||||
int op3;
|
||||
tar:
|
||||
scanf("%d",&op3);
|
||||
if(op3==1)
|
||||
{
|
||||
int student_id;
|
||||
char reason[50];
|
||||
char reply[50];
|
||||
int result;
|
||||
int choice1;
|
||||
FILE* fp = fopen(ROOM_CHANGE_REQUESTS_URL,"r+");
|
||||
FILE *temp_fp = fopen("temp.txt","a+");
|
||||
printf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊδ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѧ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>룺\n");
|
||||
while(fscanf(fp,"%d %s %s",&student_id,reason,reply)==3)//<2F>ж<EFBFBD><D0B6>Ƿ<EFBFBD><C7B7>Ѿ<EFBFBD><D1BE><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD>β
|
||||
{
|
||||
if(strcmp(reply,"IamML")!=0)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
else
|
||||
{
|
||||
//<2F><>Ա<EFBFBD><D4B1>δ<EFBFBD><CEB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>й<EFBFBD><D0B9><EFBFBD><EFBFBD><EFBFBD>,<2C><><EFBFBD><EFBFBD><EFBFBD>д<EFBFBD><D0B4><EFBFBD>
|
||||
printf("ѧ<EFBFBD><EFBFBD>:%d ԭ<><D4AD>:%s\n",student_id,reason);
|
||||
do{
|
||||
printf("<EFBFBD>Ƿ<EFBFBD>ͬ<EFBFBD><EFBFBD>ta<EFBFBD>߶<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǣ<EFBFBD>1 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>0<EFBFBD><30><EFBFBD><EFBFBD>");
|
||||
scanf("%d",&choice1);
|
||||
if(!(choice1==0 || choice1==1))
|
||||
{
|
||||
printf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\n");
|
||||
}
|
||||
else if(choice1==1)
|
||||
{
|
||||
strcpy(reply,"ͬ<EFBFBD><EFBFBD>");
|
||||
fprintf(temp_fp,"%d %s %s\n",student_id,reason,reply);
|
||||
}
|
||||
else
|
||||
{
|
||||
strcpy(reply,"<EFBFBD><EFBFBD>ͬ<EFBFBD><EFBFBD>");
|
||||
fprintf(temp_fp,"%d %s %s\n",student_id,reason,reply);
|
||||
}
|
||||
}while(choice1!=0 && choice1!=1);
|
||||
}
|
||||
}
|
||||
fclose(fp);
|
||||
fclose(temp_fp);
|
||||
remove(ROOM_CHANGE_REQUESTS_URL);
|
||||
rename("temp.txt",ROOM_CHANGE_REQUESTS_URL);
|
||||
}
|
||||
else if (op3==2)
|
||||
{
|
||||
printf("<EFBFBD>˳<EFBFBD>ϵͳ\n");
|
||||
}
|
||||
else
|
||||
{
|
||||
printf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>룺\n");
|
||||
goto tar;
|
||||
}
|
||||
}
|
||||
choice_three:
|
||||
int a3;
|
||||
printf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>1<EFBFBD><EFBFBD>0<EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
scanf("%d",&a3);
|
||||
if(a3==1)
|
||||
{
|
||||
system("cls");
|
||||
goto start;
|
||||
}
|
||||
else if(a3==0)
|
||||
{
|
||||
system("cls");
|
||||
}
|
||||
else
|
||||
{
|
||||
printf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>룡\n");
|
||||
goto choice_three;
|
||||
}
|
||||
case 4:
|
||||
printf("<EFBFBD>˳<EFBFBD>ϵͳ\n");
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
choice_start:
|
||||
printf("Ϊ<EFBFBD><EFBFBD>չʾ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݣ<EFBFBD><EFBFBD>ʽ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>㷨<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>չʾ\n");
|
||||
printf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>밴1<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>밴0<EFBFBD><EFBFBD>");
|
||||
int choice_sort;
|
||||
scanf("%d",&choice_sort);
|
||||
if(choice_sort==1)
|
||||
{
|
||||
// <20><><EFBFBD><EFBFBD>ij<EFBFBD><C4B3><EFBFBD>ɼ<EFBFBD><C9BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
Sleep(500);
|
||||
system("cls");
|
||||
printf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\n<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ<EFBFBD><EFBFBD>\nMath\nEnglish\nComputer\nPolitics\n");
|
||||
printf("GPA\nid\nClass\n<EFBFBD><EFBFBD>ѡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ<EFBFBD><EFBFBD>");
|
||||
char choices[20];
|
||||
scanf("%s",choices);
|
||||
while(true)
|
||||
{
|
||||
if(strcmp(choices,"Math")!=0&&strcmp(choices,"English")!=0&&strcmp(choices,"Computer")!=0&&strcmp(choices,"Politics")!=0&&strcmp(choices,"GPA")!=0&&strcmp(choices,"id")!=0&&strcmp(choices,"Class")!=0)
|
||||
{
|
||||
printf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>룺");
|
||||
continue;
|
||||
}
|
||||
else
|
||||
{
|
||||
break;
|
||||
}
|
||||
}
|
||||
printf("<EFBFBD><EFBFBD>ѡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>1<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>-1<><31><EFBFBD><EFBFBD>");
|
||||
while(true)
|
||||
{
|
||||
int order;
|
||||
scanf("%d",&order);
|
||||
Sleep(500);
|
||||
system("cls");
|
||||
if(order==1||order==(-1))
|
||||
{
|
||||
INDEX=order;
|
||||
sortByCourseScore(students,student_number,choices);
|
||||
INDEX=1; //<2F><>ԭ
|
||||
break;
|
||||
}
|
||||
else
|
||||
{
|
||||
printf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>룺");
|
||||
continue;
|
||||
}
|
||||
}
|
||||
}
|
||||
else if(choice_sort==0)
|
||||
{
|
||||
printf("<EFBFBD>˳<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\n");
|
||||
Sleep(2000);
|
||||
system("cls");
|
||||
}
|
||||
else
|
||||
{
|
||||
printf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>룡");
|
||||
Sleep(2000);
|
||||
system("cls");
|
||||
goto choice_start;
|
||||
}
|
||||
// <20><><EFBFBD>ҽڵ<D2BD>
|
||||
// int searchId = 1002;
|
||||
// TreeNode* result = find(root, searchId);
|
||||
// if (result!=NULL)
|
||||
// {
|
||||
// printf("\n<>ҵ<EFBFBD>IDΪ%d<><64>ѧ<EFBFBD><D1A7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA>%s\n", searchId, result->student->name);
|
||||
// }
|
||||
// else
|
||||
// {
|
||||
// printf("\nδ<6E>ҵ<EFBFBD>IDΪ%d<><64>ѧ<EFBFBD><D1A7>\n", searchId);
|
||||
// }
|
||||
|
||||
// <20>ͷŶ<CDB7><C5B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڴ<EFBFBD>
|
||||
freeTree(root);
|
||||
free(students);
|
||||
free(teachers);
|
||||
free(colleges);
|
||||
free(majors);
|
||||
system("pause");
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
//<2F>Ӻ<EFBFBD><D3BA><EFBFBD>
|
||||
|
||||
|
||||
//<2F><><EFBFBD><EFBFBD>Ա<EFBFBD><D4B1><EFBFBD><EFBFBD>ѧԺ<D1A7><D4BA><EFBFBD><EFBFBD><EFBFBD>ӱ<EFBFBD><D3B1>ţ<EFBFBD><C5A3><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD>洢<EFBFBD><E6B4A2> "colleges.txt",<2C><><EFBFBD><EFBFBD>, <20><EFBFBD><F2B4B4BD>ļ<EFBFBD>
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>-><3E>ж<EFBFBD><D0B6>Ƿ<EFBFBD><C7B7>Ǵ<EFBFBD><C7B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>-><3E><>"%d %s\n"<22><>ʽд<CABD><D0B4>COLLEGE_URL<52>ļ<EFBFBD>-><3E><><EFBFBD><EFBFBD>college_number
|
||||
//<2F><><EFBFBD><EFBFBD>number<65><72><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><DEB7><EFBFBD>ֵ
|
||||
//Ӧ<><D3A6><EFBFBD><EFBFBD><EFBFBD>ⲿ<EFBFBD><E2B2BF><EFBFBD><EFBFBD>ʲô<CAB2><C3B4><EFBFBD><EFBFBD>
|
||||
//Ӧ<><D3A6><EFBFBD>ڿ<EFBFBD>ͷ<EFBFBD><CDB7><EFBFBD><EFBFBD>printf(" ");
|
||||
void Admin_College(int* number)
|
||||
{
|
||||
int college_number=*number+1;
|
||||
FILE *college_file=fopen(COLLEGE_URL,"a+");
|
||||
char college_name[25];
|
||||
while (scanf("%s",college_name)==1)
|
||||
{
|
||||
int has_digit=0;
|
||||
for (int i=0;i<strlen(college_name);i++)
|
||||
{
|
||||
if(isdigit(college_name[i]))
|
||||
{
|
||||
has_digit=1;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (!has_digit)
|
||||
{
|
||||
fprintf(college_file,"%d %s\n",college_number*1000,college_name);
|
||||
college_number++;
|
||||
}
|
||||
}
|
||||
fclose(college_file);
|
||||
college_number-=1;
|
||||
(*number)=college_number;
|
||||
}
|
||||
//<2F><>ȡ<EFBFBD>洢ѧԺ<D1A7><D4BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
void Write_File_College_Number(int number)
|
||||
{
|
||||
FILE* fp = fopen(COLLEGE_NUMBER_URL,"w+");
|
||||
fprintf(fp,"%d",number);
|
||||
fclose(fp);
|
||||
}
|
||||
void Read_File_College_Number(int *number)
|
||||
{
|
||||
FILE *fp = fopen(COLLEGE_NUMBER_URL, "r+");
|
||||
if(fp)
|
||||
{
|
||||
int result = fscanf(fp, "%d", number);
|
||||
if (result == 1)
|
||||
{
|
||||
return;
|
||||
}
|
||||
else
|
||||
{
|
||||
*number = 0;
|
||||
}
|
||||
fclose(fp);
|
||||
}
|
||||
else
|
||||
{
|
||||
*number = 0;
|
||||
}
|
||||
}
|
||||
//<2F><>ȡ<EFBFBD>ļ<EFBFBD>"colleges.txt"<22>е<EFBFBD>ѧԱ<D1A7><D4B1>Ϣ<EFBFBD><CFA2><EFBFBD>洢Ϊ<E6B4A2>ṹ<EFBFBD><E1B9B9><EFBFBD><EFBFBD><EFBFBD>飬<EFBFBD><E9A3AC><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڣ<EFBFBD>
|
||||
Colleges* Read_College(int college_number)
|
||||
{
|
||||
FILE *college_file=fopen(COLLEGE_URL,"r");
|
||||
if(college_file==NULL)
|
||||
{
|
||||
perror("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>ʧ<EFBFBD><EFBFBD>");
|
||||
return NULL;
|
||||
}
|
||||
Colleges* colleges = (Colleges*)malloc(sizeof(Colleges) * (college_number));
|
||||
if(colleges==NULL)
|
||||
{
|
||||
perror("<EFBFBD><EFBFBD>̬<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD><EFBFBD>");
|
||||
fclose(college_file);
|
||||
return NULL;
|
||||
}
|
||||
for(int i=0;i<college_number;i++)
|
||||
{
|
||||
if (fscanf(college_file, "%d %s", &colleges[i].id, colleges[i].college_name) != 2)
|
||||
{
|
||||
perror("<EFBFBD><EFBFBD>ȡ<EFBFBD>ļ<EFBFBD>ʧ<EFBFBD><EFBFBD>");
|
||||
free(colleges);
|
||||
fclose(college_file);
|
||||
return NULL;
|
||||
}
|
||||
}
|
||||
fclose(college_file);
|
||||
return colleges;
|
||||
}
|
||||
// <20><>ȡ<EFBFBD>ļ<EFBFBD><C4BC>е<EFBFBD>רҵ<D7A8><D2B5><EFBFBD><EFBFBD>
|
||||
void Read_File_Major_Number(int *major_number)
|
||||
{
|
||||
FILE *fp = fopen(MAJOR_NUMBER_URL, "r");
|
||||
if (fp)
|
||||
{
|
||||
if(fscanf(fp, "%d",major_number)!=1)
|
||||
{
|
||||
*major_number=0;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
*major_number = 0; // <20><><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڣ<EFBFBD><DAA3><EFBFBD><EFBFBD><EFBFBD>ʼ<EFBFBD><CABC>Ϊ0
|
||||
}
|
||||
fclose(fp);
|
||||
}
|
||||
// <20><><EFBFBD><EFBFBD>Ա<EFBFBD><D4B1><EFBFBD><EFBFBD>רҵ<D7A8><D2B5>Ϣ
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>--ѭ<><D1AD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѧԺid<69><64>רҵ<D7A8><D2B5><EFBFBD><EFBFBD>--<2D><><EFBFBD>ҵ<EFBFBD><D2B5><EFBFBD>Ӧ<EFBFBD><D3A6>ѧԺ<D1A7><D4BA>--<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>רҵid
|
||||
// <20><>"%d %s %d\n",רҵid,רҵ<D7A8><D2B5><EFBFBD><EFBFBD>ѧԺid <20><><EFBFBD><EFBFBD>ʽ<EFBFBD><CABD><EFBFBD><EFBFBD> MAJOR_URL
|
||||
//<2F><>ͷ<EFBFBD><CDB7>Ҫ<EFBFBD><D2AA>printf("<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѧԺid<69><64>רҵ<D7A8><D2B5><EFBFBD>ƣ<EFBFBD><C6A3><EFBFBD><EFBFBD>س<EFBFBD><D8B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ctrl+Zֹͣ<CDA3><D6B9><EFBFBD>룩<EFBFBD><EBA3A9>\n");
|
||||
void Admin_Major(Colleges* colleges, int college_number,int* major_number)
|
||||
{
|
||||
FILE *major_file = fopen(MAJOR_URL, "a+");
|
||||
if(!major_file){
|
||||
perror("<EFBFBD>ļ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD><EFBFBD>");
|
||||
return;
|
||||
}
|
||||
int major_counter=*major_number;
|
||||
int college_id;
|
||||
char major_name[23];
|
||||
while(scanf("%d %s",&college_id,major_name)==2)
|
||||
{
|
||||
int valid_college=0;
|
||||
for(int i=0;i<college_number;i++)
|
||||
{
|
||||
if(college_id==colleges[i].id)
|
||||
{
|
||||
valid_college=1;
|
||||
++major_counter;
|
||||
fprintf(major_file, "%d %s %d\n",college_id+(major_counter),
|
||||
major_name,college_id);
|
||||
break;
|
||||
}
|
||||
}
|
||||
if(!valid_college){
|
||||
printf("Invalid college ID. Please enter a valid college ID.\n");
|
||||
}
|
||||
}
|
||||
fclose(major_file);
|
||||
*major_number = major_counter;
|
||||
}
|
||||
void Write_File_Major_Number(int number)
|
||||
{
|
||||
FILE* fp = fopen(MAJOR_NUMBER_URL, "w");
|
||||
if (!fp)
|
||||
{
|
||||
perror("Failed to open Major_number.txt for writing");
|
||||
exit(EXIT_FAILURE);
|
||||
}
|
||||
fprintf(fp,"%d",number); //д<><D0B4><EFBFBD>µ<EFBFBD><C2B5><EFBFBD><EFBFBD><EFBFBD>
|
||||
fclose(fp);
|
||||
}
|
||||
// ջ-<2D><>ȡרҵ<D7A8><D2B5>Ϣ
|
||||
//<2F><>"%d %s %d", &majors[i].id, majors[i].name, &majors[i].college_id д<><D0B4><EFBFBD>ļ<EFBFBD> MAJOR_URL
|
||||
Major* Read_Major(int major_number)
|
||||
{
|
||||
FILE *file = fopen(MAJOR_URL,"r");
|
||||
if(!file){
|
||||
perror("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD><EFBFBD>");
|
||||
return NULL;
|
||||
}
|
||||
Major* majors = (Major*)malloc(sizeof(Major)*major_number);
|
||||
if (!majors){
|
||||
perror("<EFBFBD>ڴ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD><EFBFBD>");
|
||||
return NULL;
|
||||
}
|
||||
for (int i = 0; i <major_number;i++) {
|
||||
fscanf(file, "%d %s %d", &majors[i].id, majors[i].name, &majors[i].college_id);
|
||||
}
|
||||
fclose(file);
|
||||
return majors;
|
||||
}
|
||||
//<2F><>ӡѧԺ<D1A7><D4BA>Ϣ
|
||||
void Print_College(Colleges* colleges, int college_number)
|
||||
{
|
||||
printf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ΪѧԺ<EFBFBD>б<EFBFBD>\n");
|
||||
for(int i=0;i<college_number;i++)
|
||||
{
|
||||
printf("%05d %s\n",colleges[i].id,colleges[i].college_name);
|
||||
}
|
||||
}
|
||||
///<2F>鲢<EFBFBD><E9B2A2><EFBFBD><EFBFBD>
|
||||
// <20><><EFBFBD>ݿγ<DDBF><CEB3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҷ<EFBFBD>Ӧ<EFBFBD>ijɼ<C4B3>
|
||||
int getCourseScore(Student* student, const char* courseName)
|
||||
{
|
||||
if (strcmp(courseName, "Math") == 0)
|
||||
{
|
||||
return student->scores.Math;
|
||||
}
|
||||
else if (strcmp(courseName, "English") == 0)
|
||||
{
|
||||
return student->scores.English;
|
||||
}
|
||||
else if (strcmp(courseName, "Computer") == 0)
|
||||
{
|
||||
return student->scores.Computer;
|
||||
}
|
||||
else if (strcmp(courseName, "Politics") == 0)
|
||||
{
|
||||
return student->scores.Politics;
|
||||
}
|
||||
else if (strcmp(courseName,"GPA")==0)
|
||||
{
|
||||
return student->GPA;
|
||||
}
|
||||
else if (strcmp(courseName,"id")==0)
|
||||
{
|
||||
return student->id;
|
||||
}
|
||||
else if (strcmp(courseName,"Class")==0)
|
||||
{
|
||||
return student->Class;
|
||||
}
|
||||
return -1; // <20><><EFBFBD><EFBFBD>û<EFBFBD><C3BB><EFBFBD>ҵ<EFBFBD>ƥ<EFBFBD><C6A5><EFBFBD>Ŀγ̣<CEB3><CCA3><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD>Чֵ
|
||||
}
|
||||
// <20>ȽϺ<C8BD><CFBA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݿγ<DDBF><CEB3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
int compareStudents(Student* student1, Student* student2, const char* courseName) {
|
||||
// <20><>ȡָ<C8A1><D6B8><EFBFBD>γ̵ijɼ<C4B3>
|
||||
int score1 = getCourseScore(student1, courseName);
|
||||
int score2 = getCourseScore(student2, courseName);
|
||||
|
||||
// <20><><EFBFBD><EFBFBD>û<EFBFBD><C3BB><EFBFBD>ҵ<EFBFBD><D2B5>γ̵ijɼ<C4B3><C9BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>0<EFBFBD><30><EFBFBD><EFBFBD><EFBFBD>Ը<EFBFBD><D4B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ģ<DEB8>
|
||||
if (score1 == -1 && score2 == -1)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
if (score1 == -1) return INDEX; // student1 <20>ź<EFBFBD>
|
||||
if (score2 == -1) return -1*INDEX; // student2 <20>ź<EFBFBD>
|
||||
// <20><><EFBFBD>ɼ<EFBFBD><C9BC><EFBFBD><EFBFBD><EFBFBD>
|
||||
if (score1 < score2)
|
||||
{
|
||||
return INDEX;
|
||||
}
|
||||
else if (score1 > score2)
|
||||
{
|
||||
return (-1)*INDEX;
|
||||
}
|
||||
return 0; // <20><><EFBFBD><EFBFBD><EFBFBD>ɼ<EFBFBD><C9BC><EFBFBD><EFBFBD>ȣ<EFBFBD><C8A3><EFBFBD><EFBFBD><EFBFBD>0
|
||||
}
|
||||
// <20>鲢<EFBFBD><E9B2A2><EFBFBD>ϲ<F2A3BABA><CFB2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>õ<EFBFBD><C3B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
void merge(Student* array, int left, int mid, int right, const char* courseName) {
|
||||
int n1 = mid - left + 1;
|
||||
int n2 = right - mid;
|
||||
// <20><>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>
|
||||
Student* leftArray = (Student*)malloc(n1 * sizeof(Student));
|
||||
Student* rightArray = (Student*)malloc(n2 * sizeof(Student));
|
||||
for (int i = 0; i < n1; i++)
|
||||
{
|
||||
leftArray[i] = array[left + i];
|
||||
}
|
||||
for (int j = 0; j < n2; j++)
|
||||
{
|
||||
rightArray[j] = array[mid + 1 + j];
|
||||
}
|
||||
int i=0, j=0, k=left;
|
||||
// <20>ϲ<EFBFBD><CFB2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
while (i<n1&&j<n2)
|
||||
{
|
||||
if(compareStudents(&leftArray[i],&rightArray[j],courseName)<=0)
|
||||
{
|
||||
array[k] = leftArray[i];
|
||||
i++;
|
||||
}
|
||||
else
|
||||
{
|
||||
array[k]=rightArray[j];
|
||||
j++;
|
||||
}
|
||||
k++;
|
||||
}
|
||||
|
||||
// <20><><EFBFBD><EFBFBD>ʣ<EFBFBD><CAA3>Ԫ<EFBFBD><D4AA>
|
||||
while(i<n1)
|
||||
{
|
||||
array[k]=leftArray[i];
|
||||
i++;
|
||||
k++;
|
||||
}
|
||||
while(j<n2)
|
||||
{
|
||||
array[k]=rightArray[j];
|
||||
j++;
|
||||
k++;
|
||||
}
|
||||
// <20>ͷ<EFBFBD><CDB7><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>
|
||||
free(leftArray);
|
||||
free(rightArray);
|
||||
}
|
||||
// <20>鲢<EFBFBD><E9B2A2><EFBFBD><EFBFBD><EFBFBD>ݹ麯<DDB9><E9BAAF>
|
||||
void mergeSort(Student* array, int left, int right,const char* courseName) {
|
||||
if (left<right)
|
||||
{
|
||||
int mid=left+(right-left)/2;
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
mergeSort(array, left, mid, courseName);
|
||||
mergeSort(array, mid + 1, right, courseName);
|
||||
// <20>ϲ<EFBFBD><CFB2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>õ<EFBFBD><C3B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
merge(array, left, mid, right, courseName);
|
||||
}
|
||||
}
|
||||
///<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӳ<EFBFBD><D3B2>洢ѧ<E6B4A2><D1A7><EFBFBD><EFBFBD>Ϣ
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD>ڵ㵽<DAB5><E3B5BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
TreeNode* insert(TreeNode* root, Student* student)
|
||||
{
|
||||
if (root == NULL)
|
||||
{
|
||||
TreeNode* newNode = (TreeNode*)malloc(sizeof(TreeNode));
|
||||
newNode->student = student;
|
||||
newNode->left = NULL;
|
||||
newNode->right = NULL;
|
||||
return newNode;
|
||||
}
|
||||
|
||||
if (student->id < root->student->id)
|
||||
{
|
||||
root->left = insert(root->left, student);
|
||||
}
|
||||
else
|
||||
{
|
||||
root->right = insert(root->right, student);
|
||||
}
|
||||
return root;
|
||||
}
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
TreeNode* createBinaryTree(Student* students, int size) {
|
||||
TreeNode* root = NULL;
|
||||
for (int i = 0; i < size; i++)
|
||||
{
|
||||
root = insert(root, &students[i]);
|
||||
}
|
||||
return root;
|
||||
}
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӡ<EFBFBD><D3A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
void printInOrder(TreeNode* node) {
|
||||
if (node != NULL) {
|
||||
printInOrder(node->left);
|
||||
printf("ID: %d, Name: %s, Money: %.2f\n", node->student->id, node->student->name, node->student->money);
|
||||
printInOrder(node->right);
|
||||
}
|
||||
}
|
||||
// <20>ͷŶ<CDB7><C5B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڴ<EFBFBD>
|
||||
void freeTree(TreeNode* node) {
|
||||
if (node != NULL) {
|
||||
freeTree(node->left);
|
||||
freeTree(node->right);
|
||||
free(node);
|
||||
}
|
||||
}
|
||||
// <20><><EFBFBD>ҽڵ<D2BD>
|
||||
TreeNode* find(TreeNode* root, int id) {
|
||||
if (root == NULL || root->student->id == id) {
|
||||
return root;
|
||||
}
|
||||
|
||||
if (id < root->student->id) {
|
||||
return find(root->left, id);
|
||||
} else {
|
||||
return find(root->right, id);
|
||||
}
|
||||
}
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD><D6B8><EFBFBD>γ̳ɼ<CCB3><C9BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѧ<EFBFBD><D1A7><EFBFBD><EFBFBD>Ϣ
|
||||
void sortByCourseScore(Student* students, int size, const char* courseName) {
|
||||
// <20>鲢<EFBFBD><E9B2A2><EFBFBD><EFBFBD>ָ<EFBFBD><D6B8><EFBFBD>γ̳ɼ<CCB3><C9BC><EFBFBD><EFBFBD><EFBFBD>
|
||||
mergeSort(students,0,size-1,courseName);
|
||||
|
||||
// <20><>ӡ<EFBFBD><D3A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѧ<EFBFBD><D1A7><EFBFBD><EFBFBD>Ϣ
|
||||
printf("\n<EFBFBD><EFBFBD>%s<>ɼ<EFBFBD><C9BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѧ<EFBFBD><D1A7><EFBFBD><EFBFBD>Ϣ<EFBFBD><CFA2>-1<><31>ʾ<EFBFBD><CABE>Ϣδ¼<CEB4>룩<EFBFBD><EBA3A9>\n",courseName);
|
||||
for (int i=0;i<size;i++)
|
||||
{
|
||||
int score = getCourseScore(&students[i],courseName);
|
||||
if(strcmp(courseName,"id")==0)
|
||||
{
|
||||
printf("ID: %08d, Name: %-12s,Class: %08d\n", students[i].id, students[i].name,score);
|
||||
}
|
||||
else if(strcmp(courseName,"Math")==0||strcmp(courseName,"English")==0||strcmp(courseName,"Computer")==0)
|
||||
{
|
||||
printf("ID: %08d, Name: %-12s, Class: %5d, %s Score: %3d\n", students[i].id, students[i].name, students[i].Class,courseName, score);
|
||||
}
|
||||
else if(strcmp(courseName,"Class")==0)
|
||||
{
|
||||
printf("ID: %08d, Name: %-12s, Class: %5d\n", students[i].id, students[i].name, students[i].Class);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
//<2F>ڸ<EFBFBD><DAB8><EFBFBD>ѧԺ<D1A7><D4BA>ѡ<EFBFBD><D1A1>ѧԺ<D1A7><D4BA>רҵ bool:true/false
|
||||
bool select_college(Colleges* colleges,int college_number,char* college)
|
||||
{
|
||||
Print_College(colleges,college_number);
|
||||
printf("<EFBFBD><EFBFBD>ѡ<EFBFBD><EFBFBD><EFBFBD>ó<EFBFBD>Ա<EFBFBD><EFBFBD><EFBFBD>ڵ<EFBFBD>ѧԺ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѧԺ<EFBFBD><EFBFBD><EFBFBD>ţ<EFBFBD>\n");
|
||||
int choice;
|
||||
scanf("%d",&choice);
|
||||
for(int i=0;i<college_number;i++)
|
||||
{
|
||||
if(colleges[i].id == choice)
|
||||
{
|
||||
strcpy(college,colleges[i].college_name);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
bool select_major(Colleges* colleges,int college_number,
|
||||
Major* majors,int major_number,
|
||||
char* college,char* major)
|
||||
{
|
||||
//<2F><><EFBFBD><EFBFBD>college<67><65><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ҵ<EFBFBD><D2B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>רҵ
|
||||
//<2F>Ȼ<EFBFBD>ȡcollege<67><65>ѧԺid<69><64><EFBFBD>ٸ<EFBFBD><D9B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>id<69>ҵ<EFBFBD>һϵ<D2BB><CFB5>רҵ
|
||||
int college_index = 0;
|
||||
for(int j=0;j<college_number;j++)
|
||||
{
|
||||
if(strcmp(colleges[j].college_name,college)==0)
|
||||
{
|
||||
college_index = colleges[j].id;
|
||||
}
|
||||
}
|
||||
printf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><EFBFBD>ѧԺ<EFBFBD>µ<EFBFBD>רҵ<EFBFBD>б<EFBFBD>\n");
|
||||
for(int i=0;i<major_number;i++)//ȷ<><C8B7><EFBFBD><EFBFBD>һ<EFBFBD><D2BB>רҵ
|
||||
{
|
||||
if(majors[i].college_id == college_index)
|
||||
{
|
||||
printf("%05d %s : %05d %s\n",colleges[i].id,colleges[i].college_name,
|
||||
majors[i].id,majors[i].name);
|
||||
}
|
||||
}
|
||||
printf("<EFBFBD><EFBFBD>ѡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѧ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѡ<EFBFBD><EFBFBD>רҵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>רҵ<EFBFBD><EFBFBD><EFBFBD>ţ<EFBFBD>\n");
|
||||
int choice;
|
||||
scanf("%d",&choice);
|
||||
for(int i=0;i<major_number;i++)
|
||||
{
|
||||
if(majors[i].id == choice)
|
||||
{
|
||||
//<2F>ҵ<EFBFBD><D2B5><EFBFBD><EFBFBD><EFBFBD>רҵ<D7A8>Ժ<EFBFBD><D4BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD>ֵ<EFBFBD><D6B5>major
|
||||
strcpy(major,majors[i].name);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
//<2F><>ȡ<EFBFBD><C8A1>ǰ<EFBFBD><C7B0>ѧ<EFBFBD><D1A7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
void Read_File_Student_Number(int* student_number)
|
||||
{
|
||||
FILE *fp = fopen(STUDENT_NUMBER_URL, "r");
|
||||
if(fp)
|
||||
{
|
||||
if(fscanf(fp,"%d",student_number)!=1)
|
||||
{
|
||||
*student_number = 0;
|
||||
}
|
||||
fclose(fp);
|
||||
}
|
||||
else
|
||||
{
|
||||
*student_number = 0;
|
||||
}
|
||||
|
||||
}
|
||||
//<2F><>ʼ<EFBFBD><CABC>ѧ<EFBFBD><D1A7>,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>
|
||||
void inputStudentInfo(Colleges* colleges,int college_number,Major* majors,int major_number,
|
||||
int* student_number)
|
||||
{
|
||||
int n;
|
||||
printf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><EFBFBD><EFBFBD>ӽ<EFBFBD>ϵͳ<EFBFBD><EFBFBD>ѧ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: ");
|
||||
scanf("%d", &n);
|
||||
Student* students = (Student*)malloc(sizeof(Student) * n);
|
||||
*student_number += n;
|
||||
for (int i=0; i<n; i++)
|
||||
{
|
||||
printf("\n<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѧ<EFBFBD><EFBFBD> %d <20><><EFBFBD><EFBFBD>Ϣ:\n",i+1);
|
||||
//ѧ<><D1A7>
|
||||
printf("ID: ");
|
||||
scanf("%d", &students[i].id);
|
||||
//<2F><><EFBFBD><EFBFBD>
|
||||
printf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>: ");
|
||||
scanf("%s", students[i].name);
|
||||
//<2F>Ա<EFBFBD>ѡ<EFBFBD><D1A1>
|
||||
printf("<EFBFBD>Ա<EFBFBD><EFBFBD><EFBFBD><EFBFBD>л<EFBFBD>Ů<EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
char gender[3];
|
||||
while(true)
|
||||
{
|
||||
scanf("%s", gender);
|
||||
if(strcmp(gender,"<EFBFBD><EFBFBD>")==0 || strcmp(gender,"Ů")==0)
|
||||
{
|
||||
strcpy(students[i].gender,gender);
|
||||
break;
|
||||
}
|
||||
else
|
||||
{
|
||||
printf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>룺");
|
||||
}
|
||||
}
|
||||
//ѧԺѡ<D4BA><D1A1>
|
||||
select_college(colleges,college_number,students[i].college);
|
||||
//רҵѡ<D2B5><D1A1>
|
||||
select_major(colleges,college_number,majors,major_number,
|
||||
students[i].college,students[i].major);
|
||||
//<2F>༶<EFBFBD><E0BCB6><EFBFBD>ӣ<EFBFBD><D3A3><EFBFBD>λ<EFBFBD><CEBB>Ч<EFBFBD><D0A7><EFBFBD><EFBFBD>
|
||||
printf("<EFBFBD>༶ID:<3A><><EFBFBD><EFBFBD>λ<EFBFBD><CEBB>Ч<EFBFBD><D0A7><EFBFBD>֣<EFBFBD>");
|
||||
int class_id;
|
||||
while(true)
|
||||
{
|
||||
scanf("%d", &class_id);
|
||||
if(class_id>=1000 && class_id<=9999)
|
||||
{
|
||||
students[i].Class = class_id;
|
||||
break;
|
||||
}
|
||||
else
|
||||
{
|
||||
printf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>룺");
|
||||
}
|
||||
}
|
||||
//<2F>˻<EFBFBD><CBBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʼ<EFBFBD><CABC>
|
||||
students[i].money = 0;
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ã<EFBFBD>Ĭ<EFBFBD><C4AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊѧ<CEAA><D1A7>
|
||||
students[i].password = students[i].id;
|
||||
FILE* fp = fopen(STUDENT_DATA_URL,"a+");
|
||||
if(fp)
|
||||
{
|
||||
fprintf(fp,"%d %s %s %s %s %d\n",students[i].id,students[i].name,students[i].gender,
|
||||
students[i].college,students[i].major,students[i].Class);
|
||||
}
|
||||
fclose(fp);
|
||||
free(students);
|
||||
}
|
||||
}
|
||||
//<2F><><EFBFBD><EFBFBD>ѧ<EFBFBD><D1A7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
void Write_File_Student_Number(int student_number)
|
||||
{
|
||||
FILE *fp = fopen(STUDENT_NUMBER_URL, "w");
|
||||
if(fp)
|
||||
{
|
||||
fprintf(fp,"%d",student_number);
|
||||
}
|
||||
fclose(fp);
|
||||
}
|
||||
//<2F><><EFBFBD>ļ<EFBFBD><C4BC>ж<EFBFBD>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD>µ<EFBFBD>Students<74><73><EFBFBD><EFBFBD>
|
||||
Student* Read_Students(int student_number)
|
||||
{
|
||||
Student* students = (Student*)malloc(sizeof(Student)*(student_number+1));
|
||||
FILE* fp = fopen(STUDENT_DATA_URL,"r");
|
||||
if(fp)
|
||||
{
|
||||
for(int i=0;i<student_number;i++)
|
||||
{
|
||||
fscanf(fp,"%d %s %s %s %s %d\n",&students[i].id,students[i].name,students[i].gender,
|
||||
&students[i].college,&students[i].major,&students[i].Class);
|
||||
}
|
||||
}
|
||||
fclose(fp);
|
||||
return students;
|
||||
}
|
||||
//<2F><>ѧ<EFBFBD><D1A7>δ<EFBFBD><CEB4>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
void Undefined_Inital_Stu(Student* students,int student_number)
|
||||
{
|
||||
|
||||
for(int i=0;i<student_number;i++)
|
||||
{
|
||||
students[i].money=0;
|
||||
students[i].dorm_index=-1;
|
||||
students[i].scores.Computer=-1;
|
||||
students[i].scores.English=-1;
|
||||
students[i].scores.Math=-1;
|
||||
students[i].scores.Politics=-1;
|
||||
students[i].GPA = -1;
|
||||
}
|
||||
}
|
||||
//<2F><>ȡ<EFBFBD><C8A1>ǰ<EFBFBD>Ľ<EFBFBD>ʦ<EFBFBD><CAA6><EFBFBD><EFBFBD>
|
||||
void Read_File_Teacher_Number(int* teacher_number)
|
||||
{
|
||||
FILE *fp = fopen(TEACHER_DATA_URL, "r");
|
||||
if(fp)
|
||||
{
|
||||
if(fscanf(fp,"%d",teacher_number)!=1)
|
||||
{
|
||||
*teacher_number = 0;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
*teacher_number = 0;
|
||||
}
|
||||
fclose(fp);
|
||||
}
|
||||
//<2F><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD>ʦ,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>
|
||||
void inputTeacherInfo(Colleges* colleges,Course courses[],int college_number,int* teacher_number)
|
||||
{
|
||||
int n;
|
||||
printf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><EFBFBD><EFBFBD>ӽ<EFBFBD><EFBFBD><EFBFBD>ϵͳ<EFBFBD>Ľ<EFBFBD>ʦ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>: ");
|
||||
scanf("%d", &n);
|
||||
*teacher_number += n;
|
||||
Teacher* teachers=NULL;
|
||||
if(n>0)
|
||||
teachers = (Teacher*)malloc(sizeof(Teacher) * n);
|
||||
for (int i=0;i<n;i++)
|
||||
{
|
||||
printf("\n<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʦ %d <20><><EFBFBD><EFBFBD>Ϣ:\n",i+1);
|
||||
|
||||
//<2F>̹<EFBFBD><CCB9><EFBFBD>
|
||||
printf("ID: ");
|
||||
scanf("%d", &teachers[i].id);
|
||||
//<2F><><EFBFBD><EFBFBD>
|
||||
printf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>: ");
|
||||
scanf("%s", teachers[i].name);
|
||||
//<2F>Ա<EFBFBD>ѡ<EFBFBD><D1A1>
|
||||
printf("<EFBFBD>Ա<EFBFBD><EFBFBD><EFBFBD><EFBFBD>л<EFBFBD>Ů<EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
char gender[3];
|
||||
while(true)
|
||||
{
|
||||
scanf("%s", gender);
|
||||
if(strcmp(gender,"<EFBFBD><EFBFBD>")==0 || strcmp(gender,"Ů")==0)
|
||||
{
|
||||
strcpy(teachers[i].gender,gender);
|
||||
break;
|
||||
}
|
||||
else
|
||||
{
|
||||
printf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>룺");
|
||||
}
|
||||
}
|
||||
//ѧԺѡ<D4BA><D1A1>
|
||||
select_college(colleges,college_number,teachers[i].college);
|
||||
//<2F>γ<EFBFBD>ѡ<EFBFBD><D1A1>
|
||||
printf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><EFBFBD><EFBFBD>пγ<EFBFBD>: \n");
|
||||
for(int j=0;j<4;j++)
|
||||
{
|
||||
printf("%s\n",courses[j].name);
|
||||
}
|
||||
while(true)
|
||||
{
|
||||
printf("<EFBFBD><EFBFBD>ѡ<EFBFBD><EFBFBD><EFBFBD>ý<EFBFBD>ʦ<EFBFBD><EFBFBD><EFBFBD>ڿγ̣<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƣ<EFBFBD><EFBFBD><EFBFBD>");
|
||||
char course_name[20];
|
||||
scanf("%s", course_name);
|
||||
bool result = false;
|
||||
for(int j=0;j<4;j++)
|
||||
{
|
||||
if(strcmp(course_name,courses[j].name)==0)
|
||||
{
|
||||
strcpy(teachers[i].course,courses[j].name);
|
||||
result = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if(result) break;
|
||||
}
|
||||
//<2F>ڿΰ༶ѡ<E0BCB6><D1A1>
|
||||
while(true)
|
||||
{
|
||||
printf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڿΰ༶<EFBFBD><EFBFBD>4λ<EFBFBD><EFBFBD><EFBFBD>֣<EFBFBD><EFBFBD><EFBFBD>");
|
||||
scanf("%d",&teachers[i].teaching_class);
|
||||
if(teachers[i].teaching_class>=1000 && teachers[i].teaching_class<=9999)
|
||||
{
|
||||
break;
|
||||
}
|
||||
else
|
||||
{
|
||||
printf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>룺");
|
||||
}
|
||||
}
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ã<EFBFBD>Ĭ<EFBFBD><C4AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD>̹<EFBFBD><CCB9><EFBFBD>
|
||||
teachers[i].password = teachers[i].id;
|
||||
FILE* fp = fopen(TEACHER_DATA_URL,"a+");
|
||||
if(fp)
|
||||
{
|
||||
fprintf(fp,"%d %s %s %s %s %d\n",teachers[i].id,teachers[i].name,teachers[i].gender,
|
||||
teachers[i].college,teachers[i].course,teachers[i].teaching_class);
|
||||
}
|
||||
fclose(fp);
|
||||
}
|
||||
if(teachers!=NULL)
|
||||
free(teachers);
|
||||
}
|
||||
//<2F><><EFBFBD>½<EFBFBD>ʦ<EFBFBD><CAA6><EFBFBD><EFBFBD>
|
||||
void Write_File_Teacher_Number(int teacher_number)
|
||||
{
|
||||
FILE *fp = fopen(TEACHER_NUMBER_URL, "w");
|
||||
if(fp)
|
||||
{
|
||||
fprintf(fp,"%d",teacher_number);
|
||||
}
|
||||
}
|
||||
//<2F><><EFBFBD>ļ<EFBFBD><C4BC>ж<EFBFBD>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD>µ<EFBFBD>Teachers<72><73><EFBFBD><EFBFBD>
|
||||
Teacher* Read_Teachers(int teacher_number)
|
||||
{
|
||||
Teacher* teachers = (Teacher*)malloc(sizeof(Teacher)*(teacher_number+1));
|
||||
FILE* fp = fopen(TEACHER_DATA_URL,"r");
|
||||
if(fp)
|
||||
{
|
||||
for(int i=0;i<teacher_number;i++)
|
||||
{
|
||||
fscanf(fp,"%d %s %s %s %s %d\n",&teachers[i].id,teachers[i].name,teachers[i].gender,
|
||||
&teachers[i].college,teachers[i].course,&teachers[i].teaching_class);
|
||||
}
|
||||
fclose(fp);
|
||||
return teachers;
|
||||
}
|
||||
return NULL;
|
||||
|
||||
}
|
||||
//<2F><>ʦ<EFBFBD><CAA6>¼
|
||||
bool Teacher_Login(Teacher* teachers,Teacher *target_teacher,int teacher_number)
|
||||
{
|
||||
int count = 0;
|
||||
printf("<EFBFBD><EFBFBD>ֻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><EFBFBD>ᣬ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>루<EFBFBD><EFBFBD>ʼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><EFBFBD><EFBFBD>ţ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڲ<EFBFBD><EFBFBD><EFBFBD>ԭ<EFBFBD><EFBFBD>ֱ<EFBFBD>Ӹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>00010001<EFBFBD><EFBFBD><EFBFBD><EFBFBD>\n");
|
||||
while(true)
|
||||
{
|
||||
|
||||
if(count==3)
|
||||
{
|
||||
printf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>࣬<EFBFBD><EFBFBD><EFBFBD>Ժ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ԣ<EFBFBD>\n");
|
||||
return false;
|
||||
}
|
||||
int id;
|
||||
printf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̹<EFBFBD><EFBFBD>ţ<EFBFBD>");
|
||||
scanf("%d",&id);
|
||||
long long password;
|
||||
printf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>루<EFBFBD><EFBFBD>ʼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><EFBFBD><EFBFBD>ţ<EFBFBD><EFBFBD><EFBFBD>");
|
||||
scanf("%lld",&password);
|
||||
for(int i=0;i<teacher_number;i++)
|
||||
{
|
||||
if(teachers[i].id == id && teachers[i].password == password)
|
||||
{
|
||||
printf("<EFBFBD><EFBFBD>¼<EFBFBD>ɹ<EFBFBD><EFBFBD><EFBFBD>\n");
|
||||
*target_teacher = teachers[i];
|
||||
return true;
|
||||
}
|
||||
}
|
||||
++count;
|
||||
printf("<EFBFBD>̹<EFBFBD><EFBFBD>Ż<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>룡\n");
|
||||
}
|
||||
}
|
||||
//<2F><>ʦ¼<CAA6><C2BC>ѧ<EFBFBD><D1A7><EFBFBD>ɼ<EFBFBD><C9BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>
|
||||
void Teacher_Import_Grade(Student*students,int student_number,
|
||||
Teacher *teacher,int teacher_number,
|
||||
Course* courses)
|
||||
{
|
||||
char temp_course_url[30];
|
||||
sprintf(temp_course_url,"%s.txt",teacher->course);
|
||||
//<2F><><EFBFBD><EFBFBD>/<2F><><EFBFBD><EFBFBD><EFBFBD>ɼ<EFBFBD><C9BC>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD>ʽΪ<CABD><CEAA><EFBFBD>̹<EFBFBD><CCB9>ſγ<C5BF><CEB3><EFBFBD><EFBFBD>༶<EFBFBD><E0BCB6>.txt<78><74><EFBFBD>磺Math.txt
|
||||
//<2F><><EFBFBD>ݴ洢<DDB4><E6B4A2>ʽ<EFBFBD><CABD>ѧ<EFBFBD>żӿո<D3BF><D5B8>ӳɼ<D3B3><C9BC><EFBFBD><EFBFBD>磺20245738 90
|
||||
FILE* fp = fopen(temp_course_url,"a+");
|
||||
for(int i=0;i<student_number;i++)
|
||||
{
|
||||
if(students[i].Class == teacher->teaching_class)
|
||||
{
|
||||
if(strcmp(teacher->course,"Math")==0)
|
||||
{
|
||||
if(students[i].scores.Math == (-1))
|
||||
{
|
||||
printf("%d %s <20><> <20>ߵ<EFBFBD><DFB5><EFBFBD>ѧ <20>ɼ<EFBFBD>Ϊ<EFBFBD><CEAA>",students[i].id,students[i].name);
|
||||
scanf("%d",&students[i].scores.Math);
|
||||
fprintf(fp,"%d %d\n",students[i].id,students[i].scores.Math);
|
||||
}
|
||||
else continue;
|
||||
}
|
||||
else if(strcmp(teacher->course,"Politics")==0)
|
||||
{
|
||||
if(students[i].scores.Politics == (-1))
|
||||
{
|
||||
printf("%d %s <20><> ˼<><CBBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>뷨<EFBFBD><EBB7A8> <20>ɼ<EFBFBD>Ϊ<EFBFBD><CEAA>",students[i].id,students[i].name);
|
||||
scanf("%d",&students[i].scores.Politics);
|
||||
fprintf(fp,"%d %d\n",students[i].id,students[i].scores.Politics);
|
||||
}
|
||||
else continue;
|
||||
}
|
||||
else if(strcmp(teacher->course,"English")==0)
|
||||
{
|
||||
if(students[i].scores.English == (-1))
|
||||
{
|
||||
printf("%d %s <20><> <20><>ѧӢ<D1A7><D3A2> <20>ɼ<EFBFBD>Ϊ<EFBFBD><CEAA>",students[i].id,students[i].name);
|
||||
scanf("%d",&students[i].scores.English);
|
||||
fprintf(fp,"%d %d\n",students[i].id,students[i].scores.English);
|
||||
}
|
||||
else continue;
|
||||
}
|
||||
else if(strcmp(teacher->course,"Computer")==0)
|
||||
{
|
||||
if(students[i].scores.Computer == (-1))
|
||||
{
|
||||
printf("%d %s <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƻ<EFBFBD><C6BB><EFBFBD> <20>ɼ<EFBFBD>Ϊ<EFBFBD><CEAA>",students[i].id,students[i].name);
|
||||
scanf("%d",&students[i].scores.Computer);
|
||||
fprintf(fp,"%d %d\n",students[i].id,students[i].scores.Computer);
|
||||
}
|
||||
else continue;
|
||||
}
|
||||
Update_GPA(&students[i],courses,student_number);
|
||||
}
|
||||
}
|
||||
fclose(fp);
|
||||
printf("<EFBFBD>ɼ<EFBFBD>¼<EFBFBD><EFBFBD><EFBFBD>ɹ<EFBFBD>\n");
|
||||
}
|
||||
//<2F><><EFBFBD><EFBFBD>ѧ<EFBFBD><D1A7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>GPA
|
||||
double Total_GPA_Calculation(Student* student,Course courses[],int student_number)
|
||||
{
|
||||
double total_credit = 0; // ѧ<><D1A7><EFBFBD>ܺ<EFBFBD>
|
||||
//ѧ<>Ƴɼ<C6B3><C9BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>-1<><31><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE>ѧ<EFBFBD><D1A7>û<EFBFBD><C3BB>ѡ<EFBFBD>ÿγ̣<CEB3><CCA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѧ<EFBFBD><D1A7>
|
||||
total_credit+=(student->scores.Math!=(-1)?courses[0].credit:0);
|
||||
total_credit+=(student->scores.English!=(-1)?courses[1].credit:0);
|
||||
total_credit+=(student->scores.Computer!=(-1)?courses[2].credit:0);
|
||||
total_credit+=(student->scores.Politics!=(-1)?courses[3].credit:0);
|
||||
if(total_credit==0)
|
||||
return 0;
|
||||
double total_grade = 0;// <20>ܳɼ<DCB3>
|
||||
total_grade+=courses[0].credit*(student->scores.Math>=60?(student->scores.Math/10.0-5):0);
|
||||
total_grade+=courses[1].credit*(student->scores.English>=60?(student->scores.English/10.0-5):0);
|
||||
total_grade+=courses[2].credit*(student->scores.Computer>=60?(student->scores.Computer/10.0-5):0);
|
||||
total_grade+=courses[3].credit*(student->scores.Politics>=60?(student->scores.Politics/10.0-5):0);
|
||||
if(total_grade==0)
|
||||
return 0;
|
||||
return total_grade/total_credit;
|
||||
}
|
||||
void Inital_password(Student* students,int student_number,Teacher* teachers,int teacher_number)
|
||||
{
|
||||
for(int i=0;i<student_number;i++)
|
||||
{
|
||||
students[i].password = students[i].id;
|
||||
}
|
||||
for(int i=0;i<teacher_number;i++)
|
||||
{
|
||||
teachers[i].password = teachers[i].id;
|
||||
}
|
||||
}
|
||||
//<2F><><EFBFBD><EFBFBD>ij<EFBFBD><C4B3>ѧ<EFBFBD><D1A7><EFBFBD><EFBFBD>GPA
|
||||
void Update_GPA(Student* student,Course courses[], int student_number)
|
||||
{
|
||||
double temp_GPA = Total_GPA_Calculation(student,courses,student_number);
|
||||
student->GPA = temp_GPA;
|
||||
}
|
||||
// forѭ<72><D1AD>-><3E>ԡ<EFBFBD>%d\n<><6E><EFBFBD><EFBFBD>ʽ<EFBFBD><CABD><EFBFBD><EFBFBD>-><3E>浽<EFBFBD>ṹ<EFBFBD>壨 students.dorm_index<65><78>
|
||||
//<2F><><EFBFBD><EFBFBD> numStudents<74><73>ѧ<EFBFBD><D1A7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
//Student<6E>ṹ<EFBFBD><E1B9B9>
|
||||
void assignDormitory(Student *students, int numStudents)
|
||||
{
|
||||
int index=0;
|
||||
for(int a=1;a<=6;a++)//¥<><C2A5>
|
||||
{
|
||||
for(int b=1;b<=2;b++)//1<><31>A<EFBFBD><41><EFBFBD><EFBFBD>2<EFBFBD><32>B<EFBFBD><42>
|
||||
{
|
||||
for(int c=1;c<=6;c++)//¥<><C2A5><EFBFBD><EFBFBD>
|
||||
{
|
||||
for(int d=1;d<=35;d++)//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
{
|
||||
for(int e=1;e<=4;e++)//<2F><>λ
|
||||
{
|
||||
if(index>=numStudents)
|
||||
return;
|
||||
students[index].dorm_index=a*100000+
|
||||
b*10000+c*1000+d*10+e; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Һ<EFBFBD>
|
||||
// printf("%d\n",students[index].dorm_index);
|
||||
index++;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
bool Student_Login(Student* students,Student *target_student,int student_number)
|
||||
{
|
||||
int count = 0;
|
||||
printf("<EFBFBD><EFBFBD>ֻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><EFBFBD>ᣬ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˺<EFBFBD><EFBFBD><EFBFBD><EFBFBD>루<EFBFBD><EFBFBD>ʼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊѧ<EFBFBD>ţ<EFBFBD>(<28><><EFBFBD>ڲ<EFBFBD><DAB2><EFBFBD>ֱ<EFBFBD>Ӹ<EFBFBD><D3B8><EFBFBD><EFBFBD>˺ţ<CBBA>20245865)<29><>\n");
|
||||
while(true)
|
||||
{
|
||||
if(count==3)
|
||||
{
|
||||
printf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>࣬<EFBFBD><EFBFBD><EFBFBD>Ժ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ԣ<EFBFBD>\n");
|
||||
return false;
|
||||
}
|
||||
int id;
|
||||
printf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>8λѧ<EFBFBD>ţ<EFBFBD>");
|
||||
scanf("%d",&id);
|
||||
long long password;
|
||||
printf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>루<EFBFBD><EFBFBD>ʼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊѧ<EFBFBD>ţ<EFBFBD><EFBFBD><EFBFBD>");
|
||||
scanf("%lld",&password);
|
||||
for(int i=0;i<student_number;i++)
|
||||
{
|
||||
if(students[i].id == id && students[i].password == password)
|
||||
{
|
||||
printf("<EFBFBD><EFBFBD>¼<EFBFBD>ɹ<EFBFBD><EFBFBD><EFBFBD>\n");
|
||||
*target_student = students[i];
|
||||
return true;
|
||||
}
|
||||
}
|
||||
++count;
|
||||
printf("ѧ<EFBFBD>Ż<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>룡\n");
|
||||
}
|
||||
}
|
||||
//<2F>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD>ѧ<EFBFBD><D1A7><EFBFBD>ijɼ<C4B3>
|
||||
void Students_Read_Grade_File(TreeNode* root,int student_number)
|
||||
{
|
||||
// <20><>ȡѧ<C8A1><D1A7><EFBFBD>ɼ<EFBFBD><C9BC>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>洢<EFBFBD><E6B4A2><EFBFBD><EFBFBD>Ӧ<EFBFBD>Ľṹ<C4BD><E1B9B9><EFBFBD><EFBFBD>
|
||||
int temp_id;
|
||||
int temp_score;
|
||||
FILE* fMath = fopen("Math.txt", "r");
|
||||
int status;
|
||||
if(fMath!=NULL)
|
||||
{
|
||||
while((status = fscanf(fMath, "%d %d", &temp_id, &temp_score))!=EOF && status==2)
|
||||
{
|
||||
TreeNode* result = find(root, temp_id);
|
||||
if (result!=NULL)
|
||||
{
|
||||
result->student->scores.Math = temp_score;
|
||||
}
|
||||
}
|
||||
fclose(fMath);
|
||||
}
|
||||
|
||||
status=0;
|
||||
FILE* fEnglish = fopen("English.txt", "r");
|
||||
if(fEnglish!=NULL)
|
||||
{
|
||||
while((status = fscanf(fEnglish, "%d %d", &temp_id, &temp_score))!=EOF && status==2)
|
||||
{
|
||||
TreeNode* result = find(root, temp_id);
|
||||
if (result!=NULL)
|
||||
{
|
||||
result->student->scores.English = temp_score;
|
||||
}
|
||||
}
|
||||
fclose(fEnglish);
|
||||
}
|
||||
|
||||
status=0;
|
||||
FILE* fComputer = fopen("Computer.txt", "r");
|
||||
if(fComputer!=NULL)
|
||||
{
|
||||
while((status = fscanf(fComputer, "%d %d", &temp_id, &temp_score))!=EOF && status==2)
|
||||
{
|
||||
TreeNode* result = find(root, temp_id);
|
||||
if (result!=NULL)
|
||||
{
|
||||
result->student->scores.Computer = temp_score;
|
||||
}
|
||||
}
|
||||
fclose(fComputer);
|
||||
}
|
||||
status=0;
|
||||
FILE* fPolitics = fopen("Politics.txt", "r");
|
||||
if(fPolitics!=NULL)
|
||||
{
|
||||
while((status = fscanf(fPolitics, "%d %d", &temp_id, &temp_score))!=EOF && status==2)
|
||||
{
|
||||
TreeNode* result = find(root, temp_id);
|
||||
if (result!=NULL)
|
||||
{
|
||||
result->student->scores.Politics = temp_score;
|
||||
}
|
||||
}
|
||||
fclose(fPolitics);
|
||||
}
|
||||
}
|
||||
//ѧ<><D1A7><EFBFBD>鿴<EFBFBD>ɼ<EFBFBD>
|
||||
void Student_Watch_Grade(Student* student)
|
||||
{
|
||||
printf("<EFBFBD>鿴ѧ<EFBFBD><EFBFBD>%d %s<>ijɼ<C4B3>\n",student->id,student->name);
|
||||
student->scores.Math!=(-1)?printf("Math : %d\n", student->scores.Math):printf("Math: δ¼<CEB4><C2BC>\n");
|
||||
student->scores.English!=(-1)?printf("English : %d\n", student->scores.English):printf("English: δ¼<CEB4><C2BC>\n");
|
||||
student->scores.Computer!=(-1)?printf("Computer: %d\n", student->scores.Computer):printf("Computer: δ¼<CEB4><C2BC>\n");
|
||||
student->scores.Politics!=(-1)?printf("Politics: %d\n", student->scores.Politics):printf("Politics: δ¼<CEB4><C2BC>\n");
|
||||
student->GPA!=(-1)?printf("GPA : %.2f\n", student->GPA):printf("GPA: û<><C3BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\n");
|
||||
}
|
||||
long long quick_pow(long long base, long long power, long long mod)
|
||||
{
|
||||
long long result = 1;
|
||||
base = base%mod;
|
||||
while (power>0)
|
||||
{
|
||||
if (power%2==1)
|
||||
{
|
||||
result=(result * base) % mod;
|
||||
}
|
||||
power = power >> 1;
|
||||
base = (base * base) % mod;
|
||||
}
|
||||
return result;
|
||||
}
|
||||
// <20><><EFBFBD>ܺ<EFBFBD><DCBA><EFBFBD>
|
||||
long long encrypt(long long original_password)
|
||||
{
|
||||
return quick_pow(original_password, E, N);
|
||||
}
|
||||
// <20><><EFBFBD>ܺ<EFBFBD><DCBA><EFBFBD>
|
||||
long long decrypt(long long ciphertext)
|
||||
{
|
||||
return quick_pow(ciphertext, D, N);
|
||||
}
|
||||
void Read_Password(Student*students,int student_number,Teacher*teachers,int teacher_number,TreeNode* root)
|
||||
{
|
||||
//<2F><><EFBFBD>ļ<EFBFBD><C4BC>ж<EFBFBD>ȡȫ<C8A1><C8AB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֶ<EFBFBD><D6B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>룬<EFBFBD><EBA3AC><EFBFBD>洢
|
||||
FILE* fStudent = fopen(STUDENT_PASSWORD_URL, "a");
|
||||
fclose(fStudent);
|
||||
fStudent = fopen(STUDENT_PASSWORD_URL, "r");
|
||||
if(fStudent!=NULL)//һ<><D2BB>Ϊ<EFBFBD><CEAA>NULL<4C><4C><EFBFBD><EFBFBD>Ϊ<EFBFBD>ոմ<D5B8><D5B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>
|
||||
{
|
||||
//<2F><>ȡ<EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD>ݣ<EFBFBD><DDA3><EFBFBD><EFBFBD>ҵ<EFBFBD>ÿһ<C3BF>е<EFBFBD>id<69><64><EFBFBD>˵<EFBFBD><CBB5><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD>ã<EFBFBD><C3A3><EFBFBD><EFBFBD>ܺ<EFBFBD><DCBA><EFBFBD><EFBFBD><EFBFBD>
|
||||
int id;
|
||||
long long public_key;
|
||||
while(fscanf(fStudent,"%d %lld",&id,&public_key)==2)
|
||||
{
|
||||
TreeNode* target_stu = find(root,id);
|
||||
if(target_stu!=NULL)//<2F>ҵ<EFBFBD><D2B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
{
|
||||
target_stu->student->password = decrypt(public_key);//<2F><><EFBFBD>ܺ<EFBFBD><DCBA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
}
|
||||
}
|
||||
//<2F><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ر<EFBFBD><D8B1>ļ<EFBFBD>
|
||||
fclose(fStudent);
|
||||
}
|
||||
//<2F><>ȡ<EFBFBD><C8A1>ʦ<EFBFBD><CAA6><EFBFBD><EFBFBD>
|
||||
FILE* fTeacher = fopen(TEACHER_PASSWORD_URL, "a");
|
||||
fclose(fTeacher);
|
||||
fTeacher = fopen(TEACHER_PASSWORD_URL, "r");
|
||||
if(fTeacher!=NULL)
|
||||
{
|
||||
int id;
|
||||
long long public_key;
|
||||
while(fscanf(fTeacher,"%d %lld",&id,&public_key)==2)
|
||||
{
|
||||
//<2F><><EFBFBD>ڽ<EFBFBD>ʦ<EFBFBD><CAA6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ޣ<EFBFBD><DEA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҽ<EFBFBD><D2BC><EFBFBD>
|
||||
for(int i=0;i<teacher_number;i++)
|
||||
{
|
||||
if(teachers[i].id==id)//<2F>ҵ<EFBFBD><D2B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ˣ<EFBFBD><CBA3><EFBFBD>ζ<EFBFBD><CEB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֶ<EFBFBD><D6B6><EFBFBD><EFBFBD>ù<EFBFBD><C3B9><EFBFBD><EFBFBD>룬<EFBFBD><EBA3AC><EFBFBD>洢<EFBFBD><E6B4A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
{
|
||||
teachers[i].password = decrypt(public_key);
|
||||
}
|
||||
}
|
||||
}
|
||||
fclose(fTeacher);
|
||||
}
|
||||
}
|
||||
void Read_Money(Student*students,int student_number,Teacher*teachers,int teacher_number,TreeNode* root)
|
||||
{
|
||||
FILE* fMoney = fopen(MONEY_URL,"a");
|
||||
fclose(fMoney);
|
||||
fMoney = fopen(MONEY_URL,"r");
|
||||
if(fMoney!=NULL)
|
||||
{
|
||||
int id;
|
||||
double money;
|
||||
while(fscanf(fMoney,"%d %lf",&id,&money)==2)
|
||||
{
|
||||
TreeNode* target = find(root,id);
|
||||
if(target!=NULL)
|
||||
{
|
||||
target->student->money = money;
|
||||
}
|
||||
}
|
||||
fclose(fMoney);
|
||||
}
|
||||
}
|
||||
|
||||
void Moneys_System(Student* student,int student_number,BusSchedule *b1,BusSchedule *b2,int bn1,int bn2)
|
||||
{
|
||||
printf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><EFBFBD>%.2lf",student->money);
|
||||
printf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><EFBFBD><EFBFBD>й<EFBFBD><EFBFBD><EFBFBD>\n");
|
||||
printf("1.ԤԼ\n");
|
||||
printf("2.<2E>˳<EFBFBD>\n");
|
||||
int choice;
|
||||
scanf("%d",&choice);
|
||||
switch(choice)
|
||||
{
|
||||
// case 1:
|
||||
// {
|
||||
// float money;
|
||||
// printf("<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5><EFBFBD>");
|
||||
// scanf("%lf",&money);
|
||||
// student->money+=money;
|
||||
//
|
||||
// FILE* fMoney = fopen(MONEY_URL,"a");
|
||||
// fprintf(fMoney,"%d %.2lf\n",student->id,student->money);
|
||||
// fclose(fMoney);
|
||||
// printf("Ŀǰ<C4BF><C7B0><EFBFBD><EFBFBD>Ϊ%.2lf\n",student->money);
|
||||
// printf("<22><>ֵ<EFBFBD>ɹ<EFBFBD>\n");
|
||||
// break;
|
||||
case 1:
|
||||
{
|
||||
printf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ԤԼѡ<EFBFBD>\n");
|
||||
printf("1.<2E>ԤԼ\n2.<2E>˳<EFBFBD>\n");
|
||||
|
||||
int choice_buy;
|
||||
scanf("%d",&choice_buy);
|
||||
switch(choice_buy)
|
||||
{
|
||||
case 1:
|
||||
{
|
||||
int abc;
|
||||
printf("<EFBFBD><EFBFBD>ѡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ҪԤԼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\n");
|
||||
printf("1.<2E>Ϻ<EFBFBD>-<2D><><EFBFBD><EFBFBD>\n2.<2E><><EFBFBD><EFBFBD>-<2D>Ϻ<EFBFBD>\n3.<2E>˳<EFBFBD>\n");
|
||||
scanf("%d",&abc);
|
||||
if(abc==1)
|
||||
{
|
||||
printf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD>1<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD><EFBFBD>\n");
|
||||
Print_Bus_Conditions(BUS_ROUTE_ONE);
|
||||
|
||||
}
|
||||
else if(abc==2)
|
||||
{
|
||||
|
||||
printf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD>2<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD><EFBFBD>\n");
|
||||
Print_Bus_Conditions(BUS_ROUTE_TWO);
|
||||
}
|
||||
else
|
||||
{
|
||||
printf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Զ<EFBFBD><EFBFBD>˳<EFBFBD>\n");
|
||||
break;
|
||||
}
|
||||
printf("<EFBFBD><EFBFBD>ѡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ԤԼ<EFBFBD><EFBFBD><EFBFBD>ţ<EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD>ǰ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ţ<EFBFBD><EFBFBD><EFBFBD>\n");
|
||||
int choice_bus;
|
||||
scanf("%d",&choice_bus);
|
||||
|
||||
printf("ԤԼ<EFBFBD>ɹ<EFBFBD>\n");
|
||||
//<2F>۷<EFBFBD>
|
||||
student->money-=BUS_RESERVE_COST;
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
FILE* fMoney = fopen(MONEY_URL,"a+");
|
||||
fprintf(fMoney,"%d %.2lf\n",student->id,student->money);
|
||||
fclose(fMoney);
|
||||
printf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><EFBFBD>%.2lf",student->money);
|
||||
break;
|
||||
}
|
||||
// case 2:
|
||||
// {
|
||||
// printf("<22><><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD>ԤԼ<D4A4><D4BC>Ϣ<EFBFBD><CFA2>\n");
|
||||
// //<2F><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>ԤԼ<D4A4><D4BC>Ϣ
|
||||
|
||||
|
||||
// printf("ԤԼ<D4A4>ɹ<EFBFBD>\n");
|
||||
// //<2F>۷<EFBFBD>
|
||||
// student->money-=FACILITY_RESERVE_COST;
|
||||
// //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
// FILE* fMoney = fopen(MONEY_URL,"a+");
|
||||
// fprintf(fMoney,"%d %.2f\n",student->id,student->money);
|
||||
// fclose(fMoney);
|
||||
// break;
|
||||
// }
|
||||
case 2:
|
||||
{
|
||||
printf("<EFBFBD>˳<EFBFBD><EFBFBD>ɹ<EFBFBD>\n");
|
||||
Sleep(1000);
|
||||
system("cls");
|
||||
break;
|
||||
}
|
||||
default:
|
||||
{
|
||||
printf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Զ<EFBFBD><EFBFBD>˳<EFBFBD>\n");
|
||||
break;
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
case 2:
|
||||
{
|
||||
printf("<EFBFBD>˳<EFBFBD><EFBFBD>ɹ<EFBFBD>\n");
|
||||
Sleep(1000);
|
||||
system("cls");
|
||||
}
|
||||
default:
|
||||
{
|
||||
printf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Զ<EFBFBD><EFBFBD>˳<EFBFBD>\n");
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//<2F><EFBFBD><E0B3B5><EFBFBD><EFBFBD>
|
||||
//<2F><><EFBFBD>ð<C3B0><E0B3B5><EFBFBD>ڼ<EFBFBD>ʱ<EFBFBD><CAB1>
|
||||
void inputBusSchedule(BusSchedule *schedule)
|
||||
{
|
||||
printf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:");
|
||||
scanf("%s",schedule->date);
|
||||
printf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD>:");
|
||||
scanf("%s",schedule->time);
|
||||
}
|
||||
//<2F><><EFBFBD><EFBFBD><E0B3B5><EFBFBD>ڼ<EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
void saveBusScheduleToFile(const BusSchedule *schedule,const char *filename,int counter)
|
||||
{
|
||||
FILE *file = fopen(filename,"a+");
|
||||
fprintf(file,"%d. ",counter);
|
||||
fprintf(file,"%s ",schedule->date);
|
||||
fprintf(file,"%s",schedule->time);
|
||||
fprintf(file,"\n");
|
||||
printf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>óɹ<EFBFBD>\n");
|
||||
fclose(file);
|
||||
}
|
||||
int Counter(const char *filename)
|
||||
{
|
||||
FILE *file=fopen(filename, "a+");
|
||||
int maxCounter=0;
|
||||
int currentCounter;
|
||||
while(fscanf(file,"%d.",¤tCounter)==1)
|
||||
{
|
||||
if(currentCounter>maxCounter)
|
||||
{
|
||||
maxCounter=currentCounter;
|
||||
}
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ں<EFBFBD>ʱ<EFBFBD>䣬ֱ<E4A3AC><D6B1><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
fscanf(file,"%*s %*s\n");
|
||||
}
|
||||
fclose(file);
|
||||
return maxCounter;
|
||||
}
|
||||
BusSchedule* Print_Bus_Conditions(const char *filename)
|
||||
{
|
||||
FILE*fp = fopen(filename,"a+");
|
||||
fclose(fp);
|
||||
fp = fopen(filename,"r");
|
||||
int maxCount=0;
|
||||
char Date[30];
|
||||
char Time[30];
|
||||
int status;
|
||||
int Total_Counter = 0;
|
||||
Total_Counter=Counter(filename);
|
||||
BusSchedule* busSchedule = (BusSchedule*)malloc(sizeof(BusSchedule)*(Total_Counter+1));
|
||||
while(fscanf(fp,"%d. %s %s",&maxCount,Date,Time)==3)
|
||||
{
|
||||
busSchedule[maxCount-1].index = maxCount;
|
||||
strcpy(busSchedule[maxCount-1].date,Date);
|
||||
strcpy(busSchedule[maxCount-1].time,Time);
|
||||
printf("%d.%s %s\n",maxCount,Date,Time);
|
||||
}
|
||||
return busSchedule;
|
||||
}
|
||||
int hashFunction(int id)
|
||||
{
|
||||
int hashValue = 3;
|
||||
const int prime = 31;
|
||||
hashValue = (hashValue ^ (id & 0xffff)) * prime;
|
||||
hashValue = (hashValue ^ ((id >> 2) & 0xffff)) * prime;
|
||||
hashValue = (hashValue ^ (id >> 1)) * prime;
|
||||
// const int prime = 31;
|
||||
// int hashValue = prime*id;
|
||||
return hashValue % TABLE_SIZE;
|
||||
}
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϣ<EFBFBD><CFA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>г<EFBFBD>ʼ<EFBFBD><CABC>
|
||||
HashTable* createHashTable(void)
|
||||
{
|
||||
HashTable* table = (HashTable*)malloc(sizeof(HashTable));
|
||||
if (table)
|
||||
{
|
||||
for(int i=0;i<TABLE_SIZE;i++)
|
||||
{
|
||||
table->students[i]=NULL;
|
||||
}
|
||||
}
|
||||
return table;
|
||||
}
|
||||
//<2F><><EFBFBD><EFBFBD>
|
||||
bool insertStudent(HashTable* table, Student* student)
|
||||
{
|
||||
if(!table || !student)
|
||||
return false;
|
||||
int index = hashFunction(student->id);
|
||||
if(!table->students[index]) //δ<><CEB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϣ<EFBFBD><CFA3>ͻ/<2F><>Ӧλ<D3A6><CEBB>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
{
|
||||
table->students[index] = student;
|
||||
student->next = NULL;
|
||||
}
|
||||
else
|
||||
{
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϣ<EFBFBD><CFA3>ͻ<EFBFBD><CDBB>ͨ<EFBFBD><CDA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʵ<EFBFBD><CAB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
// Student* newStudent = (Student*)malloc(sizeof(Student));
|
||||
// copyStudent(newStudent,student);
|
||||
Student* current = table->students[index];
|
||||
while(current->next!=NULL)
|
||||
{
|
||||
current = current->next;
|
||||
}
|
||||
current->next = student;
|
||||
student->next = NULL;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
//<2F><><EFBFBD><EFBFBD>
|
||||
Student* findStudent(HashTable* table, int id)
|
||||
{
|
||||
if (!table)
|
||||
return NULL;
|
||||
int index = hashFunction(id);
|
||||
Student* current = table->students[index];
|
||||
if(current==NULL)
|
||||
return NULL;
|
||||
while (current!= NULL)
|
||||
{
|
||||
if (current->id == id)
|
||||
{
|
||||
return current;
|
||||
}
|
||||
current = current->next;
|
||||
}
|
||||
return NULL;
|
||||
}
|
||||
// ɾ<><C9BE>
|
||||
bool deleteStudent(HashTable* table, int id)
|
||||
{
|
||||
if (!table)
|
||||
return false;
|
||||
Student* theStudent = findStudent(table,id);
|
||||
if(theStudent==NULL)
|
||||
return false;//<2F><><EFBFBD><EFBFBD><DEB4><EFBFBD>
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD>鵽<EFBFBD><E9B5BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD>ڹ<EFBFBD>ϣ<EFBFBD><CFA3><EFBFBD><EFBFBD>
|
||||
int index = hashFunction(id);
|
||||
if(table->students[index]==theStudent)
|
||||
{
|
||||
table->students[index] = theStudent->next;
|
||||
}
|
||||
else
|
||||
{
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
Student* current = table->students[index];
|
||||
while(current->next != theStudent)
|
||||
{
|
||||
current = current->next;
|
||||
}
|
||||
current->next = theStudent->next;
|
||||
}
|
||||
free(theStudent);
|
||||
return true;
|
||||
|
||||
}
|
||||
//<2F><><EFBFBD>չ<EFBFBD>ϣ<EFBFBD><CFA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool freeHashTable(HashTable* table)
|
||||
{
|
||||
if(!table)
|
||||
return false;
|
||||
//<2F>ҵ<EFBFBD><D2B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
for(int i=0;i<TABLE_SIZE;i++)
|
||||
{
|
||||
Student* current = table->students[i];
|
||||
current = current->next;
|
||||
while(current!=NULL)
|
||||
{
|
||||
Student* temp = current;
|
||||
current = current->next;
|
||||
free(temp);
|
||||
}
|
||||
}
|
||||
free(table);
|
||||
return true;
|
||||
}
|
||||
//<2F>༭<EFBFBD><E0BCAD><EFBFBD><EFBFBD>ԤԼ<D4A4><D4BC><EFBFBD>ڼ<EFBFBD>ʱ<EFBFBD><CAB1>
|
||||
void inputSiteSchedule(siteSchedule *schedule)
|
||||
{
|
||||
printf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>볡<EFBFBD>ؿ<EFBFBD>ԤԼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>:");
|
||||
scanf("%s",schedule->date);
|
||||
printf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>볡<EFBFBD>ؿ<EFBFBD>ԤԼʱ<EFBFBD><EFBFBD>:");
|
||||
scanf("%s",schedule->time);
|
||||
}
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD>ؿ<EFBFBD>ԤԼ<D4A4><D4BC>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>д<EFBFBD><D0B4><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
void saveSiteScheduleToFile(const siteSchedule *schedule,const char *filename,int counter)
|
||||
{
|
||||
FILE *file = fopen(filename,"a+");
|
||||
fprintf(file,"%d. ",counter);
|
||||
fprintf(file,"%s ",schedule->date);
|
||||
fprintf(file,"%s",schedule->time);
|
||||
fprintf(file,"\n");
|
||||
printf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>óɹ<EFBFBD>\n");
|
||||
fclose(file);
|
||||
}
|
||||
|
||||
0
如果主函数打开有乱码就直接开exe.txt
Normal file
0
如果主函数打开有乱码就直接开exe.txt
Normal file
Reference in New Issue
Block a user