学生管理系统1.0(1200)

源代码:
//  
//
//  Created by zhen7216 on 16/9/6.
//  Copyright  2016年 zhen7216. All rights reserved.
//
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
//定义学生结构体
struct Player {
    char name[50];        //姓名 
    char role[20];        //性别 
    int height;        //身高 
    int weight;        //体重 
    double number;        //学号 
    int wage;        //英语 
    int score;        //高数 
    struct Player *next;
};
typedef struct Player player;

void creat_list(player*, player*, player*);
void print_list(player*);
void password();
void main_menu();
void clea();
void choosemenu(player*, player*, player*, int);
void add (player*);
void query_menu ();
void come_query (player*);
void search_name (player*);
void search_height(player*);
void search_weight  (player*);
void search_wage (player*);
void search_score (player*);
void search_number (player*);
void analysis_menu();
void come_analysis (player*);
void come_ave (player*);
void print_height (player*);
void ave_menu();
void print_weight (player*);
void print_wage (player*); 
void print_score (player*);
void more_menu();
void came_more (player*);
void more_wage (player*);
void more_score (player*);
void more_height (player*);
void sort_menu (); 
void came_sort (player*);
void sort_score(player*);
void sort_height(player*);
void sort_wage(player*);
void putf_list(player*);
void read_list (player*);
 
int main()
{
	int iChoice;
    player *head;
    player *q;
    player *p;
    head = (player *)malloc(sizeof(player));
    if (NULL == head) {
    	printf("申请失败\n");
    	exit(0);
	}
    q = NULL;
    p = NULL;
    head->next = NULL;
    password();
    main_menu();
    while (scanf("%d",&iChoice) != EOF) { 

    choosemenu(head,p,q,iChoice);
    main_menu();
    
    } 
    free(head);
    return 0;
    
} 


//输入密码操作
void password() {
 int iPass;
 
 int iCount = 3;
 printf("         -------------------------------\n"); 
 printf("***  --|学生管理系统登陆界面|--  ***\n");
 printf("|         -------------------------------        |\n");
 printf("|                                                |\n");
 printf("|                                                |\n");
 printf("|                                                |\n");
 printf("|                                                |\n");
 printf("|                                                |\n");
 printf("*----                 登陆                    ---*\n");
 printf("*----                 注册                    ---*\n");
 printf("*----           请输入管理员密码              ---*\n");
 printf("|             ------------------                 |\n");
 printf("|                                                |\n");
 printf("|                                                |\n");
 printf("|                                                |\n");
 printf("|                                                |\n");
 printf("|                                                |\n");
 printf("+------------------------------------------------+\n");
 
 scanf("%d", &iPass);

 
 while (iPass!=12345)
 {
 iCount--;
 if (iCount == 0)
 exit(0);
 clea();
 printf("密码错误,您还有%d机会\n",iCount);
 printf("请输入管理员密码:");
 scanf("%d", &iPass);
 }
 clea();
 printf("您已成功登陆\n");
 return;
 }
 
 
 //主菜单
 void main_menu() {
 	 fflush(stdin);
 	 //clea();
 	 printf("         -------------------------------\n"); 
     printf("***  --|   学生管理系统界面  |--  ***\n");
     printf("         -------------------------------\n");
     printf("***            1.输入所有学生信息              ***\n");
     printf("***            2.补录学生信息                  ***\n");
     printf("***            3.输出学生所有信息              ***\n");
     printf("***            4.查询子系统                    ***\n");
     printf("***            5.统计汇总子系统                ***\n");
     printf("***            6.排序子系统                    ***\n");
     printf("***            7.存盘                          ***\n"); 
     printf("***            8.读盘                          ***\n"); 
     printf("**************************************************\n");
     printf("***            0.退出                          ***\n");
     printf("**************************************************\n");
     printf("请输入(0-8):");
 
 return;
 }
 
 
 //进入主菜单选项 
 void choosemenu(player *head, player *p, player *q, int iChoice) {
 	 fflush(stdin);
     switch(iChoice)
     {
        case 1:
          creat_list(head, p, q);
          break;
        case 2:
          add(head);
          break;
        case 3:
          clea();
 	      print_list(head);
          break;
        case 4:
          clea();
          query_menu();
          come_query(head);
          break;
        case 5:
          analysis_menu();	
          come_analysis (head);
          break;
        case 6:
          sort_menu ();
          came_sort (head);
          break;
        case 7:
          putf_list(head);
          break;
        case 8:
          read_list (head);
          break;
        case 0:
          printf("东软欢迎您. \n");
          exit(0);
 }
 
 }
 
 
 //清屏函数 
 void clea() {
 	
     system("cls");
     return;
     
 }
 
 
 //创建链表 
