通过结构体、动态存储函数建立单向链表,结合文件操作函数和指针实现对大量有序同类型数据(学生信息)的处理。
#include
#include
#include
#include
#define NAMELEN 15
#define NOLEN 7
#define HEADER " STUDENT INFORMATION RECORDS"#define HEADER1 "\n
——————————————————————————————————————————————————————————————————————————————\n"#define HEADER2 "| NO. | Name |Gender|Age|Language| Math |English| Sum | Avg |Rank|\n"
#define HEADER3 "|--------|----------------|------|---|--------|------|-------|------|-----|----|\n"#define FORMAT "|%7s |%13s |%4c |%3d|%5d |%4d |%5d |%5d | %4.1f|%3d |\n"
#define OUTPUT p->NO,p->name,p->gender,p->age,p->l_score,p-
>m_score,p->e_score,p->score_sum,p->score_avg,p->rank
int n=0;/*计算存放数据结点数*/
int m;/*计算inquire()函数找到的结点个数*/
struct node *o[2];/*定义指针数组存放inquire()函数找到的一个结点指针和上一级指针*/typedef struct node
{
char NO[NOLEN];
char name[NAMELEN];
char gender;
int age;
int l_score;
int m_score;
int e_score;
float score_avg;
int score_sum;
int rank;
struct node *next;
}*LINK;
struct node * creat_node();
void menu();
void display(struct node *);
void inquire(struct node *);
void addnew(struct node *);
void modify(struct node *);
void insert(struct node *);
void del(struct node *);
void save(struct node *);
void grade_statistics(struct node *);
void quit(struct node *);