学生信息管理系统,Linux完成
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#define N sizeof(struct str)
struct str
{
long num;
char name[20];
char sex[5];
char old[10];
char xy[20];
char class[15];
char dress[15];
char phone[20];
struct str *next;
};
struct str *creat(void) //创建链表
{
struct str *head,*p,*q;
head=p=(struct str *)malloc(N);
printf("请输入学号 姓名 性别 年龄 学院 班级 籍贯 联系方式\n");
q=(struct str *)malloc(sizeof(struct str));
scanf("%ld%s%s%s%s%s%s%s",&q->num,q->name,q->sex,q->old,q->xy,q->class,q->dress,q->phone);
while(q->num!=0)
{
p->next=q;
p=q;
q=(struct str *)malloc(N);
printf("请输入学号 姓名 性别 年龄 学院 班级 籍贯 联系方式(输入0终止输入)\n");
scanf("%ld%s%s%s%s%s%s%s",&q->num,q->name,q->sex,q->old,q->xy,q->class,q->dress,q->phone);
getchar();
}
p->next=NULL;
free(q);
save(head);
printf("信息创建成功");
return head;
}
save (struct str *h) //将链表保存到文件
{
struct str *stu;
FILE *fp;
fp=fopen("学生信息.txt","wt");
if(fp==NULL)
{
printf("学生信息.txt写文件出错\n");
exit(1);
}
for(stu=h->next;stu!=NULL;stu=stu->next) fprintf(fp,"%ld %s %s %s %s %s %s %s\n",stu->num,stu->name,stu->sex,stu->old,stu->xy,stu->class,stu->dress,stu->phone);
fclose(fp);