void creat_list(player *head, player *p, player *q) {
	
    char name [100];

    q = head;
    fflush(stdin);
    printf("请输入学生姓名:\n");
    gets(name);
    
    while (strlen(name) != 0) {
        p = (player*)malloc(sizeof(player));
        if (NULL == p) {
		    printf("申请失败\n");
		    return;
		}
            
        strcpy(p->name, name);
        printf("请输入学生性别:\n");
        gets(p->role);
        printf("请输入学生身高(cm):\n");
        scanf("%d",&p->height);
        printf("请输入学生体重(kg):\n");
        scanf("%d",&p->weight);
        printf("请输入学生学号:\n");
        scanf("%lf",&p->number);
        printf("请输入学生英语成绩:\n");
        scanf("%d",&p->wage);
        printf("请输入学生高数成绩:\n");
        scanf("%d",&p->score);
        q->next = p;
        q = p;
    
        fflush(stdin);//清空缓冲区
        clea();
        printf("请输入学生姓名(回车键返回主菜单): \n");
        gets(name);
        
    }
    p->next = NULL;

    return;
    
}


//遍历链表 
void print_list(player *head) {
	
    player *p;
    p = head->next;
    if (NULL == p) {
    	printf("没有数据!\n");
    	return;
	}
    while (p != NULL) {
        printf("姓名:");
        puts(p->name);
        printf("性别:");
        puts(p->role);
        printf("身高:");
        printf("%d",p->height);
        printf("\n");
        printf("体重:");
        printf("%d",p->weight);
        printf("\n");
        printf("学号:");
        printf("%.0lf",p->number); 
        printf("\n");
        printf("英语:");
        printf("%d",p->wage);
        printf("\n");
        printf("高数:");
        printf("%d",p->score);
        printf("\n");
        p = p->next;
        printf("************************\n");
    }
   
}


//补录成员
void add (player *head) {
	fflush(stdin);
	player *p;
	player *q;
	player *r;
	q = (player*)malloc(sizeof(player));
	if (NULL == q) {
		printf("申请失败\n");
		return;
	}
	r = head;
	p = head->next;
	while (p != NULL) {
		
		r = p;
		p = p->next;
	
	}
	    
	r->next = q;
	printf("请输入学生姓名: \n");
	gets(q->name);
	printf("请输入学生位置:\n");
    gets(q->role);
    printf("请输入学生身高(cm):\n");
    scanf("%d",&q->height);
    printf("请输入学生体重(kg):\n");
    scanf("%d",&q->weight);
    printf("请输入学生学号:\n");
    scanf("%lf",&q->number);
    printf("请输入学生英语成绩:\n");
    scanf("%d",&q->wage);
    printf("请输入高数成绩:\n");
    scanf("%d",&q->score);
    q->next = NULL;
    clea();
    return;
} 


