?? menu.h
字號:
/*menu.h:header file for menu2.c and menu3.c*/
#include<iostream.h>
#include<stdio.h>
#include<stdlib.h>
#include<conio.h>
#include <ctype.h>
#include <string.h>
#include<time.h>
/*每個字符串數據多一位,用來存儲'\0'*/
/*院系結構體*/
typedef struct Node_D
{
char DNO[3];
char DN[21];
char D_DATE[8];
char D_HEAD[11];
char D_ADDRESS[21];
char D_PHONE[13];
struct Node_D *next;
}DEPARTMENT;
/*教師結構體*/
typedef struct Node_T
{
char TNO[11];
char TN [21];
char T_SEX[3];
char T_PROF[11];
char T_BIRTHDAY[11];
char T_DATE[8];
double T_SALARY;
char DNO[3];
struct Node_T *next;
}TEACHER;
/*班級結構體*/
typedef struct Node_C
{
char CNO[11];
char CN[11];
char C_DATE[8];
char C_CLASSROOM[15];
int C_NUM;
char DNO[3];
char TNO[11];
struct Node_C *next;
}CLASS;
/*專業結構體*/
typedef struct Node_SP
{
char SP_NO[3];
char SP_N[21];
char SP_DATE[8];
int SP_NUM;
char DNO[3];
struct Node_SP *next;
}SPECIALITY;
/*學生結構體*/
typedef struct Node_S
{
char SNO[11];
char SN[21];
char S_SEX[3];
char S_BIRTHDAY[11];
char S_DATE[8];
char S_SCHOOL[31];
double S_GRADE;
char S_PHONE[13];
char S_ADDRESS[31];
char SP_NO[3];
char CNO[11];
char CH_NO[6];
struct Node_S *next;
}STUDENT;
/*課程結構體*/
typedef struct Node_CO
{
char CO_NO[11];
char CO_N[21];
int CO_T_TIME;
int CO_E_TIME;
int CO_S;
char CO_BOOK[25];
char DNO[3];
struct Node_CO *next;
}COURSE;
/*活動結構體*/
typedef struct Node_A
{
char ANO[4];
char AN[31];
char A_DATE[8];
struct Node_A *next;
}ACTIVITY;
/*寢室結構體*/
typedef struct Node_CH
{
char CH_NO[6];
char CH_ADDRESS[31];
int CH_NUM;
struct Node_CH *next;
}CHAMBER;
/*入校注冊結構體*/
typedef struct Node_R
{
char RNO[6];
char DNO[3];
int R_COST;
struct Node_R *next;
}REGISTER;
/*選修結構體*/
typedef struct Node_SC
{
char SNO[11];
char CO_NO[11];
char SC_CLASS[7];
double SC_GRADE;
char TNO[11];
char SC_DATE[8];
struct Node_SC *next;
}SC;
/*教學計劃結構體*/
typedef struct Node_PROJECT
{
char SP_NO[3];
char CO_NO[11];
char CLASS[11];
struct Node_PROJECT *next;
}PROJECT;
/*講授結構體*/
typedef struct Node_TC
{
char TNO[11];
char CO_NO[11];
char TC_T_DATETIME[21];
char TC_T_ADDRESS[10];
char TC_E_DATETIME[21];
char TC_E_ADDRESS[11];
struct Node_TC *next;
}TC;
/*參加活動結構體*/
typedef struct Node_J
{
char ANO[4];
double J_GRADE;
char J_OTHER[21];
char SNO[11];
struct Node_J *next;
}JOINACTIVITY;
/*入學報道結構體*/
typedef struct Node_L
{
char RNO[6];
char SNO[11];
char L_DATE[8];
struct Node_L *next;
}LOGON;
typedef struct
{
STUDENT *studenthead;
TEACHER *teacherhead;
COURSE *coursehead;
SPECIALITY *specialityhead;
DEPARTMENT *departmenthead;
CLASS *classhead;
PROJECT *projecthead;
REGISTER *registerhead;
SC *schead;
TC *tchead;
JOINACTIVITY *joinactivityhead;
LOGON *logonhead;
ACTIVITY *activityhead;
CHAMBER *chamberhead;
char str1[50],str2[50];
}sys;
typedef struct tm TM; //簡寫時間結構
//新生報到結構體
typedef struct studentinformation //學生信息節點
{
char SNO[11]; //學號
TM arrtime; //到達時間
TM logtime; //完成時間
TM waitime; //等待時間
int winnum; //報名窗口號
struct studentinformation *next; //指向下一個結點
}STUINFO;
#define MAXSIZE 1000
struct tm;
//聲明系統時間結構
typedef struct tm TM; //簡寫時間結構
typedef struct waitingqueue //窗口隊列
{
STUINFO *front,*rear;
int nodeno; //結點個數
}QUEUE;
typedef struct transaction //事件信息結構
{
char obj[11]; //事件對象
TM haptime; //事件發生時間
int acttype; //事件類型,到達為1,完成為2
int num; //事件窗口號碼
int nodeno; //此時節點個數
TM waitime;
}TRANSA;
/*糾錯函數*/
int Force(void);
int IsDate(char temp[15],int flag);
//menu2.c
void delete_sys(int choice,sys find,sys *all);
sys Input(int n[3],int i,sys *all);
//menu3.c
sys find(int choice[3],char ch1[50],char ch2[50],sys *all);
void findmore(int choice[3],char ch[50],sys *all,sys reply[100]);
void display(int table,int choice[13],sys dis);
void sort(int table,sys sort_grade[100]);
STUINFO *transport(sys *all);
/*end of menu.h*/
QUEUE *createqueue();
//創建窗口隊列
int selectqueue(QUEUE *a[],int i);
//參數為窗口頭數組名及窗口個數,返回最少人數窗口,無窗口返回0
int isempty(QUEUE *q);
//判斷鏈隊列q是否為空,為空返回1,否則返回0
STUINFO *front(QUEUE *q);
//返回鏈隊列q的隊頭元素的地址
int dequeue(QUEUE *q);
//將鏈隊列q的隊頭元素出隊列,成功返回1,失敗返回0
int dequeue(QUEUE *q);
//將鏈隊列q的隊頭元素出隊列,成功返回1,失敗返回0
TM addtime(TM x,int y);
//處理時間的加法函數 ,y限制為分鐘數
TM getwaitime(TM arrtime,TM logtime);
//獲取等待時間
int cmptime(TM x,TM y);
//對兩個時間進行比較,如果左邊大于右邊返回1,否則返回0
void dequeueall(QUEUE *a[],TM y,int i,int j);
int enqueue(QUEUE *a[],int i,int j,STUINFO x);
//將元素x放入鏈隊列q的隊尾,成功返回1,失敗返回0
int setnull(QUEUE *q);
//初始化隊列
void swap();
//將事件按時間進行排序
int gethour();
//判斷小時的合法性
int getmin();
//判斷分鐘的合法性
int registmenu(sys *all);
//新生報名主函數
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -