学生籍贯信息管理系统(c).txt吃吧吃吧不是罪,再胖的人也有权利去增肥!苗条背后其实是憔悴,爱你的人不会在乎你的腰围!尝尝阔别已久美食的滋味,就算撑死也是一种美!减肥最可怕的不是饥饿,而是你明明不饿但总觉得非得吃点什么才踏实。编制一个学生籍贯信息管理系统,每个学生信息包括:学号、姓名、籍贯。具体功能:
(1)创建信息链表并以磁盘文件保存;
(2)读取磁盘文件并显示输出所有学生的籍贯信息;
(3)按学号或姓名查询其籍贯;
(4)按籍贯查询并输出该籍贯的所有学生;
(5)能添加、删除和修改学生的籍贯信息
#include
#include
#define LEN sizeof(struct student)
#define NULL 0
struct student
{long num;
char name[20];
char jg[20];
struct student *next;
};
int n=0;
void save(struct student *head)
{ FILE *fp;
char filename[20];
struct student *p1;
printf("Please input the filename\n");
scanf("%s",filename);
if((fp=fopen(filename,"w"))==NULL)
{printf("can't open file\n");
return;
}
for(p1=head;p1!=NULL;p1=p1->next)
{fprintf(fp,"%ld",p1->num);
fputc('\t',fp);
fprintf(fp,"%s",p1->name);
fputc('\t',fp);
fputc('\t',fp);
fprintf(fp,"%s",p1->jg);
fputc('\n',fp);
}
free(p1);
fclose(fp);
}
void print(struct student *head)
{ struct student*p;
printf("\nNow,these information is:\n");
p=head;
if(head!=NULL)
do
{printf("%ld\t%s\t\t%s\n",p->num,p->name,p->jg);
p=p->next;
}while(p!=NULL);
}
struct student *creat()
{ struct student *head,*p1,*p2;
char ch;
p1=p2=(struct student *)malloc(LEN);
printf("\n Welcome to student jiguan system!\n");
printf("Please input one's num,name and jiguan\n");
printf("\"0 0 0\":exit\n");
scanf("%ld%s%s",&p1->num,p1->name,p1->jg);
head=NULL;
while(p1->num!=0)
{n=n+1;
if(n==1)head=p1;
else p2->next=p1;
p2=p1;
p1=(struct student *)malloc(LEN);
scanf("%ld%s%s",&p1->num,p1->name,p1->jg);
}
p2->next=NULL;
free(p1);
printf("Save?Y/N\n");
scanf("%c",&ch);
scanf("%c",&ch);
if(ch=='y'||ch=='Y') save(head);
print(head);
return(head);
}
void loadf()
{FILE *fp;
int N=n;
char filename[20];
struct student *p1;
p1=(struct student *)malloc(LEN);
printf("Please input the filename\n");
scanf("%s",filename);
if((fp=fopen(filename,"r"))==NULL)
{printf("cannot open file\n");