用链表实现学生信息存储系统

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

#include

#include

#include

#define PF printf

#define LEN sizeof(struct student)

//◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆定义结构体◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆

struct student

{

char NO[20];

char name[20];

int age;

char sex[3]; /*'F'表示性别男,'M'表示性别女*/

char birthday[10];

char address[30];

char phone[20];

char e_mail[20];

struct student *next; //下个结点

};

typedef struct student STU;

STU *head=NULL; //全局指针

int n,i=0; //全局变量

//◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆自定义函数◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆

void show_menu(); //显示菜单

void menu(); //执行菜单

void creat_stu(); //建立链表

void insert_stu(); //学生信息录入

void print_stu(); //学生信浏览

void search_NO(); //以学号方式查询信息

void search_name(); //以姓名方式查询信息

void arrage_stu(); //排序

void del_stu(); //删除学生信息

void revise_stu(); //修改学生信息

void save(); //保存信息

void main()

{

creat_stu();

menu();

}

//◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆创建链表◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆

void creat_stu(){

FILE *fp;

long size;

STU *p1,*p2;

head=(STU *)malloc(sizeof(STU));

head->next=NULL;

if((fp=fopen("fname.txt","r"))==NULL)

{

printf("这是新表\n");

return;

}

fseek(fp,0L,2);

size=ftell(fp);

if(!size)

{

printf("这是空表\n");

return;

} //开始创建链表

rewind(fp); //移动到文件首

p2=head->next; //找到但前位置

while(!feof(fp))

{

p1=(STU *)malloc(sizeof(STU));

fscanf(fp,"%s %s %d %s %s %s %s %s\n",p1->NO,p1->name,&p1->age,\

p1->sex,p1->birthday,p1->address,p1->phone,p1->e_mail);

p1->next=NULL;

//创建节点完

if(head->next==NULL)

head->next=p1;

else

p2->next=p1;

p2=p1;

n++;

}

p2->next=NULL;

fclose(fp);

//◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆执行菜单◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆

void menu()

{

int c;

show_menu();

while(1)

{

scanf("%d",&c);

switch(c)

{

getchar();

case 1:insert_stu();break;

case 2:print_stu();break;

case 3:search_NO(); break;

case 4:search_name(); break;

case 5:del_stu(); break;

case 6:revise_stu(); break;

case 7:arrage_stu();break;

case 0:exit(0);

} //执行菜单选项

show_menu();

}

}

//◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆显示菜单◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆

void show_menu()

{

PF("\n");

PF("\n※※※※※※※※※※※※※※※※※※菜单※※※※※※※※※※※※※※※※※※\n");

PF("\t\t◆1.输入学生信息◆\n");

PF("\t\t★2.浏览学生信息★\n");

PF("\t\t◆3.以学号方式查询信息◆\n");

PF("\t\t★4.以姓名方式查询信息★\n");

PF("\t\t◆5.删除学生信息◆\n");

PF("\t\t★6.修改学生信息★\n");

PF("\t\t◆7 排序◆\n");

相关文档
最新文档