//查询子系统菜单
 void query_menu() {
 	
 	 fflush(stdin);
 	 printf("*********-查询子系统-*********\n");
     printf("***      1.按姓名查询      ***\n");
     printf("***      2.按身高查询      ***\n");
     printf("***      3.按体重查询      ***\n");
     printf("***      4.按英语查询      ***\n");
     printf("***      5.按高数查询      ***\n");
     printf("***      6.按学号查询  ***\n");
     printf("******************************\n");
     printf("***      0.退出            ***\n");
     printf("******************************\n");
     printf("请输入(0-6):");
 
 return;
 
 }
 
 
 //进入查询菜单选项
 void come_query (player *head) {
 	
 	 fflush(stdin);
 	 
 	 int n;
 	 if (NULL == head->next) {
 	 	clea();
 	 	printf("没有数据\n");
 	 	return;
	  }
 	 scanf("%d",&n);
 	 clea();
 	 switch (n) {
 	 	
 	 	case 1:
 	 		search_name (head);
 	 		break;
 	 	case 2:
 	 		search_height(head);	
 	 		break;
 	 	case 3:
 	 		search_weight(head);
 	 		break;
 	 	case 4:
 	 		search_wage (head);
 	 		break;
 	 	case 5:
 	 		search_score (head);
 	 		break;
		case 6:
			search_number (head);
		    break;	
 	 	case 0:
 	 		return;
 	 		break;
 	 		
	  }
 } 
 
 
 //按姓名查询 
 void search_name (player *head) {
 	
 	 fflush(stdin);
 	 
 	 char name[40];
 	 int True = 0;
 	 printf("请输入要查找学生的姓名:");
 	 gets(name);
 	 player *p;
     p = head->next;
     while (p != NULL) {
     	
     	if (strcmp(p->name, name) == 0) {
		   True = 1;
     	   break;
        }
     	p = p->next;
	 }
     if(True) {
     	clea();
 	    printf("姓名:");
        puts(p->name);
        printf("位置:");
        puts(p->role);
        printf("身高:");
        printf("%d",p->height);
        printf("\n");
        printf("体重:");
        printf("%d",p->weight);
        printf("\n");
        printf("学生学号:");
        printf("%.0lf",p->number);
        printf("\n");
        printf("英语成绩:");
        printf("%d",p->wage);
        printf("\n");
        printf("高数成绩:");
        printf("%d",p->score);
        printf("\n");
    }
    else { 
	    clea();
        printf("没有找到该学生信息\n");
    } 
     
 }
 
 
//按身高查询
  void search_height (player *head) {
 	
 	 fflush(stdin);
 	 
 	 int height;
 	 int True = 0;
 	 printf("请输入要查找学生的身高:");
 	 scanf("%d",&height);
 	 player *p;
     p = head->next;
     while (p != NULL) {
     	
     	if (height == p->height) {
     		True = 1;
     		break;
		 }
     	  
     	p = p->next;
	 }
     if (True) {
         clea();
 	     printf("姓名:");
         puts(p->name);
         printf("位置:");
         puts(p->role);
         printf("身高:");
         printf("%d",p->height);
         printf("\n");
         printf("体重:");
         printf("%d",p->weight);
         printf("\n");
         printf("球衣号码:");
         printf("%d",p->number);
         printf("\n");
         printf("工资:");
         printf("%d",p->wage);
         printf("\n");
         printf("得分:");
         printf("%d",p->score);
         printf("\n");
    }
    else {
	    clea();
        printf("没有找到该学生信息\n");
    }
 }
 
 
