#include<stdio.h>
#include<stdlib.h>
#include"student.h"
SI* create()
{SI*head=NULL;SI*p1;SI*p2;
head=p1=(SI*)malloc(sizeof(SI));
if(head==NULL)
return head;
printf("输入学号;0代表结束输入");
scanf("%d",&(p1->number));
if(p1->number==0)
{free(p1);
return (head);
}
else
{printf("依次输入 姓名,分数,出生年月日(格式为xx年xx月xx日),年龄,地址,电话号码,电子邮件地址");
scanf("%s%f%s%d%s%f%s",p1->name,&(p1->score),p1->birth,&(p1->age),p1->address,&(p1->phonenum),p1->E_mail);
printf("输入性别,1代表男,0代表女");
scanf("%d",&(p1->sex));
};
while(1)
{p2=p1;p1=(SI*)malloc(sizeof(SI));if(p1=NULL){printf("申请失败");p2->next=NULL;return head;}printf("输入学号,0代表结束输入");scanf("%d",&(p1->number));
if(p1->number==0){free(p1);p2->next=NULL;return head;};
printf("依次输入 姓名,分数,出生年月日(格式为xx年xx月xx日),年龄,地址,电话号码,电子邮件地址");
scanf("%s%f%s%d%s%f%s",p1->name,&(p1->score),p1->birth,&(p1->age),p1->address,&(p1->phonenum),p1->E_mail);
printf("输入性别,1代表男,0代表女");
scanf("%d",&(p1->sex));p2->next=p1;
}
}
//创建链表的函数结束。
int makefile(char name[20])
{FILE*fp;SI*t;
fp=fopen(name,"wb+");
if(fp==NULL)
{printf("无法打开文件,");exit(0);}
t=create;
if(t==NULL)
{printf("链表为空,请再次选择,输入信息");return 0;}
do
{fwrite(t,sizeof(SI),1,fp);
t=t->next;
}while((t->next)!=NULL);
return 0;
}
void prin(char *name)
{printf("0");}
void correct()
{printf("0");}
上面是函数定义文件。
#include<stdio.h>
#include"student.body.c"
void main()
{int n;char name[20]="student.dat";
while(1)
{ printf("1代表将信息录入文件;2代表输出学生信息;3代表修改成绩等;4代表结束");
scanf("%d,&n");
switch(n)
{ case 1:makefile(name);continue;
case 2:prin(name);continue;
case 3:correct();continue;
case 4:exit(0);
};
}
}
上面是main函数所在文件
#include<stdio.h>
#include<stdlib.h>
struct student_information
{float score,phonenum;int number;char name[16],address[20],E_mail[20],birth[18];struct student_information* next;short int age;enum{female,male}sex;
};
typedef struct student_information SI;
SI *create();
int makefile(char name[20]);
void prin(char name[20]);
void correct();
上面是函数声明文件。
相关分类