/* file stu.h, 程序 stu 的公共头文件 */
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <ctype.h>

/* 程序的公用常量定义 */
enum {
    MAXNUM = 400,
    MIDDLE = 20, EXECISE = 30, FINAL = 50, /* 成绩比例 */
    HISTLEN = 60,         /* 最长行的长度（字符数）*/
    SEGLEN = 5,           /* 分段长度 */
    SEGNUM = 100/SEGLEN+1 /* 分段数，根据分段长度自动算出 */
};

/* 公用类型定义 */
typedef struct {
    unsigned long num;
    char name[20];
    double mid, exe, final, score;
} StuRec;

/* 全局性数据对象的外部声明，此时不必给出数组长度 */
extern StuRec students[];

/* 在某一个文件里定义，在其他文件里使用的全部函数的原型 */
int readSRecs(FILE *fp, int limit, StuRec tb[]);
int printSRec(FILE *fp, int limit, StuRec tb[]);
void statistics(int n, StuRec tb[]);
void histogram(int n, StuRec tb[], int high);
void sortoutput(int n, StuRec tb[]);
int next(char s[]);
void getnstr (char prompt[], int lim, char bf[]);
int getcmd (char *prompt, int c1, int cn);

