C语言编写班级花名册(链表版)
需求 :利用链表设计班级花名册日期:2017.3.26
以下是代码:
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<conio.h>
typedef struct Roster{
char name[9]; // 姓名
char num[20]; //学号
char sex[3]; //性别
char grade[6]; //成绩
char tel_num[20]; //联系电话
struct Roster *next; // 链表中的指针域
}rst, *prst;
#define SIZE sizeof(struct Roster) // 宏定义
// 定义全局变量
FILE *fp = NULL;
prst head = NULL;
//prst he_temp = NULL;
/****************下面是函数声明*****************/
void menu(); // 用户界面
prst AddNode(prst head); // 添加节点到链表尾部
void AddData(prst plink); // 在节点中添加数据 ,用于添加学生或者修改信息
void ShowAll(prst head); // 显示全部
void CreatHeadNode(); // 创建头节点
void LoadNode(prst head); // 将文件中的数据放到链表中
prst FindStu(prst head, char *num); // 查找学生
void PrintfInfo(prst plink); // 显示某一节点数据
void DelStu(prst head, char *num); // 删除学生信息
void SaveStu(prst head); // 保存学生信息
prst RankStu(prst head); // 排序
void FreeLinkList(prst head); // 释放内存
/*******************函数声明完毕***************/
/*****************下面开始写 主函数 ***************/
int main(void){
int choice; // 选择按钮
prst plink;
char num[20] = {0};
CreatHeadNode();
LoadNode(head); // 将文件数据载入链表
while(1){
menu();
printf("\n请选择:");
scanf("%d",&choice); //读入选择
if(choice<1||choice>8){
printf("\n\n键入数值无效!重新输入!\n");
} else{
switch(choice){
case 1: plink = AddNode(head); // 增加学生信息
AddData(plink