//按体重查询
  void search_weight (player *head) {
 	
 	 fflush(stdin);
 	 
 	 int weight;
 	 int True = 0;    //判断是否找到 
 	 printf("请输入要查找学生的体重:");
 	 scanf("%d",&weight);
 	 player *p;
     p = head->next;
     while (p != NULL) {
     	
     	if (weight == p->weight) {
     		True = 1;
     		break;
		 }
     	p = p->next;
	 }
     if (True) {
	    clea();
 	    printf("姓名:");
        puts(p->name);
        printf("性别:");
        puts(p->role);
        printf("身高:");
        printf("%d",p->height);
        printf("\n");
        printf("体重:");
        printf("%d",p->weight);
        printf("\n");
        printf("学号:");
        printf("%.0lf",p->number);
        printf("\n");
        printf("英语成绩:");
        printf("%d",p->wage);
        printf("\n");
        printf("高数成绩:");
        printf("%d",p->score);
        printf("\n");
    }
    else{
	    clea();
        printf("没有找到该学生信息\n");
    }
 }
 
 
 //按英语查询
  void search_wage (player *head) {
 	
 	 fflush(stdin);
 	 
 	 int wage;
 	 int True = 0;    //判断是否找到 
 	 printf("请输入要查找学生的英语成绩:");
 	 scanf("%d",&wage);
 	 player *p;
     p = head->next;
     while (p != NULL) {
     	
     	if (wage == p->wage) {
     		True = 1;
     		break;
		 }
     	p = p->next;
	 }
     if (True) {
	    clea();
 	    printf("姓名:");
        puts(p->name);
        printf("性别:");
        puts(p->role);
        printf("身高:");
        printf("%d",p->height);
        printf("\n");
        printf("体重:");
        printf("%d",p->weight);
        printf("\n");
        printf("学号:");
        printf("%.0lf",p->number);
        printf("\n");
        printf("英语成绩:");
        printf("%d",p->wage);
        printf("\n");
        printf("高数成绩:");
        printf("%d",p->score);
        printf("\n");
    }
    else {
	    clea();
        printf("没有找到该学生信息\n");
    }
 }
 
 
 //按高数成绩查询
  void search_score (player *head) {
 	
 	 fflush(stdin);
 	 
 	 int score;
 	 int True = 0;    //判断是否找到 
 	 printf("请输入要查找学生的高数成绩:");
 	 scanf("%d",&score);
 	 player *p;
     p = head->next;
     while (p != NULL) {
     	
     	if (score == p->score) {
     		True = 1;
     		break;
		 }
     	p = p->next;
	 }
     if (True) {
	    clea();
 	    printf("姓名:");
        puts(p->name);
        printf("位置:");
        puts(p->role);
        printf("身高:");
        printf("%d",p->height);
        printf("\n");
        printf("体重:");
        printf("%d",p->weight);
        printf("\n");
        printf("学号:");
        printf("%.0lf",p->number);
        printf("\n");
        printf("英语成绩:");
        printf("%d",p->wage);
        printf("\n");
        printf("高数成绩:");
        printf("%d",p->score);
        printf("\n");
    }
    else {
	    clea();
        printf("没有找到该学生信息\n");
    }
 }
 
 
 //按学号查询
  void search_number (player *head) {
 	
 	 fflush(stdin);
 	 
 	 int number;
 	 int True = 0;    //判断是否找到 
 	 printf("请输入要查找学生的学号:");
 	 scanf("%lf",&number);
 	 player *p;
     p = head->next;
     while (p != NULL) {
     	
     	if (number == p->number) {
     		True = 1;
     		break;
		 }
     	p = p->next;
	 }
     if (True) {
	    clea();
 	    printf("姓名:");
        puts(p->name);
        printf("性别:");
        puts(p->role);
        printf("身高:");
        printf("%d",p->height);
        printf("\n");
        printf("体重:");
        printf("%d",p->weight);
        printf("\n");
        printf("学生学号:");
        printf("%.0lf",p->number);
        printf("\n");
        printf("英语成绩:");
        printf("%d",p->wage);
        printf("\n");
        printf("高数成绩:");
        printf("%d",p->score);
        printf("\n");
    }
    else {
	    clea();
        printf("没有找到该学生信息\n");
    }
 }
 
 
 //统计分析子系统菜单
 void analysis_menu() {
 	 clea();
 	 fflush(stdin);
 	 printf("**********-统计分析子系统菜单-**********\n");
 	 printf("\n");
     printf("---- 1.统计所有学生某项数据平均得分 ----\n");
     printf("---- 2.统计某数据高于平均得分的人数 ----\n");
     printf("\n");
     printf("****************************************\n");
     printf("---- 0.返回上一级                   ----\n");
     printf("****************************************\n");
     printf("请输入(0-2):");
     
 }
 
 
 //进入统计分析子系统菜单
 void come_analysis (player *head) {
 	 
 	 fflush(stdin);
 	 if (NULL == head->next) {
 	 	 clea();
	     printf("没有数据\n");
 	     return;
 	 }
 	 int n;
 	 scanf("%d",&n);
 	 clea();
 	 switch (n) {
 	 	case 1:
 	 		ave_menu();
 	 		come_ave (head);
 	 		break;
 	 	case 2:
 	 		more_menu();
			came_more (head); 	
 	 		break;

 	 	case 0:
 	 		return;
 	 		break;		
	  }
 	
 } 
 
 
 //显示各项平均数据菜单
   void ave_menu() {
 	 
 	 fflush(stdin);
 	 clea();
 	 printf("********-显示各项平均数据菜单-********\n");
     printf("***       1.所有学生平均身高       ***\n");
     printf("***       2.所有学生平均体重       ***\n");
     printf("***       3.所有学生平均英语成绩       ***\n");
     printf("***       4.所有学生平均高数成绩       ***\n");
     printf("**************************************\n");
     printf("***       0.返回上一级             ***\n");
     printf("**************************************\n");
     printf("请输入(0-4):");
     
 }
 //选择各项平均数据统计 
   void come_ave (player *head) {
 	   fflush(stdin);
 	 
 	   int n;
 	   scanf("%d",&n);
 	   clea();
 	   switch (n) {
 	 	case 1:
 	 		print_height (head);
 	 		break;
 	 	case 2:
 	 		print_weight (head);	
 	 		break;
        case 3:
        	print_wage (head); 
        	break;
        case 4:
        	print_score (head);
        	break;
 	 	case 0:
 	 		return;
 	 		break;		
	  }
 	
 }
 
 
 //输出身高平均值
 void print_height (player *head) {
 	 
 	 double sum = 0.0;
 	 int account = 0;
 	 player *p;
     p = head->next;
     
     while (p != NULL) {
         sum += p->height;
         account++;
		 p = p->next; 
     }
     clea();
     printf("所有球员平均身高为:%.1lfcm\n",sum/account);
     
 } 
 
 
 //输出体重平均值
 void print_weight (player *head) {
 	 
 	 double sum = 0.0;
 	 int account = 0;
 	 player *p;
     p = head->next;
     
     while (p != NULL) {
         sum += p->weight;
         account++;
		 p = p->next; 
     }
     clea();
     printf("所有球员平均体重为:%.1lfkg\n",sum/account);
     
 } 
 
 
  //输出英语平均值
 void print_wage (player *head) {
 	 
 	 double sum = 0.0;
 	 int account = 0;
 	 player *p;
     p = head->next;
     
     while (p != NULL) {
         sum += p->wage;
         account++;
		 p = p->next; 
     }
     clea();
     printf("所有球员平均英语成绩为:%.1lf分\n",sum/account);
     
 } 
 
 
   //输出高数平均值
 void print_score (player *head) {
 	 
 	 double sum = 0.0;
 	 int account = 0;
 	 player *p;
     p = head->next;
     
     while (p != NULL) {
         sum += p->score;
         account++;
		 p = p->next; 
     }
     clea();
     printf("所有学生高数平均得分为:%.1lf分\n",sum/account);
     
 } 
 
 
 //显示某项得分高于平均分的菜单
   void more_menu() {
 	 
 	 fflush(stdin);
 	 printf("***某项得分高于平均分的菜单***\n");
     printf("*          1.英语            *\n");
     printf("*          2.高数            *\n");
     printf("*          3.身高            *\n");
     printf("******************************\n");
     printf("*          0.返回上一级      *\n");
     printf("******************************\n");
     printf("请输入(0-3):");
     
 }
 
 
 //选择各项超出平均值的人数 
   void came_more (player *head) {
 	   fflush(stdin);
 	 
 	   int n;
 	   scanf("%d",&n);
 	   clea();
 	   switch (n) {
 	 	case 1:
 	 		more_wage (head);
 	 		break;
 	 	case 2:
 	 		more_score (head);	
 	 		break;
        case 3:
        	more_height (head);
        	break;
 	 	case 0:
 	 		return;
 	 		break;		
	  }
 	
 }
 
 
   //输出高于英语平均值的人数 
 void more_wage (player *head) {
 	 clea();
 	 double sum = 0.0;
 	 int account = 0;
 	 int people = 0;
 	 double ave = 0.0;
 	 player *p;
     p = head->next;
     
     while (p != NULL) {
         sum += p->wage;
         account++;
		 p = p->next; 
     }
     ave = sum/account;
     p = head->next;
     
     while (p != NULL) {
         if (p->wage > ave)
           people++;
		 p = p->next; 
     }
     printf("高于平均英语的有%d人\n",people);
       
 } 
 
 
    //输出高于高数平均值的人数 
 void more_score (player *head) {
 	 clea();
 	 double sum = 0.0;
 	 int account = 0;
 	 int people = 0;
 	 double ave = 0.0;
 	 player *p;
     p = head->next;
     
     while (p != NULL) {
         sum += p->score;
         account++;
		 p = p->next; 
     }
     ave = sum/account;
     p = head->next;
     
     while (p != NULL) {
         if (p->score > ave)
           people++;
		 p = p->next; 
     }
     printf("高于高数平均得分的有%d人\n",people);
       
 } 
 
 
    //输出高于身高平均值的人数 
 void more_height (player *head) {
 	 clea();
 	 double sum = 0.0;
 	 int account = 0;
 	 int people = 0;
 	 double ave = 0.0;
 	 player *p;
     p = head->next;
     
     while (p != NULL) {
         sum += p->height;
         account++;
		 p = p->next; 
     }
     ave = sum/account;
     p = head->next;
     
     while (p != NULL) {
         if (p->height > ave)
           people++;
		 p = p->next; 
     }
     printf("高于平均得分的有%d人\n",people);
       
 } 
 
 
 //排序子系统菜单
 void sort_menu () {
 	   
 	 fflush(stdin);
 	 clea();
 	 printf("********-排序子系统菜单-********\n");
     printf("**   1.按高数成绩升序排列     **\n");
     printf("**   2.按身高升序排列         **\n");
     printf("**   3.按英语升序排列         **\n");
     printf("********************************\n");
     printf("**   0.返回上一级             **\n");
     printf("********************************\n");
     printf("请输入(0-3):");
     
 } 
 
 
 //选择要排序的数据 
   void came_sort (player *head) {
 	   fflush(stdin);
 	   if (NULL == head->next) {
 	   	  clea();
 	   	  printf("没有数据\n");
 	   	  return;
		}
 	   int n;
 	   scanf("%d",&n);
 	   clea();
 	   switch (n) {
 	 	case 1:
 	 		sort_score (head);
 	 		break;
 	 	case 2:
 	 		sort_height (head);	
 	 		break;
        case 3:
        	sort_wage (head);
        	break;
 	 	case 0:
 	 		return;
 	 		break;		
	  }
 	
 }
 
 
 //升序排列高数 
 void sort_score (player *head) {
 	 player *p;
 	 player *r;
 	 char na[400];
 	 int temp;
     p = head->next;
     r = p->next;
     while (r != NULL) {
         if (p->score > r->score) {
         	strcpy(na, p->name);
         	strcpy(p->name, r->name);
         	strcpy(r->name, na);
         	
         	strcpy(na, p->role);
         	strcpy(p->role, r->role);
         	strcpy(r->role, na);
         	
         	temp = p->height;
         	p->height = r->height;
         	r->height = temp;
         	
         	temp = p->number;
         	p->number = r->number;
         	r->number = temp;
         	
         	temp = p->score;
         	p->score = r->score;
         	r->score = temp;
         	
         	temp = p->wage;
         	p->wage = r->wage;
         	r->wage = temp;
         	
         	temp = p->weight;
         	p->weight = r->weight;
         	r->weight = temp;
		 }
		 p = p->next;
		 r = r->next; 
     }
 	
 }
 
 
 //升序排列身高 
 void sort_height (player *head) {
 	 player *p;
 	 player *r;
 	 char na[400];
 	 int temp;
     p = head->next;
     r = p->next;
     while (r != NULL) {
         if (p->height > r->height) {
         	strcpy(na, p->name);
         	strcpy(p->name, r->name);
         	strcpy(r->name, na);
         	
         	strcpy(na, p->role);
         	strcpy(p->role, r->role);
         	strcpy(r->role, na);
         	
         	temp = p->height;
         	p->height = r->height;
         	r->height = temp;
         	
         	temp = p->number;
         	p->number = r->number;
         	r->number = temp;
         	
         	temp = p->score;
         	p->score = r->score;
         	r->score = temp;
         	
         	temp = p->wage;
         	p->wage = r->wage;
         	r->wage = temp;
         	
         	temp = p->weight;
         	p->weight = r->weight;
         	r->weight = temp;
		 }
		 p = p->next;
		 r = r->next; 
     }
 	
 }
 
 
  //升序排列英语 
 void sort_wage (player *head) {
 	 player *p;
 	 player *r;
 	 char na[400];
 	 int temp;
     p = head->next;
     r = p->next;
     while (r != NULL) {
         if (p->wage > r->wage) {
         	strcpy(na, p->name);
         	strcpy(p->name, r->name);
         	strcpy(r->name, na);
         	
         	strcpy(na, p->role);
         	strcpy(p->role, r->role);
         	strcpy(r->role, na);
         	
         	temp = p->height;
         	p->height = r->height;
         	r->height = temp;
         	
         	temp = p->number;
         	p->number = r->number;
         	r->number = temp;
         	
         	temp = p->score;
         	p->score = r->score;
         	r->score = temp;
         	
         	temp = p->wage;
         	p->wage = r->wage;
         	r->wage = temp;
         	
         	temp = p->weight;
         	p->weight = r->weight;
         	r->weight = temp;
		 }
		 p = p->next;
		 r = r->next; 
     }
 	
 }






//读盘
void read_list (player *head) {
	
	player *p;
	FILE *fp;
	fp = fopen("file.txt", "r+"); 
	head->next = NULL;
	
	if (NULL == fp) {
		printf("文件打开失败\n");
		return;
	}
	
	while (!feof(fp)) {
		
		p = (player*)malloc(sizeof(player));
		if (fread(p,sizeof(player),1,fp)) {
			p->next = head->next;
			head->next = p;
		}
		else
		    free(p);
	}
	
		if( NULL != fp )
		    fclose(fp);
		printf("文件读入成功\n");
		    return;
}


//存盘 
void putf_list(player *head) {
	
	player *p;
	FILE *fp;
	
	if (NULL == head){
		printf("没有数据\n");
		return;
	}
	
	fp = fopen("file.txt", "w");
	if (NULL == fp) {
		printf("文件打开失败\n");
		return;
	}
	p = head->next;
	while (p != NULL) {
		fwrite(p,sizeof(player),1,fp);
		p=p->next;
	}
	
	if (fp != NULL)
	    fclose(fp);
	printf("文件写入成功\n");
	
	return;
} 



运行结果:



评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值